<?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>148669</bug_id>
          
          <creation_ts>2015-08-31 21:39:31 -0700</creation_ts>
          <short_desc>Remove shadow DOM tests</short_desc>
          <delta_ts>2015-08-31 22:16:35 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>mjs</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1122466</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-31 21:39:31 -0700</bug_when>
    <thetext>These are tests for an old API that is almost entirely incompatible with the new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122467</commentid>
    <comment_count>1</comment_count>
      <attachid>260351</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-31 21:43:14 -0700</bug_when>
    <thetext>Created attachment 260351
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122468</commentid>
    <comment_count>2</comment_count>
      <attachid>260351</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-31 21:50:13 -0700</bug_when>
    <thetext>Comment on attachment 260351
proposed patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122478</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-31 22:16:35 -0700</bug_when>
    <thetext>Committed r189204.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260351</attachid>
            <date>2015-08-31 21:43:14 -0700</date>
            <delta_ts>2015-08-31 21:50:13 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>RemoveShadowDOMTests.txt</filename>
            <type>text/plain</type>
            <size>1851256</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA4LTMxICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzaGFkb3cgRE9NIHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg2NjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvY29ycmVzcG9uZGluZy1jb250cm9sLWRlbGV0ZWQtY3Jhc2guaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBlZGl0aW5nL3NoYWRvdzogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvYmFzaWMtaXRlcmF0aW9uLXNoYWRvd2RvbS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY3ljbGVzLWluLXNoYWRvdy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdzogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNS0wOC0zMSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJhbmdlIEFQSSBpcyB0aHJvd2luZyB3cm9uZyBl
eGNlcHRpb24gdHlwZQpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jb3JyZXNwb25k
aW5nLWNvbnRyb2wtZGVsZXRlZC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvY29ycmVzcG9uZGluZy1jb250cm9sLWRlbGV0ZWQtY3Jhc2guaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9jb3JyZXNwb25k
aW5nLWNvbnRyb2wtZGVsZXRlZC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQyICsw
LDAgQEAKLQotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQot
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNj
cmlwdD4KLSAgICBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgYSBkZWJ1ZyBhc3NlcnQgaXMg
bm90IHRyaWdnZXJlZCB3aGVuIGEgY2FsbCB0byBSZW5kZXJCbG9jazo6ZGVsZXRlTGluZUJveFRy
ZWUgY2FsbHMgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCB3aGljaCBtYXkgcmVxdWlyZSB0aGUgQVhPYmplY3QgZm9yIGEgbm9kZSB0aGF0IGlzIGJlaW5n
IGRlbGV0ZWQuIik7Ci0KLSAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCds
YWJlbCcpOwotICAgIGxhYmVsLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJzsKLSAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGxhYmVsKTsKLQotICAgIHZhciBwcm9ncmVzcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3Byb2dyZXNzJyk7Ci0gICAgcHJvZ3Jlc3Muc3R5bGUuZGlzcGxheSA9
ICdibG9jayc7Ci0gICAgbGFiZWwuYXBwZW5kQ2hpbGQocHJvZ3Jlc3MpOwotCi0gICAgdmFyIGti
ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2tiZCcpOwotICAgIGxhYmVsLmFwcGVuZENoaWxk
KGtiZCk7Ci0KLSAgICB2YXIgbGFiZWxTaGFkb3cgPSBsYWJlbC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci0KLSAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0
Jyk7Ci0gICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCAnbXVsdGlwbGUnKTsKLSAg
ICBsYWJlbFNoYWRvdy5hcHBlbmRDaGlsZChzZWxlY3QpOwotCi0gICAgdmFyIHNoYWRvdyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIGxhYmVsU2hhZG93LmFwcGVuZENo
aWxkKHNoYWRvdyk7Ci0KLSAgICBzZWxlY3QuZm9jdXMoKTsKLQotICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQobGFiZWwpOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2FkanVzdGluZy1lZGl0aW5nLWJvdW5kYXJ5LXdpdGgt
dGFibGUtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NoYWRvdy9hZGp1c3RpbmctZWRpdGluZy1ib3VuZGFyeS13aXRoLXRhYmxlLWluLXNo
YWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2hhZG93L2FkanVzdGluZy1lZGl0aW5nLWJvdW5kYXJ5LXdpdGgtdGFibGUtaW4tc2hhZG93
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLVNlbGVjdGluZyBh
cm91bmQgYSB0YWJsZSB3aGljaCBpcyBkaXN0cmlidXRlZCBmcm9tIHNoYWRvdyBzdWJ0cmVlIHRv
IG5lc3RlZCBzaGFkb3cgc3VidHJlZSB3aWxsIHRyaWdnZXIgYW4gYXNzZXJ0aW9uLiBUbyB0cnkg
bWFudWFsbHksIHNlbGVjdCBmcm9tICJzaGFkb3cgMiIgdG8gYXJvdW5kICJhZnRlciIgYW5kIGNv
bmZpcm0gYSBjcmFzaCBkb2VzIG5vdCBvY2N1ci4KLQotUEFTUwpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYWRqdXN0aW5nLWVkaXRpbmctYm91bmRhcnktd2l0aC10YWJsZS1pbi1z
aGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9hZGp1
c3RpbmctZWRpdGluZy1ib3VuZGFyeS13aXRoLXRhYmxlLWluLXNoYWRvdy5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9hZGp1c3RpbmctZWRpdGlu
Zy1ib3VuZGFyeS13aXRoLXRhYmxlLWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwu
anMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJjb250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT4KLSAg
ICA8dGFibGUgYm9yZGVyPSIxIiBpZD0iaG9zdCIgY29udGVudGVkaXRhYmxlPgotICAgICAgICA8
dHI+PHRkPmhvc3QgMTwvdGQ+PC90cj4KLSAgICAgICAgPHRyPjx0ZD5ob3N0IDI8L3RkPjwvdHI+
Ci0gICAgPC90YWJsZT4KLTwvZGl2PgotCi08cCBpZD0iZGVzY3JpcHRpb24iPlNlbGVjdGluZyBh
cm91bmQgYSB0YWJsZSB3aGljaCBpcyBkaXN0cmlidXRlZCBmcm9tIHNoYWRvdyBzdWJ0cmVlIHRv
IG5lc3RlZCBzaGFkb3cgc3VidHJlZSB3aWxsIHRyaWdnZXIgYW4gYXNzZXJ0aW9uLiBUbyB0cnkg
bWFudWFsbHksIHNlbGVjdCBmcm9tICJzaGFkb3cgMiIgdG8gYXJvdW5kICJhZnRlciIgYW5kIGNv
bmZpcm0gYSBjcmFzaCBkb2VzIG5vdCBvY2N1ci48L3A+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXZhciBzaGFkb3dS
b290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdik7Ci1kaXYu
aW5uZXJIVE1MID0gIjx0YWJsZSBib3JkZXI9JzEnPjx0cj48dGQ+c2hhZG93IDE8L3RkPjwvdHI+
PHRyPjx0ZCBpZD0nc3JjJz5zaGFkb3cgMjwvdGQ+PC90cj48L3RhYmxlPiI7Ci0KLXZhciBuZXN0
ZWRTaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLW5lc3RlZFNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gIjxkaXYgY29udGVudGVkaXRhYmxlPmJlZm9yZTxzaGFkb3c+PC9z
aGFkb3c+YWZ0ZXI8L2Rpdj4iOwotCi12YXIgc3JjID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJ
ZCgnc3JjJyk7Ci0KLWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyhzcmMub2Zmc2V0TGVmdCArIDEwLCBzcmMub2Zmc2V0VG9wICsgc3JjLm9mZnNl
dEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHNyYy5vZmZzZXRMZWZ0IC0gMTAsIHNyYy5vZmZzZXRUb3AgKyBzcmMu
b2Zmc2V0SGVpZ2h0IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgY29u
dGFpbmVyLmlubmVySFRNTCA9ICJQQVNTIjsKLX0KLQotLy8gV2hlbiBkZXNjcmlwdGlvbiBjb21l
cyBiZWZvcmUgY29udGFpbmVyLCB0aGlzIHRlc3Qgd2lsbCBub3QgZmFpbCBpZiBjb2RlIGlzIHdy
b25nLiBTbyBsZXQncyBtb3ZlIGhlcmUuCi1jb250YWluZXIucGFyZW50Tm9kZS5pbnNlcnRCZWZv
cmUoZGVzY3JpcHRpb24sIGNvbnRhaW5lcik7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JvbGQtdHdpY2UtaW4tc2hhZG93LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9ib2xk
LXR3aWNlLWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JvbGQtdHdpY2UtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSw2ICswLDAgQEAKLUFwcGx5aW5nIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCdCb2xkJykgdG8gZWxlbWVudHMgaGF2aW5nIGluc2VydGlvbiBwb2ludHMgKDxzaGFkb3c+
IG9yIDxjb250ZW50Pikgc2hvdWQgbm90IGNhdXNlIGEgY3Jhc2guCi0KLVRvIHRlc3QgbWFudWFs
bHksIG1ha2UgYSBzZWxlY3Rpb24gZnJvbSBzb21ld2hlcmUgaW4gIm5lc3RlZCBiZWZvcmUiIHRv
IHNvbWVod2VyZSBpbiAibmVzdGVkIGFmdGVyIiwgdGhlbiBwcmVzcyBDdHJsK0IgdHdpY2UuIEl0
IHNob3VsZCBub3QgY2F1c2UgYSBjcmFzaC4KLQotUEFTUwotCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NoYWRvdy9ib2xkLXR3aWNlLWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JvbGQtdHdpY2UtaW4tc2hhZG93Lmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JvbGQtdHdpY2UtaW4t
c2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9y
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
ZG9tL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPkFwcGx5
aW5nIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdCb2xkJykgdG8gZWxlbWVudHMgaGF2aW5nIGluc2Vy
dGlvbiBwb2ludHMgKCZsdDtzaGFkb3cmZ3Q7IG9yICZsdDtjb250ZW50Jmd0Oykgc2hvdWQgbm90
IGNhdXNlIGEgY3Jhc2guPC9wPgotPHA+VG8gdGVzdCBtYW51YWxseSwgbWFrZSBhIHNlbGVjdGlv
biBmcm9tIHNvbWV3aGVyZSBpbiAibmVzdGVkIGJlZm9yZSIgdG8gc29tZWh3ZXJlIGluICJuZXN0
ZWQgYWZ0ZXIiLCB0aGVuIHByZXNzIEN0cmwrQiB0d2ljZS4gSXQgc2hvdWxkIG5vdCBjYXVzZSBh
IGNyYXNoLjwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFibGU+Ci0gICAg
YmVmb3JlIGhvc3QKLSAgICA8ZGl2IGlkPSJob3N0Ij4gICAgPHNwYW4gY29udGVudGVkaXRhYmxl
PSJmYWxzZSI+bm90IGVkaXRhYmxlPHNwYW4+PC9kaXY+Ci0gICAgYWZ0ZXIgaG9zdAotPC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxk
aXYgaWQ9InNoYWRvdy1ob3N0Ij48c3BhbiBjb250ZW50ZWRpdGFibGU+c2hhZG93IGJlZm9yZTwv
c3Bhbj48c2hhZG93Pjwvc2hhZG93PnNoYWRvdyAoYWZ0ZXIpPC9kaXY+JzsKLQotdmFyIG5lc3Rl
ZFNoYWRvd0hvc3QgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzaGFkb3ctaG9zdCcpOwot
dmFyIG5lc3RlZFNoYWRvd1Jvb3QgPSBuZXN0ZWRTaGFkb3dIb3N0LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLW5lc3RlZFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXYgaWQ9ImlubmVyIiBj
b250ZW50ZWRpdGFibGU+bmVzdGVkIGJlZm9yZTxzaGFkb3c+PC9zaGFkb3c+bmVzdGVkIGFmdGVy
PC9kaXY+JzsKLQotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgIHZhciBkaXYgPSBuZXN0
ZWRTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdpbm5lcicpOwotCi0gICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oZGl2Lm9mZnNldExlZnQgKyA1LCBkaXYub2Zmc2V0VG9wICsgZGl2Lm9mZnNl
dEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGRpdi5vZmZzZXRMZWZ0ICsgZGl2Lm9mZnNldFdpZHRoIC0gNSwgZGl2
Lm9mZnNldFRvcCArIGRpdi5vZmZzZXRIZWlnaHQgLyAyKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Ci0KLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQm9sZCcpOwotICAgIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCdCb2xkJyk7Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIlBBU1Mi
OwotfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtMi1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1i
b3VuZGFyaWVzLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtMi1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMCwwIEBACi1XaGVuIHNlbGVjdGluZyBmcm9tIGEg
Y2hpbGQgb2YgU2hhZG93Um9vdCB0byBhbiBlbGVtZW50IG91dHNpZGUgb2Ygc2hhZG93IGhvc3Qs
IGEgY3Jhc2ggc2hvdWxkIG5vdCBiZSBjYXVzZWQuCi0KLVRvIHRlc3QgbWFudWFsbHksIHNlbGVj
dCBmcm9tICdiZWZvcmUgc2hhZG93JyB0byAnYWZ0ZXIgaG9zdCcuCi0KLVBBU1MKSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRp
dGluZy1ib3VuZGFyaWVzLTIuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLTIuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gc2VsZWN0aW5nIGZyb20gYSBjaGlsZCBvZiBTaGFkb3dS
b290IHRvIGFuIGVsZW1lbnQgb3V0c2lkZSBvZiBzaGFkb3cgaG9zdCwgYSBjcmFzaCBzaG91bGQg
bm90IGJlIGNhdXNlZC48L3A+Ci08cD5UbyB0ZXN0IG1hbnVhbGx5LCBzZWxlY3QgZnJvbSAnYmVm
b3JlIHNoYWRvdycgdG8gJ2FmdGVyIGhvc3QnLjwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBj
b250ZW50ZWRpdGFibGU+Ci0gICAgPGRpdj48cD5iZWZvcmUgaG9zdDwvcD48L2Rpdj4KLSAgICA8
ZGl2IGlkPSJob3N0Ij5ob3N0PC9kaXY+IAotICAgIDxkaXYgaWQ9ImRlc3RpbmF0aW9uIj5hZnRl
ciBob3N0PC9kaXY+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0Lndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLWRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICd0cnVlJyk7Ci1z
aGFkb3dSb290LmFwcGVuZENoaWxkKGRpdik7Ci1kaXYuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J3Nv
dXJjZSc+YmVmb3JlIHNoYWRvdzwvZGl2PjxzaGFkb3c+PC9zaGFkb3c+PGRpdj5hZnRlciBzaGFk
b3c8L2Rpdj4iOwotCi12YXIgbmVzdGVkU2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci1uZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2IGNvbnRlbnRlZGl0
YWJsZT5iZWZvcmUgbmVzdGVkPHNoYWRvdz48L3NoYWRvdz5hZnRlciBuZXN0ZWQ8L2Rpdj4iOwot
Ci12YXIgc291cmNlID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc291cmNlJyk7Ci12YXIg
ZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzdGluYXRpb24nKTsKLQot
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHNv
dXJjZS5vZmZzZXRMZWZ0ICsgMjAsIHNvdXJjZS5vZmZzZXRUb3AgKyBzb3VyY2Uub2Zmc2V0SGVp
Z2h0IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDIwLCBkZXN0aW5hdGlvbi5vZmZz
ZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIlBBU1MiOwotfQotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9i
cmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93
L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsOCArMCwwIEBACi1XaGVuIHNlbGVjdGluZyBmcm9tIGEgY2hpbGQgb2Ygc2hhZG93IGhv
c3QgdG8gYW4gZWxlbWVudCBpbiBTaGFkb3cgRE9NLCBhIGNyYXNoIHNob3VsZCBub3QgYmUgY2F1
c2VkLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBjb21l
cyBhZnRlciB0aGUgZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbi4KLQotYmVmb3JlIGhvc3QgZHJh
ZyBmcm9tIGhlcmUgYWZ0ZXIgaG9zdAotUEFTUwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93
L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0
aW5nLWJvdW5kYXJpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20v
c2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9kb20vcmVzb3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08
cD5XaGVuIHNlbGVjdGluZyBmcm9tIGEgY2hpbGQgb2Ygc2hhZG93IGhvc3QgdG8gYW4gZWxlbWVu
dCBpbiBTaGFkb3cgRE9NLCBhIGNyYXNoIHNob3VsZCBub3QgYmUgY2F1c2VkLgotVGhpcyBpcyBi
ZWNhdXNlIHRoZSBzdGFydCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24gY29tZXMgYWZ0ZXIgdGhlIGVu
ZCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24uPC9wPgotCi08ZGl2IGNvbnRlbnRlZGl0YWJsZT4KLSAg
ICBiZWZvcmUgaG9zdCA8c3BhbiBpZD0iaG9zdCIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+ZHJh
ZyBmcm9tIGhlcmU8c3BhbiBpZD0idGFyZ2V0Ij4gPC9zcGFuPiBhZnRlciBob3N0PC9zcGFuPgot
PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dS
b290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRN
TCA9ICI8c3BhbiBpZD0nc2hhZG93LWhvc3QnPmJlZm9yZSBzaGFkb3c8c2hhZG93IGlkPSdzaGFk
b3cnPjwvc2hhZG93PmFmdGVyIHNoYWRvdzwvc3Bhbj4iCi0KLXZhciBuZXN0ZWRTaGFkb3dIb3N0
ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc2hhZG93LWhvc3QnKTsKLXZhciBuZXN0ZWRT
aGFkb3dSb290ID0gbmVzdGVkU2hhZG93SG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1u
ZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICI8c3BhbiBjb250ZW50ZWRpdGFibGU+YmVmb3Jl
IG5lc3RlZDxzaGFkb3c+PC9zaGFkb3c+YWZ0ZXIgbmVzdGVkPC9zcGFuPiIKLQotLy8gVGhpcyBz
aG91bGQgbm90IGNhdXNlIGEgY3Jhc2guCi1ldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQu
b2Zmc2V0TGVmdCAtIDEwLCB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAv
IDIpOwotZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci1ldmVudFNlbmRlci5tb3VzZU1vdmVUbyhu
ZXN0ZWRTaGFkb3dIb3N0Lm9mZnNldExlZnQgKyAxMCwgbmVzdGVkU2hhZG93SG9zdC5vZmZzZXRU
b3AgKyBuZXN0ZWRTaGFkb3dIb3N0Lm9mZnNldEhlaWdodCAvIDIpOwotZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotZGVidWcoJ1BBU1MnKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyeS13aXRoLXRhYmxlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0
aW5nLWJvdW5kYXJ5LXdpdGgtdGFibGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJ5LXdp
dGgtdGFibGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzAsMCBAQAotT24g
dGhlIHNlY29uZCB0aW1lIHNlbGVjdGluZyA8c3Bhbj4sIGl0IHNob3VsZCBub3QgYmVjb21lIG5v
bi1jb250ZW50ZWRpdGFibGUuIElmIGl0IGJlY29tZXMgbm9uLWNvbnRlbnRlZGl0YWJsZSwgdGhl
IHNlbGVjdGlvbiBmcm9tIDxzcGFuPiB0byA8dGFibGU+IHdpbGwgYnJlYWsgZWRpdGluZyBib3Vu
ZGFyaWVzIGFuZCBjb250YWluICJhIi4gVGhpcyB0ZXN0IGNoZWNrcyB0aGUgPHNwYW4+IGRvZXMg
bm90IGNoYW5nZWQgdG8gbm9uLWNvbnRlbnRlZGl0YWJsZSBlbGVtZW50LgotCi1QQVNTIGNvbnRh
aW5zKHNlbGVjdGVkU3RyaW5nLCAiYSIpIGlzIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
aGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyeS13aXRoLXRhYmxlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFy
eS13aXRoLXRhYmxlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcnktd2l0aC10YWJsZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDU2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08aHRtbD4KLTxi
b2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9l
dmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPHA+T24gdGhlIHNlY29uZCB0aW1lIHNl
bGVjdGluZyAmbHQ7c3BhbiZndDssIGl0IHNob3VsZCBub3QgYmVjb21lIG5vbi1jb250ZW50ZWRp
dGFibGUuCi1JZiBpdCBiZWNvbWVzIG5vbi1jb250ZW50ZWRpdGFibGUsIHRoZSBzZWxlY3Rpb24g
ZnJvbSAmbHQ7c3BhbiZndDsgdG8gJmx0O3RhYmxlJmd0Owotd2lsbCBicmVhayBlZGl0aW5nIGJv
dW5kYXJpZXMgYW5kIGNvbnRhaW4gImEiLgotVGhpcyB0ZXN0IGNoZWNrcyB0aGUgJmx0O3NwYW4m
Z3Q7IGRvZXMgbm90IGNoYW5nZWQgdG8gbm9uLWNvbnRlbnRlZGl0YWJsZSBlbGVtZW50LjwvcD4K
LQotPGRpdiBpZD0iaG9zdCIgY29udGVudGVkaXRhYmxlPjwvZGl2PgotPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHRhYmxlIGJvcmRlcj0iMSI+
JyArCi0gICAgJzx0cj48dGQgaWQ9ImRzdCI+YWFhYWE8L3RkPjx0ZCBpZD0iYW5vdGhlciI+YWFh
YWE8L3RkPjwvdHI+JyArCi0gICAgJzx0cj48dGQ+YWFhYWE8L3RkPjx0ZD5hYWFhYTwvdGQ+PC90
cj4nICsKLSAgICAnPC90YWJsZT48c3BhbiBpZD0ic3JjIiBjb250ZW50ZWRpdGFibGU+YmJiYmI8
L3NwYW4+JzsKLQotdmFyIHNyYyA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3NyYycpOwot
dmFyIGRzdCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ2RzdCcpOwotdmFyIGFub3RoZXIg
PSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdhbm90aGVyJyk7Ci0KLS8vIDEuIFNlbGVjdCBm
cm9tIHNyYyB0byBkc3QuCi1tb3VzZU1vdmVUb0VsZW0oc3JjKTsKLWV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOwotbW91c2VNb3ZlVG9FbGVtKGRzdCk7Ci1ldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0K
LS8vIDIuIENsaWNrIHNvbWUgZWxlbWVudC4KLW1vdXNlTW92ZVRvRWxlbShhbm90aGVyKTsKLWV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOwotZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0vLyAzLiBT
ZWxlY3QgZnJvbSBzcmMgdG8gZHN0IGFnYWluLgotbW91c2VNb3ZlVG9FbGVtKHNyYyk7Ci1ldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKLW1vdXNlTW92ZVRvRWxlbShkc3QpOwotZXZlbnRTZW5kZXIu
bW91c2VVcCgpOwotCi1mdW5jdGlvbiBjb250YWlucyhzdHIsIGtleSkgewotICAgIHJldHVybiBz
dHIuaW5kZXhPZihrZXkpID49IDA7Ci19Ci0KLXZhciBzZWxlY3RlZFN0cmluZyA9IHNoYWRvd1Jv
b3QuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLXNob3VsZEJlRmFsc2UoJ2NvbnRhaW5zKHNl
bGVjdGVkU3RyaW5nLCAiYSIpJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3No
YWRvdy9jb21wYXJlLXBvc2l0aW9ucy1pbi1uZXN0ZWQtc2hhZG93LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9jb21wYXJlLXBvc2l0aW9ucy1p
bi1uZXN0ZWQtc2hhZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zaGFkb3cvY29tcGFyZS1wb3NpdGlvbnMtaW4tbmVzdGVkLXNoYWRvdy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMCwwIEBACi1QQVNTIHNlbGVjdGlv
bjIuYW5jaG9yTm9kZSBpcyBzZWxlY3Rpb24yLmZvY3VzTm9kZQotUEFTUyBzZWxlY3Rpb24yLmFu
Y2hvck9mZnNldCBpcyA1Ci1QQVNTIHNlbGVjdGlvbjIuZm9jdXNPZmZzZXQgaXMgMAotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L2NvbXBhcmUtcG9zaXRpb25zLWluLW5lc3RlZC1zaGFkb3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9jb21wYXJlLXBv
c2l0aW9ucy1pbi1uZXN0ZWQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L2NvbXBhcmUtcG9zaXRpb25zLWluLW5lc3RlZC1zaGFkb3cu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vcmVz
b3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJob3N0MSI+
PC9kaXY+Ci08ZGl2IGlkPSJob3N0MiI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4K
LQotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZUJveChuYW1lKSB7Ci0gICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53aWR0aCA9ICcxMDBw
eCc7Ci0gICAgZGl2LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0gICAgcmV0dXJuIGRpdjsKLX0K
LQotZnVuY3Rpb24gY3JlYXRlTmVzdGVkU2hhZG93RE9NKGhvc3QsIGNvbnRlbnQpIHsKLSAgICB2
YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKGRpdik7Ci0KLSAgICB2YXIgbmVzdGVkU2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIGRpdkluTmVzdGVkU2hhZG93Um9vdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdkluTmVzdGVkU2hhZG93Um9vdC5pbm5lckhU
TUwgPSBjb250ZW50OwotICAgIG5lc3RlZFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2SW5OZXN0
ZWRTaGFkb3dSb290KTsKLQotICAgIHJldHVybiBuZXN0ZWRTaGFkb3dSb290OwotfQotCi12YXIg
bmVzdGVkU2hhZG93Um9vdDEgPSBjcmVhdGVOZXN0ZWRTaGFkb3dET00oaG9zdDEsICdGVVRBTUkn
KTsKLXZhciBuZXN0ZWRTaGFkb3dSb290MiA9IGNyZWF0ZU5lc3RlZFNoYWRvd0RPTShob3N0Miwg
J0FNQU1JJyk7Ci0KLXZhciBkaXYxID0gbmVzdGVkU2hhZG93Um9vdDEuZmlyc3RDaGlsZDsKLXZh
ciBkaXYyID0gbmVzdGVkU2hhZG93Um9vdDIuZmlyc3RDaGlsZDsKLQotaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewotICAgIG1vdXNlTW92ZVRvRWxlbShkaXYyKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKLSAgICBtb3VzZU1vdmVUb0VsZW0oZGl2MSk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOwotCi0gICAgdmFyIHNlbGVjdGlvbjIgPSBuZXN0ZWRTaGFkb3dSb290Mi5nZXRT
ZWxlY3Rpb24oKTsKLSAgICBzaG91bGRCZSgnc2VsZWN0aW9uMi5hbmNob3JOb2RlJywgJ3NlbGVj
dGlvbjIuZm9jdXNOb2RlJyk7Ci0KLSAgICBzaG91bGRCZSgnc2VsZWN0aW9uMi5hbmNob3JPZmZz
ZXQnLCAnNScpOwotICAgIHNob3VsZEJlKCdzZWxlY3Rpb24yLmZvY3VzT2Zmc2V0JywgJzAnKTsK
LX0KLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvY29udGVudGVkaXRh
YmxlLXByb3BhZ2F0aW9uLWF0LXNoYWRvdy1ib3VuZGFyeS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvY29udGVudGVkaXRhYmxlLXByb3BhZ2F0
aW9uLWF0LXNoYWRvdy1ib3VuZGFyeS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2NvbnRlbnRlZGl0YWJsZS1wcm9wYWdhdGlvbi1h
dC1zaGFkb3ctYm91bmRhcnktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsw
LDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhhdCBjb250ZW50LWVkaXRhYmxlIGlzIG5vdCBwcm9w
YWdhdGVkIGZyb20gc2hhZG93IGhvc3QgdG8gYSBzaGFkb3cgc3VidHJlZS4KLQotVGhpcyBwIGlz
IHJlcXVpcmVkIHRvIHByb2R1Y2UgdGhlIGlzc3VlLgotCi1UaGlzIGRpdiBhbmQgcGFyZW50IGRp
diBhcmUgcmVxdWlyZWQgdG8gcHJvZHVjZSB0aGUgaXNzdWUuCi1QQVNTIGNvbXB1dGVkU3R5bGUo
bm9kZUluU2hhZG93Um9vdDEsIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9ubHki
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvY29udGVudGVkaXRhYmxlLXByb3BhZ2F0aW9u
LWF0LXNoYWRvdy1ib3VuZGFyeS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2hhZG93L2NvbnRlbnRlZGl0YWJsZS1wcm9wYWdhdGlvbi1hdC1zaGFkb3ctYm91bmRhcnku
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvY29u
dGVudGVkaXRhYmxlLXByb3BhZ2F0aW9uLWF0LXNoYWRvdy1ib3VuZGFyeS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBj
b250ZW50LWVkaXRhYmxlIGlzIG5vdCBwcm9wYWdhdGVkIGZyb20gc2hhZG93IGhvc3QgdG8gYSBz
aGFkb3cgc3VidHJlZS48L3A+Ci0KLTxwPlRoaXMgcCBpcyByZXF1aXJlZCB0byBwcm9kdWNlIHRo
ZSBpc3N1ZS48L3A+Ci08ZGl2IGNvbnRlbnRlZGl0YWJsZT4KLSAgPGRpdj5UaGlzIGRpdiBhbmQg
cGFyZW50IGRpdiBhcmUgcmVxdWlyZWQgdG8gcHJvZHVjZSB0aGUgaXNzdWUuPC9kaXY+Ci0gIDxk
aXYgaWQ9Imhvc3QxIiBjb250ZW50ZWRpdGFibGU+c2hhZG93IGhvc3QgMTwvZGl2PgotPC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9uIGNvbXB1dGVkU3R5
bGUoZWxlbWVudCwgc3R5bGUpIHsKLSAgICB2YXIgY3MgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50KTsKLSAgICBpZiAoIWNzKQotICAgICAgICByZXR1cm4gJyhOQSknOwotICAgIGlm
IChjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0eWxlKSkKLSAgICAgICAgcmV0dXJuIGNzLmdldFBy
b3BlcnR5Q1NTVmFsdWUoc3R5bGUpLmNzc1RleHQ7Ci0gICAgcmV0dXJuIHVuZGVmaW5lZDsKLX0K
LQotZnVuY3Rpb24gcHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoaG9zdCkgewotICAgIHZhciBzaGFk
b3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIG5vZGVJblNo
YWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIG5vZGVJblNoYWRvdy5z
ZXRBdHRyaWJ1dGUoJ2lkJywgJ25vZGUtaW4tc2hhZG93LXJvb3QnKTsKLSAgICBub2RlSW5TaGFk
b3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0luIFNoYWRvdycpKTsKLSAg
ICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG5vZGVJblNoYWRvdyk7Ci0gICAgcmV0dXJuIG5vZGVJ
blNoYWRvdzsKLX0KLQotZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotCi12YXIgbm9kZUluU2hh
ZG93Um9vdDEgPSBwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaG9zdDEnKSk7Ci12YXIgdXNlck1vZGlmeVByb3BlcnR5TmFtZSA9ICctd2Via2l0LXVzZXIt
bW9kaWZ5JzsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZShub2RlSW5TaGFk
b3dSb290MSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7Ci0KLXZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RlbGV0ZS1jaGFyYWN0ZXJzLWluLWRp
c3RyaWJ1dGVkLW5vZGUtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvc2hhZG93L2RlbGV0ZS1jaGFyYWN0ZXJzLWluLWRpc3RyaWJ1dGVkLW5vZGUt
Y3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NoYWRvdy9kZWxldGUtY2hhcmFjdGVycy1pbi1kaXN0cmlidXRlZC1ub2RlLWNyYXNoLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdHMgdGhl
IGRlbGV0aW9uIG9mIHRleHQgaW4gZGlzdHJpYnV0ZWQgbm9kZSBkb2VzIG5vdCBjcmFzaC4gVG8g
cnVuIGl0IG91dHNpZGUgb2YgRFJULCB5b3UgbXVzdCBkZWxldGUgdGV4dCwgJ2ZvbycsIG1hbnVh
bGx5LgotCi1QQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9kZWxldGUtY2hh
cmFjdGVycy1pbi1kaXN0cmlidXRlZC1ub2RlLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZGVsZXRlLWNoYXJhY3RlcnMtaW4tZGlzdHJpYnV0ZWQt
bm9kZS1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NoYWRvdy9kZWxldGUtY2hhcmFjdGVycy1pbi1kaXN0cmlidXRlZC1ub2RlLWNyYXNoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3RzIHRoZSBkZWxldGlvbiBvZiB0
ZXh0IGluIGRpc3RyaWJ1dGVkIG5vZGUgZG9lcyBub3QgY3Jhc2guIFRvIHJ1biBpdCBvdXRzaWRl
IG9mIERSVCwgeW91IG11c3QgZGVsZXRlIHRleHQsICdmb28nLCBtYW51YWxseS48L3A+Ci08ZGl2
IGlkPSJ3cmFwcGVyIj48ZGl2IGlkPSJzaGFkb3dob3N0IiBjb250ZW50ZWRpdGFibGU+PGRpdj5m
b288L2Rpdj48L2Rpdj48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci12YXIgc2hhZG93Um9vdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzaGFkb3dob3N0Jykud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0KLXZhciB0ZXh0Tm9k
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaGFkb3dob3N0JykuZmlyc3RDaGlsZC5maXJz
dENoaWxkOwotd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGV4dE5vZGUs
IDAsIHRleHROb2RlLCAzKTsKLWRvY3VtZW50LmV4ZWNDb21tYW5kKCdEZWxldGUnKTsKLQotZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndyYXBwZXIiKS5pbm5lckhUTUwgPSAiUEFTUyI7Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93
L2RlbGV0ZS1saXN0LWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zaGFkb3cvZGVsZXRlLWxpc3QtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZGVsZXRlLWxp
c3QtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICswLDAgQEAK
LUVsZW1lbnRzIGRpc3RyaWJ1dGVkIHRvIFNoYWRvdyBET00gc2hvdWxkIGJlIGRlbGV0ZWQgY29y
cmVjdGx5IHdoZW4gcHJlc3NpbmcgZGVsZXRlIGtleS4KLQotVG8gdGVzdCBtYW51YWxseSwgc2Vs
ZWN0IHNvbWV3aGVyZSBpbiBBQkNERSBmcm9tIHNvbWVod2VyZSBpbiAxMjM0NSwgYW5kIHByZXNz
IGRlbGV0ZSwgYW5kIGNoZWNrIHRoZSBzZWxlY3RlZCB0ZXh0IGlzIGRlbGV0ZWQgY29ycmVjdGx5
LgotCi1QQVNTIGhvc3RUZXh0Q29udGVudCBpcyAnQUIzNDUnCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zaGFkb3cvZGVsZXRlLWxpc3QtaW4tc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zaGFkb3cvZGVsZXRlLWxpc3QtaW4tc2hhZG93Lmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RlbGV0ZS1saXN0LWluLXNo
YWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVz
b3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08cD5FbGVtZW50cyBkaXN0cmlidXRlZCB0
byBTaGFkb3cgRE9NIHNob3VsZCBiZSBkZWxldGVkIGNvcnJlY3RseSB3aGVuIHByZXNzaW5nIGRl
bGV0ZSBrZXkuPC9wPgotPHA+VG8gdGVzdCBtYW51YWxseSwgc2VsZWN0IHNvbWV3aGVyZSBpbiBB
QkNERSBmcm9tIHNvbWVod2VyZSBpbiAxMjM0NSwgYW5kIHByZXNzIGRlbGV0ZSwgYW5kIGNoZWNr
IHRoZSBzZWxlY3RlZCB0ZXh0IGlzIGRlbGV0ZWQgY29ycmVjdGx5LjwvcD4KLQotPGRpdiBpZD0i
Y29udGFpbmVyIj4KLSAgICA8b2wgaWQ9Imhvc3QiIGNvbnRlbnRlZGl0YWJsZT4KLSAgICAgICAg
PGxpIGlkPSJsaXN0MSI+QUJDREU8L2xpPgotICAgICAgICA8bGkgaWQ9Imxpc3QyIj5hYmNkZTwv
bGk+Ci0gICAgICAgIDxsaSBpZD0ibGlzdDMiPjEyMzQ1PC9saT4KLSAgICA8L29sPgotPC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2xpJyk7Ci1saS5pbm5lckhUTUwgPSAnaG9nZWhvZ2UnOwotc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChsaSk7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NoYWRvdycpKTsKLQotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGxpc3QxLm9mZnNldExlZnQgKyAyMCwgbGlzdDEub2Zmc2V0VG9wICsg
bGlzdDEub2Zmc2V0SGVpZ2h0IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGlzdDMub2Zmc2V0TGVmdCArIDIwLCBsaXN0My5v
ZmZzZXRUb3AgKyBsaXN0My5vZmZzZXRIZWlnaHQgLyAyKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Ci0KLSAgICBldmVudFNlbmRlci5rZXlEb3duKCdkZWxldGUnKTsKLQotICAgIHZhciBo
b3N0VGV4dENvbnRlbnQgPSBob3N0LnRleHRDb250ZW50LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAn
Jyk7Ci0gICAgc2hvdWxkQmUoImhvc3RUZXh0Q29udGVudCIsICInQUIzNDUnIik7Ci0gICAgY29u
dGFpbmVyLmlubmVySFRNTCA9ICIiOwotfQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RvdWJsZWNsaWNrLW9uLW1ldGVyLWlu
LXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9zaGFkb3cvZG91YmxlY2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZG91
YmxlY2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIGNvbnRleHQgY2xpY2sgYXJv
dW5kIG1ldGVyIHdvbid0IGNyYXNoLgotCi1QQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NoYWRvdy9kb3VibGVjbGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9kb3VibGVjbGljay1vbi1tZXRlci1p
bi1zaGFkb3ctY3Jhc2guaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zaGFkb3cvZG91YmxlY2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxw
PlRoaXMgdGVzdCBlbnN1cmVzIGNvbnRleHQgY2xpY2sgYXJvdW5kIG1ldGVyIHdvbid0IGNyYXNo
LjwvcD4KLTxkaXYgaWQ9J2NvbnRhaW5lcicgc3R5bGU9IndpZHRoOjEwMHB4OyBoZWlnaHQ6IDEw
MHB4Ij48L2Rpdj4KLTxwPlBBU1M8L3A+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hh
ZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vZWRp
dGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi12YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwotdmFyIHNoYWRvd1Jvb3QgPSBjb250YWluZXIud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIG1ldGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnbWV0ZXInKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobWV0ZXIpOwotCi0vLyBEbyBkb3Vi
bGVjbGljayBhdCB2YXJpb3VzIHBvaW50cy4KLWRvdWJsZUNsaWNrKG1ldGVyLm9mZnNldExlZnQs
IG1ldGVyLm9mZnNldFRvcCk7Ci1kb3VibGVDbGljayhtZXRlci5vZmZzZXRMZWZ0IC0gMSwgbWV0
ZXIub2Zmc2V0VG9wKTsKLWRvdWJsZUNsaWNrKG1ldGVyLm9mZnNldExlZnQsIG1ldGVyLm9mZnNl
dFRvcCAtIDEpOwotZG91YmxlQ2xpY2sobWV0ZXIub2Zmc2V0TGVmdCAtIDEsIG1ldGVyLm9mZnNl
dFRvcCAtIDEpOwotZG91YmxlQ2xpY2sobWV0ZXIub2Zmc2V0TGVmdCArIDEsIG1ldGVyLm9mZnNl
dFRvcCk7Ci1kb3VibGVDbGljayhtZXRlci5vZmZzZXRMZWZ0LCBtZXRlci5vZmZzZXRUb3AgKyAx
KTsKLWRvdWJsZUNsaWNrKG1ldGVyLm9mZnNldExlZnQgKyAxLCBtZXRlci5vZmZzZXRUb3AgKyAx
KTsKLWRvdWJsZUNsaWNrKG1ldGVyLm9mZnNldExlZnQgKyBtZXRlci5vZmZzZXRXaWR0aCAvIDIs
IG1ldGVyLm9mZnNldFRvcCArIG1ldGVyLm9mZnNldEhlaWdodCAvIDIpOwotZG91YmxlQ2xpY2so
bWV0ZXIub2Zmc2V0TGVmdCArIG1ldGVyLm9mZnNldFdpZHRoIC0gMSwgbWV0ZXIub2Zmc2V0VG9w
ICsgbWV0ZXIub2Zmc2V0SGVpZ2h0IC0gMSk7Ci1kb3VibGVDbGljayhtZXRlci5vZmZzZXRMZWZ0
ICsgbWV0ZXIub2Zmc2V0V2lkdGggKyAxLCBtZXRlci5vZmZzZXRUb3AgKyBtZXRlci5vZmZzZXRI
ZWlnaHQgKyAxKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9zaGFkb3cvZXhlY2NvbW1hbmQtaW5kZW50LWluLXNoYWRvdy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZXhlY2NvbW1hbmQt
aW5kZW50LWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L2V4ZWNjb21tYW5kLWluZGVudC1pbi1zaGFkb3ctZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLUluIHRoaXMgdGVzdCwgd2Ug
ZG8gZXhlY0NvbW1hbmQoJ0luZGVudCcpIGluIHRoZSBkaXJlY3QgY2hpbGQgb2YgU2hhZG93Um9v
dCB0byBjb25maXJtIGEgY3Jhc2ggZG9lc24ndCBoYXBwZW4uCi0KLQotCi0KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCi0KLQotCi0KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2V4ZWNjb21tYW5kLWluZGVudC1pbi1zaGFkb3cuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9leGVjY29tbWFuZC1p
bmRlbnQtaW4tc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc2hhZG93L2V4ZWNjb21tYW5kLWluZGVudC1pbi1zaGFkb3cuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMv
cG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwPkluIHRoaXMgdGVz
dCwgd2UgZG8gZXhlY0NvbW1hbmQoJ0luZGVudCcpIGluIHRoZSBkaXJlY3QgY2hpbGQgb2YgU2hh
ZG93Um9vdAotdG8gY29uZmlybSBhIGNyYXNoIGRvZXNuJ3QgaGFwcGVuLjwvcD4KLQotPGRpdiBp
ZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48
L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290ID0gY29udGFpbmVyLndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNvbnRlbnRlZGl0
YWJsZT5Lb3RvcmkgT3RvbmFzaGk8L3NwYW4+IgotdmFyIHNwYW4gPSBzaGFkb3dSb290LmZpcnN0
Q2hpbGQ7Ci0KLW1vdXNlTW92ZVRvRWxlbShzcGFuKTsKLWV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwotZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi1kb2N1bWVudC5leGVjQ29tbWFuZCgnSW5kZW50
Jyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2luc2VydG9yZGVy
ZWRsaXN0LWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NoYWRvdy9pbnNlcnRvcmRlcmVkbGlzdC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2luc2VydG9yZGVyZWRsaXN0
LWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLVRoaXMg
dGVzdCBjb25maXJtcyBzb21lIGNvbWJpbmF0aW9uIG9mIGVkaXRpbmcgY29tbWFuZCB3aXRoIFNo
YWRvdyBET00gZG9lcyBub3QgY2F1c2UgYSBjcmFzaC4gVG8gdGVzdCBtYW51YWxseSwgc2VsZWN0
IGZyb20gKGJlZm9yZSBuZXN0ZWQpIHRvIChhZnRlciBuZXN0ZWQpLCB0aGVuIHByZXNzIEl0YWxp
YywgYW5kIEluc2VydFVub3JkZXJlZExpc3QuCi0KLVBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc2hhZG93L2luc2VydG9yZGVyZWRsaXN0LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvaW5zZXJ0b3JkZXJlZGxpc3QtY3Jhc2guaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvaW5zZXJ0b3Jk
ZXJlZGxpc3QtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20v
c2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPlRoaXMgdGVzdCBj
b25maXJtcyBzb21lIGNvbWJpbmF0aW9uIG9mIGVkaXRpbmcgY29tbWFuZCB3aXRoIFNoYWRvdyBE
T00gZG9lcyBub3QgY2F1c2UgYSBjcmFzaC4KLVRvIHRlc3QgbWFudWFsbHksIHNlbGVjdCBmcm9t
IChiZWZvcmUgbmVzdGVkKSB0byAoYWZ0ZXIgbmVzdGVkKSwgdGhlbiBwcmVzcyBJdGFsaWMsIGFu
ZCBJbnNlcnRVbm9yZGVyZWRMaXN0LjwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50
ZWRpdGFibGU+Ci0gICAgPGRpdj48cD4oYmVmb3JlIGhvc3QpPC9wPjwvZGl2PgotICAgIDxkaXYg
aWQ9Imhvc3QiPiAgICA8c3BhbiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj5ub3QgZWRpdGFibGU8
L3NwYW4+PC9kaXY+Ci0gICAgPGRpdj4oYWZ0ZXIgaG9zdCk8L2Rpdj4KLQotICAgIDxpbnB1dCB0
eXBlPSJidXR0b24iIHZhbHVlPSJJdGFsaWMiIG9uY2xpY2s9ImRvY3VtZW50LmV4ZWNDb21tYW5k
KCdJdGFsaWMnKSIgLz4KLSAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iSW5zZXJ0VW5v
cmRlcmVkTGlzdCIgb25jbGljaz0iZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFVub3JkZXJl
ZExpc3QnKSIgLz4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotZGl2LmlubmVySFRNTCA9ICI8
c3BhbiBjb250ZW50ZWRpdGFibGU+KGJlZm9yZSBzaGFkb3cpPC9zcGFuPjxzaGFkb3c+PC9zaGFk
b3c+KGFmdGVyIHNoYWRvdykiOwotCi12YXIgbmVzdGVkU2hhZG93Um9vdCA9IGRpdi53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci1uZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2IGNv
bnRlbnRlZGl0YWJsZT4oYmVmb3JlIDxzcGFuIGlkPSdzcmMnPjwvc3Bhbj5uZXN0ZWQpPHNoYWRv
dz48L3NoYWRvdz4obmVzdGVkIDxzcGFuIGlkPSdkc3QnPjwvc3Bhbj5hZnRlcik8L2Rpdj4iOwot
Ci12YXIgc3JjID0gbmVzdGVkU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc3JjJyk7Ci12YXIg
ZHN0ID0gbmVzdGVkU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnZHN0Jyk7Ci0KLWlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzcmMub2Zmc2V0
TGVmdCArIHNyYy5vZmZzZXRXaWR0aCAvIDIsIHNyYy5vZmZzZXRUb3AgKyBzcmMub2Zmc2V0SGVp
Z2h0IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oZHN0Lm9mZnNldExlZnQgKyBkc3Qub2Zmc2V0V2lkdGggLyAyLCBkc3Qub2Zm
c2V0VG9wICsgZHN0Lm9mZnNldEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKLQotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdJdGFsaWMnKTsKLSAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgnSW5zZXJ0VW5vcmRlcmVkTGlzdCcpOwotCi0gICAgY29udGFpbmVyLmlubmVy
SFRNTCA9ICJQQVNTIjsKLX0KLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
aGFkb3cvcHJlc3NpbmctZW50ZXItb24tbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvcHJlc3NpbmctZW50ZXItb24tbGlzdC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3By
ZXNzaW5nLWVudGVyLW9uLWxpc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzAsMCBAQAotUHJlc3NpbmcgZW50ZXIgb24gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIDxsaT4gZWxl
bWVudCBpbiBTaGFkb3cgRE9NIHdhcyB0cmlnZ2VyaW5nIGFzc2VydGlvbiwgYmVjYXN1ZSBtb2Rp
ZnlpbmcgU2hhZG93IERPTSByZW1vdmVzIHRoZSByZW5kZXJlciBpbiBTaGFkb3cgRE9NIGFuZCBk
ZXNlbmRhbnQgb2Ygc2hhZG93IGhvc3QuCi0KLVRoaXMgdGVzdHMgY29uZmlybXMgaXQgd29uJ3Qg
aGFwcGVuIGFueSBtb3JlLgotCi1QQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRv
dy9wcmVzc2luZy1lbnRlci1vbi1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvcHJlc3NpbmctZW50ZXItb24tbGlzdC5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9wcmVzc2luZy1lbnRlci1vbi1saXN0
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJj
ZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jl
c291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPlByZXNzaW5nIGVu
dGVyIG9uIHRoZSBsYXN0IGNoYXJhY3RlciBvZiAmbHQ7bGkmZ3Q7IGVsZW1lbnQgaW4gU2hhZG93
IERPTSB3YXMgdHJpZ2dlcmluZyBhc3NlcnRpb24sCi1iZWNhc3VlIG1vZGlmeWluZyBTaGFkb3cg
RE9NIHJlbW92ZXMgdGhlIHJlbmRlcmVyIGluIFNoYWRvdyBET00gYW5kIGRlc2VuZGFudCBvZiBz
aGFkb3cgaG9zdC48L3A+Ci08cD5UaGlzIHRlc3RzIGNvbmZpcm1zIGl0IHdvbid0IGhhcHBlbiBh
bnkgbW9yZS48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPG9sIGlkPSJob3N0IiBj
b250ZW50ZWRpdGFibGU+Ci0gICAgICAgIDxsaT5MSVNUIDE8L2xpPgotICAgICAgICA8bGkgaWQ9
Imxpc3QyIj5MSVNUIDI8L2xpPgotICAgICAgICA8bGk+TElTVCAzPC9saT4KLSAgICA8L29sPgot
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci12YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwotbGkuaW5u
ZXJIVE1MID0gJ2luc2lkZSBzaGFkb3cnOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChsaSk7Ci1z
aGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsK
LQotZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGlzdDIub2Zmc2V0TGVmdCArIGxpc3QyLm9mZnNl
dFdpZHRoIC0gMTAsIGxpc3QyLm9mZnNldFRvcCArIGxpc3QyLm9mZnNldEhlaWdodCAvIDIpOwot
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci1ldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0KLWV2ZW50
U2VuZGVyLmtleURvd24oJ1xuJyk7Ci0KLWNvbnRhaW5lci5pbm5lckhUTUwgPSAiUEFTUyI7Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hh
ZG93L3JpZ2h0Y2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVy
LWluLXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L3JpZ2h0Y2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNo
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdCBl
bnN1cmVzIGNvbnRleHQgY2xpY2sgYXJvdW5kIG1ldGVyIHdvbid0IGNyYXNoLgotCi1QQVNTCklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNo
YWRvdy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93
L3JpZ2h0Y2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3JpZ2h0Y2xpY2stb24tbWV0ZXItaW4t
c2hhZG93LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxwPlRoaXMgdGVzdCBlbnN1cmVzIGNvbnRleHQgY2xpY2sgYXJv
dW5kIG1ldGVyIHdvbid0IGNyYXNoLjwvcD4KLTxkaXYgaWQ9J2NvbnRhaW5lcicgc3R5bGU9Indp
ZHRoOjEwMHB4OyBoZWlnaHQ6IDEwMHB4Ij48L2Rpdj4KLTxwPlBBU1M8L3A+Ci0KLTxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0
aW9uIGNvbnRleHRDbGljayh4LCB5KSB7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwg
eSk7Ci0gICAgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrKCk7Ci19Ci0KLXZhciBjb250YWluZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci12YXIgc2hhZG93Um9vdCA9
IGNvbnRhaW5lci53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgbWV0ZXIgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdtZXRlcicpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChtZXRlcik7
Ci0KLS8vIERvIGNvbnRleHQgY2xpY2sgYXQgdmFyaW91cyBwb2ludHMuCi1jb250ZXh0Q2xpY2so
bWV0ZXIub2Zmc2V0TGVmdCwgbWV0ZXIub2Zmc2V0VG9wKTsKLWNvbnRleHRDbGljayhtZXRlci5v
ZmZzZXRMZWZ0IC0gMSwgbWV0ZXIub2Zmc2V0VG9wKTsKLWNvbnRleHRDbGljayhtZXRlci5vZmZz
ZXRMZWZ0LCBtZXRlci5vZmZzZXRUb3AgLSAxKTsKLWNvbnRleHRDbGljayhtZXRlci5vZmZzZXRM
ZWZ0IC0gMSwgbWV0ZXIub2Zmc2V0VG9wIC0gMSk7Ci1jb250ZXh0Q2xpY2sobWV0ZXIub2Zmc2V0
TGVmdCArIDEsIG1ldGVyLm9mZnNldFRvcCk7Ci1jb250ZXh0Q2xpY2sobWV0ZXIub2Zmc2V0TGVm
dCwgbWV0ZXIub2Zmc2V0VG9wICsgMSk7Ci1jb250ZXh0Q2xpY2sobWV0ZXIub2Zmc2V0TGVmdCAr
IDEsIG1ldGVyLm9mZnNldFRvcCArIDEpOwotY29udGV4dENsaWNrKG1ldGVyLm9mZnNldExlZnQg
KyBtZXRlci5vZmZzZXRXaWR0aCAvIDIsIG1ldGVyLm9mZnNldFRvcCArIG1ldGVyLm9mZnNldEhl
aWdodCAvIDIpOwotY29udGV4dENsaWNrKG1ldGVyLm9mZnNldExlZnQgKyBtZXRlci5vZmZzZXRX
aWR0aCAtIDEsIG1ldGVyLm9mZnNldFRvcCArIG1ldGVyLm9mZnNldEhlaWdodCAtIDEpOwotY29u
dGV4dENsaWNrKG1ldGVyLm9mZnNldExlZnQgKyBtZXRlci5vZmZzZXRXaWR0aCArIDEsIG1ldGVy
Lm9mZnNldFRvcCArIG1ldGVyLm9mZnNldEhlaWdodCArIDEpOwotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3QtY29udGVu
dGVkaXRhYmxlLXNoYWRvd2hvc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdC1jb250ZW50ZWRpdGFibGUtc2hhZG93aG9zdC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93
L3NlbGVjdC1jb250ZW50ZWRpdGFibGUtc2hhZG93aG9zdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyB0ZXN0IGNvbmZpcm1zIHRoYXQgc2VsZWN0aW5n
IGFuIGVsZW1lbnQgaGF2aW5nIFNoYWRvdyBET00gZG9lc24ndCBjcm9zcyBlZGl0aW5nIGJvdW5k
YXJpZXMgZXJyb3Jub3VzbHkuCi0KLUJFRk9SRQotQUZURVIKLU1vdmUgbW91c2UgZnJvbSBCRUZP
UkUgdG8gSE9TVAotUEFTUyBzZWxlY3Rpb24uYW5jaG9yTm9kZSBpcyBudWxsCi1QQVNTIHNlbGVj
dGlvbi5mb2N1c05vZGUgaXMgbnVsbAotUEFTUyBkb2N1bWVudC5leGVjQ29tbWFuZCgiZGVsZXRl
IikgZGlkIG5vdCBjcmFzaC4KLQotTW92ZSBtb3VzZSBmcm9tIEFGVEVSIHRvIEhPU1QKLVBBU1Mg
c2VsZWN0aW9uLmFuY2hvck5vZGUgaXMgbnVsbAotUEFTUyBzZWxlY3Rpb24uZm9jdXNOb2RlIGlz
IG51bGwKLVBBU1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQoImRlbGV0ZSIpIGRpZCBub3QgY3Jhc2gu
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0LWNvbnRlbnRlZGl0YWJsZS1zaGFk
b3dob3N0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2Vs
ZWN0LWNvbnRlbnRlZGl0YWJsZS1zaGFkb3dob3N0Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdC1jb250ZW50ZWRpdGFibGUtc2hhZG93
aG9zdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9l
dmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9k
b20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPlRoaXMgdGVz
dCBjb25maXJtcyB0aGF0IHNlbGVjdGluZyBhbiBlbGVtZW50IGhhdmluZyBTaGFkb3cgRE9NIGRv
ZXNuJ3QgY3Jvc3MgZWRpdGluZyBib3VuZGFyaWVzIGVycm9ybm91c2x5LjwvcD4KLQotPGRpdj4K
LSAgICA8ZGl2IGlkPSJiZWZvcmUiPkJFRk9SRTwvZGl2PgotICAgIDxkaXYgaWQ9Imhvc3QiIGNv
bnRlbnRlZGl0YWJsZT5IT1NUPC9kaXY+Ci0gICAgPGRpdiBpZD0iYWZ0ZXIiPkFGVEVSPC9kaXY+
Ci08L2Rpdj4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci0KLXZhciBz
aGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Lmlu
bmVySFRNTCA9ICJTSEFET1cgRE9NIjsKLQotdmFyIHNlbGVjdGlvbiA9IHNoYWRvd1Jvb3QuZ2V0
U2VsZWN0aW9uKCk7Ci0KLWRlYnVnKCdNb3ZlIG1vdXNlIGZyb20gQkVGT1JFIHRvIEhPU1QnKTsK
LQotbW91c2VNb3ZlVG9FbGVtKGJlZm9yZSk7Ci1ldmVudFNlbmRlci5tb3VzZURvd24oKTsKLW1v
dXNlTW92ZVRvRWxlbShob3N0KTsKLWV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLXNob3VsZEJlTnVs
bCgnc2VsZWN0aW9uLmFuY2hvck5vZGUnKTsKLXNob3VsZEJlTnVsbCgnc2VsZWN0aW9uLmZvY3Vz
Tm9kZScpOwotCi0vLyBDaGVjayBjcmFzaCB3b24ndCBoYXBwZW4uCi1kb2N1bWVudC5leGVjQ29t
bWFuZCgnZGVsZXRlJyk7Ci1kZWJ1ZygnUEFTUyBkb2N1bWVudC5leGVjQ29tbWFuZCgiZGVsZXRl
IikgZGlkIG5vdCBjcmFzaC4nKTsKLQotZGVidWcoJycpOwotZGVidWcoJ01vdmUgbW91c2UgZnJv
bSBBRlRFUiB0byBIT1NUJyk7Ci0KLW1vdXNlTW92ZVRvRWxlbShhZnRlcik7Ci1ldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKLW1vdXNlTW92ZVRvRWxlbShob3N0KTsKLWV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKLXNob3VsZEJlTnVsbCgnc2VsZWN0aW9uLmFuY2hvck5vZGUnKTsKLXNob3VsZEJlTnVs
bCgnc2VsZWN0aW9uLmZvY3VzTm9kZScpOwotLy8gQ2hlY2sgY3Jhc2ggd29uJ3QgaGFwcGVuLgot
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2RlbGV0ZScpOwotZGVidWcoJ1BBU1MgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoImRlbGV0ZSIpIGRpZCBub3QgY3Jhc2guJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdGlvbi1vZi1vcnBoYW4tc2hhZG93cm9vdC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0
aW9uLW9mLW9ycGhhbi1zaGFkb3dyb290LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0aW9uLW9mLW9ycGhhbi1zaGFkb3dy
b290LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1Ob2RlcyBv
ZiB0aGUgc2VsZWN0aW9uIGZvciBhbiBvcnBoYW4gc2hhZG93IHJvb3Qgc2hvdWxkIHJldHVybiBu
dWxsLgotCi1QQVNTIHNlbGVjdGlvbi5hbmNob3JOb2RlIGlzIG51bGwKLVBBU1Mgc2VsZWN0aW9u
LmZvY3VzTm9kZSBpcyBudWxsCi1QQVNTIHNlbGVjdGlvbi5iYXNlTm9kZSBpcyBudWxsCi1QQVNT
IHNlbGVjdGlvbi5leHRlbnROb2RlIGlzIG51bGwKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRv
dy9zZWxlY3Rpb24tb2Ytb3JwaGFuLXNoYWRvd3Jvb3QuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3Rpb24tb2Ytb3JwaGFuLXNoYWRvd3Jvb3QuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0
aW9uLW9mLW9ycGhhbi1zaGFkb3dyb290Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9kb20vcmVzb3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvc2hhZG93LXRlc3QtZHJpdmVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3Bv
bHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08cD5Ob2RlcyBvZiB0aGUg
c2VsZWN0aW9uIGZvciBhbiBvcnBoYW4gc2hhZG93IHJvb3Qgc2hvdWxkIHJldHVybiBudWxsLjwv
cD4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIktvdG9yaSBPdG9u
YXNoaSIKLQotdmFyIHNlbGVjdGlvbiA9IHNoYWRvd1Jvb3QuZ2V0U2VsZWN0aW9uKCk7Ci0KLXNo
b3VsZEJlKCdzZWxlY3Rpb24uYW5jaG9yTm9kZScsICdudWxsJyk7Ci1zaG91bGRCZSgnc2VsZWN0
aW9uLmZvY3VzTm9kZScsICdudWxsJyk7Ci1zaG91bGRCZSgnc2VsZWN0aW9uLmJhc2VOb2RlJywg
J251bGwnKTsKLXNob3VsZEJlKCdzZWxlY3Rpb24uZXh0ZW50Tm9kZScsICdudWxsJyk7Ci0KLXZh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci0KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdGlvbi1vZi1zaGFkb3dy
b290LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRv
dy9zZWxlY3Rpb24tb2Ytc2hhZG93cm9vdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdGlvbi1vZi1zaGFkb3dyb290LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0NiArMCwwIEBACi1JbiB0aGlzIHRlc3Qs
IHdlIGNyZWF0ZSBhIGNvbXBsZXggU2hhZG93IERPTSBhbmQgdHJ5IHRvIGRyYWcgZnJvbSBhIGRp
diBpbiBuZXN0ZWQgc2hhZG93IHJvb3Qgb2Ygb2xkZXIgc2hhZG93IHJvb3QgdG8gYSBkaXYgaW4g
bmVzdGVkIHNoYWRvdyByb290IG9mIHlvdW5nZXIgc2hhZG93IHJvb3QuIFRoZW4gd2UgZ2V0IHNl
bGVjdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgVHJlZVNjb3BlczoKLSAqIHRyZWVTY29wZXNbMF0g
PSBkb2N1bWVudAotICogdHJlZVNjb3Blc1sxXSA9IE9MREVSIFNIQURPVyBST09UCi0gKiB0cmVl
U2NvcGVzWzJdID0gWU9VTkdFUiBTSEFET1cgUk9PVAotICogdHJlZVNjb3Blc1szXSA9IE5FU1RF
RCBTSEFET1cgUk9PVCBJTiBPTERFUiBTSEFET1cgUk9PVAotICogdHJlZVNjb3Blc1s0XSA9IE5F
U1RFRCBTSEFET1cgUk9PVCBJTiBZT1VOR0VSIFNIQURPVyBST09UCi1hbmQgY2hlY2sgc2VsZWN0
aW9uLmFuY2hvck5vZGUsIHNlbGVjdGlvbi5mb2N1c05vZGUsIHNlbGVjdGlvbi5iYXNlTm9kZSwg
YW5kIHNlbGVjdGlvbi5leHRlbnROb2RlIGFyZSBudWxsIG9yIGluIHRoZSBzYW1lIHRyZWVzY29w
ZS4KLQotRHJhZ2dlZCBmcm9tIChESVYgMiBJTiBORVNURUQgU0hBRE9XIERPTSBPRiBPTERFUiBT
SEFET1cgUk9PVCkgdG8gKERJViAyIElOIE5FU1RFRCBTSEFET1cgRE9NIE9GIFlPVU5HRVIgU0hB
RE9XIFJPT1QpCi0KLXRyZWVTY29wZXNbMF0gaXMgZG9jdW1lbnQKLVBBU1MgaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNbMF0uZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgZG9jdW1lbnQKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNb
MF0uZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKSBpcyBkb2N1bWVudAotUEFTUyBpbnRlcm5hbHMu
dHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1swXS5nZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSkg
aXMgZG9jdW1lbnQKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNb
MF0uZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSkgaXMgZG9jdW1lbnQKLQotdHJlZVNjb3Blc1sx
XSBpcyBPTERFUiBTSEFET1cgUk9PVAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUo
dHJlZVNjb3Blc1sxXS5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyB0cmVlU2NvcGVzWzFd
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzFdLmdldFNlbGVj
dGlvbigpLmZvY3VzTm9kZSkgaXMgdHJlZVNjb3Blc1sxXQotUEFTUyBpbnRlcm5hbHMudHJlZVNj
b3BlUm9vdE5vZGUodHJlZVNjb3Blc1sxXS5nZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSkgaXMgdHJl
ZVNjb3Blc1sxXQotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1sx
XS5nZXRTZWxlY3Rpb24oKS5leHRlbnROb2RlKSBpcyB0cmVlU2NvcGVzWzFdCi0KLXRyZWVTY29w
ZXNbMl0gaXMgWU9VTkdFUiBTSEFET1cgUk9PVAotU2luY2UgdHJlZVNjb3BlWzJdIGlzIG91dHNp
ZGUgb2Ygc2VsZWN0aW9uIHN0YXJ0IHBvaW50LCBubyBub2RlIHNob3VsZCBub3QgYmUgdGFrZW4u
Ci1QQVNTIHRyZWVTY29wZXNbMl0uZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSBpcyBudWxsCi1Q
QVNTIHRyZWVTY29wZXNbMl0uZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlIGlzIG51bGwKLVBBU1Mg
dHJlZVNjb3Blc1syXS5nZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSBpcyBudWxsCi1QQVNTIHRyZWVT
Y29wZXNbMl0uZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSBpcyBudWxsCi0KLXRyZWVTY29wZXNb
M10gaXMgTkVTVEVEIFNIQURPVyBST09UIElOIE9MREVSIFNIQURPVyBST09UCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzNdLmdldFNlbGVjdGlvbigpLmFuY2hv
ck5vZGUpIGlzIHRyZWVTY29wZXNbM10KLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHRyZWVTY29wZXNbM10uZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKSBpcyB0cmVlU2NvcGVzWzNd
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzNdLmdldFNlbGVj
dGlvbigpLmJhc2VOb2RlKSBpcyB0cmVlU2NvcGVzWzNdCi1QQVNTIGludGVybmFscy50cmVlU2Nv
cGVSb290Tm9kZSh0cmVlU2NvcGVzWzNdLmdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUpIGlzIHRy
ZWVTY29wZXNbM10KLQotdHJlZVNjb3Blc1s0XSBpcyBORVNURUQgU0hBRE9XIFJPT1QgSU4gWU9V
TkdFUiBTSEFET1cgUk9PVAotU2luY2UgdHJlZVNjb3BlWzRdIGlzIG91dHNpZGUgb2Ygc2VsZWN0
aW9uIHN0YXJ0IHBvaW50LCBubyBub2RlIHNob3VsZCBub3QgYmUgdGFrZW4uCi1QQVNTIHRyZWVT
Y29wZXNbNF0uZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSBpcyBudWxsCi1QQVNTIHRyZWVTY29w
ZXNbNF0uZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlIGlzIG51bGwKLVBBU1MgdHJlZVNjb3Blc1s0
XS5nZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSBpcyBudWxsCi1QQVNTIHRyZWVTY29wZXNbNF0uZ2V0
U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSBpcyBudWxsCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3No
YWRvdy9zZWxlY3Rpb24tb2Ytc2hhZG93cm9vdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdGlvbi1vZi1zaGFkb3dyb290Lmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdGlvbi1vZi1zaGFk
b3dyb290Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTM0ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5zZWxlY3Rpb24tb2Ytc2hhZG93cm9vdDwvdGl0
bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0
aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9z
aGFkb3ctdGVzdC1kcml2ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
ZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS11dGlsLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12YXIgdHJlZVNjb3BlcyA9IG5ldyBB
cnJheSgpOwotdHJlZVNjb3Blcy5wdXNoKGRvY3VtZW50KTsKLQotZnVuY3Rpb24gaW5kZW50KGxl
dmVsKSB7Ci0gICAgdmFyIHYgPSAiIjsKLSAgICB3aGlsZSAobGV2ZWwtLSkKLSAgICAgICAgdiA9
IHYgKyAiJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IjsKLSAgICByZXR1cm4gdjsKLX0KLQotZnVu
Y3Rpb24gY3JlYXRlQ29tcGxleFNoYWRvd1RyZWUoY29udGFpbmVyKSB7Ci0gICAgZnVuY3Rpb24g
Y3JlYXRlSW5uZXJTaGFkb3dET00oc2hhZG93Um9vdCwgaWQsIG5hbWUsIGluZGVudExldmVsKSB7
Ci0gICAgICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gCi0gICAgICAgICAgICAiPGRpdiB0aXRs
ZT0nRElWMSBJTiAiICsgbmFtZSArICInPiIgKyBpbmRlbnQoaW5kZW50TGV2ZWwpICsgIkRJViAx
ICgiICsgbmFtZSArICIpPC9kaXY+IiArCi0gICAgICAgICAgICAiPGRpdj4iICsgaW5kZW50KGlu
ZGVudExldmVsKSArICI8ZGl2IHRpdGxlPSdTSEFET1cgSE9TVCBJTiAiICsgbmFtZSArICInPkRJ
ViBIT1NUICgiICsgbmFtZSArICIpPC9kaXY+PC9kaXY+IiArCi0gICAgICAgICAgICAiPGRpdiB0
aXRsZT0nRElWMiBJTiAiICsgbmFtZSArICInPiIgKyBpbmRlbnQoaW5kZW50TGV2ZWwpICsgIkRJ
ViAyICgiICsgbmFtZSArICIpPC9kaXY+IiArCi0gICAgICAgICAgICAiPHNoYWRvdz5TSEFET1cg
RkFMTEJBQ0s8L3NoYWRvdz4iICsKLSAgICAgICAgICAgICI8ZGl2IHRpdGxlPSdESVYzIElOICIg
KyBuYW1lICsgIic+IiArIGluZGVudChpbmRlbnRMZXZlbCkgKyAiRElWIDMgKCIgKyBuYW1lICsg
Iik8L2Rpdj4iOwotCi0gICAgICAgIHZhciBob3N0SW5TaGFkb3dSb290ID0gc2hhZG93Um9vdC5m
aXJzdENoaWxkLm5leHRTaWJsaW5nOwotICAgICAgICB2YXIgbmVzdGVkU2hhZG93Um9vdCA9IGhv
c3RJblNoYWRvd1Jvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgICAgICBuZXN0ZWRT
aGFkb3dSb290LnRpdGxlID0gJ05FU1RFRCBTSEFET1cgUk9PVCBJTiAnICsgbmFtZTsKLSAgICAg
ICAgdHJlZVNjb3Blcy5wdXNoKG5lc3RlZFNoYWRvd1Jvb3QpOwotCi0gICAgICAgIG5lc3RlZFNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0KLSAgICAgICAgICAgICI8ZGl2IHRpdGxlPSdESVYgMSBJTiBO
RVNURUQgU0hBRE9XIERPTSBPRiAiICsgbmFtZSArICInPiIgKyBpbmRlbnQoaW5kZW50TGV2ZWwp
ICsgIkRJViAxIElOIE5FU1RFRCBTSEFET1cgKCIgKyBuYW1lICsgIik8L2Rpdj4iICsgCi0gICAg
ICAgICAgICAiPHNoYWRvdz5ORVNURUQgU0hBRE9XIEZBTExCQUNLPC9zaGFkb3c+IiArIAotICAg
ICAgICAgICAgIjxkaXYgaWQ9JyIgKyBpZCArICInIHRpdGxlPSdESVYgMiBJTiBORVNURUQgU0hB
RE9XIERPTSBPRiAiICsgbmFtZSArICInPiIgKyBpbmRlbnQoaW5kZW50TGV2ZWwpICsgIkRJViAy
IElOIE5FU1RFRCBTSEFET1cgKCIgKyBuYW1lICsgIik8L2Rpdj4iOwotICAgIH0KLQotICAgIGNv
bnRhaW5lci5pbm5lckhUTUwgPSAKLSAgICAgICAgIjxkaXYgdGl0bGU9J0RJViBCRUZPUkUgSE9T
VCBFTEVNRU5UJz5CRUZPUkUgSE9TVDwvZGl2PiIgKwotICAgICAgICAiPGRpdj48ZGl2IHRpdGxl
PSdIT1NUIEVMRU1FTlQnPkhPU1Q8L2Rpdj48L2Rpdj4iICsKLSAgICAgICAgIjxkaXYgdGl0bGU9
J0RJViBBRlRFUiBIT1NUIEVMRU1FTlQnPkFGVEVSIEhPU1Q8L2Rpdj4iOwotCi0gICAgdmFyIGhv
c3QgPSBjb250YWluZXIuZmlyc3RDaGlsZC5uZXh0U2libGluZzsKLQotICAgIHZhciBvbGRlclNo
YWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBvbGRlclNoYWRv
d1Jvb3QudGl0bGUgPSAnT0xERVIgU0hBRE9XIFJPT1QnOwotICAgIHRyZWVTY29wZXMucHVzaChv
bGRlclNoYWRvd1Jvb3QpOwotCi0gICAgdmFyIHlvdW5nZXJTaGFkb3dSb290ID0gaG9zdC53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgeW91bmdlclNoYWRvd1Jvb3QudGl0bGUgPSAnWU9V
TkdFUiBTSEFET1cgUk9PVCc7Ci0gICAgdHJlZVNjb3Blcy5wdXNoKHlvdW5nZXJTaGFkb3dSb290
KTsKLQotICAgIGNyZWF0ZUlubmVyU2hhZG93RE9NKG9sZGVyU2hhZG93Um9vdCwgJ29sZGVyJywg
J09MREVSIFNIQURPVyBST09UJywgMik7Ci0gICAgY3JlYXRlSW5uZXJTaGFkb3dET00oeW91bmdl
clNoYWRvd1Jvb3QsICd5b3VuZ2VyJywgJ1lPVU5HRVIgU0hBRE9XIFJPT1QnLCAxKTsKLX0KLQot
dmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKLWNy
ZWF0ZUNvbXBsZXhTaGFkb3dUcmVlKGNvbnRhaW5lcik7Ci0KLWRlYnVnKCdJbiB0aGlzIHRlc3Qs
IHdlIGNyZWF0ZSBhIGNvbXBsZXggU2hhZG93IERPTSBhbmQgdHJ5IHRvIGRyYWcgZnJvbSBhIGRp
diBpbiBuZXN0ZWQgc2hhZG93IHJvb3Qgb2Ygb2xkZXIgc2hhZG93IHJvb3QgdG8gYSBkaXYgaW4g
bmVzdGVkIHNoYWRvdyByb290IG9mIHlvdW5nZXIgc2hhZG93IHJvb3QuIFRoZW4gd2UgZ2V0IHNl
bGVjdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgVHJlZVNjb3BlczonKTsKLWZvciAodmFyIGsgPSAw
OyBrIDwgdHJlZVNjb3Blcy5sZW5ndGg7ICsraykgewotICAgIGlmICh0cmVlU2NvcGVzW2tdID09
IGRvY3VtZW50KQotICAgICAgICBkZWJ1ZygiICogdHJlZVNjb3Blc1siICsgayArICJdID0gZG9j
dW1lbnQiKTsKLSAgICBlbHNlCi0gICAgICAgIGRlYnVnKCIgKiB0cmVlU2NvcGVzWyIgKyBrICsg
Il0gPSAiICsgdHJlZVNjb3Blc1trXS50aXRsZSk7Ci19Ci0KLWRlYnVnKCdhbmQgY2hlY2sgc2Vs
ZWN0aW9uLmFuY2hvck5vZGUsIHNlbGVjdGlvbi5mb2N1c05vZGUsIHNlbGVjdGlvbi5iYXNlTm9k
ZSwgYW5kIHNlbGVjdGlvbi5leHRlbnROb2RlIGFyZSBudWxsIG9yIGluIHRoZSBzYW1lIHRyZWVz
Y29wZS4nKTsKLWRlYnVnKCcnKTsKLQotdmFyIG9sZGVyID0gZ2V0RWxlbWVudEJ5SWRDb25zaWRl
cmluZ1NoYWRvd0RPTShkb2N1bWVudCwgJ29sZGVyJyk7Ci12YXIgeW91bmdlciA9IGdldEVsZW1l
bnRCeUlkQ29uc2lkZXJpbmdTaGFkb3dET00oZG9jdW1lbnQsICd5b3VuZ2VyJyk7Ci1kcmFnRnJv
bVRvKG9sZGVyLCB5b3VuZ2VyKTsKLQotZGVidWcoJ0RyYWdnZWQgZnJvbSAoJyArIG9sZGVyLnRp
dGxlICsgJykgdG8gKCcgKyB5b3VuZ2VyLnRpdGxlICsgJyknKTsKLWRlYnVnKCcnKTsKLQotZGVi
dWcoInRyZWVTY29wZXNbMF0gaXMgZG9jdW1lbnQiKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJl
ZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1swXS5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSIs
ICJkb2N1bWVudCIpOwotc2hvdWxkQmUoImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVl
U2NvcGVzWzBdLmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkiLCAiZG9jdW1lbnQiKTsKLXNob3Vs
ZEJlKCJpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1swXS5nZXRTZWxlY3Rp
b24oKS5iYXNlTm9kZSkiLCAiZG9jdW1lbnQiKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJlZVNj
b3BlUm9vdE5vZGUodHJlZVNjb3Blc1swXS5nZXRTZWxlY3Rpb24oKS5leHRlbnROb2RlKSIsICJk
b2N1bWVudCIpOwotZGVidWcoJycpOwotCi1kZWJ1ZygidHJlZVNjb3Blc1sxXSBpcyAiICsgdHJl
ZVNjb3Blc1sxXS50aXRsZSk7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHRyZWVTY29wZXNbMV0uZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkiLCAidHJlZVNjb3Blc1sx
XSIpOwotc2hvdWxkQmUoImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzFd
LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkiLCAidHJlZVNjb3Blc1sxXSIpOwotc2hvdWxkQmUo
ImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzFdLmdldFNlbGVjdGlvbigp
LmJhc2VOb2RlKSIsICJ0cmVlU2NvcGVzWzFdIik7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHRyZWVTY29wZXNbMV0uZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSkiLCAi
dHJlZVNjb3Blc1sxXSIpOwotZGVidWcoJycpOwotCi1kZWJ1ZygidHJlZVNjb3Blc1syXSBpcyAi
ICsgdHJlZVNjb3Blc1syXS50aXRsZSk7Ci1kZWJ1ZygnU2luY2UgdHJlZVNjb3BlWzJdIGlzIG91
dHNpZGUgb2Ygc2VsZWN0aW9uIHN0YXJ0IHBvaW50LCBubyBub2RlIHNob3VsZCBub3QgYmUgdGFr
ZW4uJyk7Ci1zaG91bGRCZSgidHJlZVNjb3Blc1syXS5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
IiwgIm51bGwiKTsKLXNob3VsZEJlKCJ0cmVlU2NvcGVzWzJdLmdldFNlbGVjdGlvbigpLmZvY3Vz
Tm9kZSIsICJudWxsIik7Ci1zaG91bGRCZSgidHJlZVNjb3Blc1syXS5nZXRTZWxlY3Rpb24oKS5i
YXNlTm9kZSIsICJudWxsIik7Ci1zaG91bGRCZSgidHJlZVNjb3Blc1syXS5nZXRTZWxlY3Rpb24o
KS5leHRlbnROb2RlIiwgIm51bGwiKTsKLWRlYnVnKCcnKTsKLQotZGVidWcoInRyZWVTY29wZXNb
M10gaXMgIiArIHRyZWVTY29wZXNbM10udGl0bGUpOwotc2hvdWxkQmUoImludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzNdLmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIiwg
InRyZWVTY29wZXNbM10iKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUo
dHJlZVNjb3Blc1szXS5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpIiwgInRyZWVTY29wZXNbM10i
KTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1szXS5n
ZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSkiLCAidHJlZVNjb3Blc1szXSIpOwotc2hvdWxkQmUoImlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzNdLmdldFNlbGVjdGlvbigpLmV4
dGVudE5vZGUpIiwgInRyZWVTY29wZXNbM10iKTsKLWRlYnVnKCcnKTsKLQotZGVidWcoInRyZWVT
Y29wZXNbNF0gaXMgIiArIHRyZWVTY29wZXNbNF0udGl0bGUpOwotZGVidWcoJ1NpbmNlIHRyZWVT
Y29wZVs0XSBpcyBvdXRzaWRlIG9mIHNlbGVjdGlvbiBzdGFydCBwb2ludCwgbm8gbm9kZSBzaG91
bGQgbm90IGJlIHRha2VuLicpOwotc2hvdWxkQmUoInRyZWVTY29wZXNbNF0uZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSIsICJudWxsIik7Ci1zaG91bGRCZSgidHJlZVNjb3Blc1s0XS5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRyZWVTY29wZXNbNF0uZ2V0
U2VsZWN0aW9uKCkuYmFzZU5vZGUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRyZWVTY29wZXNbNF0u
Z2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSIsICJudWxsIik7Ci1kZWJ1ZygnJyk7Ci0KLXdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKLQotd2hpbGUgKGNvbnRhaW5lci5m
aXJzdENoaWxkKQotICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjb250YWluZXIuZmlyc3RDaGls
ZCk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NoYWRvdy1zZWxl
Y3Rpb24tbm90LWV4cG9ydGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NoYWRvdy9zaGFkb3ctc2VsZWN0aW9uLW5vdC1leHBvcnRlZC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NoYWRv
dy1zZWxlY3Rpb24tbm90LWV4cG9ydGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMyArMCwwIEBACi1QQVNTIGFzc2VydE5vdEluU2hhZG93KHNlbGVjdGlvbi5hbmNob3JOb2Rl
KSBpcyB0cnVlCi1QQVNTIGFzc2VydE5vdEluU2hhZG93KHNlbGVjdGlvbi5mb2N1c05vZGUpIGlz
IHRydWUKLVBBU1MgYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9uLmFuY2hvck5vZGUpIGlzIHRy
dWUKLVBBU1MgYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9uLmZvY3VzTm9kZSkgaXMgdHJ1ZQot
UEFTUyBhc3NlcnROb3RJblNoYWRvdyhzZWxlY3Rpb24uYW5jaG9yTm9kZSkgaXMgdHJ1ZQotUEFT
UyBhc3NlcnROb3RJblNoYWRvdyhzZWxlY3Rpb24uZm9jdXNOb2RlKSBpcyB0cnVlCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLVRoaXMgdGVzdCBlbnN1
cmVzIHNoYWRvdyByb290IHdvbid0IGV4cG9zZSB0byBKUyBsYXllci4KLQotQkVGT1JFCi1BRlRF
UgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2hhZG93LXNlbGVjdGlvbi1ub3Qt
ZXhwb3J0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9z
aGFkb3ctc2VsZWN0aW9uLW5vdC1leHBvcnRlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zaGFkb3ctc2VsZWN0aW9uLW5vdC1leHBvcnRlZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDgyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHA+VGhpcyB0ZXN0IGVuc3VyZXMgc2hh
ZG93IHJvb3Qgd29uJ3QgZXhwb3NlIHRvIEpTIGxheWVyLjxwPgotPGRpdiBpZD0nZGl2MSc+QkVG
T1JFPC9kaXY+Ci08ZGl2IGlkPSdjb250YWluZXInPkNPTlRBSU5FUjwvZGl2PgotPGRpdiBpZD0n
ZGl2NCc+QUZURVI8L2RpPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotCi12YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnRhaW5lcicpOwotdmFyIHNoYWRvd1Jvb3QgPSBjb250YWluZXIud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotCi12YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotZGl2Mi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnSU4gU0hBRE9XIFRS
RUUgMScpKTsKLXZhciBkaXYzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1kaXYz
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdJTiBTSEFET1cgVFJFRSAyJykp
OwotCi1zaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdjIpOwotc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChkaXYzKTsKLQotZnVuY3Rpb24gbWlkWChlbGVtZW50KSB7Ci0gICAgcmV0dXJuIGVsZW1lbnQu
b2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotfQotCi1mdW5jdGlvbiBtaWRZ
KGVsZW1lbnQpIHsKLSAgICByZXR1cm4gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNl
dEhlaWdodCAvIDI7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydE5vdEluU2hhZG93KGVsZW1lbnQpIHsK
LSAgICBpZiAoZWxlbWVudCA9PSBkaXYyIHx8IGVsZW1lbnQgPT0gZGl2Mi5maXJzdENoaWxkKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGVsZW1lbnQgPT0gZGl2MyB8fCBlbGVtZW50
ID09IGRpdjMuZmlyc3RDaGlsZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0
cnVlOwotfQotCi1pZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgLy8gVHJ5IHNlbGVjdCBm
cm9tIG91dHNpZGUgb2YgYSBzaGFkb3cgc3VidHJlZSB0byBpbnNpZGUgb2YgYSBzaGFkb3cgc3Vi
dHJlZS4KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRYKGRpdjEpLCBtaWRZKGRpdjEp
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhtaWRYKGRpdjIpLCBtaWRZKGRpdjIpKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
Ci0KLSAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotICAgIHNob3Vs
ZEJlKCdhc3NlcnROb3RJblNoYWRvdyhzZWxlY3Rpb24uYW5jaG9yTm9kZSknLCAndHJ1ZScpOwot
ICAgIHNob3VsZEJlKCdhc3NlcnROb3RJblNoYWRvdyhzZWxlY3Rpb24uZm9jdXNOb2RlKScsICd0
cnVlJyk7Ci0KLSAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7Ci0KLSAgICAvLyBUcnkg
c2VsZWN0IGZyb20gaW5zaWRlIG9mIGEgc2hhZG93IHN1YnRyZWUgdG8gb3V0c2lkZSBvZiBhIHNo
YWRvdyBzdWJ0cmVlLgotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZFgoZGl2MyksIG1p
ZFkoZGl2MykpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKG1pZFgoZGl2NCksIG1pZFkoZGl2NCkpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKLQotICAgIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICBz
aG91bGRCZSgnYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9uLmFuY2hvck5vZGUpJywgJ3RydWUn
KTsKLSAgICBzaG91bGRCZSgnYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9uLmZvY3VzTm9kZSkn
LCAndHJ1ZScpOwotICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKLQotICAgIC8vIFRy
eSBzZWxlY3QgaW5zaWRlIHNoYWRvdyBzdWJ0cmVlcy4KLSAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhtaWRYKGRpdjIpLCBtaWRZKGRpdjIpKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRYKGRpdjMpLCBtaWRZKGRpdjMpKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0KLSAgICBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0
U2VsZWN0aW9uKCk7Ci0gICAgc2hvdWxkQmUoJ2Fzc2VydE5vdEluU2hhZG93KHNlbGVjdGlvbi5h
bmNob3JOb2RlKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2Fzc2VydE5vdEluU2hhZG93KHNl
bGVjdGlvbi5mb2N1c05vZGUpJywgJ3RydWUnKTsKLSAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFu
Z2VzKCk7Ci19Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9hZGp1c3RpbmctZWRpdGlu
Zy1ib3VuZGFyeS13aXRoLXRhYmxlLWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYWRqdXN0aW5nLWVkaXRpbmctYm91bmRhcnkt
d2l0aC10YWJsZS1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9hZGp1c3RpbmctZWRpdGluZy1ib3VuZGFyeS13aXRo
LXRhYmxlLWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCww
IEBACi1TZWxlY3RpbmcgYXJvdW5kIGEgdGFibGUgd2hpY2ggaXMgZGlzdHJpYnV0ZWQgZnJvbSBz
aGFkb3cgc3VidHJlZSB0byBuZXN0ZWQgc2hhZG93IHN1YnRyZWUgd2lsbCB0cmlnZ2VyIGFuIGFz
c2VydGlvbi4gVG8gdHJ5IG1hbnVhbGx5LCBzZWxlY3QgZnJvbSAic2hhZG93IDIiIHRvIGFyb3Vu
ZCAiYWZ0ZXIiIGFuZCBjb25maXJtIGEgY3Jhc2ggZG9lcyBub3Qgb2NjdXIuCi0KLVBBU1MKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2FkanVzdGluZy1lZGl0aW5nLWJvdW5kYXJ5
LXdpdGgtdGFibGUtaW4tc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9zaGFkb3cvYWRqdXN0aW5nLWVkaXRpbmctYm91bmRhcnktd2l0aC10YWJsZS1pbi1zaGFk
b3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cv
YWRqdXN0aW5nLWVkaXRpbmctYm91bmRhcnktd2l0aC10YWJsZS1pbi1zaGFkb3cuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJv
ZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vcmVzb3VyY2VzL2V2
ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBjb250
ZW50ZWRpdGFibGU+Ci0gICAgPHRhYmxlIGJvcmRlcj0iMSIgaWQ9Imhvc3QiIGNvbnRlbnRlZGl0
YWJsZT4KLSAgICAgICAgPHRyPjx0ZD5ob3N0IDE8L3RkPjwvdHI+Ci0gICAgICAgIDx0cj48dGQ+
aG9zdCAyPC90ZD48L3RyPgotICAgIDwvdGFibGU+Ci08L2Rpdj4KLQotPHAgaWQ9ImRlc2NyaXB0
aW9uIj5TZWxlY3RpbmcgYXJvdW5kIGEgdGFibGUgd2hpY2ggaXMgZGlzdHJpYnV0ZWQgZnJvbSBz
aGFkb3cgc3VidHJlZSB0byBuZXN0ZWQgc2hhZG93IHN1YnRyZWUgd2lsbCB0cmlnZ2VyIGFuIGFz
c2VydGlvbi4gVG8gdHJ5IG1hbnVhbGx5LCBzZWxlY3QgZnJvbSAic2hhZG93IDIiIHRvIGFyb3Vu
ZCAiYWZ0ZXIiIGFuZCBjb25maXJtIGEgY3Jhc2ggZG9lcyBub3Qgb2NjdXIuPC9wPgotCi08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChkaXYpOwotZGl2LmlubmVySFRNTCA9ICI8dGFibGUgYm9yZGVyPScxJz48dHI+PHRkPnNo
YWRvdyAxPC90ZD48L3RyPjx0cj48dGQgaWQ9J3NyYyc+c2hhZG93IDI8L3RkPjwvdHI+PC90YWJs
ZT4iOwotCi12YXIgbmVzdGVkU2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci1uZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2IGNvbnRlbnRlZGl0YWJsZT5i
ZWZvcmU8c2hhZG93Pjwvc2hhZG93PmFmdGVyPC9kaXY+IjsKLQotdmFyIHNyYyA9IHNoYWRvd1Jv
b3QuZ2V0RWxlbWVudEJ5SWQoJ3NyYycpOwotCi1pZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3JjLm9mZnNldExlZnQgKyAxMCwgc3JjLm9mZnNl
dFRvcCArIHNyYy5vZmZzZXRIZWlnaHQgLyAyKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzcmMub2Zmc2V0TGVmdCAtIDEwLCBzcmMu
b2Zmc2V0VG9wICsgc3JjLm9mZnNldEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKLQotICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAiUEFTUyI7Ci19Ci0KLS8vIFdoZW4g
ZGVzY3JpcHRpb24gY29tZXMgYmVmb3JlIGNvbnRhaW5lciwgdGhpcyB0ZXN0IHdpbGwgbm90IGZh
aWwgaWYgY29kZSBpcyB3cm9uZy4gU28gbGV0J3MgbW92ZSBoZXJlLgotY29udGFpbmVyLnBhcmVu
dE5vZGUuaW5zZXJ0QmVmb3JlKGRlc2NyaXB0aW9uLCBjb250YWluZXIpOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9ib2xkLXR3
aWNlLWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9zaGFkb3cvYm9sZC10d2ljZS1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9ib2xkLXR3aWNlLWluLXNoYWRv
dy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMCwwIEBACi1BcHBseWluZyBk
b2N1bWVudC5leGVjQ29tbWFuZCgnQm9sZCcpIHRvIGVsZW1lbnRzIGhhdmluZyBpbnNlcnRpb24g
cG9pbnRzICg8c2hhZG93PiBvciA8Y29udGVudD4pIHNob3VkIG5vdCBjYXVzZSBhIGNyYXNoLgot
Ci1UbyB0ZXN0IG1hbnVhbGx5LCBtYWtlIGEgc2VsZWN0aW9uIGZyb20gc29tZXdoZXJlIGluICJu
ZXN0ZWQgYmVmb3JlIiB0byBzb21laHdlcmUgaW4gIm5lc3RlZCBhZnRlciIsIHRoZW4gcHJlc3Mg
Q3RybCtCIHR3aWNlLiBJdCBzaG91bGQgbm90IGNhdXNlIGEgY3Jhc2guCi0KLVBBU1MKLQpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYm9sZC10d2ljZS1pbi1zaGFkb3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9ib2xkLXR3aWNlLWluLXNo
YWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRv
dy9ib2xkLXR3aWNlLWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMiPjwvc2Ny
aXB0PgotCi08cD5BcHBseWluZyBkb2N1bWVudC5leGVjQ29tbWFuZCgnQm9sZCcpIHRvIGVsZW1l
bnRzIGhhdmluZyBpbnNlcnRpb24gcG9pbnRzICgmbHQ7c2hhZG93Jmd0OyBvciAmbHQ7Y29udGVu
dCZndDspIHNob3VkIG5vdCBjYXVzZSBhIGNyYXNoLjwvcD4KLTxwPlRvIHRlc3QgbWFudWFsbHks
IG1ha2UgYSBzZWxlY3Rpb24gZnJvbSBzb21ld2hlcmUgaW4gIm5lc3RlZCBiZWZvcmUiIHRvIHNv
bWVod2VyZSBpbiAibmVzdGVkIGFmdGVyIiwgdGhlbiBwcmVzcyBDdHJsK0IgdHdpY2UuIEl0IHNo
b3VsZCBub3QgY2F1c2UgYSBjcmFzaC48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVu
dGVkaXRhYmxlPgotICAgIGJlZm9yZSBob3N0Ci0gICAgPGRpdiBpZD0iaG9zdCI+ICAgIDxzcGFu
IGNvbnRlbnRlZGl0YWJsZT0iZmFsc2UiPm5vdCBlZGl0YWJsZTxzcGFuPjwvZGl2PgotICAgIGFm
dGVyIGhvc3QKLTwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXZh
ciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290
LmlubmVySFRNTCA9ICc8ZGl2IGlkPSJzaGFkb3ctaG9zdCI+PHNwYW4gY29udGVudGVkaXRhYmxl
PnNoYWRvdyBiZWZvcmU8L3NwYW4+PHNoYWRvdz48L3NoYWRvdz5zaGFkb3cgKGFmdGVyKTwvZGl2
Pic7Ci0KLXZhciBuZXN0ZWRTaGFkb3dIb3N0ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgn
c2hhZG93LWhvc3QnKTsKLXZhciBuZXN0ZWRTaGFkb3dSb290ID0gbmVzdGVkU2hhZG93SG9zdC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1uZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICc8
ZGl2IGlkPSJpbm5lciIgY29udGVudGVkaXRhYmxlPm5lc3RlZCBiZWZvcmU8c2hhZG93Pjwvc2hh
ZG93Pm5lc3RlZCBhZnRlcjwvZGl2Pic7Ci0KLWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAg
ICB2YXIgZGl2ID0gbmVzdGVkU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnaW5uZXInKTsKLQot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRpdi5vZmZzZXRMZWZ0ICsgNSwgZGl2Lm9mZnNl
dFRvcCArIGRpdi5vZmZzZXRIZWlnaHQgLyAyKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkaXYub2Zmc2V0TGVmdCArIGRpdi5vZmZz
ZXRXaWR0aCAtIDUsIGRpdi5vZmZzZXRUb3AgKyBkaXYub2Zmc2V0SGVpZ2h0IC8gMik7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0JvbGQn
KTsKLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQm9sZCcpOwotCi0gICAgY29udGFpbmVyLmlu
bmVySFRNTCA9ICJQQVNTIjsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLTIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2Jy
ZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFy
aWVzLTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotV2hlbiBz
ZWxlY3RpbmcgZnJvbSBhIGNoaWxkIG9mIFNoYWRvd1Jvb3QgdG8gYW4gZWxlbWVudCBvdXRzaWRl
IG9mIHNoYWRvdyBob3N0LCBhIGNyYXNoIHNob3VsZCBub3QgYmUgY2F1c2VkLgotCi1UbyB0ZXN0
IG1hbnVhbGx5LCBzZWxlY3QgZnJvbSAnYmVmb3JlIHNoYWRvdycgdG8gJ2FmdGVyIGhvc3QnLgot
Ci1QQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5n
LWJvdW5kYXJpZXMtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hh
ZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy0yLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmll
cy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHNlbGVjdGluZyBmcm9tIGEg
Y2hpbGQgb2YgU2hhZG93Um9vdCB0byBhbiBlbGVtZW50IG91dHNpZGUgb2Ygc2hhZG93IGhvc3Qs
IGEgY3Jhc2ggc2hvdWxkIG5vdCBiZSBjYXVzZWQuPC9wPgotPHA+VG8gdGVzdCBtYW51YWxseSwg
c2VsZWN0IGZyb20gJ2JlZm9yZSBzaGFkb3cnIHRvICdhZnRlciBob3N0Jy48L3A+Ci0KLTxkaXYg
aWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPgotICAgIDxkaXY+PHA+YmVmb3JlIGhvc3Q8
L3A+PC9kaXY+Ci0gICAgPGRpdiBpZD0iaG9zdCI+aG9zdDwvZGl2PiAKLSAgICA8ZGl2IGlkPSJk
ZXN0aW5hdGlvbiI+YWZ0ZXIgaG9zdDwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXZhciBzaGFk
b3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1kaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFi
bGUnLCAndHJ1ZScpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotZGl2LmlubmVySFRN
TCA9ICI8ZGl2IGlkPSdzb3VyY2UnPmJlZm9yZSBzaGFkb3c8L2Rpdj48c2hhZG93Pjwvc2hhZG93
PjxkaXY+YWZ0ZXIgc2hhZG93PC9kaXY+IjsKLQotdmFyIG5lc3RlZFNoYWRvd1Jvb3QgPSBkaXYu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotbmVzdGVkU2hhZG93Um9vdC5pbm5lckhUTUwgPSAi
PGRpdiBjb250ZW50ZWRpdGFibGU+YmVmb3JlIG5lc3RlZDxzaGFkb3c+PC9zaGFkb3c+YWZ0ZXIg
bmVzdGVkPC9kaXY+IjsKLQotdmFyIHNvdXJjZSA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQo
J3NvdXJjZScpOwotdmFyIGRlc3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rl
c3RpbmF0aW9uJyk7Ci0KLWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhzb3VyY2Uub2Zmc2V0TGVmdCArIDIwLCBzb3VyY2Uub2Zmc2V0VG9wICsg
c291cmNlLm9mZnNldEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyAyMCwg
ZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMik7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICJQ
QVNTIjsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5n
LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotV2hlbiBzZWxlY3RpbmcgZnJvbSBhIGNo
aWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwgYSBjcmFzaCBz
aG91bGQgbm90IGJlIGNhdXNlZC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBzdGFydCBwb3NpdGlvbiBv
ZiBTZWxlY3Rpb24gY29tZXMgYWZ0ZXIgdGhlIGVuZCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24uCi0K
LWJlZm9yZSBob3N0IGRyYWcgZnJvbSBoZXJlIGFmdGVyIGhvc3QKLVBBU1MKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5k
YXJpZXMuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFk
b3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLQotPHA+V2hlbiBzZWxlY3RpbmcgZnJvbSBhIGNoaWxkIG9mIHNoYWRvdyBo
b3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwgYSBjcmFzaCBzaG91bGQgbm90IGJlIGNh
dXNlZC4KLVRoaXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgU2VsZWN0aW9uIGNv
bWVzIGFmdGVyIHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0aW9uLjwvcD4KLQotPGRpdiBjb250
ZW50ZWRpdGFibGU+Ci0gICAgYmVmb3JlIGhvc3QgPHNwYW4gaWQ9Imhvc3QiIGNvbnRlbnRlZGl0
YWJsZT0iZmFsc2UiPmRyYWcgZnJvbSBoZXJlPHNwYW4gaWQ9InRhcmdldCI+IDwvc3Bhbj4gYWZ0
ZXIgaG9zdDwvc3Bhbj4KLTwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3Jp
cHQ+Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NoYWRvdy1ob3N0Jz5iZWZvcmUgc2hhZG93
PHNoYWRvdyBpZD0nc2hhZG93Jz48L3NoYWRvdz5hZnRlciBzaGFkb3c8L3NwYW4+IgotCi12YXIg
bmVzdGVkU2hhZG93SG9zdCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3NoYWRvdy1ob3N0
Jyk7Ci12YXIgbmVzdGVkU2hhZG93Um9vdCA9IG5lc3RlZFNoYWRvd0hvc3Qud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotbmVzdGVkU2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gY29udGVu
dGVkaXRhYmxlPmJlZm9yZSBuZXN0ZWQ8c2hhZG93Pjwvc2hhZG93PmFmdGVyIG5lc3RlZDwvc3Bh
bj4iCi0KLS8vIFRoaXMgc2hvdWxkIG5vdCBjYXVzZSBhIGNyYXNoLgotZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8odGFyZ2V0Lm9mZnNldExlZnQgLSAxMCwgdGFyZ2V0Lm9mZnNldFRvcCArIHRhcmdl
dC5vZmZzZXRIZWlnaHQgLyAyKTsKLWV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8obmVzdGVkU2hhZG93SG9zdC5vZmZzZXRMZWZ0ICsgMTAsIG5lc3RlZFNo
YWRvd0hvc3Qub2Zmc2V0VG9wICsgbmVzdGVkU2hhZG93SG9zdC5vZmZzZXRIZWlnaHQgLyAyKTsK
LWV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLWRlYnVnKCdQQVNTJyk7Ci0KLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcnktd2l0aC10
YWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFk
b3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyeS13aXRoLXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRp
dGluZy1ib3VuZGFyeS13aXRoLXRhYmxlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSw3ICswLDAgQEAKLU9uIHRoZSBzZWNvbmQgdGltZSBzZWxlY3RpbmcgPHNwYW4+LCBpdCBzaG91
bGQgbm90IGJlY29tZSBub24tY29udGVudGVkaXRhYmxlLiBJZiBpdCBiZWNvbWVzIG5vbi1jb250
ZW50ZWRpdGFibGUsIHRoZSBzZWxlY3Rpb24gZnJvbSA8c3Bhbj4gdG8gPHRhYmxlPiB3aWxsIGJy
ZWFrIGVkaXRpbmcgYm91bmRhcmllcyBhbmQgY29udGFpbiAiYSIuIFRoaXMgdGVzdCBjaGVja3Mg
dGhlIDxzcGFuPiBkb2VzIG5vdCBjaGFuZ2VkIHRvIG5vbi1jb250ZW50ZWRpdGFibGUgZWxlbWVu
dC4KLQotUEFTUyBjb250YWlucyhzZWxlY3RlZFN0cmluZywgImEiKSBpcyBmYWxzZQotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcnktd2l0aC10YWJs
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5n
LWVkaXRpbmctYm91bmRhcnktd2l0aC10YWJsZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJ5LXdpdGgt
dGFibGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLQotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cv
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0KLTxwPk9uIHRo
ZSBzZWNvbmQgdGltZSBzZWxlY3RpbmcgJmx0O3NwYW4mZ3Q7LCBpdCBzaG91bGQgbm90IGJlY29t
ZSBub24tY29udGVudGVkaXRhYmxlLgotSWYgaXQgYmVjb21lcyBub24tY29udGVudGVkaXRhYmxl
LCB0aGUgc2VsZWN0aW9uIGZyb20gJmx0O3NwYW4mZ3Q7IHRvICZsdDt0YWJsZSZndDsKLXdpbGwg
YnJlYWsgZWRpdGluZyBib3VuZGFyaWVzIGFuZCBjb250YWluICJhIi4KLVRoaXMgdGVzdCBjaGVj
a3MgdGhlICZsdDtzcGFuJmd0OyBkb2VzIG5vdCBjaGFuZ2VkIHRvIG5vbi1jb250ZW50ZWRpdGFi
bGUgZWxlbWVudC48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QiIGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4K
LTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzx0
YWJsZSBib3JkZXI9IjEiPicgKwotICAgICc8dHI+PHRkIGlkPSJkc3QiPmFhYWFhPC90ZD48dGQg
aWQ9ImFub3RoZXIiPmFhYWFhPC90ZD48L3RyPicgKwotICAgICc8dHI+PHRkPmFhYWFhPC90ZD48
dGQ+YWFhYWE8L3RkPjwvdHI+JyArCi0gICAgJzwvdGFibGU+PHNwYW4gaWQ9InNyYyIgY29udGVu
dGVkaXRhYmxlPmJiYmJiPC9zcGFuPic7Ci0KLXZhciBzcmMgPSBzaGFkb3dSb290LmdldEVsZW1l
bnRCeUlkKCdzcmMnKTsKLXZhciBkc3QgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdkc3Qn
KTsKLXZhciBhbm90aGVyID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnYW5vdGhlcicpOwot
Ci0vLyAxLiBTZWxlY3QgZnJvbSBzcmMgdG8gZHN0LgotbW91c2VNb3ZlVG9FbGVtKHNyYyk7Ci1l
dmVudFNlbmRlci5tb3VzZURvd24oKTsKLW1vdXNlTW92ZVRvRWxlbShkc3QpOwotZXZlbnRTZW5k
ZXIubW91c2VVcCgpOwotCi0vLyAyLiBDbGljayBzb21lIGVsZW1lbnQuCi1tb3VzZU1vdmVUb0Vs
ZW0oYW5vdGhlcik7Ci1ldmVudFNlbmRlci5tb3VzZURvd24oKTsKLWV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKLQotLy8gMy4gU2VsZWN0IGZyb20gc3JjIHRvIGRzdCBhZ2Fpbi4KLW1vdXNlTW92ZVRv
RWxlbShzcmMpOwotZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci1tb3VzZU1vdmVUb0VsZW0oZHN0
KTsKLWV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLQotZnVuY3Rpb24gY29udGFpbnMoc3RyLCBrZXkp
IHsKLSAgICByZXR1cm4gc3RyLmluZGV4T2Yoa2V5KSA+PSAwOwotfQotCi12YXIgc2VsZWN0ZWRT
dHJpbmcgPSBzaGFkb3dSb290LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci1zaG91bGRCZUZh
bHNlKCdjb250YWlucyhzZWxlY3RlZFN0cmluZywgImEiKScpOwotCi12YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zaGFkb3cvY29tcGFyZS1wb3NpdGlvbnMtaW4tbmVzdGVkLXNoYWRvdy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvY29t
cGFyZS1wb3NpdGlvbnMtaW4tbmVzdGVkLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2NvbXBhcmUtcG9zaXRpb25zLWlu
LW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzAsMCBA
QAotUEFTUyBzZWxlY3Rpb24yLmFuY2hvck5vZGUgaXMgc2VsZWN0aW9uMi5mb2N1c05vZGUKLVBB
U1Mgc2VsZWN0aW9uMi5hbmNob3JPZmZzZXQgaXMgNQotUEFTUyBzZWxlY3Rpb24yLmZvY3VzT2Zm
c2V0IGlzIDAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9jb21wYXJlLXBvc2l0aW9ucy1p
bi1uZXN0ZWQtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
aGFkb3cvY29tcGFyZS1wb3NpdGlvbnMtaW4tbmVzdGVkLXNoYWRvdy5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9jb21wYXJlLXBvc2l0aW9ucy1p
bi1uZXN0ZWQtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9t
L3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvZG9tL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQot
PGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgotPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVCb3gobmFtZSkgewot
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXYuc3R5
bGUud2lkdGggPSAnMTAwcHgnOwotICAgIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnOwotICAg
IHJldHVybiBkaXY7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZU5lc3RlZFNoYWRvd0RPTShob3N0LCBj
b250ZW50KSB7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgdmFyIG5lc3RlZFNoYWRvd1Jvb3Qg
PSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHZhciBkaXZJbk5lc3RlZFNoYWRv
d1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXZJbk5lc3RlZFNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gY29udGVudDsKLSAgICBuZXN0ZWRTaGFkb3dSb290LmFwcGVu
ZENoaWxkKGRpdkluTmVzdGVkU2hhZG93Um9vdCk7Ci0KLSAgICByZXR1cm4gbmVzdGVkU2hhZG93
Um9vdDsKLX0KLQotdmFyIG5lc3RlZFNoYWRvd1Jvb3QxID0gY3JlYXRlTmVzdGVkU2hhZG93RE9N
KGhvc3QxLCAnRlVUQU1JJyk7Ci12YXIgbmVzdGVkU2hhZG93Um9vdDIgPSBjcmVhdGVOZXN0ZWRT
aGFkb3dET00oaG9zdDIsICdBTUFNSScpOwotCi12YXIgZGl2MSA9IG5lc3RlZFNoYWRvd1Jvb3Qx
LmZpcnN0Q2hpbGQ7Ci12YXIgZGl2MiA9IG5lc3RlZFNoYWRvd1Jvb3QyLmZpcnN0Q2hpbGQ7Ci0K
LWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICBtb3VzZU1vdmVUb0VsZW0oZGl2Mik7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgbW91c2VNb3ZlVG9FbGVtKGRpdjEpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLQotICAgIHZhciBzZWxlY3Rpb24yID0gbmVzdGVk
U2hhZG93Um9vdDIuZ2V0U2VsZWN0aW9uKCk7Ci0gICAgc2hvdWxkQmUoJ3NlbGVjdGlvbjIuYW5j
aG9yTm9kZScsICdzZWxlY3Rpb24yLmZvY3VzTm9kZScpOwotCi0gICAgc2hvdWxkQmUoJ3NlbGVj
dGlvbjIuYW5jaG9yT2Zmc2V0JywgJzUnKTsKLSAgICBzaG91bGRCZSgnc2VsZWN0aW9uMi5mb2N1
c09mZnNldCcsICcwJyk7Ci19Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hh
ZG93L2NvbnRlbnRlZGl0YWJsZS1wcm9wYWdhdGlvbi1hdC1zaGFkb3ctYm91bmRhcnktZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2NvbnRlbnRl
ZGl0YWJsZS1wcm9wYWdhdGlvbi1hdC1zaGFkb3ctYm91bmRhcnktZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9jb250ZW50ZWRpdGFi
bGUtcHJvcGFnYXRpb24tYXQtc2hhZG93LWJvdW5kYXJ5LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMCArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgY29udGVudC1lZGl0
YWJsZSBpcyBub3QgcHJvcGFnYXRlZCBmcm9tIHNoYWRvdyBob3N0IHRvIGEgc2hhZG93IHN1YnRy
ZWUuCi0KLVRoaXMgcCBpcyByZXF1aXJlZCB0byBwcm9kdWNlIHRoZSBpc3N1ZS4KLQotVGhpcyBk
aXYgYW5kIHBhcmVudCBkaXYgYXJlIHJlcXVpcmVkIHRvIHByb2R1Y2UgdGhlIGlzc3VlLgotUEFT
UyBjb21wdXRlZFN0eWxlKG5vZGVJblNoYWRvd1Jvb3QxLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1l
KSBpcyAicmVhZC1vbmx5IgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2NvbnRlbnRlZGl0
YWJsZS1wcm9wYWdhdGlvbi1hdC1zaGFkb3ctYm91bmRhcnkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9jb250ZW50ZWRpdGFibGUtcHJvcGFnYXRpb24tYXQt
c2hhZG93LWJvdW5kYXJ5Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc2hhZG93L2NvbnRlbnRlZGl0YWJsZS1wcm9wYWdhdGlvbi1hdC1zaGFkb3ctYm91bmRh
cnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08cD5UaGlzIHRl
c3QgY2hlY2tzIHRoYXQgY29udGVudC1lZGl0YWJsZSBpcyBub3QgcHJvcGFnYXRlZCBmcm9tIHNo
YWRvdyBob3N0IHRvIGEgc2hhZG93IHN1YnRyZWUuPC9wPgotCi08cD5UaGlzIHAgaXMgcmVxdWly
ZWQgdG8gcHJvZHVjZSB0aGUgaXNzdWUuPC9wPgotPGRpdiBjb250ZW50ZWRpdGFibGU+Ci0gIDxk
aXY+VGhpcyBkaXYgYW5kIHBhcmVudCBkaXYgYXJlIHJlcXVpcmVkIHRvIHByb2R1Y2UgdGhlIGlz
c3VlLjwvZGl2PgotICA8ZGl2IGlkPSJob3N0MSIgY29udGVudGVkaXRhYmxlPnNoYWRvdyBob3N0
IDE8L2Rpdj4KLTwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5j
dGlvbiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsIHN0eWxlKSB7Ci0gICAgdmFyIGNzID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7Ci0gICAgaWYgKCFjcykKLSAgICAgICAgcmV0dXJu
ICcoTkEpJzsKLSAgICBpZiAoY3MuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHlsZSkpCi0gICAgICAg
IHJldHVybiBjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0eWxlKS5jc3NUZXh0OwotICAgIHJldHVy
biB1bmRlZmluZWQ7Ci19Ci0KLWZ1bmN0aW9uIHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGhvc3Qp
IHsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
ICAgIHZhciBub2RlSW5TaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICBub2RlSW5TaGFkb3cuc2V0QXR0cmlidXRlKCdpZCcsICdub2RlLWluLXNoYWRvdy1yb290Jyk7
Ci0gICAgbm9kZUluU2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdJ
biBTaGFkb3cnKSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChub2RlSW5TaGFkb3cpOwot
ICAgIHJldHVybiBub2RlSW5TaGFkb3c7Ci19Ci0KLWRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsK
LQotdmFyIG5vZGVJblNoYWRvd1Jvb3QxID0gcHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QxJykpOwotdmFyIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUg
PSAnLXdlYmtpdC11c2VyLW1vZGlmeSc7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVk
U3R5bGUobm9kZUluU2hhZG93Um9vdDEsIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywgJ3JlYWQt
b25seScpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9kZWxldGUt
Y2hhcmFjdGVycy1pbi1kaXN0cmlidXRlZC1ub2RlLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9kZWxldGUtY2hhcmFjdGVycy1pbi1k
aXN0cmlidXRlZC1ub2RlLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZGVsZXRlLWNoYXJhY3RlcnMtaW4tZGlzdHJpYnV0
ZWQtbm9kZS1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBA
Ci1UaGlzIHRlc3RzIHRoZSBkZWxldGlvbiBvZiB0ZXh0IGluIGRpc3RyaWJ1dGVkIG5vZGUgZG9l
cyBub3QgY3Jhc2guIFRvIHJ1biBpdCBvdXRzaWRlIG9mIERSVCwgeW91IG11c3QgZGVsZXRlIHRl
eHQsICdmb28nLCBtYW51YWxseS4KLQotUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
aGFkb3cvZGVsZXRlLWNoYXJhY3RlcnMtaW4tZGlzdHJpYnV0ZWQtbm9kZS1jcmFzaC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RlbGV0ZS1jaGFyYWN0ZXJz
LWluLWRpc3RyaWJ1dGVkLW5vZGUtY3Jhc2guaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZGVsZXRlLWNoYXJhY3RlcnMtaW4tZGlzdHJpYnV0ZWQt
bm9kZS1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0cyB0
aGUgZGVsZXRpb24gb2YgdGV4dCBpbiBkaXN0cmlidXRlZCBub2RlIGRvZXMgbm90IGNyYXNoLiBU
byBydW4gaXQgb3V0c2lkZSBvZiBEUlQsIHlvdSBtdXN0IGRlbGV0ZSB0ZXh0LCAnZm9vJywgbWFu
dWFsbHkuPC9wPgotPGRpdiBpZD0id3JhcHBlciI+PGRpdiBpZD0ic2hhZG93aG9zdCIgY29udGVu
dGVkaXRhYmxlPjxkaXY+Zm9vPC9kaXY+PC9kaXY+PC9kaXY+Ci08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotdmFyIHNoYWRvd1Jv
b3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhZG93aG9zdCcpLndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxjb250ZW50PjwvY29udGVudD4i
OwotCi12YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhZG93aG9zdCcp
LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKLXdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHRleHROb2RlLCAwLCB0ZXh0Tm9kZSwgMyk7Ci1kb2N1bWVudC5leGVjQ29tbWFuZCgn
RGVsZXRlJyk7Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3cmFwcGVyIikuaW5uZXJIVE1M
ID0gIlBBU1MiOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NoYWRvdy9kZWxldGUtbGlzdC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RlbGV0ZS1saXN0LWluLXNoYWRv
dy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
c2hhZG93L2RlbGV0ZS1saXN0LWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsOSArMCwwIEBACi1FbGVtZW50cyBkaXN0cmlidXRlZCB0byBTaGFkb3cgRE9NIHNob3Vs
ZCBiZSBkZWxldGVkIGNvcnJlY3RseSB3aGVuIHByZXNzaW5nIGRlbGV0ZSBrZXkuCi0KLVRvIHRl
c3QgbWFudWFsbHksIHNlbGVjdCBzb21ld2hlcmUgaW4gQUJDREUgZnJvbSBzb21laHdlcmUgaW4g
MTIzNDUsIGFuZCBwcmVzcyBkZWxldGUsIGFuZCBjaGVjayB0aGUgc2VsZWN0ZWQgdGV4dCBpcyBk
ZWxldGVkIGNvcnJlY3RseS4KLQotUEFTUyBob3N0VGV4dENvbnRlbnQgaXMgJ0FCMzQ1JwotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RlbGV0ZS1saXN0LWluLXNoYWRvdy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RlbGV0ZS1saXN0LWluLXNoYWRv
dy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9k
ZWxldGUtbGlzdC1pbi1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPHA+RWxlbWVu
dHMgZGlzdHJpYnV0ZWQgdG8gU2hhZG93IERPTSBzaG91bGQgYmUgZGVsZXRlZCBjb3JyZWN0bHkg
d2hlbiBwcmVzc2luZyBkZWxldGUga2V5LjwvcD4KLTxwPlRvIHRlc3QgbWFudWFsbHksIHNlbGVj
dCBzb21ld2hlcmUgaW4gQUJDREUgZnJvbSBzb21laHdlcmUgaW4gMTIzNDUsIGFuZCBwcmVzcyBk
ZWxldGUsIGFuZCBjaGVjayB0aGUgc2VsZWN0ZWQgdGV4dCBpcyBkZWxldGVkIGNvcnJlY3RseS48
L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPG9sIGlkPSJob3N0IiBjb250ZW50ZWRp
dGFibGU+Ci0gICAgICAgIDxsaSBpZD0ibGlzdDEiPkFCQ0RFPC9saT4KLSAgICAgICAgPGxpIGlk
PSJsaXN0MiI+YWJjZGU8L2xpPgotICAgICAgICA8bGkgaWQ9Imxpc3QzIj4xMjM0NTwvbGk+Ci0g
ICAgPC9vbD4KLTwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXZh
ciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgbGkgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwotbGkuaW5uZXJIVE1MID0gJ2hvZ2Vob2dlJzsK
LXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobGkpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0KLWlmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhsaXN0MS5vZmZzZXRMZWZ0ICsgMjAsIGxp
c3QxLm9mZnNldFRvcCArIGxpc3QxLm9mZnNldEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGxpc3QzLm9mZnNldExl
ZnQgKyAyMCwgbGlzdDMub2Zmc2V0VG9wICsgbGlzdDMub2Zmc2V0SGVpZ2h0IC8gMik7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgZXZlbnRTZW5kZXIua2V5RG93bignZGVsZXRl
Jyk7Ci0KLSAgICB2YXIgaG9zdFRleHRDb250ZW50ID0gaG9zdC50ZXh0Q29udGVudC5yZXBsYWNl
KC9eXHMrfFxzKyQvZywgJycpOwotICAgIHNob3VsZEJlKCJob3N0VGV4dENvbnRlbnQiLCAiJ0FC
MzQ1JyIpOwotICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAiIjsKLX0KLTwvc2NyaXB0PgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9kb3VibGVj
bGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RvdWJsZWNsaWNrLW9uLW1ldGVyLWluLXNoYWRv
dy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc2hhZG93L2RvdWJsZWNsaWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1UaGlzIHRlc3QgZW5zdXJlcyBj
b250ZXh0IGNsaWNrIGFyb3VuZCBtZXRlciB3b24ndCBjcmFzaC4KLQotUEFTUwpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZG91YmxlY2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNy
YXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvZG91Ymxl
Y2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2RvdWJsZWNsaWNrLW9uLW1ldGVyLWluLXNoYWRv
dy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08cD5UaGlzIHRlc3QgZW5zdXJlcyBjb250ZXh0IGNsaWNrIGFyb3VuZCBt
ZXRlciB3b24ndCBjcmFzaC48L3A+Ci08ZGl2IGlkPSdjb250YWluZXInIHN0eWxlPSJ3aWR0aDox
MDBweDsgaGVpZ2h0OiAxMDBweCI+PC9kaXY+Ci08cD5QQVNTPC9wPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIGNvbnRhaW5l
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKLXZhciBzaGFkb3dSb290
ID0gY29udGFpbmVyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBtZXRlciA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGVyJyk7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKG1ldGVy
KTsKLQotLy8gRG8gZG91YmxlY2xpY2sgYXQgdmFyaW91cyBwb2ludHMuCi1kb3VibGVDbGljayht
ZXRlci5vZmZzZXRMZWZ0LCBtZXRlci5vZmZzZXRUb3ApOwotZG91YmxlQ2xpY2sobWV0ZXIub2Zm
c2V0TGVmdCAtIDEsIG1ldGVyLm9mZnNldFRvcCk7Ci1kb3VibGVDbGljayhtZXRlci5vZmZzZXRM
ZWZ0LCBtZXRlci5vZmZzZXRUb3AgLSAxKTsKLWRvdWJsZUNsaWNrKG1ldGVyLm9mZnNldExlZnQg
LSAxLCBtZXRlci5vZmZzZXRUb3AgLSAxKTsKLWRvdWJsZUNsaWNrKG1ldGVyLm9mZnNldExlZnQg
KyAxLCBtZXRlci5vZmZzZXRUb3ApOwotZG91YmxlQ2xpY2sobWV0ZXIub2Zmc2V0TGVmdCwgbWV0
ZXIub2Zmc2V0VG9wICsgMSk7Ci1kb3VibGVDbGljayhtZXRlci5vZmZzZXRMZWZ0ICsgMSwgbWV0
ZXIub2Zmc2V0VG9wICsgMSk7Ci1kb3VibGVDbGljayhtZXRlci5vZmZzZXRMZWZ0ICsgbWV0ZXIu
b2Zmc2V0V2lkdGggLyAyLCBtZXRlci5vZmZzZXRUb3AgKyBtZXRlci5vZmZzZXRIZWlnaHQgLyAy
KTsKLWRvdWJsZUNsaWNrKG1ldGVyLm9mZnNldExlZnQgKyBtZXRlci5vZmZzZXRXaWR0aCAtIDEs
IG1ldGVyLm9mZnNldFRvcCArIG1ldGVyLm9mZnNldEhlaWdodCAtIDEpOwotZG91YmxlQ2xpY2so
bWV0ZXIub2Zmc2V0TGVmdCArIG1ldGVyLm9mZnNldFdpZHRoICsgMSwgbWV0ZXIub2Zmc2V0VG9w
ICsgbWV0ZXIub2Zmc2V0SGVpZ2h0ICsgMSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2V4ZWNjb21tYW5kLWluZGVudC1pbi1z
aGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hh
ZG93L2V4ZWNjb21tYW5kLWluZGVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9leGVjY29tbWFuZC1pbmRlbnQt
aW4tc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi1J
biB0aGlzIHRlc3QsIHdlIGRvIGV4ZWNDb21tYW5kKCdJbmRlbnQnKSBpbiB0aGUgZGlyZWN0IGNo
aWxkIG9mIFNoYWRvd1Jvb3QgdG8gY29uZmlybSBhIGNyYXNoIGRvZXNuJ3QgaGFwcGVuLgotCi0K
LQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQot
Ci0KLQotCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9leGVjY29tbWFuZC1pbmRl
bnQtaW4tc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFk
b3cvZXhlY2NvbW1hbmQtaW5kZW50LWluLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9leGVjY29tbWFuZC1pbmRlbnQtaW4tc2hhZG93
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vcmVzb3VyY2VzL2V2ZW50
LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9z
aGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
Ci08cD5JbiB0aGlzIHRlc3QsIHdlIGRvIGV4ZWNDb21tYW5kKCdJbmRlbnQnKSBpbiB0aGUgZGly
ZWN0IGNoaWxkIG9mIFNoYWRvd1Jvb3QKLXRvIGNvbmZpcm0gYSBjcmFzaCBkb2Vzbid0IGhhcHBl
bi48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPjwvZGl2PgotPHBy
ZSBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci12YXIgc2hhZG93Um9vdCA9IGNvbnRh
aW5lci53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8
c3BhbiBjb250ZW50ZWRpdGFibGU+S290b3JpIE90b25hc2hpPC9zcGFuPiIKLXZhciBzcGFuID0g
c2hhZG93Um9vdC5maXJzdENoaWxkOwotCi1tb3VzZU1vdmVUb0VsZW0oc3Bhbik7Ci1ldmVudFNl
bmRlci5tb3VzZURvd24oKTsKLWV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLQotZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ0luZGVudCcpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3No
YWRvdy9pbnNlcnRvcmRlcmVkbGlzdC1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvaW5zZXJ0b3JkZXJlZGxpc3QtY3Jhc2gtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9p
bnNlcnRvcmRlcmVkbGlzdC1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMCwwIEBACi1UaGlzIHRlc3QgY29uZmlybXMgc29tZSBjb21iaW5hdGlvbiBvZiBlZGl0aW5n
IGNvbW1hbmQgd2l0aCBTaGFkb3cgRE9NIGRvZXMgbm90IGNhdXNlIGEgY3Jhc2guIFRvIHRlc3Qg
bWFudWFsbHksIHNlbGVjdCBmcm9tIChiZWZvcmUgbmVzdGVkKSB0byAoYWZ0ZXIgbmVzdGVkKSwg
dGhlbiBwcmVzcyBJdGFsaWMsIGFuZCBJbnNlcnRVbm9yZGVyZWRMaXN0LgotCi1QQVNTCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9pbnNlcnRvcmRlcmVkbGlzdC1jcmFzaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2luc2VydG9yZGVyZWRs
aXN0LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
c2hhZG93L2luc2VydG9yZGVyZWRsaXN0LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
Ci08cD5UaGlzIHRlc3QgY29uZmlybXMgc29tZSBjb21iaW5hdGlvbiBvZiBlZGl0aW5nIGNvbW1h
bmQgd2l0aCBTaGFkb3cgRE9NIGRvZXMgbm90IGNhdXNlIGEgY3Jhc2guCi1UbyB0ZXN0IG1hbnVh
bGx5LCBzZWxlY3QgZnJvbSAoYmVmb3JlIG5lc3RlZCkgdG8gKGFmdGVyIG5lc3RlZCksIHRoZW4g
cHJlc3MgSXRhbGljLCBhbmQgSW5zZXJ0VW5vcmRlcmVkTGlzdC48L3A+Ci0KLTxkaXYgaWQ9ImNv
bnRhaW5lciIgY29udGVudGVkaXRhYmxlPgotICAgIDxkaXY+PHA+KGJlZm9yZSBob3N0KTwvcD48
L2Rpdj4KLSAgICA8ZGl2IGlkPSJob3N0Ij4gICAgPHNwYW4gY29udGVudGVkaXRhYmxlPSJmYWxz
ZSI+bm90IGVkaXRhYmxlPC9zcGFuPjwvZGl2PgotICAgIDxkaXY+KGFmdGVyIGhvc3QpPC9kaXY+
Ci0KLSAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iSXRhbGljIiBvbmNsaWNrPSJkb2N1
bWVudC5leGVjQ29tbWFuZCgnSXRhbGljJykiIC8+Ci0gICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIg
dmFsdWU9Ikluc2VydFVub3JkZXJlZExpc3QiIG9uY2xpY2s9ImRvY3VtZW50LmV4ZWNDb21tYW5k
KCdJbnNlcnRVbm9yZGVyZWRMaXN0JykiIC8+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIHNoYWRv
d1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLWRp
di5pbm5lckhUTUwgPSAiPHNwYW4gY29udGVudGVkaXRhYmxlPihiZWZvcmUgc2hhZG93KTwvc3Bh
bj48c2hhZG93Pjwvc2hhZG93PihhZnRlciBzaGFkb3cpIjsKLQotdmFyIG5lc3RlZFNoYWRvd1Jv
b3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotbmVzdGVkU2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPGRpdiBjb250ZW50ZWRpdGFibGU+KGJlZm9yZSA8c3BhbiBpZD0nc3JjJz48L3Nw
YW4+bmVzdGVkKTxzaGFkb3c+PC9zaGFkb3c+KG5lc3RlZCA8c3BhbiBpZD0nZHN0Jz48L3NwYW4+
YWZ0ZXIpPC9kaXY+IjsKLQotdmFyIHNyYyA9IG5lc3RlZFNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5
SWQoJ3NyYycpOwotdmFyIGRzdCA9IG5lc3RlZFNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ2Rz
dCcpOwotCi1pZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oc3JjLm9mZnNldExlZnQgKyBzcmMub2Zmc2V0V2lkdGggLyAyLCBzcmMub2Zmc2V0VG9w
ICsgc3JjLm9mZnNldEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRzdC5vZmZzZXRMZWZ0ICsgZHN0Lm9mZnNldFdp
ZHRoIC8gMiwgZHN0Lm9mZnNldFRvcCArIGRzdC5vZmZzZXRIZWlnaHQgLyAyKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7Ci0KLSAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnSXRhbGljJyk7
Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFVub3JkZXJlZExpc3QnKTsKLQotICAg
IGNvbnRhaW5lci5pbm5lckhUTUwgPSAiUEFTUyI7Ci19Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2hhZG93L3ByZXNzaW5nLWVudGVyLW9uLWxpc3QtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3ByZXNzaW5nLWVudGVy
LW9uLWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NoYWRvdy9wcmVzc2luZy1lbnRlci1vbi1saXN0LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICswLDAgQEAKLVByZXNzaW5nIGVudGVyIG9uIHRoZSBsYXN0IGNoYXJh
Y3RlciBvZiA8bGk+IGVsZW1lbnQgaW4gU2hhZG93IERPTSB3YXMgdHJpZ2dlcmluZyBhc3NlcnRp
b24sIGJlY2FzdWUgbW9kaWZ5aW5nIFNoYWRvdyBET00gcmVtb3ZlcyB0aGUgcmVuZGVyZXIgaW4g
U2hhZG93IERPTSBhbmQgZGVzZW5kYW50IG9mIHNoYWRvdyBob3N0LgotCi1UaGlzIHRlc3RzIGNv
bmZpcm1zIGl0IHdvbid0IGhhcHBlbiBhbnkgbW9yZS4KLQotUEFTUwpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9zaGFkb3cvcHJlc3NpbmctZW50ZXItb24tbGlzdC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3ByZXNzaW5nLWVudGVyLW9uLWxpc3QuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvcHJlc3Np
bmctZW50ZXItb24tbGlzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM4ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2Rv
bS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMiPjwvc2NyaXB0Pgot
Ci08cD5QcmVzc2luZyBlbnRlciBvbiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgJmx0O2xpJmd0OyBl
bGVtZW50IGluIFNoYWRvdyBET00gd2FzIHRyaWdnZXJpbmcgYXNzZXJ0aW9uLAotYmVjYXN1ZSBt
b2RpZnlpbmcgU2hhZG93IERPTSByZW1vdmVzIHRoZSByZW5kZXJlciBpbiBTaGFkb3cgRE9NIGFu
ZCBkZXNlbmRhbnQgb2Ygc2hhZG93IGhvc3QuPC9wPgotPHA+VGhpcyB0ZXN0cyBjb25maXJtcyBp
dCB3b24ndCBoYXBwZW4gYW55IG1vcmUuPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAg
IDxvbCBpZD0iaG9zdCIgY29udGVudGVkaXRhYmxlPgotICAgICAgICA8bGk+TElTVCAxPC9saT4K
LSAgICAgICAgPGxpIGlkPSJsaXN0MiI+TElTVCAyPC9saT4KLSAgICAgICAgPGxpPkxJU1QgMzwv
bGk+Ci0gICAgPC9vbD4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnbGknKTsKLWxpLmlubmVySFRNTCA9ICdpbnNpZGUgc2hhZG93JzsKLXNoYWRvd1Jvb3QuYXBw
ZW5kQ2hpbGQobGkpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzaGFkb3cnKSk7Ci0KLWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGxpc3QyLm9mZnNldExl
ZnQgKyBsaXN0Mi5vZmZzZXRXaWR0aCAtIDEwLCBsaXN0Mi5vZmZzZXRUb3AgKyBsaXN0Mi5vZmZz
ZXRIZWlnaHQgLyAyKTsKLWV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotCi1ldmVudFNlbmRlci5rZXlEb3duKCdcbicpOwotCi1jb250YWluZXIuaW5uZXJI
VE1MID0gIlBBU1MiOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvcmln
aHRjbGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVy
LWluLXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCww
IEBACi1UaGlzIHRlc3QgZW5zdXJlcyBjb250ZXh0IGNsaWNrIGFyb3VuZCBtZXRlciB3b24ndCBj
cmFzaC4KLQotUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvcmlnaHRjbGlj
ay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9yaWdodGNs
aWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08cD5UaGlzIHRlc3QgZW5zdXJlcyBj
b250ZXh0IGNsaWNrIGFyb3VuZCBtZXRlciB3b24ndCBjcmFzaC48L3A+Ci08ZGl2IGlkPSdjb250
YWluZXInIHN0eWxlPSJ3aWR0aDoxMDBweDsgaGVpZ2h0OiAxMDBweCI+PC9kaXY+Ci08cD5QQVNT
PC9wPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5
ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotCi1mdW5jdGlvbiBjb250ZXh0Q2xpY2soeCwgeSkgewotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOwotICAgIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpOwotfQot
Ci12YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwot
dmFyIHNoYWRvd1Jvb3QgPSBjb250YWluZXIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFy
IG1ldGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbWV0ZXInKTsKLXNoYWRvd1Jvb3QuYXBw
ZW5kQ2hpbGQobWV0ZXIpOwotCi0vLyBEbyBjb250ZXh0IGNsaWNrIGF0IHZhcmlvdXMgcG9pbnRz
LgotY29udGV4dENsaWNrKG1ldGVyLm9mZnNldExlZnQsIG1ldGVyLm9mZnNldFRvcCk7Ci1jb250
ZXh0Q2xpY2sobWV0ZXIub2Zmc2V0TGVmdCAtIDEsIG1ldGVyLm9mZnNldFRvcCk7Ci1jb250ZXh0
Q2xpY2sobWV0ZXIub2Zmc2V0TGVmdCwgbWV0ZXIub2Zmc2V0VG9wIC0gMSk7Ci1jb250ZXh0Q2xp
Y2sobWV0ZXIub2Zmc2V0TGVmdCAtIDEsIG1ldGVyLm9mZnNldFRvcCAtIDEpOwotY29udGV4dENs
aWNrKG1ldGVyLm9mZnNldExlZnQgKyAxLCBtZXRlci5vZmZzZXRUb3ApOwotY29udGV4dENsaWNr
KG1ldGVyLm9mZnNldExlZnQsIG1ldGVyLm9mZnNldFRvcCArIDEpOwotY29udGV4dENsaWNrKG1l
dGVyLm9mZnNldExlZnQgKyAxLCBtZXRlci5vZmZzZXRUb3AgKyAxKTsKLWNvbnRleHRDbGljayht
ZXRlci5vZmZzZXRMZWZ0ICsgbWV0ZXIub2Zmc2V0V2lkdGggLyAyLCBtZXRlci5vZmZzZXRUb3Ag
KyBtZXRlci5vZmZzZXRIZWlnaHQgLyAyKTsKLWNvbnRleHRDbGljayhtZXRlci5vZmZzZXRMZWZ0
ICsgbWV0ZXIub2Zmc2V0V2lkdGggLSAxLCBtZXRlci5vZmZzZXRUb3AgKyBtZXRlci5vZmZzZXRI
ZWlnaHQgLSAxKTsKLWNvbnRleHRDbGljayhtZXRlci5vZmZzZXRMZWZ0ICsgbWV0ZXIub2Zmc2V0
V2lkdGggKyAxLCBtZXRlci5vZmZzZXRUb3AgKyBtZXRlci5vZmZzZXRIZWlnaHQgKyAxKTsKLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFk
b3cvc2VsZWN0LWNvbnRlbnRlZGl0YWJsZS1zaGFkb3dob3N0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3QtY29udGVudGVkaXRhYmxl
LXNoYWRvd2hvc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3QtY29udGVudGVkaXRhYmxlLXNoYWRvd2hvc3QtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICswLDAgQEAKLVRoaXMgdGVzdCBjb25maXJt
cyB0aGF0IHNlbGVjdGluZyBhbiBlbGVtZW50IGhhdmluZyBTaGFkb3cgRE9NIGRvZXNuJ3QgY3Jv
c3MgZWRpdGluZyBib3VuZGFyaWVzIGVycm9ybm91c2x5LgotCi1CRUZPUkUKLUFGVEVSCi1Nb3Zl
IG1vdXNlIGZyb20gQkVGT1JFIHRvIEhPU1QKLVBBU1Mgc2VsZWN0aW9uLmFuY2hvck5vZGUgaXMg
bnVsbAotUEFTUyBzZWxlY3Rpb24uZm9jdXNOb2RlIGlzIG51bGwKLVBBU1MgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoImRlbGV0ZSIpIGRpZCBub3QgY3Jhc2guCi0KLU1vdmUgbW91c2UgZnJvbSBBRlRF
UiB0byBIT1NUCi1QQVNTIHNlbGVjdGlvbi5hbmNob3JOb2RlIGlzIG51bGwKLVBBU1Mgc2VsZWN0
aW9uLmZvY3VzTm9kZSBpcyBudWxsCi1QQVNTIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJkZWxldGUi
KSBkaWQgbm90IGNyYXNoLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdC1jb250
ZW50ZWRpdGFibGUtc2hhZG93aG9zdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2hhZG93L3NlbGVjdC1jb250ZW50ZWRpdGFibGUtc2hhZG93aG9zdC5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3QtY29udGVu
dGVkaXRhYmxlLXNoYWRvd2hvc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NiArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgotCi08cD5UaGlzIHRlc3QgY29uZmlybXMgdGhhdCBzZWxlY3RpbmcgYW4gZWxlbWVudCBoYXZp
bmcgU2hhZG93IERPTSBkb2Vzbid0IGNyb3NzIGVkaXRpbmcgYm91bmRhcmllcyBlcnJvcm5vdXNs
eS48L3A+Ci0KLTxkaXY+Ci0gICAgPGRpdiBpZD0iYmVmb3JlIj5CRUZPUkU8L2Rpdj4KLSAgICA8
ZGl2IGlkPSJob3N0IiBjb250ZW50ZWRpdGFibGU+SE9TVDwvZGl2PgotICAgIDxkaXYgaWQ9ImFm
dGVyIj5BRlRFUjwvZGl2PgotPC9kaXY+Ci0KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08
c2NyaXB0PgotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
Owotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiU0hBRE9XIERPTSI7Ci0KLXZhciBzZWxlY3Rpb24g
PSBzaGFkb3dSb290LmdldFNlbGVjdGlvbigpOwotCi1kZWJ1ZygnTW92ZSBtb3VzZSBmcm9tIEJF
Rk9SRSB0byBIT1NUJyk7Ci0KLW1vdXNlTW92ZVRvRWxlbShiZWZvcmUpOwotZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7Ci1tb3VzZU1vdmVUb0VsZW0oaG9zdCk7Ci1ldmVudFNlbmRlci5tb3VzZVVw
KCk7Ci1zaG91bGRCZU51bGwoJ3NlbGVjdGlvbi5hbmNob3JOb2RlJyk7Ci1zaG91bGRCZU51bGwo
J3NlbGVjdGlvbi5mb2N1c05vZGUnKTsKLQotLy8gQ2hlY2sgY3Jhc2ggd29uJ3QgaGFwcGVuLgot
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2RlbGV0ZScpOwotZGVidWcoJ1BBU1MgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoImRlbGV0ZSIpIGRpZCBub3QgY3Jhc2guJyk7Ci0KLWRlYnVnKCcnKTsKLWRlYnVn
KCdNb3ZlIG1vdXNlIGZyb20gQUZURVIgdG8gSE9TVCcpOwotCi1tb3VzZU1vdmVUb0VsZW0oYWZ0
ZXIpOwotZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci1tb3VzZU1vdmVUb0VsZW0oaG9zdCk7Ci1l
dmVudFNlbmRlci5tb3VzZVVwKCk7Ci1zaG91bGRCZU51bGwoJ3NlbGVjdGlvbi5hbmNob3JOb2Rl
Jyk7Ci1zaG91bGRCZU51bGwoJ3NlbGVjdGlvbi5mb2N1c05vZGUnKTsKLS8vIENoZWNrIGNyYXNo
IHdvbid0IGhhcHBlbi4KLWRvY3VtZW50LmV4ZWNDb21tYW5kKCdkZWxldGUnKTsKLWRlYnVnKCdQ
QVNTIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJkZWxldGUiKSBkaWQgbm90IGNyYXNoLicpOwotCi12
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotCi08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3Rpb24tb2Ytb3JwaGFu
LXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2hhZG93L3NlbGVjdGlvbi1vZi1vcnBoYW4tc2hhZG93cm9vdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NlbGVjdGlvbi1v
Zi1vcnBoYW4tc2hhZG93cm9vdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAg
KzAsMCBAQAotTm9kZXMgb2YgdGhlIHNlbGVjdGlvbiBmb3IgYW4gb3JwaGFuIHNoYWRvdyByb290
IHNob3VsZCByZXR1cm4gbnVsbC4KLQotUEFTUyBzZWxlY3Rpb24uYW5jaG9yTm9kZSBpcyBudWxs
Ci1QQVNTIHNlbGVjdGlvbi5mb2N1c05vZGUgaXMgbnVsbAotUEFTUyBzZWxlY3Rpb24uYmFzZU5v
ZGUgaXMgbnVsbAotUEFTUyBzZWxlY3Rpb24uZXh0ZW50Tm9kZSBpcyBudWxsCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0aW9uLW9mLW9ycGhhbi1zaGFkb3dyb290Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0aW9uLW9mLW9ycGhh
bi1zaGFkb3dyb290Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvc2hhZG93L3NlbGVjdGlvbi1vZi1vcnBoYW4tc2hhZG93cm9vdC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vcmVzb3VyY2VzL3NoYWRvdy10
ZXN0LWRyaXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hh
ZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQot
PHA+Tm9kZXMgb2YgdGhlIHNlbGVjdGlvbiBmb3IgYW4gb3JwaGFuIHNoYWRvdyByb290IHNob3Vs
ZCByZXR1cm4gbnVsbC48L3A+Ci0KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0
PgotdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXZhciBzaGFkb3dS
b290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRN
TCA9ICJLb3RvcmkgT3RvbmFzaGkiCi0KLXZhciBzZWxlY3Rpb24gPSBzaGFkb3dSb290LmdldFNl
bGVjdGlvbigpOwotCi1zaG91bGRCZSgnc2VsZWN0aW9uLmFuY2hvck5vZGUnLCAnbnVsbCcpOwot
c2hvdWxkQmUoJ3NlbGVjdGlvbi5mb2N1c05vZGUnLCAnbnVsbCcpOwotc2hvdWxkQmUoJ3NlbGVj
dGlvbi5iYXNlTm9kZScsICdudWxsJyk7Ci1zaG91bGRCZSgnc2VsZWN0aW9uLmV4dGVudE5vZGUn
LCAnbnVsbCcpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxl
Y3Rpb24tb2Ytc2hhZG93cm9vdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0aW9uLW9mLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3Rpb24t
b2Ytc2hhZG93cm9vdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNDYgKzAsMCBA
QAotSW4gdGhpcyB0ZXN0LCB3ZSBjcmVhdGUgYSBjb21wbGV4IFNoYWRvdyBET00gYW5kIHRyeSB0
byBkcmFnIGZyb20gYSBkaXYgaW4gbmVzdGVkIHNoYWRvdyByb290IG9mIG9sZGVyIHNoYWRvdyBy
b290IHRvIGEgZGl2IGluIG5lc3RlZCBzaGFkb3cgcm9vdCBvZiB5b3VuZ2VyIHNoYWRvdyByb290
LiBUaGVuIHdlIGdldCBzZWxlY3Rpb24gZnJvbSB0aGUgZm9sbG93aW5nIFRyZWVTY29wZXM6Ci0g
KiB0cmVlU2NvcGVzWzBdID0gZG9jdW1lbnQKLSAqIHRyZWVTY29wZXNbMV0gPSBPTERFUiBTSEFE
T1cgUk9PVAotICogdHJlZVNjb3Blc1syXSA9IFlPVU5HRVIgU0hBRE9XIFJPT1QKLSAqIHRyZWVT
Y29wZXNbM10gPSBORVNURUQgU0hBRE9XIFJPT1QgSU4gT0xERVIgU0hBRE9XIFJPT1QKLSAqIHRy
ZWVTY29wZXNbNF0gPSBORVNURUQgU0hBRE9XIFJPT1QgSU4gWU9VTkdFUiBTSEFET1cgUk9PVAot
YW5kIGNoZWNrIHNlbGVjdGlvbi5hbmNob3JOb2RlLCBzZWxlY3Rpb24uZm9jdXNOb2RlLCBzZWxl
Y3Rpb24uYmFzZU5vZGUsIGFuZCBzZWxlY3Rpb24uZXh0ZW50Tm9kZSBhcmUgbnVsbCBvciBpbiB0
aGUgc2FtZSB0cmVlc2NvcGUuCi0KLURyYWdnZWQgZnJvbSAoRElWIDIgSU4gTkVTVEVEIFNIQURP
VyBET00gT0YgT0xERVIgU0hBRE9XIFJPT1QpIHRvIChESVYgMiBJTiBORVNURUQgU0hBRE9XIERP
TSBPRiBZT1VOR0VSIFNIQURPVyBST09UKQotCi10cmVlU2NvcGVzWzBdIGlzIGRvY3VtZW50Ci1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzBdLmdldFNlbGVjdGlv
bigpLmFuY2hvck5vZGUpIGlzIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh0cmVlU2NvcGVzWzBdLmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkgaXMgZG9jdW1lbnQK
LVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNbMF0uZ2V0U2VsZWN0
aW9uKCkuYmFzZU5vZGUpIGlzIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh0cmVlU2NvcGVzWzBdLmdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUpIGlzIGRvY3VtZW50
Ci0KLXRyZWVTY29wZXNbMV0gaXMgT0xERVIgU0hBRE9XIFJPT1QKLVBBU1MgaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNbMV0uZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgdHJlZVNjb3Blc1sxXQotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNj
b3Blc1sxXS5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpIGlzIHRyZWVTY29wZXNbMV0KLVBBU1Mg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNbMV0uZ2V0U2VsZWN0aW9uKCku
YmFzZU5vZGUpIGlzIHRyZWVTY29wZXNbMV0KLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHRyZWVTY29wZXNbMV0uZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSkgaXMgdHJlZVNjb3Bl
c1sxXQotCi10cmVlU2NvcGVzWzJdIGlzIFlPVU5HRVIgU0hBRE9XIFJPT1QKLVNpbmNlIHRyZWVT
Y29wZVsyXSBpcyBvdXRzaWRlIG9mIHNlbGVjdGlvbiBzdGFydCBwb2ludCwgbm8gbm9kZSBzaG91
bGQgbm90IGJlIHRha2VuLgotUEFTUyB0cmVlU2NvcGVzWzJdLmdldFNlbGVjdGlvbigpLmFuY2hv
ck5vZGUgaXMgbnVsbAotUEFTUyB0cmVlU2NvcGVzWzJdLmdldFNlbGVjdGlvbigpLmZvY3VzTm9k
ZSBpcyBudWxsCi1QQVNTIHRyZWVTY29wZXNbMl0uZ2V0U2VsZWN0aW9uKCkuYmFzZU5vZGUgaXMg
bnVsbAotUEFTUyB0cmVlU2NvcGVzWzJdLmdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUgaXMgbnVs
bAotCi10cmVlU2NvcGVzWzNdIGlzIE5FU1RFRCBTSEFET1cgUk9PVCBJTiBPTERFUiBTSEFET1cg
Uk9PVAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1szXS5nZXRT
ZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyB0cmVlU2NvcGVzWzNdCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzNdLmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkg
aXMgdHJlZVNjb3Blc1szXQotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNj
b3Blc1szXS5nZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSkgaXMgdHJlZVNjb3Blc1szXQotUEFTUyBp
bnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1szXS5nZXRTZWxlY3Rpb24oKS5l
eHRlbnROb2RlKSBpcyB0cmVlU2NvcGVzWzNdCi0KLXRyZWVTY29wZXNbNF0gaXMgTkVTVEVEIFNI
QURPVyBST09UIElOIFlPVU5HRVIgU0hBRE9XIFJPT1QKLVNpbmNlIHRyZWVTY29wZVs0XSBpcyBv
dXRzaWRlIG9mIHNlbGVjdGlvbiBzdGFydCBwb2ludCwgbm8gbm9kZSBzaG91bGQgbm90IGJlIHRh
a2VuLgotUEFTUyB0cmVlU2NvcGVzWzRdLmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUgaXMgbnVs
bAotUEFTUyB0cmVlU2NvcGVzWzRdLmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSBpcyBudWxsCi1Q
QVNTIHRyZWVTY29wZXNbNF0uZ2V0U2VsZWN0aW9uKCkuYmFzZU5vZGUgaXMgbnVsbAotUEFTUyB0
cmVlU2NvcGVzWzRdLmdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUgaXMgbnVsbAotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zaGFkb3cvc2VsZWN0aW9uLW9mLXNoYWRvd3Jvb3QuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9zZWxlY3Rpb24tb2Ytc2hhZG93cm9v
dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9z
ZWxlY3Rpb24tb2Ytc2hhZG93cm9vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzNCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+c2VsZWN0aW9uLW9m
LXNoYWRvd3Jvb3Q8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vcmVzb3VyY2Vz
L2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2RvbS9yZXNvdXJjZXMvc2hhZG93LXRlc3QtZHJpdmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3NoYWRvdy1k
b20tdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFp
bmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotdmFyIHRy
ZWVTY29wZXMgPSBuZXcgQXJyYXkoKTsKLXRyZWVTY29wZXMucHVzaChkb2N1bWVudCk7Ci0KLWZ1
bmN0aW9uIGluZGVudChsZXZlbCkgewotICAgIHZhciB2ID0gIiI7Ci0gICAgd2hpbGUgKGxldmVs
LS0pCi0gICAgICAgIHYgPSB2ICsgIiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyI7Ci0gICAgcmV0
dXJuIHY7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNvbXBsZXhTaGFkb3dUcmVlKGNvbnRhaW5lcikg
ewotICAgIGZ1bmN0aW9uIGNyZWF0ZUlubmVyU2hhZG93RE9NKHNoYWRvd1Jvb3QsIGlkLCBuYW1l
LCBpbmRlbnRMZXZlbCkgewotICAgICAgICBzaGFkb3dSb290LmlubmVySFRNTCA9IAotICAgICAg
ICAgICAgIjxkaXYgdGl0bGU9J0RJVjEgSU4gIiArIG5hbWUgKyAiJz4iICsgaW5kZW50KGluZGVu
dExldmVsKSArICJESVYgMSAoIiArIG5hbWUgKyAiKTwvZGl2PiIgKwotICAgICAgICAgICAgIjxk
aXY+IiArIGluZGVudChpbmRlbnRMZXZlbCkgKyAiPGRpdiB0aXRsZT0nU0hBRE9XIEhPU1QgSU4g
IiArIG5hbWUgKyAiJz5ESVYgSE9TVCAoIiArIG5hbWUgKyAiKTwvZGl2PjwvZGl2PiIgKwotICAg
ICAgICAgICAgIjxkaXYgdGl0bGU9J0RJVjIgSU4gIiArIG5hbWUgKyAiJz4iICsgaW5kZW50KGlu
ZGVudExldmVsKSArICJESVYgMiAoIiArIG5hbWUgKyAiKTwvZGl2PiIgKwotICAgICAgICAgICAg
IjxzaGFkb3c+U0hBRE9XIEZBTExCQUNLPC9zaGFkb3c+IiArCi0gICAgICAgICAgICAiPGRpdiB0
aXRsZT0nRElWMyBJTiAiICsgbmFtZSArICInPiIgKyBpbmRlbnQoaW5kZW50TGV2ZWwpICsgIkRJ
ViAzICgiICsgbmFtZSArICIpPC9kaXY+IjsKLQotICAgICAgICB2YXIgaG9zdEluU2hhZG93Um9v
dCA9IHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5uZXh0U2libGluZzsKLSAgICAgICAgdmFyIG5lc3Rl
ZFNoYWRvd1Jvb3QgPSBob3N0SW5TaGFkb3dSb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICAgICAgbmVzdGVkU2hhZG93Um9vdC50aXRsZSA9ICdORVNURUQgU0hBRE9XIFJPT1QgSU4g
JyArIG5hbWU7Ci0gICAgICAgIHRyZWVTY29wZXMucHVzaChuZXN0ZWRTaGFkb3dSb290KTsKLQot
ICAgICAgICBuZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9Ci0gICAgICAgICAgICAiPGRpdiB0
aXRsZT0nRElWIDEgSU4gTkVTVEVEIFNIQURPVyBET00gT0YgIiArIG5hbWUgKyAiJz4iICsgaW5k
ZW50KGluZGVudExldmVsKSArICJESVYgMSBJTiBORVNURUQgU0hBRE9XICgiICsgbmFtZSArICIp
PC9kaXY+IiArIAotICAgICAgICAgICAgIjxzaGFkb3c+TkVTVEVEIFNIQURPVyBGQUxMQkFDSzwv
c2hhZG93PiIgKyAKLSAgICAgICAgICAgICI8ZGl2IGlkPSciICsgaWQgKyAiJyB0aXRsZT0nRElW
IDIgSU4gTkVTVEVEIFNIQURPVyBET00gT0YgIiArIG5hbWUgKyAiJz4iICsgaW5kZW50KGluZGVu
dExldmVsKSArICJESVYgMiBJTiBORVNURUQgU0hBRE9XICgiICsgbmFtZSArICIpPC9kaXY+IjsK
LSAgICB9Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gCi0gICAgICAgICI8ZGl2IHRpdGxl
PSdESVYgQkVGT1JFIEhPU1QgRUxFTUVOVCc+QkVGT1JFIEhPU1Q8L2Rpdj4iICsKLSAgICAgICAg
IjxkaXY+PGRpdiB0aXRsZT0nSE9TVCBFTEVNRU5UJz5IT1NUPC9kaXY+PC9kaXY+IiArCi0gICAg
ICAgICI8ZGl2IHRpdGxlPSdESVYgQUZURVIgSE9TVCBFTEVNRU5UJz5BRlRFUiBIT1NUPC9kaXY+
IjsKLQotICAgIHZhciBob3N0ID0gY29udGFpbmVyLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmc7Ci0K
LSAgICB2YXIgb2xkZXJTaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci0gICAgb2xkZXJTaGFkb3dSb290LnRpdGxlID0gJ09MREVSIFNIQURPVyBST09UJzsKLSAgICB0
cmVlU2NvcGVzLnB1c2gob2xkZXJTaGFkb3dSb290KTsKLQotICAgIHZhciB5b3VuZ2VyU2hhZG93
Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHlvdW5nZXJTaGFkb3dS
b290LnRpdGxlID0gJ1lPVU5HRVIgU0hBRE9XIFJPT1QnOwotICAgIHRyZWVTY29wZXMucHVzaCh5
b3VuZ2VyU2hhZG93Um9vdCk7Ci0KLSAgICBjcmVhdGVJbm5lclNoYWRvd0RPTShvbGRlclNoYWRv
d1Jvb3QsICdvbGRlcicsICdPTERFUiBTSEFET1cgUk9PVCcsIDIpOwotICAgIGNyZWF0ZUlubmVy
U2hhZG93RE9NKHlvdW5nZXJTaGFkb3dSb290LCAneW91bmdlcicsICdZT1VOR0VSIFNIQURPVyBS
T09UJywgMSk7Ci19Ci0KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29udGFpbmVyJyk7Ci1jcmVhdGVDb21wbGV4U2hhZG93VHJlZShjb250YWluZXIpOwotCi1kZWJ1
ZygnSW4gdGhpcyB0ZXN0LCB3ZSBjcmVhdGUgYSBjb21wbGV4IFNoYWRvdyBET00gYW5kIHRyeSB0
byBkcmFnIGZyb20gYSBkaXYgaW4gbmVzdGVkIHNoYWRvdyByb290IG9mIG9sZGVyIHNoYWRvdyBy
b290IHRvIGEgZGl2IGluIG5lc3RlZCBzaGFkb3cgcm9vdCBvZiB5b3VuZ2VyIHNoYWRvdyByb290
LiBUaGVuIHdlIGdldCBzZWxlY3Rpb24gZnJvbSB0aGUgZm9sbG93aW5nIFRyZWVTY29wZXM6Jyk7
Ci1mb3IgKHZhciBrID0gMDsgayA8IHRyZWVTY29wZXMubGVuZ3RoOyArK2spIHsKLSAgICBpZiAo
dHJlZVNjb3Blc1trXSA9PSBkb2N1bWVudCkKLSAgICAgICAgZGVidWcoIiAqIHRyZWVTY29wZXNb
IiArIGsgKyAiXSA9IGRvY3VtZW50Iik7Ci0gICAgZWxzZQotICAgICAgICBkZWJ1ZygiICogdHJl
ZVNjb3Blc1siICsgayArICJdID0gIiArIHRyZWVTY29wZXNba10udGl0bGUpOwotfQotCi1kZWJ1
ZygnYW5kIGNoZWNrIHNlbGVjdGlvbi5hbmNob3JOb2RlLCBzZWxlY3Rpb24uZm9jdXNOb2RlLCBz
ZWxlY3Rpb24uYmFzZU5vZGUsIGFuZCBzZWxlY3Rpb24uZXh0ZW50Tm9kZSBhcmUgbnVsbCBvciBp
biB0aGUgc2FtZSB0cmVlc2NvcGUuJyk7Ci1kZWJ1ZygnJyk7Ci0KLXZhciBvbGRlciA9IGdldEVs
ZW1lbnRCeUlkQ29uc2lkZXJpbmdTaGFkb3dET00oZG9jdW1lbnQsICdvbGRlcicpOwotdmFyIHlv
dW5nZXIgPSBnZXRFbGVtZW50QnlJZENvbnNpZGVyaW5nU2hhZG93RE9NKGRvY3VtZW50LCAneW91
bmdlcicpOwotZHJhZ0Zyb21UbyhvbGRlciwgeW91bmdlcik7Ci0KLWRlYnVnKCdEcmFnZ2VkIGZy
b20gKCcgKyBvbGRlci50aXRsZSArICcpIHRvICgnICsgeW91bmdlci50aXRsZSArICcpJyk7Ci1k
ZWJ1ZygnJyk7Ci0KLWRlYnVnKCJ0cmVlU2NvcGVzWzBdIGlzIGRvY3VtZW50Iik7Ci1zaG91bGRC
ZSgiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNbMF0uZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkiLCAiZG9jdW1lbnQiKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJlZVNj
b3BlUm9vdE5vZGUodHJlZVNjb3Blc1swXS5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpIiwgImRv
Y3VtZW50Iik7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHRyZWVTY29w
ZXNbMF0uZ2V0U2VsZWN0aW9uKCkuYmFzZU5vZGUpIiwgImRvY3VtZW50Iik7Ci1zaG91bGRCZSgi
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNbMF0uZ2V0U2VsZWN0aW9uKCku
ZXh0ZW50Tm9kZSkiLCAiZG9jdW1lbnQiKTsKLWRlYnVnKCcnKTsKLQotZGVidWcoInRyZWVTY29w
ZXNbMV0gaXMgIiArIHRyZWVTY29wZXNbMV0udGl0bGUpOwotc2hvdWxkQmUoImludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzFdLmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUp
IiwgInRyZWVTY29wZXNbMV0iKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5v
ZGUodHJlZVNjb3Blc1sxXS5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpIiwgInRyZWVTY29wZXNb
MV0iKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1sx
XS5nZXRTZWxlY3Rpb24oKS5iYXNlTm9kZSkiLCAidHJlZVNjb3Blc1sxXSIpOwotc2hvdWxkQmUo
ImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh0cmVlU2NvcGVzWzFdLmdldFNlbGVjdGlvbigp
LmV4dGVudE5vZGUpIiwgInRyZWVTY29wZXNbMV0iKTsKLWRlYnVnKCcnKTsKLQotZGVidWcoInRy
ZWVTY29wZXNbMl0gaXMgIiArIHRyZWVTY29wZXNbMl0udGl0bGUpOwotZGVidWcoJ1NpbmNlIHRy
ZWVTY29wZVsyXSBpcyBvdXRzaWRlIG9mIHNlbGVjdGlvbiBzdGFydCBwb2ludCwgbm8gbm9kZSBz
aG91bGQgbm90IGJlIHRha2VuLicpOwotc2hvdWxkQmUoInRyZWVTY29wZXNbMl0uZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSIsICJudWxsIik7Ci1zaG91bGRCZSgidHJlZVNjb3Blc1syXS5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRyZWVTY29wZXNbMl0u
Z2V0U2VsZWN0aW9uKCkuYmFzZU5vZGUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRyZWVTY29wZXNb
Ml0uZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZSIsICJudWxsIik7Ci1kZWJ1ZygnJyk7Ci0KLWRl
YnVnKCJ0cmVlU2NvcGVzWzNdIGlzICIgKyB0cmVlU2NvcGVzWzNdLnRpdGxlKTsKLXNob3VsZEJl
KCJpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1szXS5nZXRTZWxlY3Rpb24o
KS5hbmNob3JOb2RlKSIsICJ0cmVlU2NvcGVzWzNdIik7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHRyZWVTY29wZXNbM10uZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKSIs
ICJ0cmVlU2NvcGVzWzNdIik7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHRyZWVTY29wZXNbM10uZ2V0U2VsZWN0aW9uKCkuYmFzZU5vZGUpIiwgInRyZWVTY29wZXNbM10i
KTsKLXNob3VsZEJlKCJpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUodHJlZVNjb3Blc1szXS5n
ZXRTZWxlY3Rpb24oKS5leHRlbnROb2RlKSIsICJ0cmVlU2NvcGVzWzNdIik7Ci1kZWJ1ZygnJyk7
Ci0KLWRlYnVnKCJ0cmVlU2NvcGVzWzRdIGlzICIgKyB0cmVlU2NvcGVzWzRdLnRpdGxlKTsKLWRl
YnVnKCdTaW5jZSB0cmVlU2NvcGVbNF0gaXMgb3V0c2lkZSBvZiBzZWxlY3Rpb24gc3RhcnQgcG9p
bnQsIG5vIG5vZGUgc2hvdWxkIG5vdCBiZSB0YWtlbi4nKTsKLXNob3VsZEJlKCJ0cmVlU2NvcGVz
WzRdLmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUiLCAibnVsbCIpOwotc2hvdWxkQmUoInRyZWVT
Y29wZXNbNF0uZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlIiwgIm51bGwiKTsKLXNob3VsZEJlKCJ0
cmVlU2NvcGVzWzRdLmdldFNlbGVjdGlvbigpLmJhc2VOb2RlIiwgIm51bGwiKTsKLXNob3VsZEJl
KCJ0cmVlU2NvcGVzWzRdLmdldFNlbGVjdGlvbigpLmV4dGVudE5vZGUiLCAibnVsbCIpOwotZGVi
dWcoJycpOwotCi13aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7Ci0KLXdo
aWxlIChjb250YWluZXIuZmlyc3RDaGlsZCkKLSAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoY29u
dGFpbmVyLmZpcnN0Q2hpbGQpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3No
YWRvdy9zaGFkb3ctc2VsZWN0aW9uLW5vdC1leHBvcnRlZC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2hhZG93LXNlbGVjdGlvbi1ub3QtZXhw
b3J0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NoYWRvdy9zaGFkb3ctc2VsZWN0aW9uLW5vdC1leHBvcnRlZC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTMgKzAsMCBAQAotUEFTUyBhc3NlcnROb3RJblNoYWRvdyhzZWxl
Y3Rpb24uYW5jaG9yTm9kZSkgaXMgdHJ1ZQotUEFTUyBhc3NlcnROb3RJblNoYWRvdyhzZWxlY3Rp
b24uZm9jdXNOb2RlKSBpcyB0cnVlCi1QQVNTIGFzc2VydE5vdEluU2hhZG93KHNlbGVjdGlvbi5h
bmNob3JOb2RlKSBpcyB0cnVlCi1QQVNTIGFzc2VydE5vdEluU2hhZG93KHNlbGVjdGlvbi5mb2N1
c05vZGUpIGlzIHRydWUKLVBBU1MgYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9uLmFuY2hvck5v
ZGUpIGlzIHRydWUKLVBBU1MgYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9uLmZvY3VzTm9kZSkg
aXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci1UaGlzIHRlc3QgZW5zdXJlcyBzaGFkb3cgcm9vdCB3b24ndCBleHBvc2UgdG8gSlMgbGF5ZXIu
Ci0KLUJFRk9SRQotQUZURVIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L3NoYWRv
dy1zZWxlY3Rpb24tbm90LWV4cG9ydGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvc2hhZG93LXNlbGVjdGlvbi1ub3QtZXhwb3J0ZWQuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvc2hhZG93LXNlbGVjdGlv
bi1ub3QtZXhwb3J0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4MiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxwPlRoaXMg
dGVzdCBlbnN1cmVzIHNoYWRvdyByb290IHdvbid0IGV4cG9zZSB0byBKUyBsYXllci48cD4KLTxk
aXYgaWQ9J2RpdjEnPkJFRk9SRTwvZGl2PgotPGRpdiBpZD0nY29udGFpbmVyJz5DT05UQUlORVI8
L2Rpdj4KLTxkaXYgaWQ9J2RpdjQnPkFGVEVSPC9kaT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIGNvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKLXZhciBzaGFkb3dSb290ID0gY29udGFp
bmVyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLWRpdjIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ0lOIFNIQURPVyBUUkVFIDEnKSk7Ci12YXIgZGl2MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotZGl2My5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnSU4g
U0hBRE9XIFRSRUUgMicpKTsKLQotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYyKTsKLXNoYWRv
d1Jvb3QuYXBwZW5kQ2hpbGQoZGl2Myk7Ci0KLWZ1bmN0aW9uIG1pZFgoZWxlbWVudCkgewotICAg
IHJldHVybiBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLX0K
LQotZnVuY3Rpb24gbWlkWShlbGVtZW50KSB7Ci0gICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0VG9w
ICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotfQotCi1mdW5jdGlvbiBhc3NlcnROb3RJblNo
YWRvdyhlbGVtZW50KSB7Ci0gICAgaWYgKGVsZW1lbnQgPT0gZGl2MiB8fCBlbGVtZW50ID09IGRp
djIuZmlyc3RDaGlsZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlbGVtZW50ID09
IGRpdjMgfHwgZWxlbWVudCA9PSBkaXYzLmZpcnN0Q2hpbGQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAg
IC8vIFRyeSBzZWxlY3QgZnJvbSBvdXRzaWRlIG9mIGEgc2hhZG93IHN1YnRyZWUgdG8gaW5zaWRl
IG9mIGEgc2hhZG93IHN1YnRyZWUuCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obWlkWChk
aXYxKSwgbWlkWShkaXYxKSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8obWlkWChkaXYyKSwgbWlkWShkaXYyKSk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwotCi0gICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rp
b24oKTsKLSAgICBzaG91bGRCZSgnYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9uLmFuY2hvck5v
ZGUpJywgJ3RydWUnKTsKLSAgICBzaG91bGRCZSgnYXNzZXJ0Tm90SW5TaGFkb3coc2VsZWN0aW9u
LmZvY3VzTm9kZSknLCAndHJ1ZScpOwotCi0gICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygp
OwotCi0gICAgLy8gVHJ5IHNlbGVjdCBmcm9tIGluc2lkZSBvZiBhIHNoYWRvdyBzdWJ0cmVlIHRv
IG91dHNpZGUgb2YgYSBzaGFkb3cgc3VidHJlZS4KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhtaWRYKGRpdjMpLCBtaWRZKGRpdjMpKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRYKGRpdjQpLCBtaWRZKGRpdjQpKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0KLSAgICBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7Ci0gICAgc2hvdWxkQmUoJ2Fzc2VydE5vdEluU2hhZG93KHNlbGVjdGlvbi5hbmNo
b3JOb2RlKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2Fzc2VydE5vdEluU2hhZG93KHNlbGVj
dGlvbi5mb2N1c05vZGUpJywgJ3RydWUnKTsKLSAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2Vz
KCk7Ci0KLSAgICAvLyBUcnkgc2VsZWN0IGluc2lkZSBzaGFkb3cgc3VidHJlZXMuCi0gICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8obWlkWChkaXYyKSwgbWlkWShkaXYyKSk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obWlkWChkaXYz
KSwgbWlkWShkaXYzKSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgc2VsZWN0
aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotICAgIHNob3VsZEJlKCdhc3NlcnROb3RJblNo
YWRvdyhzZWxlY3Rpb24uYW5jaG9yTm9kZSknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdhc3Nl
cnROb3RJblNoYWRvdyhzZWxlY3Rpb24uZm9jdXNOb2RlKScsICd0cnVlJyk7Ci0gICAgc2VsZWN0
aW9uLnJlbW92ZUFsbFJhbmdlcygpOwotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0
ZXJhdG9yL2Jhc2ljLWl0ZXJhdGlvbi1zaGFkb3dkb20uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvYmFzaWMtaXRlcmF0aW9uLXNoYWRvd2RvbS5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0
b3IvYmFzaWMtaXRlcmF0aW9uLXNoYWRvd2RvbS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1
ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1zZWxlY3Rpb24t
c2hhcmVkLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbign
VW5pdCB0ZXN0cyBmb3IgV2ViQ29yZSB0ZXh0IGl0ZXJhdG9yIHdpdGggc2hhZG93IHRyZWUgc3Vw
cG9ydCBlbmFibGVkJyk7Ci0KLXZhciBzdWJmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lmcmFtZScpOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzdWJmcmFtZSk7Ci0KLWZ1bmN0
aW9uIGFwcGVuZEJyRWxlbWVudChub2RlKQotewotICAgIG5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnYnInKSk7Ci19Ci0KLWZ1bmN0aW9uIGFkZFNoYWRvd1RyZWVXaXRo
RGl2RWxlbWVudChub2RlKQotewotICAgIG5vZGUud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
ICAgIGludGVybmFscy5vbGRlc3RTaGFkb3dSb290KG5vZGUpLmlubmVySFRNTCA9ICc8ZGl2PmI8
L2Rpdj4nOwotfQotCi12YXIgdGVzdERvY3VtZW50ID0gc3ViZnJhbWUuY29udGVudERvY3VtZW50
OwotdmFyIHJhbmdlID0gdGVzdERvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Ci0KLXZhciBoZWFkID0g
dGVzdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhlYWQiKTsKLXRlc3REb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGhlYWQsIHRlc3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQu
Zmlyc3RDaGlsZCk7Ci0KLXRlc3REb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICc8ZGl2PmE8L2Rp
dj4nOwotdmFyIGRpdiA9IHRlc3REb2N1bWVudC5ib2R5LmNoaWxkTm9kZXNbMF07Ci1zaG91bGRC
ZSgnYWRkU2hhZG93VHJlZVdpdGhEaXZFbGVtZW50KGRpdik7IHJhbmdlLnNlbGVjdE5vZGVDb250
ZW50cyhpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChkaXYpKTsgaW50ZXJuYWxzLnJhbmdlQXNU
ZXh0KHJhbmdlKScsICciYiInKTsKLQotc2hvdWxkQmUoJ2FwcGVuZEJyRWxlbWVudChpbnRlcm5h
bHMub2xkZXN0U2hhZG93Um9vdChkaXYpLmNoaWxkTm9kZXNbMF0pOyByYW5nZS5zZWxlY3ROb2Rl
Q29udGVudHMoaW50ZXJuYWxzLm9sZGVzdFNoYWRvd1Jvb3QoZGl2KSk7IGludGVybmFscy5yYW5n
ZUFzVGV4dChyYW5nZSknLCAnImJcXG4iJyk7Ci0KLWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
c3ViZnJhbWUpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2FjY2Vz
cy1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9hY2Nlc3Mta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2FjY2Vzcy1rZXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEzICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGFjY2Vzc2tleSB3b3Jr
cyBpbiByZWdhcmQgdG8gc2hhZG93IERPTSBib3VuZGFyeS4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBE
UlQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLVBBU1MgZGlzcGF0Y2hlZEV2
ZW50KCJmb2N1cyIpIGlzIFsiaW5wdXRFIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIp
IGlzIFsiaW5wdXRFIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpIGlzIFsiaW5wdXRF
Il0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWNjZXNzLWtleS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY2Nlc3Mta2V5Lmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY2Nlc3Mta2V5Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlk
PSJzYW5kYm94Ij48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBhY2Nlc3NrZXkgd29ya3MgaW4gcmVnYXJk
IHRvIHNoYWRvdyBET00gYm91bmRhcnkuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJULiIpOwotCi1m
dW5jdGlvbiBwcmVzc0FjY2Vzc0tleShrZXkpCi17Ci0gICAgaWYgKG5hdmlnYXRvci51c2VyQWdl
bnQuc2VhcmNoKC9cYk1hYyBPUyBYXGIvKSAhPSAtMSkKLSAgICAgICAgbW9kaWZpZXJzID0gWyJj
dHJsS2V5IiwgImFsdEtleSJdOwotICAgIGVsc2UKLSAgICAgICAgbW9kaWZpZXJzID0gWyJhbHRL
ZXkiXTsKLSAgICBldmVudFNlbmRlci5rZXlEb3duKGtleSwgbW9kaWZpZXJzKTsKLX0KLQotdmFy
IGV2ZW50UmVjb3JkcyA9IHt9OwotCi1mdW5jdGlvbiBjbGVhckV2ZW50UmVjb3JkcygpCi17Ci0g
ICAgZXZlbnRSZWNvcmRzID0ge307Ci19Ci0KLWZ1bmN0aW9uIGRpc3BhdGNoZWRFdmVudChldmVu
dFR5cGUpCi17Ci0gICAgdmFyIGV2ZW50cyA9IGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdOwotICAg
IGlmICghZXZlbnRzKQotICAgICAgICByZXR1cm4gW107Ci0gICAgcmV0dXJuIGV2ZW50czsKLX0K
LQotZnVuY3Rpb24gcmVjb3JkRXZlbnQoZXZlbnQpCi17Ci0gICAgdmFyIGV2ZW50VHlwZSA9IGV2
ZW50LnR5cGUKLSAgICBpZiAoIWV2ZW50UmVjb3Jkc1tldmVudFR5cGVdKSB7Ci0gICAgICAgIGV2
ZW50UmVjb3Jkc1tldmVudFR5cGVdID0gW10KLSAgICB9Ci0gICAgZXZlbnRSZWNvcmRzW2V2ZW50
VHlwZV0ucHVzaChldmVudC50YXJnZXQuaWQpOwotfQotCi1mdW5jdGlvbiBwcmVwYXJlRE9NVHJl
ZShwYXJlbnQpCi17Ci0gICAgcGFyZW50LmFwcGVuZENoaWxkKAotICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZGl2QSd9LAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1
dCcsIHsnaWQnOiAnaW5wdXRCJ30pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ3NoYWRvd0MnLCAndGFiaW5kZXgnOiAwfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dEQnfSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0RScsICdhY2Nl
c3NrZXknOiAnYSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ3NoYWRvd0YnLCAndGFiaW5kZXgnOiAwfSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsn
aWQnOiAnaW5wdXRHJ30pKSkpKSkpOwotCi0gICAgdmFyIGlkcyA9IFsnaW5wdXRCJywKLSAgICAg
ICAgICAgICAgICdzaGFkb3dDL2lucHV0RCcsICdzaGFkb3dDL2lucHV0RScsCi0gICAgICAgICAg
ICAgICAnc2hhZG93Qy9zaGFkb3dGL2lucHV0RyddOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
aWRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0gZ2V0Tm9kZUluU2hhZG93
VHJlZVN0YWNrKGlkc1tpXSk7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9j
dXMnLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLQotICAgIHByZXBhcmVET01UcmVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5k
Ym94JykpOwotCi0gICAgLy8gUGxlYXNlIHNlZSB0aGUgZGlzY3Vzc2lvbiBvZiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwOTYuCi0gICAgLy8gV2UgZG9uJ3QgaGF2
ZSBhIGNsZWFyIGlkZWEgaG93IGFjY2Vzc2tleSBzaG91bGQgd29yayBpbiByZWdhcmQgdG8gc2hh
ZG93IERPTS4KLSAgICAvLyBJbiBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBhY2Nlc3NrZXlzIGRl
ZmluZWQgaW5zaWRlIG9mIGNvbXBvbmVudHMgYXJlIGV4cG9zZWQgdG8gYW4gb3V0ZXIgZG9jdW1l
bnQuCi0gICAgLy8gRXZlcnkgYWNjZXNza2V5cyBhcmUgZmxhdHRlbmVkIHBlciBlYWNoIGRvY3Vt
ZW50LgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dEInKS5mb2N1cygpOwotICAg
IGNsZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgcHJlc3NBY2Nlc3NLZXkoJ2EnKTsKLSAgICBzaG91
bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1siaW5wdXRFIl0nKTsKLQotICAgIGdl
dE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93Qy9pbnB1dEQnKS5mb2N1cygpOwotICAgIGNs
ZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgcHJlc3NBY2Nlc3NLZXkoJ2EnKTsKLSAgICBzaG91bGRC
ZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1siaW5wdXRFIl0nKTsKLQotICAgIGdldE5v
ZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93Qy9zaGFkb3dGL2lucHV0RycpLmZvY3VzKCk7Ci0g
ICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBwcmVzc0FjY2Vzc0tleSgnYScpOwotICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJpbnB1dEUiXScpOwotfQotCi10
ZXN0KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9hY3RpdmVlbGVtZW50LXNob3VsZC1iZS1zaGFkb3dob3N0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWN0aXZl
ZWxlbWVudC1zaG91bGQtYmUtc2hhZG93aG9zdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY3RpdmVlbGVtZW50LXNob3VsZC1i
ZS1zaGFkb3dob3N0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBA
Ci1NYWtlcyBzdXJlIHRoYXQgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCByZXR1cm5zIGEgc2hhZG93
IGhvc3Qgd2hlbiBhIGVsZW1lbnQgaW4gdGhlIGNvcnJlc3BvaW5kaW5nIHNoYWRvdyB0cmVlIGlz
IGZvY3VzZWQuCi0KLQotRm9jdXNpbmcgdG9wL2lucHV0MAotUEFTUzogdG9wIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQgaXMgdG9wL3NoYWRvdzAKLVBBU1M6IHRvcC9pZnJhbWUxIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTEvZG9jMV9ib2R5Ci1QQVNTOiB0b3AvaWZyYW1lMyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWUzL2RvYzNfYm9keQotUEFTUzogdG9w
L2lmcmFtZTQgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1lNC9kb2M0X2JvZHkK
LVBBU1M6IHRvcC9pZnJhbWU0L2lmcmFtZTRfMSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRv
cC9pZnJhbWU0L2lmcmFtZTRfMS9kb2M0XzFfYm9keQotCi1Gb2N1c2luZyB0b3AvaWZyYW1lMS9p
bnB1dDEKLVBBU1M6IHRvcCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWUxCi1Q
QVNTOiB0b3AvaWZyYW1lMSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWUxL3No
YWRvdzEKLVBBU1M6IHRvcC9pZnJhbWUzIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lm
cmFtZTMvZG9jM19ib2R5Ci1QQVNTOiB0b3AvaWZyYW1lNCBkb2N1bWVudC5hY3RpdmVFbGVtZW50
IGlzIHRvcC9pZnJhbWU0L2RvYzRfYm9keQotUEFTUzogdG9wL2lmcmFtZTQvaWZyYW1lNF8xIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQvaWZyYW1lNF8xL2RvYzRfMV9ib2R5
Ci0KLUZvY3VzaW5nIHRvcC9pbnB1dDIKLVBBU1M6IHRvcCBkb2N1bWVudC5hY3RpdmVFbGVtZW50
IGlzIHRvcC9zaGFkb3cyCi1QQVNTOiB0b3AvaWZyYW1lMSBkb2N1bWVudC5hY3RpdmVFbGVtZW50
IGlzIHRvcC9pZnJhbWUxL2RvYzFfYm9keQotUEFTUzogdG9wL2lmcmFtZTMgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1lMy9kb2MzX2JvZHkKLVBBU1M6IHRvcC9pZnJhbWU0IGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQvZG9jNF9ib2R5Ci1QQVNTOiB0b3Av
aWZyYW1lNC9pZnJhbWU0XzEgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1lNC9p
ZnJhbWU0XzEvZG9jNF8xX2JvZHkKLQotRm9jdXNpbmcgdG9wL2lmcmFtZTMvaW5wdXQzCi1QQVNT
OiB0b3AgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3Avc2hhZG93MwotUEFTUzogdG9wL2lm
cmFtZTEgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1lMS9kb2MxX2JvZHkKLVBB
U1M6IHRvcC9pZnJhbWUzIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTMvaW5w
dXQzCi1QQVNTOiB0b3AvaWZyYW1lNCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJh
bWU0L2RvYzRfYm9keQotUEFTUzogdG9wL2lmcmFtZTQvaWZyYW1lNF8xIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQvaWZyYW1lNF8xL2RvYzRfMV9ib2R5Ci0KLUZvY3VzaW5n
IHRvcC9pZnJhbWU0L2lmcmFtZTRfMS9pbnB1dDQKLVBBU1M6IHRvcCBkb2N1bWVudC5hY3RpdmVF
bGVtZW50IGlzIHRvcC9pZnJhbWU0Ci1QQVNTOiB0b3AvaWZyYW1lMSBkb2N1bWVudC5hY3RpdmVF
bGVtZW50IGlzIHRvcC9pZnJhbWUxL2RvYzFfYm9keQotUEFTUzogdG9wL2lmcmFtZTMgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1lMy9kb2MzX2JvZHkKLVBBU1M6IHRvcC9pZnJh
bWU0IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQvaWZyYW1lNF8xCi1QQVNT
OiB0b3AvaWZyYW1lNC9pZnJhbWU0XzEgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZy
YW1lNC9pZnJhbWU0XzEvaW5wdXQ0Ci0KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2FjdGl2ZWVsZW1lbnQtc2hvdWxkLWJlLXNoYWRvd2hvc3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWN0aXZlZWxlbWVudC1zaG91bGQtYmUtc2hh
ZG93aG9zdC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvYWN0aXZlZWxlbWVudC1zaG91bGQtYmUtc2hhZG93aG9zdC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE0NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08
cD4KLU1ha2VzIHN1cmUgdGhhdCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHJldHVybnMgYSBzaGFk
b3cgaG9zdCB3aGVuIGEgZWxlbWVudCBpbiB0aGUgY29ycmVzcG9pbmRpbmcgc2hhZG93IHRyZWUg
aXMgZm9jdXNlZC4KLTwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLWZ1
bmN0aW9uIGRlc2NyaWJlKG9iaikgewotICAgIGlmIChvYmogPT09IGRvY3VtZW50KQotICAgICAg
ICByZXR1cm4gJ3RvcCc7Ci0gICAgaWYgKG9iai5kZWZhdWx0VmlldyAmJiBvYmouZGVmYXVsdFZp
ZXcuZnJhbWVFbGVtZW50KQotICAgICAgICByZXR1cm4gZGVzY3JpYmUob2JqLmRlZmF1bHRWaWV3
LmZyYW1lRWxlbWVudCk7Ci0gICAgcmV0dXJuIGRlc2NyaWJlKG9iai5vd25lckRvY3VtZW50KSAr
ICcvJyArIG9iai5pZDsKLX0KLQotZnVuY3Rpb24gcHJpbnQocykgewotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykudGV4dENvbnRlbnQgKz0gcyArICdcbic7Ci19Ci0KLWZ1
bmN0aW9uIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jLCBleHBlY3RlZCkgewotICAgIGlmIChkb2Mu
YWN0aXZlRWxlbWVudCA9PT0gZXhwZWN0ZWQpCi0gICAgICAgIHByaW50KCdQQVNTOiAnICsgZGVz
Y3JpYmUoZG9jKSArICcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyAnICsgZGVzY3JpYmUoZG9j
LmFjdGl2ZUVsZW1lbnQpKTsKLSAgICBlbHNlCi0gICAgICAgIHByaW50KCdGQUlMOiAnICsgZGVz
Y3JpYmUoZG9jKSArICcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyAnICsgZGVzY3JpYmUoZG9j
LmFjdGl2ZUVsZW1lbnQpICsgJyBidXQgZXhwZWN0ZWQgJyArIGRlc2NyaWJlKGV4cGVjdGVkKSk7
Ci19Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotCi0gIGZ1bmN0aW9uIHNoYWRvd1Jvb3Qoc2hhZG93SG9zdCkgewotICAgIHJldHVybiBp
bnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChzaGFkb3dIb3N0KTsKLSAgfQotCi0gIGZ1bmN0aW9u
IGFwcGVuZENoaWxkVG9TaGFkb3coc2hhZG93SG9zdCwgY2hpbGQpIHsKLSAgICByZXR1cm4gc2hh
ZG93Um9vdChzaGFkb3dIb3N0KS5hcHBlbmRDaGlsZChjaGlsZCkKLSAgfQotCi0gIGZ1bmN0aW9u
IGFwcGVuZFNoYWRvd0hvc3QoZG9jLCBwYXJlbnQpIHsKLSAgICB2YXIgc2hhZG93SG9zdCA9IGRv
Yy5jcmVhdGVFbGVtZW50KCdwJyk7Ci0gICAgc2hhZG93SG9zdC50YWJJbmRleCA9IDE7ICAvLyBN
YWtlcyBzdXJlIHRoYXQgdGhlIHNoYWRvdyBob3N0IGlzIGZvY3VzYWJsZS4KLSAgICBwYXJlbnQg
PSBwYXJlbnQgfHwgZG9jLmJvZHk7Ci0gICAgcmV0dXJuIHBhcmVudC5hcHBlbmRDaGlsZChzaGFk
b3dIb3N0KTsKLSAgfQotCi0gIC8vIEZvciByZWFkYWJpbGl0eSwgSSBub3RlZCBhIERPTSB0cmVl
IHdoaWNoIGlzIHVuZGVyIHRoZSB0ZXN0IGhlcmUuCi0gIC8vCi0gIC8vIC0gZG9jdW1lbnQgKGRv
YzApCi0gIC8vICAgLSBzaGFkb3cwCi0gIC8vICAgICAtIGlucHV0MAotICAvLyAgIC0gaWZyYW1l
MSAoZG9jMSkKLSAgLy8gICAgIC0gc2hhZG93MQotICAvLyAgICAgICAtIGlucHV0MQotICAvLyAg
IC0gc2hhZG93MgotICAvLyAgICAgLSBzaGFkb3cyXzEKLSAgLy8gICAgICAgLSBpbnB1dDIKLSAg
Ly8gICAtIHNoYWRvdzMKLSAgLy8gICAgIC0gaWZyYW1lMyAoZG9jMykKLSAgLy8gICAgICAgLSBp
bnB1dDMKLSAgLy8gICAtIGlmcmFtZTQgKGRvYzQpCi0gIC8vICAgICAtIGlmcmFtZTRfMSAoZG9j
NF8xKQotICAvLyAgICAgICAtIGlucHV0NAotICB2YXIgZG9jMCA9IGRvY3VtZW50OwotICB2YXIg
c2hhZG93MCA9IGFwcGVuZFNoYWRvd0hvc3QoZG9jMCk7Ci0gIHZhciBpbnB1dDAgPSBhcHBlbmRD
aGlsZFRvU2hhZG93KHNoYWRvdzAsIGRvYzAuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7Ci0KLSAg
dmFyIGlmcmFtZTEgPSBkb2MwLmJvZHkuYXBwZW5kQ2hpbGQoZG9jMC5jcmVhdGVFbGVtZW50KCdp
ZnJhbWUnKSk7Ci0gIHZhciBkb2MxID0gaWZyYW1lMS5jb250ZW50RG9jdW1lbnQ7Ci0gIHZhciBz
aGFkb3cxID0gYXBwZW5kU2hhZG93SG9zdChkb2MxKTsKLSAgdmFyIGlucHV0MSA9IGFwcGVuZENo
aWxkVG9TaGFkb3coc2hhZG93MSwgZG9jMS5jcmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKLQotICB2
YXIgc2hhZG93MiA9IGFwcGVuZFNoYWRvd0hvc3QoZG9jMCk7Ci0gIHZhciBzaGFkb3cyXzEgPSBh
cHBlbmRTaGFkb3dIb3N0KGRvYzAsIHNoYWRvd1Jvb3Qoc2hhZG93MikpOwotICB2YXIgaW5wdXQy
ID0gYXBwZW5kQ2hpbGRUb1NoYWRvdyhzaGFkb3cyXzEsIGRvYzAuY3JlYXRlRWxlbWVudCgnaW5w
dXQnKSk7Ci0KLSAgdmFyIHNoYWRvdzMgPSBhcHBlbmRTaGFkb3dIb3N0KGRvYzApOwotICB2YXIg
aWZyYW1lMyA9IGFwcGVuZENoaWxkVG9TaGFkb3coc2hhZG93MywgZG9jMC5jcmVhdGVFbGVtZW50
KCdpZnJhbWUnKSkKLSAgdmFyIGRvYzMgPSBpZnJhbWUzLmNvbnRlbnREb2N1bWVudDsKLSAgdmFy
IGlucHV0MyA9IGRvYzMuYm9keS5hcHBlbmRDaGlsZChkb2MzLmNyZWF0ZUVsZW1lbnQoJ2lucHV0
JykpCi0KLSAgLy8gQWx0aG91Z2h0IHRoaXMgc3VidHJlZSAoaWZyYW1lNCkgZG9lc24ndCBjb250
YWluIGFueSBleHBsaWNpdCBzaGFkb3cgaG9zdHMsCi0gIC8vIHRoaXMgbWlnaHQgYmUgdXNlZnVs
IGFzIGEgcmVmZXJlbmNlLgotICB2YXIgaWZyYW1lNCA9IGRvYzAuYm9keS5hcHBlbmRDaGlsZChk
b2MwLmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKLSAgdmFyIGRvYzQgPSBpZnJhbWU0LmNvbnRl
bnREb2N1bWVudDsKLSAgdmFyIGlmcmFtZTRfMSA9IGRvYzQuYm9keS5hcHBlbmRDaGlsZChkb2M0
LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKLSAgdmFyIGRvYzRfMSA9IGlmcmFtZTRfMS5jb250
ZW50RG9jdW1lbnQ7Ci0gIHZhciBpbnB1dDQgPSBkb2M0XzEuYm9keS5hcHBlbmRDaGlsZChkb2M0
XzEuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7Ci0KLSAgLy8gU2V0IHVwIElEcyBmb3IgbG9nZ2lu
Zy4KLSAgdmFyIGVsZW1lbnRzID0gWydzaGFkb3cwJywnc2hhZG93MScsICdzaGFkb3cyJywgJ3No
YWRvdzJfMScsICdzaGFkb3czJywKLSAgICAgICAgICAgICAgICAgICdpbnB1dDAnLCAnaW5wdXQx
JywgJ2lucHV0MicsICdpbnB1dDMnLCAnaW5wdXQ0JywKLSAgICAgICAgICAgICAgICAgICdpZnJh
bWUxJywgJ2lmcmFtZTMnLCAnaWZyYW1lNCcsICdpZnJhbWU0XzEnXTsKLSAgZm9yICh2YXIgaSA9
IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewotICAgIHZhciBpZCA9IGVsZW1lbnRzW2ld
OwotICAgIHdpbmRvd1tpZF0uaWQgPSBpZDsKLSAgfQotICB2YXIgZG9jcyA9IFsnZG9jMCcsICdk
b2MxJywgJ2RvYzMnLCAnZG9jNCcsICdkb2M0XzEnXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBk
b2NzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdmFyIGlkID0gZG9jc1tpXTsKLSAgICB3aW5kb3dbaWRd
LmJvZHkuaWQgPSBpZCArICdfYm9keSc7Ci0gIH0KLQotICBwcmludCgnXG5Gb2N1c2luZyAnICsg
ZGVzY3JpYmUoaW5wdXQwKSk7Ci0gIGlucHV0MC5mb2N1cygpOwotICBhc3NlcnRBY3RpdmVFbGVt
ZW50KGRvYzAsIHNoYWRvdzApOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzEsIGRvYzEuYm9k
eSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMywgZG9jMy5ib2R5KTsKLSAgYXNzZXJ0QWN0
aXZlRWxlbWVudChkb2M0LCBkb2M0LmJvZHkpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzRf
MSwgZG9jNF8xLmJvZHkpOwotCi0gIHByaW50KCdcbkZvY3VzaW5nICcgKyBkZXNjcmliZShpbnB1
dDEpKTsKLSAgaW5wdXQxLmZvY3VzKCk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMCwgaWZy
YW1lMSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMSwgc2hhZG93MSk7Ci0gIGFzc2VydEFj
dGl2ZUVsZW1lbnQoZG9jMywgZG9jMy5ib2R5KTsKLSAgYXNzZXJ0QWN0aXZlRWxlbWVudChkb2M0
LCBkb2M0LmJvZHkpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzRfMSwgZG9jNF8xLmJvZHkp
OwotCi0gIHByaW50KCdcbkZvY3VzaW5nICcgKyBkZXNjcmliZShpbnB1dDIpKTsKLSAgaW5wdXQy
LmZvY3VzKCk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMCwgc2hhZG93Mik7Ci0gIGFzc2Vy
dEFjdGl2ZUVsZW1lbnQoZG9jMSwgZG9jMS5ib2R5KTsKLSAgYXNzZXJ0QWN0aXZlRWxlbWVudChk
b2MzLCBkb2MzLmJvZHkpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzQsIGRvYzQuYm9keSk7
Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jNF8xLCBkb2M0XzEuYm9keSk7Ci0KLSAgcHJpbnQo
J1xuRm9jdXNpbmcgJyArIGRlc2NyaWJlKGlucHV0MykpOwotICBpbnB1dDMuZm9jdXMoKTsKLSAg
YXNzZXJ0QWN0aXZlRWxlbWVudChkb2MwLCBzaGFkb3czKTsKLSAgYXNzZXJ0QWN0aXZlRWxlbWVu
dChkb2MxLCBkb2MxLmJvZHkpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzMsIGlucHV0Myk7
Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jNCwgZG9jNC5ib2R5KTsKLSAgYXNzZXJ0QWN0aXZl
RWxlbWVudChkb2M0XzEsIGRvYzRfMS5ib2R5KTsKLQotICBwcmludCgnXG5Gb2N1c2luZyAnICsg
ZGVzY3JpYmUoaW5wdXQ0KSk7Ci0gIGlucHV0NC5mb2N1cygpOwotICBhc3NlcnRBY3RpdmVFbGVt
ZW50KGRvYzAsIGlmcmFtZTQpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzEsIGRvYzEuYm9k
eSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMywgZG9jMy5ib2R5KTsKLSAgYXNzZXJ0QWN0
aXZlRWxlbWVudChkb2M0LCBpZnJhbWU0XzEpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzRf
MSwgaW5wdXQ0KTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2Fkb3B0LW5vZGUtd2l0aC1zaGFkb3ctcm9vdC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Fkb3B0LW5v
ZGUtd2l0aC1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hZG9wdC1ub2RlLXdpdGgtc2hhZG93LXJvb3QtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi1QQVNTIGRvY3VtZW50LmFkb3B0Tm9k
ZShzaGFkb3cpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBE
T00gRXhjZXB0aW9uIDMuCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hZG9w
dC1ub2RlLXdpdGgtc2hhZG93LXJvb3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvYWRvcHQtbm9kZS13aXRoLXNoYWRvdy1yb290Lmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hZG9wdC1ub2RlLXdpdGgt
c2hhZG93LXJvb3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci08b2JqZWN0IGRhdGE9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEZO
V1IxUmxjM1JEWVhObElHbGtQU0p6SWo0PSIgaWQ9InJvb3QiIG9ubG9hZD0idGVzdCgpIi8+Ci08
c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICB2YXIgZm9yZWlnbkRvY3VtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKS5jb250ZW50RG9jdW1lbnQ7Ci0gICAgc2hhZG93
ID0gZm9yZWlnbkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzJykud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotICAgIHNob3VsZFRocm93KCJkb2N1bWVudC5hZG9wdE5vZGUoc2hhZG93KSIpOwot
ICAgIGxvY2F0aW9uLnJlbG9hZCgpOwotfQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWFwcGx5LWR5bmFtaWNh
bGx5LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2F0aG9zdC1hcHBseS1keW5hbWljYWxseS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWFwcGx5LWR5bmFtaWNh
bGx5LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci0gIDxkaXY+QnVnIDExMjg2OSAtIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4NjkiPmh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4Njk8L2E+W3NoYWRvd10gQGhvc3Qgc3R5
bGVzIGFyZSBub3QgYXBwbGllZCBkeW5hbWljY2FseS48L2Rpdj4KLSAgPGRpdiBpZD0iaG9zdDEi
IGNsYXNzPSJzZWxlY3RlZCIgc3R5bGU9ImJhY2tncm91bmQ6Z3JlZW4iPkkgc2hvdWxkIGJlIGdy
ZWVuITwvZGl2PgotICA8YnI+Ci0gIDxwIGlkPSJob3N0MiIgc3R5bGU9ImJhY2tncm91bmQ6Z3Jl
ZW4iPkkgc2hvdWxkIGJlIGdyZWVuITwvcD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hdGhvc3QtYXBwbHktZHluYW1pY2FsbHkuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWFwcGx5LWR5bmFt
aWNhbGx5Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9hdGhvc3QtYXBwbHktZHluYW1pY2FsbHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwz
MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1m
dW5jdGlvbiBhZGRTaGFkb3dSb290KGluTm9kZSkgewotICAgIHZhciByb290ID0gaW5Ob2RlLndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICByb290LmlubmVySFRNTCA9ICc8c3R5bGU+QGhv
c3QgeyAqLnNlbGVjdGVkIHsgYmFja2dyb3VuZDogZ3JlZW47IH0gfTwvc3R5bGU+SSBzaG91bGQg
YmUgZ3JlZW4hJzsKLX0KLSAgICAKLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgdmFyIGhvc3Qx
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QxJyk7Ci0gICAgdmFyIGhvc3QyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QyJyk7Ci0gICAgYWRkU2hhZG93Um9vdChob3N0MSk7
Ci0gICAgYWRkU2hhZG93Um9vdChob3N0Mik7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
LSAgICAgIGludGVybmFscy5hZGRyZXNzKGhvc3QyKTsKLSAgICAgIGhvc3QyLmNsYXNzTGlzdC5h
ZGQoJ3NlbGVjdGVkJyk7Ci0gICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9LCAw
KQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gIDxk
aXY+QnVnIDExMjg2OSAtIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTI4NjkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTI4Njk8L2E+W3NoYWRvd10gQGhvc3Qgc3R5bGVzIGFyZSBub3QgYXBwbGllZCBkeW5hbWljY2Fs
eS48L2Rpdj4KLSAgPGRpdiBpZD0iaG9zdDEiIGNsYXNzPSJzZWxlY3RlZCI+PC9kaXY+Ci0gIDxi
cj4KLSAgPHAgaWQ9Imhvc3QyIj48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWF0cnVsZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hdGhvc3QtYXRydWxlcy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9h
dGhvc3QtYXRydWxlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTUgKzAsMCBA
QAotaG9zdDogcmdiKDI1NSwgMCwgMCkKLWhvc3Q6IHJnYigyNTUsIDAsIDApCi1ob3N0QTogcmdi
KDI1NSwgMCwgMCkKLWhvc3RCOiByZ2IoMCwgMCwgMjU1KQotaG9zdDogcmdiKDAsIDAsIDI1NSkK
LWhvc3Q6IHJnYigxMjgsIDEyOCwgMTI4KQotaG9zdDogcmdiKDAsIDAsIDI1NSkKLWhvc3Q6IHJn
YigwLCAwLCAyNTUpCi1ob3N0OiByZ2IoMTI4LCAxMjgsIDEyOCkKLWhvc3Q6IHJnYigyNTUsIDI1
NSwgMCkKLWhvc3Q6IHJnYigyNTUsIDAsIDApCi1uZXN0ZWRIb3N0OiByZ2IoMCwgMCwgMjU1KQot
aG9zdDogcmdiKDI1NSwgMCwgMCkKLWhvc3Q6IHJnYigyNTUsIDI1NSwgMCkKLUhlbGxvCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWF0cnVsZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWF0cnVsZXMuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2F0aG9zdC1h
dHJ1bGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkwICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNob3N0IHsKLSAgY29sb3I6IGdyYXk7Ci19
Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkdW1wQ29tcHV0ZWRTdHlsZShub2RlKQotewotICAgIGRl
YnVnKG5vZGUuaWQgKyAiOiAiICsgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHls
ZShub2RlLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdjb2xvcicpKTsKLX0KLQotZnVuY3Rpb24g
cHJlcHJvY2Vzc0ZvclRlc3QoKQotewotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicGFyZW50Iik7Ci0gICAgcGFyZW50LmlubmVySFRNTCA9ICc8ZGl2IGlkPSJob3N0
Ij48c3Bhbj5IZWxsbzwvc3Bhbj48L2Rpdj4nOwotfQotCi1mdW5jdGlvbiB0ZXN0U2ltcGxlQ29u
dGVudENhc2UoKQotewotICAgIHByZXByb2Nlc3NGb3JUZXN0KCk7Ci0gICAgdmFyIGhvc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotICAgIHZhciBzaGFkb3cgPSBob3N0Lndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3cuaW5uZXJIVE1MID0gIjxzdHlsZT5A
aG9zdCB7IGRpdiB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PGNvbnRlbnQ+PC9jb250ZW50PiI7
Ci0gICAgZHVtcENvbXB1dGVkU3R5bGUoaG9zdCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTaW1wbGVT
aGFkb3dDYXNlKCkKLXsKLSAgICBwcmVwcm9jZXNzRm9yVGVzdCgpOwotICAgIHZhciBob3N0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKTsKLSAgICB2YXIgc2hhZG93ID0gaG9zdC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc2hhZG93LmlubmVySFRNTCA9ICI8c3R5bGU+
QGhvc3QgeyBkaXYgeyBjb2xvcjogcmVkOyB9IH08L3N0eWxlPjxzaGFkb3c+PC9zaGFkb3c+IjsK
LSAgICBkdW1wQ29tcHV0ZWRTdHlsZShob3N0KTsKLX0KLQotZnVuY3Rpb24gdGVzdEhvc3RXaXRo
U2VsZWN0b3IoKQotewotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cGFyZW50Iik7Ci0gICAgcGFyZW50LmlubmVySFRNTCA9ICI8c3R5bGUgc2NvcGVkPiAuaG9zdCB7
IGNvbG9yOiBncmF5IH07PC9zdHlsZT4iCi0gICAgICAgICsgIjxkaXYgaWQ9J2hvc3RBJyBjbGFz
cz0naG9zdCc+PHNwYW4+SGVsbG88L3NwYW4+PC9kaXY+IgotICAgICAgICArICI8c3BhbiBpZD0n
aG9zdEInIGNsYXNzPSdob3N0Jz48c3Bhbj5Xb3JsZDwvc3Bhbj48L3NwYW4+IjsKLQotICAgIHZh
ciBob3N0QSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0QSIpOwotICAgIHZhciBzaGFk
b3dBID0gaG9zdEEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHZhciBzdHlsZSA9ICI8
c3R5bGU+QGhvc3QgeyBkaXYgeyBjb2xvcjogcmVkOyB9IHNwYW4geyBjb2xvcjogYmx1ZTsgfSB9
PC9zdHlsZT4iOwotICAgIHNoYWRvd0EuaW5uZXJIVE1MID0gc3R5bGUgKyAiPHNoYWRvdz48L3No
YWRvdz4iOwotCi0gICAgdmFyIGhvc3RCID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3RC
Iik7Ci0gICAgdmFyIHNoYWRvd0IgPSBob3N0Qi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0g
ICAgc2hhZG93Qi5pbm5lckhUTUwgPSBzdHlsZSArICI8c2hhZG93Pjwvc2hhZG93PiI7Ci0KLSAg
ICBkdW1wQ29tcHV0ZWRTdHlsZShob3N0QSk7Ci0gICAgZHVtcENvbXB1dGVkU3R5bGUoaG9zdEIp
OwotfQotCi1mdW5jdGlvbiB0ZXN0UHNldWRvSG9zdFdpdGhTY29wZWQoKQotewotICAgIHByZXBy
b2Nlc3NGb3JUZXN0KCk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aG9zdCIpOwotICAgIHZhciBzaGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBzaGFkb3cuaW5uZXJIVE1MID0gIjxkaXY+PHN0eWxlIHNjb3BlZD5AaG9zdCB7IGRpdiB7
IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PHNoYWRvdz48L3NoYWRvdz48ZGl2PjxzdHlsZSBzY29w
ZWQ+QGhvc3QgeyBkaXYgeyBjb2xvcjogYmx1ZTsgfSB9PC9zdHlsZT48L2Rpdj48L2Rpdj4iOwot
ICAgIGR1bXBDb21wdXRlZFN0eWxlKGhvc3QpOwotfQotCi1mdW5jdGlvbiB0ZXN0UHNldWRvSG9z
dFdpdGhGYWxsYmFja1NoYWRvdygpCi17Ci0gICAgcHJlcHJvY2Vzc0ZvclRlc3QoKTsKLSAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIG9sZGVz
dFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHZhciB5b3VuZ2Vz
dFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIG9sZGVzdFNoYWRv
dy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6IHJlZDsgfSB9PC9zdHls
ZT48Y29udGVudD48L2NvbnRlbnQ+IjsKLSAgICB5b3VuZ2VzdFNoYWRvdy5pbm5lckhUTUwgPSAi
PGNvbnRlbnQ+PHNoYWRvdz48L3NoYWRvdz48L2NvbnRlbnQ+IjsKLSAgICBkdW1wQ29tcHV0ZWRT
dHlsZShob3N0KTsKLX0KLQotZnVuY3Rpb24gdGVzdFR3b1NoYWRvd1Jvb3RzQ2FzZSgpCi17Ci0g
ICAgcHJlcHJvY2Vzc0ZvclRlc3QoKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIG9sZGVzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotICAgIHZhciB5b3VuZ2VzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotICAgIG9sZGVzdFNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0
IHsgZGl2IHsgY29sb3I6IHJlZDsgfSB9PC9zdHlsZT48Y29udGVudD48L2NvbnRlbnQ+IjsKLSAg
ICB5b3VuZ2VzdFNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6
IGJsdWU7IH0gfTwvc3R5bGU+PHNoYWRvdz48L3NoYWRvdz4iOwotICAgIGR1bXBDb21wdXRlZFN0
eWxlKGhvc3QpOwotfQotCi1mdW5jdGlvbiB0ZXN0VHdvU2hhZG93Um9vdHNDcmVhdGluZ0RpZmZl
cmVudE9yZGVyQ2FzZSgpCi17Ci0gICAgcHJlcHJvY2Vzc0ZvclRlc3QoKTsKLSAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIG9sZGVzdFNoYWRv
dyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHZhciB5b3VuZ2VzdFNoYWRv
dyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHlvdW5nZXN0U2hhZG93Lmlu
bmVySFRNTCA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBjb2xvcjogYmx1ZTsgfSB9PC9zdHlsZT48
c2hhZG93Pjwvc2hhZG93PiI7Ci0gICAgb2xkZXN0U2hhZG93LmlubmVySFRNTCA9ICI8c3R5bGU+
QGhvc3QgeyBkaXYgeyBjb2xvcjogcmVkOyB9IH08L3N0eWxlPjxjb250ZW50PjwvY29udGVudD4i
OwotICAgIGR1bXBDb21wdXRlZFN0eWxlKGhvc3QpOwotfQotCi1mdW5jdGlvbiB0ZXN0TXVsdGlw
bGVTaGFkb3dSb290c1dpdGhJbmVydFNoYWRvd0NvbnRlbnQoKQotewotICAgIHByZXByb2Nlc3NG
b3JUZXN0KCk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIp
OwotICAgIHZhciBvbGRlc3RTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICB2YXIgb2xkZXJTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAg
ICB2YXIgeW91bmdlclNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAg
IHZhciB5b3VuZ2VzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0g
ICAgeW91bmdlc3RTaGFkb3cuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IjsKLSAgICB5
b3VuZ2VyU2hhZG93LmlubmVySFRNTCA9ICI8Y29udGVudD48L2NvbnRlbnQ+IjsKLSAgICBvbGRl
clNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6IGdyZWVuOyB9
IH08L3N0eWxlPjxzaGFkb3c+PC9zaGFkb3c+IjsKLSAgICBvbGRlc3RTaGFkb3cuaW5uZXJIVE1M
ID0gIjxzdHlsZT5AaG9zdCB7IGRpdiB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PGNvbnRlbnQ+
PC9jb250ZW50PiI7Ci0gICAgZHVtcENvbXB1dGVkU3R5bGUoaG9zdCk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RNdWx0aXBsZVNoYWRvd1Jvb3RzV2l0aEluZXJ0U2hhZG93KCkKLXsKLSAgICBwcmVwcm9j
ZXNzRm9yVGVzdCgpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhv
c3QiKTsKLSAgICB2YXIgb2xkZXN0U2hhZG93ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0gICAgdmFyIG9sZGVyU2hhZG93ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci0gICAgdmFyIHlvdW5nZXJTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICB2YXIgeW91bmdlc3RTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LQotICAgIHlvdW5nZXN0U2hhZG93LmlubmVySFRNTCA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBj
b2xvcjogeWVsbG93OyB9IH08L3N0eWxlPjxzaGFkb3c+PC9zaGFkb3c+IjsKLSAgICB5b3VuZ2Vy
U2hhZG93LmlubmVySFRNTCA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBjb2xvcjogYmx1ZTsgfSB9
PC9zdHlsZT48ZGl2PmluZXJ0PC9kaXY+IjsKLSAgICBvbGRlclNoYWRvdy5pbm5lckhUTUwgPSAi
PHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6IGdyZWVuOyB9IH08L3N0eWxlPjxzaGFkb3c+PC9z
aGFkb3c+IjsKLSAgICBvbGRlc3RTaGFkb3cuaW5uZXJIVE1MID0gIjxzdHlsZT5AaG9zdCB7IGRp
diB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0gICAgZHVt
cENvbXB1dGVkU3R5bGUoaG9zdCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3ROZXN0ZWRDYXNlKCkKLXsK
LSAgICBwcmVwcm9jZXNzRm9yVGVzdCgpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImhvc3QiKTsKLSAgICB2YXIgb3V0ZXJTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICBvdXRlclNoYWRvdy5pbm5lckhUTUwgPSAnPHN0eWxlPkBob3N0
IHsgZGl2IHsgY29sb3I6IHJlZDsgfSB9PC9zdHlsZT48ZGl2IGlkPSJuZXN0ZWRIb3N0Ij5Jbm5l
clNoYWRvdzwvZGl2Pic7Ci0gICAgdmFyIG5lc3RlZCA9IG91dGVyU2hhZG93LmdldEVsZW1lbnRC
eUlkKCJuZXN0ZWRIb3N0Iik7Ci0gICAgdmFyIGlubmVyU2hhZG93ID0gbmVzdGVkLndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBpbm5lclNoYWRvdy5pbm5lckhUTUwgPSAnPHN0eWxlPkBo
b3N0IHsgZGl2IHsgY29sb3I6IGJsdWU7IH0gfTwvc3R5bGU+U2hvdyA8c2hhZG93Pjwvc2hhZG93
PiBpbiBvdXRlci4nOwotICAgIGR1bXBDb21wdXRlZFN0eWxlKGhvc3QpOwotICAgIGR1bXBDb21w
dXRlZFN0eWxlKG5lc3RlZCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RIb3N0VnNTY29wZWRTdHlsZSgp
Ci17Ci0gICAgcHJlcHJvY2Vzc0ZvclRlc3QoKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgaG9zdC5pbm5lckhUTUwgPSAiPHN0eWxlIHNjb3Bl
ZD4jaG9zdCB7IGNvbG9yOiB5ZWxsb3c7IH08L3N0eWxlPjxzcGFuPkhlbGxvPC9zcGFuPiI7Ci0g
ICAgdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRv
dy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgI2hvc3QgeyBjb2xvcjogcmVkOyB9IH08L3N0
eWxlPjxjb250ZW50PjwvY29udGVudD4iOwotICAgIGR1bXBDb21wdXRlZFN0eWxlKGhvc3QpOwot
fQotCi1mdW5jdGlvbiB0ZXN0SG9zdFZzSW5saW5lU3R5bGUoKQotewotICAgIHByZXByb2Nlc3NG
b3JUZXN0KCk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIp
OwotICAgIGhvc3Quc3R5bGUuY29sb3IgPSAieWVsbG93IjsKLSAgICBob3N0LmlubmVySFRNTCA9
ICI8c3Bhbj5IZWxsbzwvc3Bhbj4iOwotICAgIHZhciBzaGFkb3cgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3cuaW5uZXJIVE1MID0gIjxzdHlsZT5AaG9zdCB7IGRp
diB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0gICAgZHVt
cENvbXB1dGVkU3R5bGUoaG9zdCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3RzKCkKLXsKLSAgICB0
ZXN0U2ltcGxlQ29udGVudENhc2UoKTsKLSAgICB0ZXN0U2ltcGxlU2hhZG93Q2FzZSgpOwotICAg
IHRlc3RIb3N0V2l0aFNlbGVjdG9yKCk7Ci0gICAgdGVzdFBzZXVkb0hvc3RXaXRoU2NvcGVkKCk7
Ci0gICAgdGVzdFBzZXVkb0hvc3RXaXRoRmFsbGJhY2tTaGFkb3coKTsKLSAgICB0ZXN0VHdvU2hh
ZG93Um9vdHNDYXNlKCk7Ci0gICAgdGVzdFR3b1NoYWRvd1Jvb3RzQ3JlYXRpbmdEaWZmZXJlbnRP
cmRlckNhc2UoKTsKLSAgICB0ZXN0TXVsdGlwbGVTaGFkb3dSb290c1dpdGhJbmVydFNoYWRvd0Nv
bnRlbnQoKTsKLSAgICB0ZXN0TXVsdGlwbGVTaGFkb3dSb290c1dpdGhJbmVydFNoYWRvdygpOwot
ICAgIHRlc3ROZXN0ZWRDYXNlKCk7Ci0gICAgdGVzdEhvc3RWc1Njb3BlZFN0eWxlKCk7Ci0gICAg
dGVzdEhvc3RWc0lubGluZVN0eWxlKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdHMoKSI+Ci0gIDxkaXYgaWQ9InBhcmVudCI+Ci0gIDwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Jhc2UtaW4tc2hh
ZG93LXRyZWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9iYXNlLWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Jhc2UtaW4tc2hhZG93LXRyZWUtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzAsMCBAQAotUEFTUyBhbmNob3JJblNo
YWRvdy5ocmVmLmluZGV4T2YoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSBpcyAtMQotUEFTUyBh
bmNob3JJbkhvc3RDaGlsZHJlbi5ocmVmLmluZGV4T2YoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20i
KSBpcyAtMQotUEFTUyBhbmNob3JPdXRzaWRlT2ZTaGFkb3cuaHJlZi5pbmRleE9mKCJodHRwOi8v
d3d3LmV4YW1wbGUuY29tIikgaXMgLTEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotdGVoZXBlcm8KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9iYXNlLWluLXNoYWRvdy10cmVlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2Jhc2UtaW4tc2hhZG93LXRyZWUuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Jhc2UtaW4tc2hhZG93LXRyZWUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29udGFpbmVyIj48YSBpZD0iYW5jaG9yLWluLWhv
c3QtY2hpbGRyZW4iIGhyZWY9Ii8iPnRlaGVwZXJvPC9hPjwvZGl2PgotPGRpdj48YSBpZD0iYW5j
aG9yLW91dHNpZGUtb2Ytc2hhZG93IiBocmVmPSIvIj50ZWhlcGVybzwvYT48L2Rpdj4KLQotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWlu
ZXInKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBjb250YWluZXIud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotCi12YXIgYmFzZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Jhc2UnKTsKLWJhc2Uu
c2V0QXR0cmlidXRlKCdocmVmJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJyk7Ci12YXIgYW5j
aG9ySW5TaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7Ci1hbmNob3JJblNoYWRv
dy5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnLycpOwotCi1zaGFkb3dSb290LmFwcGVuZENoaWxkKGJh
c2UpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChhbmNob3JJblNoYWRvdyk7Ci0KLXZhciBhbmNo
b3JJbkhvc3RDaGlsZHJlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbmNob3ItaW4taG9z
dC1jaGlsZHJlbicpOwotdmFyIGFuY2hvck91dHNpZGVPZlNoYWRvdyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdhbmNob3Itb3V0c2lkZS1vZi1zaGFkb3cnKTsKLQotc2hvdWxkQmUoJ2FuY2hv
ckluU2hhZG93LmhyZWYuaW5kZXhPZigiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpJywgJy0xJyk7
Ci1zaG91bGRCZSgnYW5jaG9ySW5Ib3N0Q2hpbGRyZW4uaHJlZi5pbmRleE9mKCJodHRwOi8vd3d3
LmV4YW1wbGUuY29tIiknLCAnLTEnKTsKLXNob3VsZEJlKCdhbmNob3JPdXRzaWRlT2ZTaGFkb3cu
aHJlZi5pbmRleE9mKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiknLCAnLTEnKTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2NhcmV0LXJhbmdlLWZyb20tcG9pbnQtaW4tbmVzdGVkLXNoYWRvdy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NhcmV0LXJhbmdlLWZyb20t
cG9pbnQtaW4tbmVzdGVkLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jYXJldC1yYW5nZS1mcm9tLXBvaW50LWluLW5l
c3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzAsMCBAQAot
UEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUocmFuZ2Uuc3RhcnRDb250YWluZXIpIGlz
IGRvY3VtZW50Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZShyYW5nZS5lbmRDb250
YWluZXIpIGlzIGRvY3VtZW50Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NhcmV0LXJh
bmdlLWZyb20tcG9pbnQtaW4tbmVzdGVkLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jYXJldC1yYW5nZS1mcm9tLXBvaW50LWluLW5lc3RlZC1z
aGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NhcmV0LXJhbmdlLWZyb20tcG9pbnQtaW4tbmVzdGVkLXNoYWRvdy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotCi08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwv
cHJlPgotCi08c2NyaXB0PgotZnVuY3Rpb24gY3JlYXRlQm94KG5hbWUpIHsKLSAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LnN0eWxlLndpZHRoID0g
JzEwMHB4JzsKLSAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsKLQotICAgIGRpdi5hZGRF
dmVudExpc3RlbmVyKCdkcm9wJywgZnVuY3Rpb24oZSkgewotICAgICAgICBkZWJ1ZygnUEFTUzog
ZHJvcCBldmVudCBpcyBmaXJlZC4nKTsKLSAgICB9KTsKLQotICAgIHJldHVybiBkaXY7Ci19Ci0K
LXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxk
KGRpdik7Ci0KLXZhciBkYXJrUm9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12
YXIgYm94ID0gY3JlYXRlQm94KCdkYXJrJyk7Ci1kYXJrUm9vdC5hcHBlbmRDaGlsZChib3gpOwot
Ci12YXIgeCA9IGJveC5vZmZzZXRMZWZ0ICsgYm94Lm9mZnNldFdpZHRoIC8gMjsKLXZhciB5ID0g
Ym94Lm9mZnNldFRvcCArIGJveC5vZmZzZXRIZWlnaHQgLyAyOwotCi12YXIgcmFuZ2UgPSBkb2N1
bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KHgsIHkpOwotCi1zaG91bGRCZSgiaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHJhbmdlLnN0YXJ0Q29udGFpbmVyKSIsICJkb2N1bWVudCIpOwotc2hv
dWxkQmUoImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZShyYW5nZS5lbmRDb250YWluZXIpIiwg
ImRvY3VtZW50Iik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb21wYXJlLWRvY3VtZW50LXBvc2l0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcGFyZS1kb2N1bWVudC1wb3NpdGlvbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb21wYXJlLWRvY3VtZW50LXBvc2l0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwyMyArMCwwIEBACi1UZXN0cyBmb3IgTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbigp
IGZvciBub2RlcyBpbiBzaGFkb3cgdHJlZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1MgYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYTIpIGlzIE5vZGUuRE9DVU1FTlRf
UE9TSVRJT05fQ09OVEFJTkVEX0JZIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcK
LVBBU1MgYTIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYTEpIGlzIE5vZGUuRE9DVU1FTlRfUE9T
SVRJT05fQ09OVEFJTlMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORwotUEFTUyBh
Mi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhMykgaXMgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9G
T0xMT1dJTkcKLVBBU1MgYjEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjIpIGlzIE5vZGUuRE9D
VU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xM
T1dJTkcKLVBBU1MgYjIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpIGlzIE5vZGUuRE9DVU1F
TlRfUE9TSVRJT05fQ09OVEFJTlMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORwot
UEFTUyBiMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiMykgaXMgTm9kZS5ET0NVTUVOVF9QT1NJ
VElPTl9GT0xMT1dJTkcKLVBBU1MgYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpICYgTm9k
ZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcgfHwgYTEuY29tcGFyZURvY3VtZW50UG9zaXRp
b24oYjEpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcgaXMgbm9uLXplcm8uCi1Q
QVNTIGExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJ
T05fRElTQ09OTkVDVEVEIGlzIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVECi1Q
QVNTIGExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJ
T05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgaXMgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBM
RU1FTlRBVElPTl9TUEVDSUZJQwotUEFTUyBhMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiMSkg
aXMgYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpCi1QQVNTIGIxLmNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uKGMxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIHx8IGIxLmNv
bXBhcmVEb2N1bWVudFBvc2l0aW9uKGMxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9X
SU5HIGlzIG5vbi16ZXJvLgotUEFTUyBiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgJiBO
b2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCBpcyBOb2RlLkRPQ1VNRU5UX1BPU0lU
SU9OX0RJU0NPTk5FQ1RFRAotUEFTUyBiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgJiBO
b2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDIGlzIE5vZGUuRE9D
VU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMKLVBBU1MgYjEuY29tcGFyZURv
Y3VtZW50UG9zaXRpb24oYzEpIGlzIGIxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGMxKQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wYXJlLWRvY3VtZW50LXBvc2l0aW9uLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBhcmUtZG9jdW1l
bnQtcG9zaXRpb24uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbXBhcmUtZG9jdW1lbnQtcG9zaXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08
c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIGZvciBOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKCkgZm9yIG5vZGVzIGluIHNoYWRvdyB0cmVlLiIpOwotCi1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzYW5kYm94JykuYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2ExJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhMid9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnYjEnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiMid9KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdiMyd9KSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EzJ30s
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdjMSd9KSkpKSk7Ci0KLXZhciBhMSwgYTIsIGEzLCBiMSwgYjIsIGIzLCBjMTsK
LQotZnVuY3Rpb24gdGVzdENvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCkKLXsKLSAgICB2YXIgc2Fu
ZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0gICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRMZWZ0OwotCi0gICAgYTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYTEn
KTsKLSAgICBhMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhMicpOwotICAgIGEzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2EzJyk7Ci0gICAgYjEgPSBnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soJ2EyL2IxJyk7Ci0gICAgYjIgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2EyL2Iy
Jyk7Ci0gICAgYjMgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2EyL2IzJyk7Ci0gICAgYzEg
PSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2EzL2MxJyk7Ci0KLSAgICBzaG91bGRCZSgnYTEu
Y29tcGFyZURvY3VtZW50UG9zaXRpb24oYTIpJywgJ05vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09O
VEFJTkVEX0JZIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcnKTsKLSAgICBzaG91
bGRCZSgnYTIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYTEpJywgJ05vZGUuRE9DVU1FTlRfUE9T
SVRJT05fQ09OVEFJTlMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORycpOwotICAg
IHNob3VsZEJlKCdhMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhMyknLCAnTm9kZS5ET0NVTUVO
VF9QT1NJVElPTl9GT0xMT1dJTkcnKTsKLQotICAgIHNob3VsZEJlKCdiMS5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihiMiknLCAnTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkgfCBO
b2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORycpOwotICAgIHNob3VsZEJlKCdiMi5jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbihiMSknLCAnTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlO
UyB8IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HJyk7Ci0gICAgc2hvdWxkQmUoJ2Iy
LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIzKScsICdOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZP
TExPV0lORycpOwotCi0gICAgLy8gTm9kZXMgaW4gZGlmZmVyZW50IHNoYWRvdyB0cmVlcy4KLSAg
ICBzaG91bGRCZU5vblplcm8oJ2ExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUu
RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIHx8IGExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u
KGIxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HJyk7Ci0gICAgc2hvdWxkQmUo
J2ExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05f
RElTQ09OTkVDVEVEJywgJ05vZGUuRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEJyk7Ci0g
ICAgc2hvdWxkQmUoJ2ExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUuRE9DVU1F
TlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMnLCAnTm9kZS5ET0NVTUVOVF9QT1NJ
VElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQycpOwotICAgIHNob3VsZEJlKCdhMS5jb21wYXJl
RG9jdW1lbnRQb3NpdGlvbihiMSknLCAnYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpJyk7
Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgJiBO
b2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyB8fCBiMS5jb21wYXJlRG9jdW1lbnRQb3Np
dGlvbihjMSkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORycpOwotICAgIHNob3Vs
ZEJlKCdiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lU
SU9OX0RJU0NPTk5FQ1RFRCcsICdOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCcp
OwotICAgIHNob3VsZEJlKCdiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgJiBOb2RlLkRP
Q1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDJywgJ05vZGUuRE9DVU1FTlRf
UE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMnKTsKLSAgICBzaG91bGRCZSgnYjEuY29t
cGFyZURvY3VtZW50UG9zaXRpb24oYzEpJywgJ2IxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGMx
KScpOwotfQotCi10ZXN0Q29tcGFyZURvY3VtZW50UG9zaXRpb24oKTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBv
c2VkLXNoYWRvdy10cmVlLXdhbGtlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
b21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM1NyArMCwwIEBACi1UZXN0cyBmb3IgQ29tcG9zZWQgU2hhZG93IERPTSBUcmVlIFRyYXZl
cnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGluIERSVAotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotU2hhZG93Um9vdCBzaG91bGQgYmUgdXNlZC4KLUNvbXBvc2VkIFNoYWRvdyBU
cmVlOgotRElWCSBpZD1hCi0JRElWCSBpZD1iCi0KLVRyYXZlcnNlIGluIGZvcndhcmQuCi1ESVYJ
IGlkPWEKLURJVgkgaWQ9YgotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWIKLURJVgkg
aWQ9YQotCi1BIGNvbnRlbnQgZWxlbWVudCBzaG91bGQgc2VsZWN0IGxpZ2h0IGNoaWxkcmVuCi1D
b21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCURJVgkgaWQ9Ywot
CURJVgkgaWQ9ZAotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIK
LURJVgkgaWQ9YwotRElWCSBpZD1kCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4KLURJVgkgaWQ9ZAot
RElWCSBpZD1jCi1ESVYJIGlkPWIKLURJVgkgaWQ9YQotCi1UZXN0IGZvciBjb250ZW50IGVsZW1l
bnQgc2VsZWN0b3IuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9
YgotCURJVgkgaWQ9ZAotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlk
PWIKLURJVgkgaWQ9ZAotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWQKLURJVgkgaWQ9
YgotRElWCSBpZD1hCi0KLUxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSBzZWxlY3RlZCBvbmx5IGF0
IG9uY2UuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCURJ
VgkgaWQ9ZAotCURJVgkgaWQ9YwotCURJVgkgaWQ9ZQotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgot
RElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9ZAotRElWCSBpZD1jCi1ESVYJIGlkPWUKLVRy
YXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1lCi1ESVYJIGlkPWMKLURJVgkgaWQ9ZAotRElW
CSBpZD1iCi1ESVYJIGlkPWEKLQotQSBjb250ZW50IGVsZW1lbnQgY2FuIGhhdmUgZmFsbGJhY2sg
ZWxlbWVudHMuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9Ygot
CURJVgkgaWQ9ZjEKLQlESVYJIGlkPWYyCi0KLVRyYXZlcnNlIGluIGZvcndhcmQuCi1ESVYJIGlk
PWEKLURJVgkgaWQ9YgotRElWCSBpZD1mMQotRElWCSBpZD1mMgotVHJhdmVyc2UgaW4gYmFja3dh
cmQuCi1ESVYJIGlkPWYyCi1ESVYJIGlkPWYxCi1ESVYJIGlkPWIKLURJVgkgaWQ9YQotCi1GYWxs
YmFjayBlbGVtZW50cyBzaG91bGQgbm90IGJlIHVzZWQgaWYgYSBjb250ZW50IGVsZW1lbnQgc2Vs
ZWN0cyBhbiBlbGVtZW50LgotQ29tcG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWEKLQlESVYJ
IGlkPWIKLQlESVYJIGlkPWMKLQotVHJhdmVyc2UgaW4gZm9yd2FyZC4KLURJVgkgaWQ9YQotRElW
CSBpZD1iCi1ESVYJIGlkPWMKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1jCi1ESVYJ
IGlkPWIKLURJVgkgaWQ9YQotCi1UZXN0IGZvciB0cmF2ZXJzYWwsIHN0YXJ0aW5nIHdpdGggYSBm
YWxsYmFjayBlbGVtZW50IHdoaWNoIGlzIG5vdCB1c2VkLgotQ29tcG9zZWQgU2hhZG93IFRyZWU6
Ci1ESVYJIGlkPWYxCi0JRElWCSBpZD1mMgotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBp
ZD1mMQotRElWCSBpZD1mMgotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWYyCi1ESVYJ
IGlkPWYxCi0KLU5leHQgbm9kZSBvZiBbRElWCSBpZD1mMV0gaXMgW0RJVgkgaWQ9ZjJdCi1OZXh0
IG5vZGUgb2YgW0RJVgkgaWQ9ZjJdIGlzIFsobnVsbCldCi0KLVRlc3QgZm9yIE5lc3RlZCBTaGFk
b3dSb290cy4KLUNvbXBvc2VkIFNoYWRvdyBUcmVlOgotRElWCSBpZD1hCi0JRElWCSBpZD1iCi0J
CURJVgkgaWQ9YwotCQlESVYJIGlkPWUKLQkJRElWCSBpZD1kCi0JRElWCSBpZD1mCi0JRElWCSBp
ZD1oCi0JRElWCSBpZD1pCi0JRElWCSBpZD1nCi0KLVRyYXZlcnNlIGluIGZvcndhcmQuCi1ESVYJ
IGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1jCi1ESVYJIGlkPWUKLURJVgkgaWQ9ZAotRElWCSBp
ZD1mCi1ESVYJIGlkPWgKLURJVgkgaWQ9aQotRElWCSBpZD1nCi1UcmF2ZXJzZSBpbiBiYWNrd2Fy
ZC4KLURJVgkgaWQ9ZwotRElWCSBpZD1pCi1ESVYJIGlkPWgKLURJVgkgaWQ9ZgotRElWCSBpZD1k
Ci1ESVYJIGlkPWUKLURJVgkgaWQ9YwotRElWCSBpZD1iCi1ESVYJIGlkPWEKLQotVGVzdCBmb3Ig
TXVsdGlwbGUgU2hhZG93Um9vdHMuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQot
CURJVgkgaWQ9ZAotCURJVgkgaWQ9YgotCURJVgkgaWQ9ZgotCURJVgkgaWQ9YwotCURJVgkgaWQ9
ZQotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWQKLURJVgkgaWQ9
YgotRElWCSBpZD1mCi1ESVYJIGlkPWMKLURJVgkgaWQ9ZQotVHJhdmVyc2UgaW4gYmFja3dhcmQu
Ci1ESVYJIGlkPWUKLURJVgkgaWQ9YwotRElWCSBpZD1mCi1ESVYJIGlkPWIKLURJVgkgaWQ9ZAot
RElWCSBpZD1hCi0KLVRlc3QgZm9yIGluYWN0aXZlIGluc2VydGlvbiBwb2ludHMuCi1Db21wb3Nl
ZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCUNPTlRFTlQJIGlkPWIKLQkJQ09OVEVOVAkgaWQ9
YwotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1DT05URU5UCSBpZD1iCi1DT05U
RU5UCSBpZD1jCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4KLUNPTlRFTlQJIGlkPWMKLUNPTlRFTlQJ
IGlkPWIKLURJVgkgaWQ9YQotCi1UZXN0IGZvciBhbiBvcnBoYW5lZCBzaGFkb3cgc3VidHJlZS4K
LUNvbXBvc2VkIFNoYWRvdyBUcmVlOgotRElWCSBpZD1hCi0JRElWCSBpZD1kCi0KLVRyYXZlcnNl
IGluIGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9ZAotVHJhdmVyc2UgaW4gYmFja3dhcmQu
Ci1ESVYJIGlkPWQKLURJVgkgaWQ9YQotCi1UZXN0IGZvciB0cmF2ZXJzYWwsIHN0YXJ0aW5nIHdp
dGggYSBub2RlIGluIGFuIG9ycGhhbmVkIHNoYWRvdyBzdWJ0cmVlLgotQ29tcG9zZWQgU2hhZG93
IFRyZWU6Ci1ESVYJIGlkPWIKLQlESVYJIGlkPWMKLQotVHJhdmVyc2UgaW4gZm9yd2FyZC4KLURJ
VgkgaWQ9YgotRElWCSBpZD1jCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4KLURJVgkgaWQ9YwotRElW
CSBpZD1iCi0KLVRlc3QgZm9yIGEgY29udGVudCBlbGVtZW50IHdoaWNoIGRvZXMgbm90IHNlbGVj
dCBhbnkgbm9kZXMgbm9yIGhhdmUgZmFsbGJhY2sgZWxlbWVudHMuCi1Db21wb3NlZCBTaGFkb3cg
VHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCURJVgkgaWQ9YwotCi1UcmF2ZXJzZSBpbiBm
b3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9YwotVHJhdmVyc2UgaW4gYmFj
a3dhcmQuCi1ESVYJIGlkPWMKLURJVgkgaWQ9YgotRElWCSBpZD1hCi0KLVRlc3QgZm9yIGEgbmVz
dGVkIGluc2VydGlvbiBwb2ludC4KLUNvbXBvc2VkIFNoYWRvdyBUcmVlOgotRElWCSBpZD1hCi0J
RElWCSBpZD1iCi0JCURJVgkgaWQ9YwotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1h
Ci1ESVYJIGlkPWIKLURJVgkgaWQ9YwotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWMK
LURJVgkgaWQ9YgotRElWCSBpZD1hCi0KLVRlc3QgZm9yIG5lc3RlZCBpbnNlcnRpb24gcG9pbnRz
LiBTb21lIG9mIHRoZW0gYXJlIGVpdGhlciBlbXB0eSBpbnNlcnRpb24gcG9pbnRzIG9yIGluYWN0
aXZlIGluc2VydGlvbiBwb2ludHMuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQot
CURJVgkgaWQ9YgotCQlESVYJIGlkPWMKLQkJRElWCSBpZD1kIGNsYXNzPXNlbGVjdC0yCi0JCURJ
VgkgaWQ9ZSBjbGFzcz1zZWxlY3QtMgotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1h
Ci1ESVYJIGlkPWIKLURJVgkgaWQ9YwotRElWCSBpZD1kIGNsYXNzPXNlbGVjdC0yCi1ESVYJIGlk
PWUgY2xhc3M9c2VsZWN0LTIKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1lIGNsYXNz
PXNlbGVjdC0yCi1ESVYJIGlkPWQgY2xhc3M9c2VsZWN0LTIKLURJVgkgaWQ9YwotRElWCSBpZD1i
Ci1ESVYJIGlkPWEKLQotVGVzdCBmb3IgYSByZS1wcm9qZWN0aW9uLgotQ29tcG9zZWQgU2hhZG93
IFRyZWU6Ci1ESVYJIGlkPWEKLQlESVYJIGlkPWIKLQkJRElWCSBpZD1jCi0KLVRyYXZlcnNlIGlu
IGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1jCi1UcmF2ZXJzZSBpbiBi
YWNrd2FyZC4KLURJVgkgaWQ9YwotRElWCSBpZD1iCi1ESVYJIGlkPWEKLQotVGVzdCBmb3IgYSBj
b250ZW50IGVsZW1lbnQgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYW5vdGhlciBjb250ZW50IGVsZW1l
bnQuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCQlESVYJ
IGlkPW1vc3QtaW5uZXItY2hpbGQKLQkJRElWCSBpZD1ob3N0LWNoaWxkCi0KLVRyYXZlcnNlIGlu
IGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1tb3N0LWlubmVyLWNoaWxk
Ci1ESVYJIGlkPWhvc3QtY2hpbGQKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1ob3N0
LWNoaWxkCi1ESVYJIGlkPW1vc3QtaW5uZXItY2hpbGQKLURJVgkgaWQ9YgotRElWCSBpZD1hCi0K
LVRlc3QgZm9yIGEgcmVwcm9qZWN0aW9uLiBDb250ZW50IGVsZW1lbnRzIHNob3VsZCBiZSB1c2Vk
IGluIGRvY3VtZW50IG9yZGVyLgotQ29tcG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWEKLQlE
SVYJIGlkPWhvc3QtY2hpbGQxIGNsYXNzPWNoaWxkCi0JRElWCSBpZD1iCi0JCURJVgkgaWQ9aG9z
dC1jaGlsZDIgY2xhc3M9Y2hpbGQKLQotVHJhdmVyc2UgaW4gZm9yd2FyZC4KLURJVgkgaWQ9YQot
RElWCSBpZD1ob3N0LWNoaWxkMSBjbGFzcz1jaGlsZAotRElWCSBpZD1iCi1ESVYJIGlkPWhvc3Qt
Y2hpbGQyIGNsYXNzPWNoaWxkCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4KLURJVgkgaWQ9aG9zdC1j
aGlsZDIgY2xhc3M9Y2hpbGQKLURJVgkgaWQ9YgotRElWCSBpZD1ob3N0LWNoaWxkMSBjbGFzcz1j
aGlsZAotRElWCSBpZD1hCi0KLVRlc3QgZm9yIGNvbXBsZXggcmUtcHJvamVjdGlvbnMuCi1Db21w
b3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCQlESVYJIGlkPWNoaWxk
LTEgY2xhc3M9Zm9vCi0JCURJVgkgaWQ9ZCBjbGFzcz1mb28KLQkJCURJVgkgaWQ9ZQotCQkJRElW
CSBpZD1jaGlsZC0yIGNsYXNzPWZvbwotCQkJRElWCSBpZD1nIGNsYXNzPWZvbwotCQkJRElWCSBp
ZD1mCi0JCURJVgkgaWQ9aCBjbGFzcz1mb28KLQkJRElWCSBpZD1jCi0KLVRyYXZlcnNlIGluIGZv
cndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1jaGlsZC0xIGNsYXNzPWZvbwot
RElWCSBpZD1kIGNsYXNzPWZvbwotRElWCSBpZD1lCi1ESVYJIGlkPWNoaWxkLTIgY2xhc3M9Zm9v
Ci1ESVYJIGlkPWcgY2xhc3M9Zm9vCi1ESVYJIGlkPWYKLURJVgkgaWQ9aCBjbGFzcz1mb28KLURJ
VgkgaWQ9YwotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWMKLURJVgkgaWQ9aCBjbGFz
cz1mb28KLURJVgkgaWQ9ZgotRElWCSBpZD1nIGNsYXNzPWZvbwotRElWCSBpZD1jaGlsZC0yIGNs
YXNzPWZvbwotRElWCSBpZD1lCi1ESVYJIGlkPWQgY2xhc3M9Zm9vCi1ESVYJIGlkPWNoaWxkLTEg
Y2xhc3M9Zm9vCi1ESVYJIGlkPWIKLURJVgkgaWQ9YQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci1zaGFkb3ctcmVwcm9qZWN0aW9uLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29t
cG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rpb24tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcG9z
ZWQtc2hhZG93LXRyZWUtd2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rpb24tZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDE4NiArMCwwIEBACi1UZXN0cyBmb3IgQ29tcG9zZWQgU2hhZG93
IERPTSBUcmVlIFRyYXZlcnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGluIERSVAotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTXVsdGlwbGUgc2hhZG93IHJvb3Qgd2l0aG91dCBz
aGFkb3cgZWxlbWVudAotQ29tcG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWEKLQlESVYJIGlk
PWMKLQotVHJhdmVyc2UgaW4gZm9yd2FyZC4KLURJVgkgaWQ9YQotRElWCSBpZD1jCi1UcmF2ZXJz
ZSBpbiBiYWNrd2FyZC4KLURJVgkgaWQ9YwotRElWCSBpZD1hCi0KLU11bHRpcGxlIHNoYWRvdyBy
b290IHdpdGggc2hhZG93IGVsZW1lbnQKLUNvbXBvc2VkIFNoYWRvdyBUcmVlOgotRElWCSBpZD1h
Ci0JRElWCSBpZD1jCi0JRElWCSBpZD1iCi0JRElWCSBpZD1lCi0KLVRyYXZlcnNlIGluIGZvcndh
cmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YwotRElWCSBpZD1iCi1ESVYJIGlkPWUKLVRyYXZlcnNl
IGluIGJhY2t3YXJkLgotRElWCSBpZD1lCi1ESVYJIGlkPWIKLURJVgkgaWQ9YwotRElWCSBpZD1h
Ci0KLU11bHRpcGxlIHNoYWRvdyByb290IHdpdGggc2hhZG93IGVsZW1lbnQsIGNhc2UgMgotQ29t
cG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWEKLQlESVYJIGlkPWYKLQlESVYJIGlkPWMKLQlE
SVYJIGlkPWIKLQlESVYJIGlkPWUKLQlESVYJIGlkPWgKLQotVHJhdmVyc2UgaW4gZm9yd2FyZC4K
LURJVgkgaWQ9YQotRElWCSBpZD1mCi1ESVYJIGlkPWMKLURJVgkgaWQ9YgotRElWCSBpZD1lCi1E
SVYJIGlkPWgKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1oCi1ESVYJIGlkPWUKLURJ
VgkgaWQ9YgotRElWCSBpZD1jCi1ESVYJIGlkPWYKLURJVgkgaWQ9YQotCi1zaGFkb3cgcmVwcm9q
ZWN0aW9uCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCQlE
SVYJIGlkPWQKLQkJRElWCSBpZD1hLWNoaWxkCi0JCURJVgkgaWQ9ZgotCi1UcmF2ZXJzZSBpbiBm
b3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9ZAotRElWCSBpZD1hLWNoaWxk
Ci1ESVYJIGlkPWYKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1mCi1ESVYJIGlkPWEt
Y2hpbGQKLURJVgkgaWQ9ZAotRElWCSBpZD1iCi1ESVYJIGlkPWEKLQotc2hhZG93IHJlcHJvamVj
dGlvbiwgdGFrZSAyCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9
ZAotCQlESVYJIGlkPWYKLQkJRElWCSBpZD1iCi0JCURJVgkgaWQ9aAotCi1UcmF2ZXJzZSBpbiBm
b3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWQKLURJVgkgaWQ9ZgotRElWCSBpZD1iCi1ESVYJ
IGlkPWgKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1oCi1ESVYJIGlkPWIKLURJVgkg
aWQ9ZgotRElWCSBpZD1kCi1ESVYJIGlkPWEKLQotc2hhZG93IGZhbGxiYWNrIGVsZW1lbnQgcmVw
cm9qZWN0aW9uCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9aQot
CQlESVYJIGlkPWsKLQkJRElWCSBpZD1jCi0JCURJVgkgaWQ9YgotCQlESVYJIGlkPWcKLQkJRElW
CSBpZD1oCi0JCURJVgkgaWQ9bQotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1E
SVYJIGlkPWkKLURJVgkgaWQ9awotRElWCSBpZD1jCi1ESVYJIGlkPWIKLURJVgkgaWQ9ZwotRElW
CSBpZD1oCi1ESVYJIGlkPW0KLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1tCi1ESVYJ
IGlkPWgKLURJVgkgaWQ9ZwotRElWCSBpZD1iCi1ESVYJIGlkPWMKLURJVgkgaWQ9awotRElWCSBp
ZD1pCi1ESVYJIGlkPWEKLQotd2l0aCBpbmFjdGl2ZSBpbnNlcnRpb24gcG9pbnRzCi1Db21wb3Nl
ZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9cwotCQlESVYJIGlkPXUKLQkJRElW
CSBpZD1mCi0JCUNPTlRFTlQJIGlkPWIKLQkJCURJVgkgaWQ9YwotCQlTSEFET1cJIGlkPWQKLQkJ
CURJVgkgaWQ9ZQotCQlDT05URU5UCSBpZD1sCi0JCVNIQURPVwkgaWQ9bQotCQlESVYJIGlkPW4K
LQkJQ09OVEVOVAkgaWQ9cAotCQlTSEFET1cJIGlkPXEKLQkJRElWCSBpZD1yCi0JCURJVgkgaWQ9
dwotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPXMKLURJVgkgaWQ9
dQotRElWCSBpZD1mCi1DT05URU5UCSBpZD1iCi1ESVYJIGlkPWMKLVNIQURPVwkgaWQ9ZAotRElW
CSBpZD1lCi1DT05URU5UCSBpZD1sCi1TSEFET1cJIGlkPW0KLURJVgkgaWQ9bgotQ09OVEVOVAkg
aWQ9cAotU0hBRE9XCSBpZD1xCi1ESVYJIGlkPXIKLURJVgkgaWQ9dwotVHJhdmVyc2UgaW4gYmFj
a3dhcmQuCi1ESVYJIGlkPXcKLURJVgkgaWQ9cgotU0hBRE9XCSBpZD1xCi1DT05URU5UCSBpZD1w
Ci1ESVYJIGlkPW4KLVNIQURPVwkgaWQ9bQotQ09OVEVOVAkgaWQ9bAotRElWCSBpZD1lCi1TSEFE
T1cJIGlkPWQKLURJVgkgaWQ9YwotQ09OVEVOVAkgaWQ9YgotRElWCSBpZD1mCi1ESVYJIGlkPXUK
LURJVgkgaWQ9cwotRElWCSBpZD1hCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29t
cG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUt
d2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rpb24uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci1zaGFk
b3ctcmVwcm9qZWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkwICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlv
bigiVGVzdHMgZm9yIENvbXBvc2VkIFNoYWRvdyBET00gVHJlZSBUcmF2ZXJzYWwgQVBJcy4gQ2Fu
IG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBkdW1wTm9kZShub2RlKQotewotICAg
IGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuICcobnVsbCknCi0gICAgdmFyIG91dHB1dCA9IG5v
ZGUubm9kZU5hbWUgKyAiXHQiOwotICAgIGlmIChub2RlLmlkKQotICAgICAgICBvdXRwdXQgKz0g
JyBpZD0nICsgbm9kZS5pZDsKLSAgICBpZiAobm9kZS5jbGFzc05hbWUpCi0gICAgICAgIG91dHB1
dCArPSAnIGNsYXNzPScgKyBub2RlLmNsYXNzTmFtZTsKLSAgICByZXR1cm4gb3V0cHV0OwotfQot
Ci1mdW5jdGlvbiBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKG5vZGUsIGluZGVudCkKLXsKLSAgICBp
bmRlbnQgPSBpbmRlbnQgfHwgIiI7Ci0gICAgdmFyIG91dHB1dCA9IGluZGVudCArIGR1bXBOb2Rl
KG5vZGUpICsgIlxuIjsKLSAgICB2YXIgY2hpbGQ7Ci0gICAgZm9yIChjaGlsZCA9IGludGVybmFs
cy5maXJzdENoaWxkQnlXYWxrZXIobm9kZSk7IGNoaWxkOyBjaGlsZCA9IGludGVybmFscy5uZXh0
U2libGluZ0J5V2Fsa2VyKGNoaWxkKSkKLSAgICAgICAgIG91dHB1dCArPSBkdW1wQ29tcG9zZWRT
aGFkb3dUcmVlKGNoaWxkLCBpbmRlbnQgKyAiXHQiKTsKLSAgICByZXR1cm4gb3V0cHV0OwotfQot
Ci1mdW5jdGlvbiBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpCi17Ci0gICAgdmFyIGxhc3ROb2RlID0g
cm9vdDsKLSAgICB3aGlsZSAoaW50ZXJuYWxzLmxhc3RDaGlsZEJ5V2Fsa2VyKGxhc3ROb2RlKSkK
LSAgICAgICAgbGFzdE5vZGUgPSBpbnRlcm5hbHMubGFzdENoaWxkQnlXYWxrZXIobGFzdE5vZGUp
OwotICAgIHJldHVybiBsYXN0Tm9kZTsKLX0KLQotZnVuY3Rpb24gc2hvd0NvbXBvc2VkU2hhZG93
VHJlZUJ5VHJhdmVyc2luZ0luRm9yd2FyZChyb290KQotewotICAgIHZhciBub2RlID0gcm9vdDsK
LSAgICB2YXIgbGFzdCA9IGxhc3ROb2RlQnlXYWxrZXIocm9vdCk7Ci0gICAgd2hpbGUgKG5vZGUp
IHsKLSAgICAgICAgZGVidWcoZHVtcE5vZGUobm9kZSkpOwotICAgICAgICBpZiAobm9kZSA9PSBs
YXN0KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIG5vZGUgPSBpbnRlcm5hbHMubmV4dE5v
ZGVCeVdhbGtlcihub2RlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHNob3dDb21wb3NlZFNoYWRv
d1RyZWVCeVRyYXZlcnNpbmdJbkJhY2t3YXJkKHJvb3QpCi17Ci0gICAgdmFyIG5vZGUgPSBsYXN0
Tm9kZUJ5V2Fsa2VyKHJvb3QpOwotICAgIHdoaWxlIChub2RlKSB7Ci0gICAgICAgIGRlYnVnKGR1
bXBOb2RlKG5vZGUpKTsKLSAgICAgICAgaWYgKG5vZGUgPT0gcm9vdCkKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBub2RlID0gaW50ZXJuYWxzLnByZXZpb3VzTm9kZUJ5V2Fsa2VyKG5vZGUp
OwotICAgIH0KLX0KLQotZnVuY3Rpb24gc2hvd0NvbXBvc2VkU2hhZG93VHJlZShub2RlKQotewot
ICAgIGRlYnVnKCdDb21wb3NlZCBTaGFkb3cgVHJlZTonKTsKLSAgICBkZWJ1ZyhkdW1wQ29tcG9z
ZWRTaGFkb3dUcmVlKG5vZGUpKTsKLQotICAgIGRlYnVnKCdUcmF2ZXJzZSBpbiBmb3J3YXJkLicp
OwotICAgIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJbkZvcndhcmQobm9kZSk7
Ci0KLSAgICBkZWJ1ZygnVHJhdmVyc2UgaW4gYmFja3dhcmQuJyk7Ci0gICAgc2hvd0NvbXBvc2Vk
U2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luQmFja3dhcmQobm9kZSk7Ci0KLSAgICBkZWJ1ZygnJyk7
Ci19Ci0KLWZ1bmN0aW9uIHNob3dOZXh0Tm9kZShub2RlKSB7Ci0gICAgdmFyIG5leHQgPSBpbnRl
cm5hbHMubmV4dE5vZGVCeVdhbGtlcihub2RlKTsKLSAgICBkZWJ1ZygnTmV4dCBub2RlIG9mIFsn
ICsgZHVtcE5vZGUobm9kZSkgKyAnXSBpcyBbJyArIGR1bXBOb2RlKG5leHQpICsgJ10nKTsKLX0K
LQotZnVuY3Rpb24gdGVzdENvbXBvc2VkU2hhZG93VHJlZShub2RlKQotewotICAgIHZhciBzYW5k
Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLSAgICBzYW5kYm94Lmlu
bmVySFRNTCA9ICcnOwotICAgIHNhbmRib3guYXBwZW5kQ2hpbGQobm9kZSk7Ci0gICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIHNob3dDb21wb3NlZFNoYWRvd1RyZWUobm9kZSk7Ci19
Ci0KLWRlYnVnKCdNdWx0aXBsZSBzaGFkb3cgcm9vdCB3aXRob3V0IHNoYWRvdyBlbGVtZW50Jyk7
Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdh
J30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2InfSkpLAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdjJ30pKSkpOwotCi1kZWJ1ZygnTXVsdGlwbGUgc2hhZG93IHJvb3Qgd2l0aCBz
aGFkb3cgZWxlbWVudCcpOwotdGVzdENvbXBvc2VkU2hhZG93VHJlZSgKLSAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYSd9LAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9v
dChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnZCd9KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSkpKTsKLQotZGVi
dWcoJ011bHRpcGxlIHNoYWRvdyByb290IHdpdGggc2hhZG93IGVsZW1lbnQsIGNhc2UgMicpOwot
dGVzdENvbXBvc2VkU2hhZG93VHJlZSgKLSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9
LAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdiJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J3NoYWRvdycsIHsnaWQnOiAnZCd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSksCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRv
d1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFkb3cnLCB7J2lkJzogJ2cnfSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2gnfSkpKSk7Ci0K
LWRlYnVnKCdzaGFkb3cgcmVwcm9qZWN0aW9uJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAot
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdhLWNoaWxkJ30pLAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dS
b290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93JywgeydpZCc6ICdjJ30pLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQn
OiAnZSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZid9KSkpKSkpOwotCi1kZWJ1Zygn
c2hhZG93IHJlcHJvamVjdGlvbiwgdGFrZSAyJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAot
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdiJ30pLAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNy
ZWF0ZURPTSgnc2hhZG93JywgeydpZCc6ICdjJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hh
ZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnZSd9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9v
dChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7
J2lkJzogJ2cnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2gnfSkpKSkpKTsKLQotZGVi
dWcoJ3NoYWRvdyBmYWxsYmFjayBlbGVtZW50IHJlcHJvamVjdGlvbicpOwotdGVzdENvbXBvc2Vk
U2hhZG93VHJlZSgKLSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAotICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKLSAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnZCd9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnZSd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFk
b3cnLCB7J2lkJzogJ2YnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2cnfSkpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdoJ30pKSwKLSAgICAgICAgICAgICAg
Y3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaSd9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQn
OiAnaid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnayd9KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Nv
bnRlbnQnLCB7J2lkJzogJ2wnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ20nfSkpKSkp
KTsKLQotaW50ZXJuYWxzLmFkZHJlc3MoZG9jdW1lbnQpOwotZGVidWcoJ3dpdGggaW5hY3RpdmUg
aW5zZXJ0aW9uIHBvaW50cycpCi10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcs
IHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2MnfSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAn
ZCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Un
fSkpLAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdmJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29u
dGVudCcsIHsnaWQnOiAnZyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2gnfSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93JywgeydpZCc6ICdpJ30p
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnaid9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdjb250ZW50JywgeydpZCc6ICdrJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnbCd9KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFkb3cnLCB7J2lk
JzogJ20nfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICduJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnbyd9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ3AnfSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93
JywgeydpZCc6ICdxJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAncid9KSkpLAotICAgICAgICAgICAgICBjcmVhdGVT
aGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdzJ30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93JywgeydpZCc6ICd0J30p
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dS
b290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICd1J30pLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcs
IHsnaWQnOiAndid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAndyd9KSkpKSkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgCi0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdh
bGtlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21w
b3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDI5MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGRpdiBpZD0ic2Fu
ZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIGZvciBDb21wb3NlZCBT
aGFkb3cgRE9NIFRyZWUgVHJhdmVyc2FsIEFQSXMuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJUIik7
Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LQotZnVuY3Rpb24gZHVtcE5vZGUobm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJl
dHVybiAnKG51bGwpJwotICAgIHZhciBvdXRwdXQgPSBub2RlLm5vZGVOYW1lICsgIlx0IjsKLSAg
ICBpZiAobm9kZS5pZCkKLSAgICAgICAgb3V0cHV0ICs9ICcgaWQ9JyArIG5vZGUuaWQ7Ci0gICAg
aWYgKG5vZGUuY2xhc3NOYW1lKQotICAgICAgICBvdXRwdXQgKz0gJyBjbGFzcz0nICsgbm9kZS5j
bGFzc05hbWU7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rpb24gZHVtcENvbXBvc2Vk
U2hhZG93VHJlZShub2RlLCBpbmRlbnQpCi17Ci0gICAgaW5kZW50ID0gaW5kZW50IHx8ICIiOwot
ICAgIHZhciBvdXRwdXQgPSBpbmRlbnQgKyBkdW1wTm9kZShub2RlKSArICJcbiI7Ci0gICAgdmFy
IGNoaWxkOwotICAgIGZvciAoY2hpbGQgPSBpbnRlcm5hbHMuZmlyc3RDaGlsZEJ5V2Fsa2VyKG5v
ZGUpOyBjaGlsZDsgY2hpbGQgPSBpbnRlcm5hbHMubmV4dFNpYmxpbmdCeVdhbGtlcihjaGlsZCkp
Ci0gICAgICAgICBvdXRwdXQgKz0gZHVtcENvbXBvc2VkU2hhZG93VHJlZShjaGlsZCwgaW5kZW50
ICsgIlx0Iik7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rpb24gbGFzdE5vZGVCeVdh
bGtlcihyb290KQotewotICAgIHZhciBsYXN0Tm9kZSA9IHJvb3Q7Ci0gICAgd2hpbGUgKGludGVy
bmFscy5sYXN0Q2hpbGRCeVdhbGtlcihsYXN0Tm9kZSkpCi0gICAgICAgIGxhc3ROb2RlID0gaW50
ZXJuYWxzLmxhc3RDaGlsZEJ5V2Fsa2VyKGxhc3ROb2RlKTsKLSAgICByZXR1cm4gbGFzdE5vZGU7
Ci19Ci0KLWZ1bmN0aW9uIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJbkZvcndh
cmQocm9vdCkKLXsKLSAgICB2YXIgbm9kZSA9IHJvb3Q7Ci0gICAgdmFyIGxhc3QgPSBsYXN0Tm9k
ZUJ5V2Fsa2VyKHJvb3QpOwotICAgIHdoaWxlIChub2RlKSB7Ci0gICAgICAgIGRlYnVnKGR1bXBO
b2RlKG5vZGUpKTsKLSAgICAgICAgaWYgKG5vZGUgPT0gbGFzdCkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBub2RlID0gaW50ZXJuYWxzLm5leHROb2RlQnlXYWxrZXIobm9kZSk7Ci0gICAg
fQotfQotCi1mdW5jdGlvbiBzaG93Q29tcG9zZWRTaGFkb3dUcmVlQnlUcmF2ZXJzaW5nSW5CYWNr
d2FyZChyb290KQotewotICAgIHZhciBub2RlID0gbGFzdE5vZGVCeVdhbGtlcihyb290KTsKLSAg
ICB3aGlsZSAobm9kZSkgewotICAgICAgICBkZWJ1ZyhkdW1wTm9kZShub2RlKSk7Ci0gICAgICAg
IGlmIChub2RlID09IHJvb3QpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgbm9kZSA9IGlu
dGVybmFscy5wcmV2aW91c05vZGVCeVdhbGtlcihub2RlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9u
IHNob3dDb21wb3NlZFNoYWRvd1RyZWUobm9kZSkKLXsKLSAgICBkZWJ1ZygnQ29tcG9zZWQgU2hh
ZG93IFRyZWU6Jyk7Ci0gICAgZGVidWcoZHVtcENvbXBvc2VkU2hhZG93VHJlZShub2RlKSk7Ci0K
LSAgICBkZWJ1ZygnVHJhdmVyc2UgaW4gZm9yd2FyZC4nKTsKLSAgICBzaG93Q29tcG9zZWRTaGFk
b3dUcmVlQnlUcmF2ZXJzaW5nSW5Gb3J3YXJkKG5vZGUpOwotCi0gICAgZGVidWcoJ1RyYXZlcnNl
IGluIGJhY2t3YXJkLicpOwotICAgIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJ
bkJhY2t3YXJkKG5vZGUpOwotCi0gICAgZGVidWcoJycpOwotfQotCi1mdW5jdGlvbiBzaG93TmV4
dE5vZGUobm9kZSkgewotICAgIHZhciBuZXh0ID0gaW50ZXJuYWxzLm5leHROb2RlQnlXYWxrZXIo
bm9kZSk7Ci0gICAgZGVidWcoJ05leHQgbm9kZSBvZiBbJyArIGR1bXBOb2RlKG5vZGUpICsgJ10g
aXMgWycgKyBkdW1wTm9kZShuZXh0KSArICddJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb21wb3Nl
ZFNoYWRvd1RyZWUobm9kZSkKLXsKLSAgICB2YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzYW5kYm94Jyk7Ci0gICAgc2FuZGJveC5pbm5lckhUTUwgPSAnJzsKLSAgICBzYW5k
Ym94LmFwcGVuZENoaWxkKG5vZGUpOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLSAg
ICBzaG93Q29tcG9zZWRTaGFkb3dUcmVlKG5vZGUpOwotfQotCi1kZWJ1ZygnU2hhZG93Um9vdCBz
aG91bGQgYmUgdXNlZC4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdjJ30pKSk7Ci0KLWRlYnVnKCdBIGNvbnRlbnQgZWxlbWVudCBzaG91bGQgc2Vs
ZWN0IGxpZ2h0IGNoaWxkcmVuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3Qo
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdjb250ZW50JykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2QnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIGNvbnRlbnQgZWxlbWVudCBzZWxlY3Rvci4nKTsK
LXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2En
fSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnYid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRl
bnQnLCB7J3NlbGVjdCc6ICcjZCd9KSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdjJ30pLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9
KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2UnfSkpKTsKLQotZGVi
dWcoJ0xpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSBzZWxlY3RlZCBvbmx5IGF0IG9uY2UuJyk7Ci10
ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30s
Ci0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2InfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50
JywgeydzZWxlY3QnOiAnI2QnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdjb250ZW50JykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnYyd9KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSksCi0g
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSk7Ci0KLWRlYnVnKCdB
IGNvbnRlbnQgZWxlbWVudCBjYW4gaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4nKTsKLXRlc3RDb21w
b3NlZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAg
ICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3Nl
bGVjdCc6ICcjeid9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjEnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmMid9KSkpLAotICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOwotCi1kZWJ1ZygnRmFsbGJh
Y2sgZWxlbWVudHMgc2hvdWxkIG5vdCBiZSB1c2VkIGlmIGEgY29udGVudCBlbGVtZW50IHNlbGVj
dHMgYW4gZWxlbWVudC4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjYyd9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjEnfSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdmMid9KSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2MnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIHRyYXZlcnNhbCwgc3RhcnRp
bmcgd2l0aCBhIGZhbGxiYWNrIGVsZW1lbnQgd2hpY2ggaXMgbm90IHVzZWQuJyk7Ci1zaG93Q29t
cG9zZWRTaGFkb3dUcmVlKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnYS9mMScpKTsKLXNob3dO
ZXh0Tm9kZShnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2EvZjEnKSk7Ci1zaG93TmV4dE5vZGUo
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdhL2YyJykpOwotZGVidWcoJycpOwotCi1kZWJ1Zygn
VGVzdCBmb3IgTmVzdGVkIFNoYWRvd1Jvb3RzLicpOwotdGVzdENvbXBvc2VkU2hhZG93VHJlZSgK
LSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAotICAgICAgICAgICAgICBjcmVhdGVT
aGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2MnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2QnfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2cnfSkpLAotICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaCd9KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2knfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIE11bHRpcGxlIFNoYWRv
d1Jvb3RzLicpOwotdGVzdENvbXBvc2VkU2hhZG93VHJlZSgKLSAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnYSd9LAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdiJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnY29udGVudCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdjJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ3NoYWRvdycpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2YnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIGluYWN0aXZlIGluc2Vy
dGlvbiBwb2ludHMuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsn
aWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywg
eydpZCc6ICdjJ30pKSkpOwotCi1kZWJ1ZygnVGVzdCBmb3IgYW4gb3JwaGFuZWQgc2hhZG93IHN1
YnRyZWUuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSksCi0gICAgICAgICAgICAg
IGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnZCd9KSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIHRyYXZlcnNhbCwgc3RhcnRpbmcgd2l0
aCBhIG5vZGUgaW4gYW4gb3JwaGFuZWQgc2hhZG93IHN1YnRyZWUuJyk7Ci1zaG93Q29tcG9zZWRT
aGFkb3dUcmVlKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnYS9iJykpOwotCi1kZWJ1ZygnVGVz
dCBmb3IgYSBjb250ZW50IGVsZW1lbnQgd2hpY2ggZG9lcyBub3Qgc2VsZWN0IGFueSBub2RlcyBu
b3IgaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0g
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hh
ZG93Um9vdChjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjbm9uZSd9KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3Nl
bGVjdCc6ICcjbm9uZSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjbm9uZSd9KSkpKTsKLQotZGVidWcoJ1Rl
c3QgZm9yIGEgbmVzdGVkIGluc2VydGlvbiBwb2ludC4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1Ry
ZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3Jl
YXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgn
Y29udGVudCcsIHt9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnY29udGVudCcsIHt9KSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnYyd9KSkpOwotCi1kZWJ1ZygnVGVzdCBmb3IgbmVzdGVkIGluc2VydGlvbiBw
b2ludHMuIFNvbWUgb2YgdGhlbSBhcmUgZWl0aGVyIGVtcHR5IGluc2VydGlvbiBwb2ludHMgb3Ig
aW5hY3RpdmUgaW5zZXJ0aW9uIHBvaW50cy4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0g
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hh
ZG93Um9vdChjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjbm9uZSd9KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy5zZWxlY3QtMSd9KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6
ICcuc2VsZWN0LTInfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2NsYXNzJzogJ3NlbGVjdC0xJywgJ3NlbGVjdCc6ICcu
c2VsZWN0LTQnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnY29udGVudCcsIHsnY2xhc3MnOiAnc2VsZWN0LTInLCAnc2VsZWN0JzogJyNub25l
J30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZCcsICdjbGFzcyc6ICdzZWxlY3QtMid9KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydjbGFzcyc6
ICdzZWxlY3QtMicsICdzZWxlY3QnOiAnI25vbmUnfSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJywgJ2NsYXNzJzog
J3NlbGVjdC0yJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2NvbnRlbnQnLCB7J2NsYXNzJzogJ3NlbGVjdC0yJywgJ3NlbGVjdCc6ICcjbm9u
ZSd9KSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2luYWN0
aXZlLWluc2VydGlvbi1wb2ludCcsICdjbGFzcyc6ICdzZWxlY3QtNCd9KSwKLSAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3Nob3VsZC1ub3QtYmUtc2VsZWN0ZWQnfSksCi0g
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmJywgJ2NsYXNzJzogJ3NlbGVj
dC00J30pKSk7Ci0KLWRlYnVnKCdUZXN0IGZvciBhIHJlLXByb2plY3Rpb24uJyk7Ci10ZXN0Q29t
cG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNo
YWRvd1Jvb3QoY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnI2MnfSkpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNj
J30pKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSk7Ci0K
LWRlYnVnKCdUZXN0IGZvciBhIGNvbnRlbnQgZWxlbWVudCB3aGljaCBpcyBzZWxlY3RlZCBieSBh
bm90aGVyIGNvbnRlbnQgZWxlbWVudC4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0gICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93
Um9vdCgKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2Nv
bnRlbnQnLCB7J3NlbGVjdCc6ICcjY29udGVudCd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdtb3N0LWlubmVy
LWNoaWxkJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnI2hvc3QtY2hpbGQnfSkpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVu
dCcsICdzZWxlY3QnOiAnI2hvc3QtY2hpbGQnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3Nob3VsZC1ub3QtYmUtdXNlZCd9
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2lubmVyLWNoaWxkJywgJ2NsYXNzJzogJ2Zvbyd9KSkpLAotICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnaG9zdC1jaGlsZCd9KSkpOwotCi1kZWJ1ZygnVGVzdCBmb3IgYSBy
ZXByb2plY3Rpb24uIENvbnRlbnQgZWxlbWVudHMgc2hvdWxkIGJlIHVzZWQgaW4gZG9jdW1lbnQg
b3JkZXIuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjaG9zdC1jaGlsZDEnfSks
Ci0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdjb250ZW50
JywgeydzZWxlY3QnOiAnLmNoaWxkJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuY2hpbGQnfSkpKSwKLSAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QtY2hpbGQxJywgJ2NsYXNzJzogJ2NoaWxk
J30pLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC1jaGlsZDIn
LCAnY2xhc3MnOiAnY2hpbGQnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIGNvbXBsZXggcmUtcHJv
amVjdGlvbnMuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxl
Y3QnOiAnLmZvbyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBTZWxlY3QgI2NoaWxkLTEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjY2hpbGQtMSd9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnY2xhc3MnOiAnc2hv
dWxkLW5vdC1iZS11c2VkJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBTaG91bGQgbm90IHNlbGVjdCBhbnkgbm9kZXMgc2luY2UgaXQncyBpbmFjdGl2ZS4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywg
eydjbGFzcyc6ICdzaG91bGQtYmUtaW5hY3RpdmUnLCAnc2VsZWN0JzogJy5mb28nfSkpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJywgJ2Ns
YXNzJzogJ2Zvbyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3VsZCBzZWxl
Y3QgI2NoaWxkLTIgYW5kICNnLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy5mb28n
fSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSkpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgI2NoaWxkLTIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnI2NoaWxk
LTInfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdnJywgJ2NsYXNzJzogJ2Zvbyd9KSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2NsYXNzJzogJ3Nob3VsZC1ub3QtYmUtc2VsZWN0
ZWQnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2gnLCAnY2xhc3MnOiAnZm9vJ30pKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdjaGlsZC0xJywgJ2NsYXNzJzogJ2Zvbyd9KSwKLSAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ25vdC1zZWxlY3RlZCcsICdjbGFzcyc6ICdmb28nfSksCi0g
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZC0yJywgJ2NsYXNzJzog
J2Zvbyd9KSkpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1hZnRlci1zdHlsZS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWFmdGVyLXN0
eWxlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWFmdGVyLXN0eWxlLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2
IGlkPSJob3N0Ij50ZXh0PGRpdj5ob3N0IGNvbnRlbnQ8L2Rpdj48L2Rpdj4KLTwvYm9keT4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWFmdGVyLXN0
eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRl
bnQtYWZ0ZXItc3R5bGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtYWZ0ZXItc3R5bGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJo
b3N0Ij48ZGl2Pmhvc3QgY29udGVudDwvZGl2PjwvZGl2PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci12YXIg
cm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNob3N0Jykud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotcm9vdC5pbm5lckhUTUwgPSAnPHN0eWxlPmludmFsaWQgeyB9PC9zdHlsZT4nICsK
LSAgICAgICAgICAgICAgICAgJ3RleHQ8Y29udGVudD48L2NvbnRlbnQ+JzsKLXdpbmRvdy5zZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWNo
aWxkLXdoaXRlc3BhY2UtYmV0d2Vlbi1zcGFuLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1jaGlsZC13aGl0ZXNwYWNlLWJldHdl
ZW4tc3Bhbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jb250ZW50LWNoaWxkLXdoaXRlc3BhY2UtYmV0d2Vlbi1zcGFuLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLVR3byBjb25haW5lcnMgc2hv
dWxkIGJlIGxheWVkIG91dCBpbiB0aGUgc2FtZSB3YXkKLQotUEFTUwotCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1jaGlsZC13aGl0ZXNwYWNlLWJldHdlZW4tc3Bh
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWNoaWxkLXdoaXRlc3BhY2UtYmV0d2Vlbi1zcGFuLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWNoaWxkLXdoaXRlc3BhY2UtYmV0
d2Vlbi1zcGFuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNzggKzAsMCBAQAotPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxz
dHlsZT4KLXN1bW1hcnkgeyBkaXNwbGF5OiBub25lOyB9Ci1zcGFuIHsgYmFja2dyb3VuZC1jb2xv
cjogcmVkOyB9Ci0vKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVu
ZGVyTGF5ZXIgKi8KLS5jb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KLTwvc3R5bGU+
Ci08c2NyaXB0PgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gKG1lc3NhZ2UgKyAiXG4iKTsKLX0KLQot
ZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVyTGluZXModGV4dCkKLXsKLSAgICB2YXIgbGluZXMgPSB0
ZXh0LnNwbGl0KCJcbiIpOwotICAgIGxpbmVzLnNwbGljZSgwLCAyKTsKLSAgICByZXR1cm4gbGlu
ZXMuam9pbigiXG4iKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICAgICAgcmV0dXJuOwotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotCi0gICAgdmFyIHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUgPSB3aW5kb3cuaW50ZXJuYWxz
LmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRD
b250YWluZXIiKSk7Ci0gICAgdmFyIHRhcmdldFJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJM
aW5lcyh0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlKTsKLSAgICB2YXIgcmVmQ29udGFpbmVyUmVu
ZGVyVHJlZSA9IHdpbmRvdy5pbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZkNvbnRhaW5lciIpKTsKLSAgICB2YXIgcmVmUmVuZGVyVHJl
ZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHJlZkNvbnRhaW5lclJlbmRlclRyZWUpOwotCi0gICAg
dGFyZ2V0UmVuZGVyVHJlZSA9IHRhcmdldFJlbmRlclRyZWUucmVwbGFjZSgiUmVuZGVyQmxvY2sg
e0RFVEFJTFN9IiwgIlJlbmRlckJsb2NrIHtESVZ9Iik7Ci0KLSAgICBpZiAodGFyZ2V0UmVuZGVy
VHJlZSA9PSByZWZSZW5kZXJUcmVlKQotICAgICAgICBsb2coIlBBU1MiKTsKLSAgICBlbHNlIHsK
LSAgICAgICAgbG9nKCJGQUlMIik7Ci0gICAgICAgIGxvZygiRXhwZWN0ZWQ6Iik7Ci0gICAgICAg
IGxvZyhyZWZSZW5kZXJUcmVlKTsKLSAgICAgICAgbG9nKCJBY3R1YWw6Iik7Ci0gICAgICAgIGxv
Zyh0YXJnZXRSZW5kZXJUcmVlKTsKLSAgICB9Ci0gICAgCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3QiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlR3byBjb25haW5lcnMgc2hvdWxkIGJl
IGxheWVkIG91dCBpbiB0aGUgc2FtZSB3YXk8L3A+Ci08ZGl2IGlkPSJ0ZXN0Ij4KLTxkaXYgY2xh
c3M9ImNvbnRhaW5lciIgaWQ9InRhcmdldENvbnRhaW5lciI+Ci08ZGl2PgotPGRldGFpbHMgb3Bl
bj4KLTxkaXY+SGVsbG8xPC9kaXY+Ci08c3Bhbj5IZWxsbzI8L3NwYW4+Ci08c3Bhbj5IZWxsbzM8
L3NwYW4+Ci08c3VtbWFyeT48L3N1bW1hcnk+Ci08L2RldGFpbHM+Ci08L2Rpdj4KLTwvZGl2Pgot
PGhyIC8+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPSJyZWZDb250YWluZXIiID4KLTxkaXY+
Ci08ZGl2PgotPGRpdj5IZWxsbzE8L2Rpdj4KLTxzcGFuPkhlbGxvMjwvc3Bhbj4KLTxzcGFuPkhl
bGxvMzwvc3Bhbj4KLTxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PC9zcGFuPgotPC9kaXY+
Ci08L2Rpdj4KLTwvZGl2PgotPC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVs
ZW1lbnQtYXBpLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LWFwaS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCwwIEBACi1UaGlzIHRlc3QgZW5z
dXJlIHRoYXQgdGhlIGNvbnRlbnQgZWxlbWVudCBpcyBhdmFpbGFibGUuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNvbnRlbnRTaW1wbGVzdC5zZWxlY3QgaXMgJycKLVBB
U1MgY29udGVudFNpbXBsZXN0LnNlbGVjdCBpcyAnZm9vJwotUEFTUyBjb250ZW50U2ltcGxlc3Qu
Z2V0QXR0cmlidXRlKCdzZWxlY3QnKSBpcyAnYmFyJwotUEFTUyAwIDw9IGNvbnRlbnRTaW1wbGVz
dC5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0hUTUxDb250ZW50RWxlbWVudCcpIGlz
IHRydWUKLVBBU1Mgd2luZG93LkhUTUxDb250ZW50RWxlbWVudCBpcyBjb250ZW50U2ltcGxlc3Qu
Y29uc3RydWN0b3IKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LWFwaS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtYXBpLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXY+Ci0gIDxjb250ZW50IGlkPSJjb250ZW50LXNpbXBsZXN0Ij48L2NvbnRl
bnQ+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZSB0aGF0
IHRoZSBjb250ZW50IGVsZW1lbnQgaXMgYXZhaWxhYmxlLiIpOwotdmFyIGNvbnRlbnRTaW1wbGVz
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50LXNpbXBsZXN0Iik7Ci1zaG91bGRC
ZSgiY29udGVudFNpbXBsZXN0LnNlbGVjdCIsICInJyIpOwotY29udGVudFNpbXBsZXN0LnNldEF0
dHJpYnV0ZSgic2VsZWN0IiwgImZvbyIpOwotc2hvdWxkQmUoImNvbnRlbnRTaW1wbGVzdC5zZWxl
Y3QiLCAiJ2ZvbyciKTsKLWNvbnRlbnRTaW1wbGVzdC5zZWxlY3QgPSAiYmFyIgotc2hvdWxkQmUo
ImNvbnRlbnRTaW1wbGVzdC5nZXRBdHRyaWJ1dGUoJ3NlbGVjdCcpIiwgIidiYXInIik7Ci1zaG91
bGRCZVRydWUoIjAgPD0gY29udGVudFNpbXBsZXN0LmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5k
ZXhPZignSFRNTENvbnRlbnRFbGVtZW50JykiKTsKLXNob3VsZEJlKCJ3aW5kb3cuSFRNTENvbnRl
bnRFbGVtZW50IiwgImNvbnRlbnRTaW1wbGVzdC5jb25zdHJ1Y3RvciIpOwotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LWRpc3RyaWJ1dGVkLW5vZGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWRpc3RyaWJ1dGVk
LW5vZGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1kaXN0cmlidXRlZC1ub2Rlcy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAotVGVzdHMgZm9yIGNvbnRlbnQgZWxl
bWVudCdzIGdldERpc3RyaWJ1dGVkTm9kZXMoKS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1Mgbm9kZUxpc3QubGVuZ3RoIGlzIGV4cGVjdGVkTm9kZXMubGVuZ3RoCi1QQVNT
IG5vZGVMaXN0Lml0ZW0oMCkgaXMgZXhwZWN0ZWROb2Rlc1swXQotUEFTUyBub2RlTGlzdC5sZW5n
dGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9kZUxpc3QuaXRlbSgwKSBpcyBleHBl
Y3RlZE5vZGVzWzBdCi1QQVNTIG5vZGVMaXN0Lmxlbmd0aCBpcyBleHBlY3RlZE5vZGVzLmxlbmd0
aAotUEFTUyBub2RlTGlzdC5pdGVtKDApIGlzIGV4cGVjdGVkTm9kZXNbMF0KLVZlcmlmeSB0aGF0
IGdldERpc3RyaWJ1dGVkTm9kZXMoKSByZXR1cm5zIGEgc3RhdGljIE5vZGVMaXN0LgotUEFTUyBu
b2RlTGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9kZUxpc3QuaXRl
bSgwKSBpcyBleHBlY3RlZE5vZGVzWzBdCi1QQVNTIG5vZGVMaXN0Lmxlbmd0aCBpcyBleHBlY3Rl
ZE5vZGVzLmxlbmd0aAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWRpc3RyaWJ1dGVkLW5vZGVzLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2MSArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNvbnRlbnQgZWxlbWVudCdzIGdldERpc3RyaWJ1dGVkTm9k
ZXMoKS4iKTsKLQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2Rp
dicsIHt9LAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC0xJ30s
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudC0xJ30p
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGls
ZC0xJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QtMid9
LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2NvbnRlbnQtMid9
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
aG9zdC0zJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNo
YWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2NvbnRlbnQtMyd9KSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZC0zJ30p
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnY2hp
bGQtMid9KSkpKTsKLQotCi12YXIgY29udGVudDEgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2so
J2hvc3QtMS9jb250ZW50LTEnKTsKLXZhciBjb250ZW50MiA9IGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnaG9zdC0yL2NvbnRlbnQtMicpOwotdmFyIGNvbnRlbnQzID0gZ2V0Tm9kZUluU2hhZG93
VHJlZVN0YWNrKCdob3N0LTIvaG9zdC0zL2NvbnRlbnQtMycpOwotCi12YXIgY2hpbGQxID0gZ2V0
Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdjaGlsZC0xJyk7Ci12YXIgY2hpbGQyID0gZ2V0Tm9kZUlu
U2hhZG93VHJlZVN0YWNrKCdjaGlsZC0yJyk7Ci12YXIgY2hpbGQzID0gZ2V0Tm9kZUluU2hhZG93
VHJlZVN0YWNrKCdob3N0LTIvY2hpbGQtMycpOwotCi12YXIgZGlzdHJpYnV0ZWROb2RlczEgPSBj
b250ZW50MS5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci12YXIgZGlzdHJpYnV0ZWROb2RlczIgPSBj
b250ZW50Mi5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci12YXIgZGlzdHJpYnV0ZWROb2RlczMgPSBj
b250ZW50My5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0KLWZ1bmN0aW9uIGFzc2VydE5vZGVMaXN0
KG5vZGVMaXN0LCBleHBlY3RlZE5vZGVzKQotewotICAgIHdpbmRvdy5ub2RlTGlzdCA9IG5vZGVM
aXN0OwotICAgIHdpbmRvdy5leHBlY3RlZE5vZGVzID0gZXhwZWN0ZWROb2RlczsKLSAgICBzaG91
bGRCZSgibm9kZUxpc3QubGVuZ3RoIiwgImV4cGVjdGVkTm9kZXMubGVuZ3RoIik7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBub2RlTGlzdC5sZW5ndGg7ICsraSkgewotICAgICAgc2hvdWxkQmUo
Im5vZGVMaXN0Lml0ZW0oIiArIGkgKyAiKSIsICJleHBlY3RlZE5vZGVzWyIgKyBpICsgIl0iKTsK
LSAgICB9Ci19Ci0KLWFzc2VydE5vZGVMaXN0KGRpc3RyaWJ1dGVkTm9kZXMxLCBbY2hpbGQxXSk7
Ci1hc3NlcnROb2RlTGlzdChkaXN0cmlidXRlZE5vZGVzMiwgW2NoaWxkMl0pOwotYXNzZXJ0Tm9k
ZUxpc3QoZGlzdHJpYnV0ZWROb2RlczMsIFtjaGlsZDNdKTsKLQotZGVidWcoJ1ZlcmlmeSB0aGF0
IGdldERpc3RyaWJ1dGVkTm9kZXMoKSByZXR1cm5zIGEgc3RhdGljIE5vZGVMaXN0LicpOwotZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QtMScpLmlubmVySFRNTCA9ICcnOwotYXNzZXJ0Tm9k
ZUxpc3QoZGlzdHJpYnV0ZWROb2RlczEsIFtjaGlsZDFdKTsKLWFzc2VydE5vZGVMaXN0KGNvbnRl
bnQxLmdldERpc3RyaWJ1dGVkTm9kZXMoKSwgW10pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtaW4tbWVkaWEtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1tZWRpYS1lbGVtZW50LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtZWxlbWVudC1pbi1tZWRpYS1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw0ICswLDAgQEAKLWNvbnRlbnRFbGVtZW50SW5WaWRlb0VsZW1lbnQKLVBBU1MK
LVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtaW4tbWVkaWEtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tbWVkaWEtZWxlbWVudC5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVu
dC1lbGVtZW50LWluLW1lZGlhLWVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0vKiByZWxh
dGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KLS5jb250
YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLnNwYW4gewotICAgIGRpc3Bs
YXk6IGJveGVkLWlubGluZTsKLSAgICBtYXJnaW46IDJweDsKLSAgICBib3JkZXI6IHNvbGlkOwot
fQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LXRlc3QtZHJpdmVy
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLQotdmFyIHRlc3RGdW5jcyA9IFtdOwotCi10ZXN0RnVuY3MucHVzaChm
dW5jdGlvbiBjb250ZW50RWxlbWVudEluVmlkZW9FbGVtZW50KGNhbGxJZkRvbmUpIHsKLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8
ZGl2Pjx2aWRlbz48ZGl2PjwvZGl2PjwvdmlkZW8+PC9kaXY+IjsKLQotICAgIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgdmFyIHNyID0gZGl2
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Ci0gICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdjb250ZW50Jyk7Ci0gICAgdmlkZW8uYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAg
c3IuYXBwZW5kQ2hpbGQodmlkZW8pOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7IC8v
IGZvcmNlIHN0eWxlIHJlY2FsYy4KLSAgICBjYWxsSWZEb25lKCk7Ci19KTsKLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImRvVGVzdCh0ZXN0RnVuY3MpIj4KLQotPGRpdiBpZD0i
YWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08ZGl2IGlkPSJleHBl
Y3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUi
PjwvcHJlPgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvY29udGVudC1lbGVtZW50LWluLW1ldGVyLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4t
bWV0ZXItZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tbWV0ZXItZWxlbWVudC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMCwwIEBACi1jb250ZW50RWxlbWVudElu
TWV0ZXJFbGVtZW50Ci1QQVNTCi1URVNUIENPTVBMRVRFRAotCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluLW1ldGVyLWVsZW1lbnQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWlu
LW1ldGVyLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1tZXRlci1lbGVtZW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJl
bmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0K
LS5zcGFuIHsKLSAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0g
ICAgYm9yZGVyOiBzb2xpZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3NoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciB0ZXN0RnVuY3MgPSBbXTsK
LQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gY29udGVudEVsZW1lbnRJbk1ldGVyRWxlbWVudChj
YWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWlu
ZXInKS5pbm5lckhUTUwgPSAiPGRpdj48bWV0ZXI+PGRpdj48L2Rpdj48L21ldGVyPjwvZGl2PiI7
Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLQotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQoZGl2KTsK
LQotICAgIHZhciBzciA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICB2YXIg
bWV0ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdtZXRlcicpOwotICAgIHZhciBjb250ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29udGVudCcpOwotICAgIG1ldGVyLmFwcGVuZENo
aWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKG1ldGVyKTsKLSAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFdpZHRoOyAvLyBmb3JjZSBzdHlsZSByZWNhbGMuCi0gICAgY2FsbElmRG9uZSgp
OwotfSk7Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJkb1Rlc3QodGVzdEZ1
bmNzKSI+Ci0KLTxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwv
ZGl2PgotPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1wcm9ncmVzcy1lbGVt
ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LWluLXByb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LWluLXByb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQgKzAsMCBAQAotY29udGVudEVsZW1lbnRJblByb2dyZXNzRWxlbWVudAotUEFTUwotVEVTVCBD
T01QTEVURUQKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1pbi1wcm9ncmVzcy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1wcm9ncmVzcy1lbGVtZW50Lmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtaW4tcHJvZ3Jlc3MtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS8qIHJl
bGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLwotLmNv
bnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0uc3BhbiB7Ci0gICAgZGlz
cGxheTogYm94ZWQtaW5saW5lOwotICAgIG1hcmdpbjogMnB4OwotICAgIGJvcmRlcjogc29saWQ7
Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFkb3ctdGVzdC1kcml2
ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgdGVzdEZ1bmNzID0gW107Ci0KLXRlc3RGdW5jcy5wdXNo
KGZ1bmN0aW9uIGNvbnRlbnRFbGVtZW50SW5Qcm9ncmVzc0VsZW1lbnQoY2FsbElmRG9uZSkgewot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1M
ID0gIjxkaXY+PHByb2dyZXNzPjxkaXY+PC9kaXY+PC9wcm9ncmVzcz48L2Rpdj4iOwotCi0gICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKGRpdik7Ci0KLSAgICB2
YXIgc3IgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAgdmFyIHByb2dyZXNz
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJvZ3Jlc3MnKTsKLSAgICB2YXIgY29udGVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvbnRlbnQnKTsKLSAgICBwcm9ncmVzcy5hcHBlbmRD
aGlsZChjb250ZW50KTsKLSAgICBzci5hcHBlbmRDaGlsZChwcm9ncmVzcyk7Ci0gICAgZG9jdW1l
bnQuYm9keS5vZmZzZXRXaWR0aDsgLy8gZm9yY2Ugc3R5bGUgcmVjYWxjLgotICAgIGNhbGxJZkRv
bmUoKTsKLX0pOwotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iZG9UZXN0KHRl
c3RGdW5jcykiPgotCi08ZGl2IGlkPSJhY3R1YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVy
Ij48L2Rpdj4KLTxkaXYgaWQ9ImV4cGVjdC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwv
ZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tc2VsZWN0LWVs
ZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtaW4tc2VsZWN0LWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LWluLXNlbGVjdC1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0
ICswLDAgQEAKLWNvbnRlbnRFbGVtZW50SW5TZWxlY3RFbGVtZW50Ci1QQVNTCi1URVNUIENPTVBM
RVRFRAotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LWluLXNlbGVjdC1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1zZWxlY3QtZWxlbWVudC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LWluLXNlbGVjdC1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9z
aXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0uY29udGFpbmVyIHsK
LSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLS5zcGFuIHsKLSAgICBkaXNwbGF5OiBib3hl
ZC1pbmxpbmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0gICAgYm9yZGVyOiBzb2xpZDsKLX0KLTwvc3R5
bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLXZhciB0ZXN0RnVuY3MgPSBbXTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24g
Y29udGVudEVsZW1lbnRJblNlbGVjdEVsZW1lbnQoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNl
bGVjdD48ZGl2PjwvZGl2Pjwvc2VsZWN0PjwvZGl2PiI7Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQoZGl2KTsKLQotICAgIHZhciBzciA9IGRpdi53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc2VsZWN0Jyk7Ci0gICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjb250ZW50Jyk7Ci0gICAgc2VsZWN0LmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNy
LmFwcGVuZENoaWxkKHNlbGVjdCk7Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDsgLy8g
Zm9yY2Ugc3R5bGUgcmVjYWxjLgotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iZG9UZXN0KHRlc3RGdW5jcykiPgotCi08ZGl2IGlkPSJh
Y3R1YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxkaXYgaWQ9ImV4cGVj
dC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMiArMCwwIEBACi1UaGlzIHRlc3RzIHRoZSBjb3JyZWN0bmVzcyBvZiBpbmNsdWRlcnMg
b2YgZm9yd2FyZGVkIGNoaWxkcmVuLgotTm90ZSB0aGF0IHRoaXMgdGVzdCBuZWVkcyBpbnRlcm5h
bHMgb2JqZWN0IHRodXMgY2Fubm90IHJ1biBvdXRzaWRlIERSVC4KLVBBU1MgaW50ZXJuYWxzLmlu
Y2x1ZGVyRm9yKGNoaWxkT2ZFbGVtZW50V2l0aG91dFNoYWRvdykgaXMgbnVsbAotUEFTUyBpbnRl
cm5hbHMuaW5jbHVkZXJGb3IoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93KSBpcyBudWxsCi1QQVNT
IGludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KSBp
cyBzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQKLVBBU1MgaW50ZXJuYWxz
LmluY2x1ZGVyRm9yKG1vdmluZ0NoaWxkKSBpcyBudWxsCi1QQVNTIGludGVybmFscy5pbmNsdWRl
ckZvcihtb3ZpbmdDaGlsZCkgaXMgbnVsbAotUEFTUyBpbnRlcm5hbHMuaW5jbHVkZXJGb3IobW92
aW5nQ2hpbGQpIGlzIGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRl
bnQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
ZWxlbWVudC1pbmNsdWRlci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwcmUgaWQ9ImNvbnNvbGUiPgotVGhpcyB0ZXN0cyB0aGUgY29ycmVj
dG5lc3Mgb2YgaW5jbHVkZXJzIG9mIGZvcndhcmRlZCBjaGlsZHJlbi4KLU5vdGUgdGhhdCB0aGlz
IHRlc3QgbmVlZHMgaW50ZXJuYWxzIG9iamVjdCB0aHVzIGNhbm5vdCBydW4gb3V0c2lkZSBEUlQu
Ci08L3ByZT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIGNvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKLQotdmFyIHNoYWRv
d1Jvb3QgPSBudWxsOwotCi12YXIgZWxlbWVudFdpdGhvdXRTaGFkb3cgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKLWNvbnRhaW5lci5hcHBlbmRDaGlsZChlbGVtZW50V2l0aG91dFNo
YWRvdyk7Ci12YXIgY2hpbGRPZkVsZW1lbnRXaXRob3V0U2hhZG93ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic3BhbiIpOwotZWxlbWVudFdpdGhvdXRTaGFkb3cuYXBwZW5kQ2hpbGQoY2hpbGRP
ZkVsZW1lbnRXaXRob3V0U2hhZG93KTsKLWNvbnRhaW5lci5vZmZzZXRMZWZ0Owotc2hvdWxkQmUo
ImludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhvdXRTaGFkb3cpIiwgIm51
bGwiKTsKLQotdmFyIGVsZW1lbnRXaXRoU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci1jb250YWluZXIuYXBwZW5kQ2hpbGQoZWxlbWVudFdpdGhTaGFkb3cpOwotdmFyIHNo
YWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qo
ZWxlbWVudFdpdGhTaGFkb3cpOwotc2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3cuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOyAvLyBHaXZlcyBub24tY29udGVu
dCBjaGlsZC4gCi12YXIgY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic3BhbiIpOwotZWxlbWVudFdpdGhTaGFkb3cuYXBwZW5kQ2hpbGQoY2hpbGRPZkVs
ZW1lbnRXaXRoU2hhZG93KTsKLWNvbnRhaW5lci5vZmZzZXRMZWZ0Owotc2hvdWxkQmUoImludGVy
bmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3cpIiwgIm51bGwiKTsKLQot
dmFyIGVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOwotY29udGFpbmVyLmFwcGVuZENoaWxkKGVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12
YXIgc2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmVuc3Vy
ZVNoYWRvd1Jvb3QoZWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKLXZhciBzaGFkb3dDb250ZW50
T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1l
bnQoKTsKLXNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChz
aGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwotdmFyIGNoaWxkT2ZFbGVt
ZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci1l
bGVtZW50V2l0aFNoYWRvd0NvbnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGRPZkVsZW1lbnRXaXRoU2hh
ZG93Q29udGVudCk7Ci1jb250YWluZXIub2Zmc2V0TGVmdDsKLXNob3VsZEJlKCJpbnRlcm5hbHMu
aW5jbHVkZXJGb3IoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCkiLCAic2hhZG93Q29u
dGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50Iik7Ci0KLS8vCi0vLyBUZXN0aW5nIGR5bmFt
aWMgY2hhbmdlCi0vLwotdmFyIG1vdmluZ0NoaWxkID0gY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93
Q29udGVudDsKLQotLy8gUmVtb3ZpbmcKLWVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5yZW1vdmVD
aGlsZChtb3ZpbmdDaGlsZCk7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLmluY2x1ZGVyRm9yKG1vdmlu
Z0NoaWxkKSIsICJudWxsIik7Ci0KLS8vIE1vdmluZyB0byBjb250ZW50LWxlc3MgdHJlZQotZWxl
bWVudFdpdGhTaGFkb3cuYXBwZW5kQ2hpbGQobW92aW5nQ2hpbGQpOwotc2hvdWxkQmUoImludGVy
bmFscy5pbmNsdWRlckZvcihtb3ZpbmdDaGlsZCkiLCAibnVsbCIpOwotZWxlbWVudFdpdGhTaGFk
b3cucmVtb3ZlQ2hpbGQobW92aW5nQ2hpbGQpOwotCi0vLyBNb3ZpbmcgdG8gYW5vdGhlciBjb250
ZW50LWZ1bGwgdHJlZQotdmFyIGFub3RoZXJFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLWNvbnRhaW5lci5hcHBlbmRDaGlsZChhbm90aGVy
RWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKLXZhciBhbm90aGVyU2hhZG93Um9vdE9mRWxlbWVu
dFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoYW5vdGhlckVs
ZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIgYW5vdGhlclNoYWRvd0NvbnRlbnRPZkVsZW1l
bnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpOwot
YW5vdGhlclNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChh
bm90aGVyU2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKLQotYW5vdGhl
ckVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChtb3ZpbmdDaGlsZCk7Ci1jb250
YWluZXIub2Zmc2V0TGVmdDsKLXNob3VsZEJlKCJpbnRlcm5hbHMuaW5jbHVkZXJGb3IobW92aW5n
Q2hpbGQpIiwgImFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQi
KTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDIyICswLDAgQEAKLXRlc3RSZW1vdmVDb250ZW50Ci1QQVNTCi10ZXN0UmVtb3ZlQ29udGVudFRv
UmVjYWxjMQotUEFTUwotdGVzdFJlbW92ZUNvbnRlbnRUb1JlY2FsYzIKLVBBU1MKLXRlc3RSZW1v
dmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbgotUEFTUwotdGVzdEFwcGVuZENvbnRlbnQx
Ci1QQVNTCi10ZXN0QXBwZW5kQ29udGVudDIKLVBBU1MKLXRlc3RBcHBlbmRDb250ZW50MwotUEFT
UwotdGVzdENoYW5nZU9yZGVyT2ZDb250ZW50Ci1QQVNTCi10ZXN0TW92ZUxpZ2h0Q2hpbGRPdXQK
LVBBU1MKLXRlc3RJbnNlcnRCZWZvcmVGYWxsYmFjawotUEFTUwotVEVTVCBDT01QTEVURUQKLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1tb3ZlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMy
NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0vKiBy
ZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KLS5j
b250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLnNwYW4gewotICAgIGRp
c3BsYXk6IGJveGVkLWlubGluZTsKLSAgICBtYXJnaW46IDJweDsKLSAgICBib3JkZXI6IHNvbGlk
OwotfQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LXRlc3QtZHJp
dmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVudChj
YWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxz
cGFuPkxJR0hUPC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFy
IGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdGQUxMQkFDSycpOwot
ICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFw
cGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENo
aWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZU
RVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicp
LmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY29udGVu
dCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7Ci0gICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8
ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotICAgICAg
ICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNh
bGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJl
bW92ZUNvbnRlbnRUb1JlY2FsYzEoY2FsbElmRG9uZSkgewotICAgIHZhciByb290ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4KLSAg
ICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hUIDE8L3NwYW4+PHNwYW4+
TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBj
b250ZW50MSA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnLCAnRkFMTEJBQ0snKTsKLSAg
ICB2YXIgY29udGVudDIgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdGQUxMQkFD
SycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFw
cGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoIk1JRCIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50Mik7Ci0gICAgc3IuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2
YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50MSwgY2FsbElmRG9uZSkgewotICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50MS5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKGNvbnRlbnQxKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxz
cGFuPk1JRDwvc3Bhbj48c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuPkxJR0hUIDI8L3NwYW4+PHNw
YW4+QUZURVI8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAg
ICAgfTsKLSAgICB9KShyb290LCBjb250ZW50MSwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1l
b3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVudFRvUmVjYWxjMihjYWxs
SWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFu
PkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MxJz5MSUdIVCAyPC9zcGFuPiI7Ci0KLSAgICAv
LyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQxID0gY3JlYXRlQ29udGVudFdp
dGhTZWxlY3QoJy5jMScsICdGQUxMQkFDSycpOwotICAgIHZhciBjb250ZW50MiA9IGNyZWF0ZUNv
bnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAgdmFyIHNyID0gaW50ZXJu
YWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudDEpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiTUlEIikpOwotICAgIHNyLmFwcGVu
ZENoaWxkKGNvbnRlbnQyKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
IkFGVEVSIikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWlu
ZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNv
bnRlbnQxLCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIGNvbnRlbnQxLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudDEpOwotICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhU
TUwgPSAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkxJR0hU
IDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwot
ICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3QsIGNvbnRl
bnQxLCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbihjYWxsSWZEb25lKSB7Ci0g
ICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENy
ZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuPkxJR0hUPC9zcGFu
PiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVh
dGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1
cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAg
dmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3Zl
Q2hpbGQoY29udGVudCk7Ci0gICAgICAgICAgICByZW1vdmVBbGxDaGlsZHJlbihyb290KTsKLSAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5u
ZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2
PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwg
Y29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5j
dGlvbiB0ZXN0QXBwZW5kQ29udGVudDEoY2FsbElmRG9uZSkgewotICAgIHZhciByb290ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4K
LSAgICByb290LmlubmVySFRNTCA9ICI8c3Bhbj5MSUdIVDwvc3Bhbj4iOwotCi0gICAgLy8gQ3Jl
YXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290
KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikp
OwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxk
KHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY2FsbElmRG9uZSkgewotICAg
ICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB2YXIgY29udGVudCA9IGNyZWF0
ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAgICAgICAgICB2YXIg
c3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIHNyLmlu
c2VydEJlZm9yZShjb250ZW50LCBzci5sYXN0Q2hpbGQpOwotICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj48c3Bh
bj5CRUZPUkU8L3NwYW4+PFNQQU4+TElHSFQ8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+
IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KShyb290LCBj
YWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RB
cHBlbmRDb250ZW50MihjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3Qu
aW5uZXJIVE1MID0gIjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MyJz5MSUdIVCAy
PC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIHNyID0gaW50
ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwt
Y29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihy
b290LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAg
ICAgIHZhciBjb250ZW50MSA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzInLCAnRkFMTEJB
Q0snKTsKLSAgICAgICAgICAgIHZhciBjb250ZW50MiA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0
KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAgICAgICAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5z
dXJlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIHNyLmluc2VydEJlZm9yZShjb250ZW50
MSwgc3IubGFzdENoaWxkKTsKLSAgICAgICAgICAgIHNyLmluc2VydEJlZm9yZShjb250ZW50Miwg
c3IubGFzdENoaWxkKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFu
PkxJR0hUIDI8L3NwYW4+PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rp
dj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3Qs
IGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVz
dEFwcGVuZENvbnRlbnQzKGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAgcm9v
dC5pbm5lckhUTUwgPSAiPHNwYW4+TElHSFQgMTwvc3Bhbj48c3BhbiBjbGFzcz0nYzInPkxJR0hU
IDI8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4KLSAgICB2YXIgc3IgPSBp
bnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICB2YXIgbWlkID0gY3JlYXRlU3Bh
bldpdGhUZXh0KCJNSUQiKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
IkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChtaWQpOwotICAgIHNyLmFwcGVuZENoaWxk
KGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzInLCAnRkFMTEJBQ0snKSk7Ci0gICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAg
ICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBtaWQsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50
V2l0aFNlbGVjdCgnc3BhbicsICdGQUxMQkFDSycpOwotICAgICAgICAgICAgdmFyIHNyID0gaW50
ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgICAgICAgICBzci5pbnNlcnRCZWZv
cmUoY29udGVudCwgbWlkKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgICAgICAgICAiPGRpdj48c3Bh
bj5CRUZPUkU8L3NwYW4+PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxz
cGFuPk1JRDwvc3Bhbj48c3Bhbj5GQUxMQkFDSzwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rp
dj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3Qs
IG1pZCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlv
biB0ZXN0Q2hhbmdlT3JkZXJPZkNvbnRlbnQoY2FsbElmRG9uZSkgewotICAgIHZhciByb290ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQgdHJl
ZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hUIDE8L3NwYW4+
PHNwYW4+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAg
IHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHZhciBjb250
ZW50MSA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnLCAnRkFMTEJBQ0snKTsKLSAgICB2
YXIgY29udGVudDIgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdGQUxMQkFDSycp
OwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50Mik7
Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQo
cm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50MSwgY2FsbElmRG9u
ZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB2YXIgc3IgPSBp
bnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIHNyLnJlbW92ZUNo
aWxkKGNvbnRlbnQxKTsKLSAgICAgICAgICAgIHNyLmluc2VydEJlZm9yZShjb250ZW50MSwgc3Iu
bGFzdENoaWxkKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3Qt
Y29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgICAgICAgICAiPGRpdj48c3Bhbj5CRUZP
UkU8L3NwYW4+PFNQQU4+TElHSFQgMTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxzcGFuPkZB
TExCQUNLPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxs
SWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVudDEsIGNhbGxJZkRvbmUp
OwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdE1vdmVMaWdodENo
aWxkT3V0KGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAgdmFyIG4xID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgbjEuc2V0QXR0cmlidXRlKCdpZCcsICdu
MScpOwotICAgIG4xLmlubmVySFRNTCA9ICI8c3BhbiBpZD0nbGlnaHQxJz5MSUdIVCAxPC9zcGFu
PjxzcGFuPkxJR0hUIDI8L3NwYW4+IjsKLSAgICB2YXIgbjIgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICBuMi5zZXRBdHRyaWJ1dGUoJ2lkJywgJ24yJyk7Ci0KLSAgICByb290
LmFwcGVuZENoaWxkKG4xKTsKLSAgICByb290LmFwcGVuZENoaWxkKG4yKTsKLQotICAgIC8vIENy
ZWF0ZSBzaGFkb3cgdHJlZSBpbiAnbjEnCi0gICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNo
YWRvd1Jvb3QobjEpOwotICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3Qo
J3NwYW4nLCAnRkFMTEJBQ0snKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICBzci5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwotCi0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAg
IHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIG4yLCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVy
biBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2xpZ2h0MScpOwotICAgICAgICAgICAgZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpOwot
ICAgICAgICAgICAgbjIuYXBwZW5kQ2hpbGQoZSk7Ci0KLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgICAg
ICAgICAiPGRpdj48ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxz
cGFuPkFGVEVSPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+TElHSFQgMTwvc3Bhbj48L2Rpdj48L2Rp
dj4iCi0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwg
bjIsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24g
dGVzdEluc2VydEJlZm9yZUZhbGxiYWNrKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2
PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5IT0dFPC9zcGFuPjxzcGFuPkZBTExCQUNLPC9zcGFu
PjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVh
bC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIHNwYW4xID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVu
c3VyZVNoYWRvd1Jvb3Qoc3BhbjEpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlQ29udGVu
dFdpdGhUZXh0KCJGQUxMQkFDSyIpKTsKLQotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoJ0JFRk9SRScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3BhbjEpOwot
ICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSJykpOwotCi0g
ICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBzcGFuMSwgY2FsbElmRG9uZSkgeyByZXR1cm4g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUoY3JlYXRlU3BhbldpdGhU
ZXh0KCdIT0dFJyksIHNwYW4xKTsKLSAgICAgICAgY2FsbElmRG9uZSgpOwotICAgIH07fSkodGFy
Z2V0LCBzcGFuMSwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi12
YXIgdGVzdEZ1bmNzID0gWwotICAgIHRlc3RSZW1vdmVDb250ZW50LAotICAgIHRlc3RSZW1vdmVD
b250ZW50VG9SZWNhbGMxLAotICAgIHRlc3RSZW1vdmVDb250ZW50VG9SZWNhbGMyLAotICAgIHRl
c3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbiwKLSAgICB0ZXN0QXBwZW5kQ29u
dGVudDEsCi0gICAgdGVzdEFwcGVuZENvbnRlbnQyLAotICAgIHRlc3RBcHBlbmRDb250ZW50MywK
LSAgICB0ZXN0Q2hhbmdlT3JkZXJPZkNvbnRlbnQsCi0gICAgdGVzdE1vdmVMaWdodENoaWxkT3V0
LAotICAgIHRlc3RJbnNlcnRCZWZvcmVGYWxsYmFjawotXTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9ImRvVGVzdCh0ZXN0RnVuY3MpIj4KLQotPGRpdiBpZD0iYWN0dWFsLWNv
bnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08ZGl2IGlkPSJleHBlY3QtY29udGFp
bmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgot
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjEgKzAsMCBAQAotSFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBiZSBh
YmxlIHRvIHN1cnZpdmUgZXZlbiBvdXRzaWRlIHNoYWRvdy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLTxkaXY+PGNvbnRlbnQ+PC9jb250ZW50PjwvZGl2PgotUEFTUyB0YXJnZXRS
ZW5kZXJUcmVlIGlzIGNvbXBhcmlzb25SZW5kZXJUcmVlCi08ZGl2Pjxjb250ZW50PkhlcmUgaXMg
YSB0ZXh0LjwvY29udGVudD48L2Rpdj4KLVBBU1MgdGFyZ2V0UmVuZGVyVHJlZSBpcyBjb21wYXJp
c29uUmVuZGVyVHJlZQotPGRpdj48Y29udGVudD48ZGl2PkhlcmUgaXMgYSA8L2Rpdj48ZGl2PnNl
cmllcyBvZjwvZGl2PjxkaXY+YmxvY2tzPC9kaXY+PC9jb250ZW50PjwvZGl2PgotUEFTUyB0YXJn
ZXRSZW5kZXJUcmVlIGlzIGNvbXBhcmlzb25SZW5kZXJUcmVlCi08ZGl2Pjxjb250ZW50PjxzcGFu
PkhlcmUgaXMgYTxzcGFuPjxzcGFuPnNlcmllcyBvZjwvc3Bhbj48c3Bhbj5pbmxpbmVzLjwvc3Bh
bj48L2NvbnRlbnQ+PC9kaXY+Ci1QQVNTIHRhcmdldFJlbmRlclRyZWUgaXMgY29tcGFyaXNvblJl
bmRlclRyZWUKLTxkaXY+PGNvbnRlbnQ+SGVyZSBpcyBhIDxjb250ZW50Pm5lc3RlZCBjb250ZW50
PC9jb250ZW50PiBpbnNpZGUgY29udGVudC48L2NvbnRlbnQ+PC9kaXY+Ci1QQVNTIHRhcmdldFJl
bmRlclRyZWUgaXMgY29tcGFyaXNvblJlbmRlclRyZWUKLTxkaXY+PGNvbnRlbnQ+SGVyZSBpcyBh
IDxkaXY+YmxvY2sgYW5kIDxjb250ZW50Pm5lc3RlZCBjb250ZW50PC9jb250ZW50PiBpbnNpZGUg
dGhlIGJsb2NrPC9kaXY+LjwvY29udGVudD48L2Rpdj4KLVBBU1MgdGFyZ2V0UmVuZGVyVHJlZSBp
cyBjb21wYXJpc29uUmVuZGVyVHJlZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUt
c2hhZG93LXN0eWxlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUt
ZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1zcGFuIHsKLSAgICBjb2xvcjogYmx1ZTsK
LX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdj4KLSAgICA8c3Bhbj5TaG91bGQg
YmUgY29sb3JlZCBibHVlLjwvc3Bhbj4KLSAgPC9kaXY+Ci0gIDxkaXY+Ci0gICAgPGRpdj5TaG91
bGQgaGF2ZSBubyBjb29sIGNvbG9yLjwvZGl2PgotICAgIDxkaXY+U2hvdWxkIGhhdmUgbm8gY29v
bCBjb2xvciBlaXRoZXIuPC9kaXY+Ci0gIDwvZGl2PgotPC9ib2R5PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1zdHlsZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVs
ZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1z
dHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWNvbnRlbnQgewotICAgIGNvbG9yOiBibHVlOwot
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8ZGl2PgotICAgIDxjb250ZW50PlNob3Vs
ZCBiZSBjb2xvcmVkIGJsdWUuPC9jb250ZW50PgotICA8L2Rpdj4KLSAgPGRpdj4KLSAgICA8ZGl2
IGlkPSJob3N0V2l0aENoaWxkIj5TaG91bGQgaGF2ZSBubyBjb29sIGNvbG9yLjwvZGl2PgotICAg
IDxjb250ZW50IGlkPSJ0b0JlTW92ZWQiPlNob3VsZCBoYXZlIG5vIGNvb2wgY29sb3IgZWl0aGVy
LjwvY29udGVudD4KLSAgICA8ZGl2IGlkPSJob3N0RW1wdHkiPjwvZGl2PgotICA8L2Rpdj4KLTxz
Y3JpcHQ+Ci0vLyBFbnN1cmVzIHRoYXQgZGlzdHJpYnV0ZWQgc2hhZG93IGNoaWxkIGlzbid0IGVm
ZmVjdGVkIGJ5IHRoZSBzdHlsZS4KLXZhciBob3N0V2l0aENoaWxkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImhvc3RXaXRoQ2hpbGQiKTsKLXZhciBzaGFkb3dGb3JIb3N0V2l0aENoaWxkID0g
aG9zdFdpdGhDaGlsZC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dGb3JIb3N0V2l0
aENoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNvbnRlbnQiKSk7Ci0K
LS8vIEFsc28gZW5zdXJlcyB0aGF0IGR5bmFtaWNhbGx5IG1vdmVkIDxjb250ZW50PiBlbGVtZW50
cyBkbyB3b3JrLgotdmFyIGhvc3RFbXB0eSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0
RW1wdHkiKTsKLXZhciBzaGFkb3dGb3JIb3N0RW1wdHkgPSBob3N0RW1wdHkud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotc2hhZG93Rm9ySG9zdEVtcHR5LmFwcGVuZENoaWxkKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0b0JlTW92ZWQiKSk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRv
dy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDU1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08Ym9keT4KLQotPGRpdiBpZD0idGFyZ2V0Q29udGFpbmVyIiBzdHlsZT0icG9zaXRpb246IHJl
bGF0aXZlOyI+PC9kaXY+Ci08ZGl2IGlkPSJjb21wYXJpc29uQ29udGFpbmVyIiBzdHlsZT0icG9z
aXRpb246IHJlbGF0aXZlOyI+PC9kaXY+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD48IS0tCi1kZXNjcmlwdGlvbigi
SFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBiZSBhYmxlIHRvIHN1cnZpdmUgZXZlbiBvdXRzaWRl
IHNoYWRvdy4iKTsKLQotZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVyTGluZXModGV4dCkKLXsKLSAg
ICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCJcbiIpOwotICAgIGxpbmVzLnNwbGljZSgwLCAyKTsK
LSAgICByZXR1cm4gbGluZXMuam9pbigiXG4iKTsKLX0KLQotdmFyIGNhc2VzID0gWwotICAgIFsi
PGRpdj48Y29udGVudD48L2NvbnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxkaXY+PHVua25vd24+PC91
bmtub3duPjwvZGl2PiJdLAotICAgIFsiPGRpdj48Y29udGVudD5IZXJlIGlzIGEgdGV4dC48L2Nv
bnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxkaXY+PHVua25vd24+SGVyZSBpcyBhIHRleHQuPC91bmtu
b3duPjwvZGl2PiJdLAotICAgIFsiPGRpdj48Y29udGVudD48ZGl2PkhlcmUgaXMgYSA8L2Rpdj48
ZGl2PnNlcmllcyBvZjwvZGl2PjxkaXY+YmxvY2tzPC9kaXY+PC9jb250ZW50PjwvZGl2PiIsCi0g
ICAgICI8ZGl2Pjx1bmtub3duPjxkaXY+SGVyZSBpcyBhIDwvZGl2PjxkaXY+c2VyaWVzIG9mPC9k
aXY+PGRpdj5ibG9ja3M8L2Rpdj48L3Vua25vd24+PC9kaXY+Il0sCi0gICAgWyI8ZGl2Pjxjb250
ZW50PjxzcGFuPkhlcmUgaXMgYTxzcGFuPjxzcGFuPnNlcmllcyBvZjwvc3Bhbj48c3Bhbj5pbmxp
bmVzLjwvc3Bhbj48L2NvbnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxkaXY+PHVua25vd24+PHNwYW4+
SGVyZSBpcyBhPHNwYW4+PHNwYW4+c2VyaWVzIG9mPC9zcGFuPjxzcGFuPmlubGluZXMuPC9zcGFu
PjwvdW5rbm93bj48L2Rpdj4iXSwKLSAgICBbIjxkaXY+PGNvbnRlbnQ+SGVyZSBpcyBhIDxjb250
ZW50Pm5lc3RlZCBjb250ZW50PC9jb250ZW50PiBpbnNpZGUgY29udGVudC48L2NvbnRlbnQ+PC9k
aXY+IiwKLSAgICAgIjxkaXY+PHVua25vd24+SGVyZSBpcyBhIDx1bmtub3duPm5lc3RlZCBjb250
ZW50PC91bmtub3duPiBpbnNpZGUgY29udGVudC48L3Vua25vd24+PC9kaXY+Il0sCi0gICAgWyI8
ZGl2Pjxjb250ZW50PkhlcmUgaXMgYSA8ZGl2PmJsb2NrIGFuZCA8Y29udGVudD5uZXN0ZWQgY29u
dGVudDwvY29udGVudD4gaW5zaWRlIHRoZSBibG9jazwvZGl2Pi48L2NvbnRlbnQ+PC9kaXY+IiwK
LSAgICAgIjxkaXY+PHVua25vd24+SGVyZSBpcyBhIDxkaXY+YmxvY2sgYW5kIDx1bmtub3duPm5l
c3RlZCBjb250ZW50PC91bmtub3duPiBpbnNpZGUgdGhlIGJsb2NrPC9kaXY+LjwvdW5rbm93bj48
L2Rpdj4iXQotXTsKLQotdmFyIHRhcmdldENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0YXJnZXRDb250YWluZXIiKTsKLXZhciBjb21wYXJpc29uQ29udGFpbmVyID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBhcmlzb25Db250YWluZXIiKTsKLQotZm9yICh2YXIgaSA9
IDA7IGkgPCBjYXNlcy5sZW5ndGg7ICsraSkgewotICAgIHZhciB0YXJnZXRNYXJrdXAgPSBjYXNl
c1tpXVswXTsKLSAgICB2YXIgZXhwZWN0ZWRNYXJrdXAgPSBjYXNlc1tpXVsxXTsKLQotICAgIHRh
cmdldENvbnRhaW5lci5pbm5lckhUTUwgPSB0YXJnZXRNYXJrdXA7Ci0gICAgY29tcGFyaXNvbkNv
bnRhaW5lci5pbm5lckhUTUwgPSBleHBlY3RlZE1hcmt1cDsKLSAgICB0YXJnZXRSZW5kZXJUcmVl
ID0gcmVtb3ZlQ29udGFpbmVyTGluZXMod2luZG93LmludGVybmFscy5lbGVtZW50UmVuZGVyVHJl
ZUFzVGV4dCh0YXJnZXRDb250YWluZXIpKTsKLSAgICB0YXJnZXRSZW5kZXJUcmVlID0gdGFyZ2V0
UmVuZGVyVHJlZS5yZXBsYWNlKC9DT05URU5UL2csICJVTktOT1dOIik7Ci0gICAgY29tcGFyaXNv
blJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh3aW5kb3cuaW50ZXJuYWxzLmVsZW1l
bnRSZW5kZXJUcmVlQXNUZXh0KGNvbXBhcmlzb25Db250YWluZXIpKTsKLSAgICBkZWJ1Zyhlc2Nh
cGVIVE1MKHRhcmdldE1hcmt1cCkpOwotICAgIHNob3VsZEJlKCJ0YXJnZXRSZW5kZXJUcmVlIiwg
ImNvbXBhcmlzb25SZW5kZXJUcmVlIik7Ci19Ci0KLXRhcmdldENvbnRhaW5lci5pbm5lckhUTUwg
PSBjb21wYXJpc29uQ29udGFpbmVyLmlubmVySFRNTCA9ICIiOwotCi0tLT48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtcmVuZGVyZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRlcmVycy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtcmVuZGVyZXJzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwx
ODIgKzAsMCBAQAotVGhpcyB0ZXN0IGNvbXBhcmVzIGEgc2hhZG93LWJhc2VkIHJlbmRlciB0cmVl
IHdpdGggb25lIGZvciBhIHJlZmVyZW5jZSBET00gdHJlZS4KLU5vdGUgdGhhdCB0aGlzIHRlc3Qg
b25seSBydW5zIG9uIERSVC4KLVBBU1NbMCwwXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxjb250
ZW50Lz4KLVBBU1NbMCwxXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48
ZGl2Lz4KLVBBU1NbMCwyXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48
c3Bhbi8+Ci1QQVNTWzAsM106IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQv
PjxzcGFuLz4KLVBBU1NbMCw0XTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVu
dC8+PGRpdi8+Ci1QQVNTWzAsNV06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PGRpdi8+Ci1QQVNTWzAsNl06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PHNwYW4vPgotUEFTU1swLDddOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250
ZW50Lz48c3Bhbi8+Ci1QQVNTWzAsOF06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNv
bnRlbnQvPjxkaXYvPgotUEFTU1swLDldOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PGRpdi8+I3Rl
eHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbMCwxMF06IGNvbnRlbnQ9PGRpdi8+IHNoYWRv
dz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KLVBBU1NbMCwxMV06IGNvbnRlbnQ9
PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzAs
MTJdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRp
di8+Ci1QQVNTWzAsMTNdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9k
aXY+Ci1QQVNTWzAsMTRdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwv
c3Bhbj4KLVBBU1NbMSwwXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PGNvbnRlbnQvPgot
UEFTU1sxLDFdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRp
di8+Ci1QQVNTWzEsMl06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50
Lz48c3Bhbi8+Ci1QQVNTWzEsM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuLz48
Y29udGVudC8+PHNwYW4vPgotUEFTU1sxLDRdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08
c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxLDVdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNo
YWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzEsNl06IGNvbnRlbnQ9I3RleHQ8ZGl2
Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzEsN106IGNvbnRlbnQ9I3Rl
eHQ8ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1sxLDhdOiBjb250
ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxLDld
OiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxk
aXYvPgotUEFTU1sxLDEwXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8
Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzEsMTFdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNo
YWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzEsMTJdOiBjb250
ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4K
LVBBU1NbMSwxM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwv
ZGl2PgotUEFTU1sxLDE0XTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRl
bnQvPjwvc3Bhbj4KLVBBU1NbMiwwXTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PGNvbnRl
bnQvPgotUEFTU1syLDFdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PGRpdi8+Ci1QQVNTWzIsMl06IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPjxj
b250ZW50Lz48c3Bhbi8+Ci1QQVNTWzIsM106IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxz
cGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1syLDRdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNo
YWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1syLDVdOiBjb250ZW50PTxkaXYvPiN0
ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzIsNl06IGNvbnRlbnQ9PGRp
di8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzIsN106IGNvbnRl
bnQ9PGRpdi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1syLDhd
OiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFT
U1syLDldOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4j
dGV4dDxkaXYvPgotUEFTU1syLDEwXTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdi8+
I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzIsMTFdOiBjb250ZW50PTxkaXYvPiN0
ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzIsMTJd
OiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8
ZGl2Lz4KLVBBU1NbMiwxM106IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxkaXY+PGNvbnRl
bnQvPjwvZGl2PgotUEFTU1syLDE0XTogY29udGVudD08ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4+
PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbMywwXTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNo
YWRvdz08Y29udGVudC8+Ci1QQVNTWzMsMV06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFk
b3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1szLDJdOiBjb250ZW50PSN0ZXh0PGRpdi8+
I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzMsM106IGNvbnRlbnQ9
I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzMs
NF06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2
Lz4KLVBBU1NbMyw1XTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29u
dGVudC8+PGRpdi8+Ci1QQVNTWzMsNl06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9
PGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbMyw3XTogY29udGVudD0jdGV4dDxkaXYvPiN0
ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbMyw4XTogY29udGVudD0j
dGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1szLDld
OiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0
ZXh0PGRpdi8+Ci1QQVNTWzMsMTBdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxk
aXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgotUEFTU1szLDExXTogY29udGVudD0jdGV4
dDxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1Q
QVNTWzMsMTJdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxzcGFuLz4jdGV4dDxj
b250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1szLDEzXTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0
IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KLVBBU1NbMywxNF06IGNvbnRlbnQ9I3RleHQ8
ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbNCwwXTogY29u
dGVudD08c3Bhbi8+IHNoYWRvdz08Y29udGVudC8+Ci1QQVNTWzQsMV06IGNvbnRlbnQ9PHNwYW4v
PiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s0LDJdOiBjb250ZW50PTxzcGFu
Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzQsM106IGNvbnRlbnQ9PHNw
YW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzQsNF06IGNvbnRlbnQ9
PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbNCw1XTogY29udGVu
dD08c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzQsNl06IGNvbnRl
bnQ9PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbNCw3XTogY29u
dGVudD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbNCw4XTog
Y29udGVudD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s0LDld
OiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+
Ci1QQVNTWzQsMTBdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQv
PiN0ZXh0PHNwYW4vPgotUEFTU1s0LDExXTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+
I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzQsMTJdOiBjb250ZW50PTxzcGFuLz4g
c2hhZG93PTxzcGFuLz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1s0LDEzXTogY29u
dGVudD08c3Bhbi8+IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KLVBBU1NbNCwxNF06IGNv
bnRlbnQ9PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbNSwwXTog
Y29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxjb250ZW50Lz4KLVBBU1NbNSwxXTogY29udGVu
dD0jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbNSwyXTog
Y29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNT
WzUsM106IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFu
Lz4KLVBBU1NbNSw0XTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVu
dC8+PGRpdi8+Ci1QQVNTWzUsNV06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48
Y29udGVudC8+PGRpdi8+Ci1QQVNTWzUsNl06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08
ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s1LDddOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBz
aGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzUsOF06IGNvbnRlbnQ9I3RleHQ8
c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s1LDldOiBjb250ZW50
PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBB
U1NbNSwxMF06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50
Lz4jdGV4dDxzcGFuLz4KLVBBU1NbNSwxMV06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08
c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzUsMTJdOiBjb250ZW50PSN0
ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+Ci1QQVNT
WzUsMTNdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+
Ci1QQVNTWzUsMTRdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQv
Pjwvc3Bhbj4KLVBBU1NbNiwwXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxjb250ZW50
Lz4KLVBBU1NbNiwxXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50
Lz48ZGl2Lz4KLVBBU1NbNiwyXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxj
b250ZW50Lz48c3Bhbi8+Ci1QQVNTWzYsM106IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08
c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbNiw0XTogY29udGVudD08c3Bhbi8+I3RleHQg
c2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzYsNV06IGNvbnRlbnQ9PHNwYW4v
PiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzYsNl06IGNvbnRlbnQ9
PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s2LDddOiBj
b250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNT
WzYsOF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYv
PgotUEFTU1s2LDldOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29u
dGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbNiwxMF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRv
dz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KLVBBU1NbNiwxMV06IGNvbnRlbnQ9
PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1Q
QVNTWzYsMTJdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRl
bnQvPiN0ZXh0PGRpdi8+Ci1QQVNTWzYsMTNdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9
PGRpdj48Y29udGVudC8+PC9kaXY+Ci1QQVNTWzYsMTRdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBz
aGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbNywwXTogY29udGVudD0jdGV4dDxz
cGFuLz4jdGV4dCBzaGFkb3c9PGNvbnRlbnQvPgotUEFTU1s3LDFdOiBjb250ZW50PSN0ZXh0PHNw
YW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzcsMl06IGNvbnRl
bnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNT
WzcsM106IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+
PHNwYW4vPgotUEFTU1s3LDRdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bh
bi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s3LDVdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0
IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzcsNl06IGNvbnRlbnQ9I3RleHQ8
c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzcsN106IGNv
bnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgot
UEFTU1s3LDhdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRl
bnQvPjxkaXYvPgotUEFTU1s3LDldOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08
ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1s3LDEwXTogY29udGVudD0jdGV4
dDxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1Q
QVNTWzcsMTFdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8
Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzcsMTJdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0
ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbNywxM106
IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2Pgot
UEFTU1s3LDE0XTogY29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4+PGNvbnRl
bnQvPjwvc3Bhbj4KLVBBU1NbOCwwXTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93
PTxjb250ZW50Lz4KLVBBU1NbOCwxXTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93
PTxkaXYvPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbOCwyXTogY29udGVudD08c3Bhbi8+I3RleHQ8
ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzgsM106IGNvbnRlbnQ9
PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1Nb
OCw0XTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+
PGRpdi8+Ci1QQVNTWzgsNV06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2
Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzgsNl06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+
IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s4LDddOiBjb250ZW50PTxzcGFu
Lz4jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzgsOF06
IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYv
PgotUEFTU1s4LDldOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdi8+I3Rl
eHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbOCwxMF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0
PGRpdi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KLVBBU1NbOCwx
MV06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVu
dC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzgsMTJdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBz
aGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+Ci1QQVNTWzgsMTNdOiBjb250
ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+Ci1QQVNT
WzgsMTRdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQv
Pjwvc3Bhbj4KLVBBU1NbOSwwXTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxj
b250ZW50Lz4KLVBBU1NbOSwxXTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxk
aXYvPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbOSwyXTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFu
Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzksM106IGNvbnRlbnQ9PGRp
di8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbOSw0
XTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRp
di8+Ci1QQVNTWzksNV06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48
Y29udGVudC8+PGRpdi8+Ci1QQVNTWzksNl06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNo
YWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s5LDddOiBjb250ZW50PTxkaXYvPiN0
ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzksOF06IGNv
bnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgot
UEFTU1s5LDldOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8
Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbOSwxMF06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bh
bi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KLVBBU1NbOSwxMV06
IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+Ci1QQVNTWzksMTJdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFk
b3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+Ci1QQVNTWzksMTNdOiBjb250ZW50
PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+Ci1QQVNTWzks
MTRdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwv
c3Bhbj4KLVBBU1NbMTAsMF06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PGNvbnRlbnQv
PgotUEFTU1sxMCwxXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVu
dC8+PGRpdi8+Ci1QQVNTWzEwLDJdOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxkaXYv
Pjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzEwLDNdOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hh
ZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1sxMCw0XTogY29udGVudD08ZGl2Lz48
c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxMCw1XTogY29udGVu
dD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzEwLDZd
OiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1Q
QVNTWzEwLDddOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+
PHNwYW4vPgotUEFTU1sxMCw4XTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+
PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxMCw5XTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRv
dz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1sxMCwxMF06IGNvbnRlbnQ9
PGRpdi8+PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1Q
QVNTWzEwLDExXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29u
dGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzEwLDEyXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNo
YWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbMTAsMTNdOiBjb250
ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgotUEFTU1sxMCwx
NF06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4K
LVBBU1NbMTEsMF06IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PGNvbnRlbnQvPgotUEFT
U1sxMSwxXTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRp
di8+Ci1QQVNTWzExLDJdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250
ZW50Lz48c3Bhbi8+Ci1QQVNTWzExLDNdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxz
cGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1sxMSw0XTogY29udGVudD08c3Bhbi8+PGRpdi8+
IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxMSw1XTogY29udGVudD08c3Bh
bi8+PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzExLDZdOiBjb250
ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzEx
LDddOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4v
PgotUEFTU1sxMSw4XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRl
bnQvPjxkaXYvPgotUEFTU1sxMSw5XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2
Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1sxMSwxMF06IGNvbnRlbnQ9PHNwYW4v
PjxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzEx
LDExXTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+Ci1QQVNTWzExLDEyXTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08
c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbMTEsMTNdOiBjb250ZW50PTxz
cGFuLz48ZGl2Lz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgotUEFTU1sxMSwxNF06IGNv
bnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1yZW5kZXJlcnMuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0
eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxh
eWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci08L3N0eWxl
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAgIHZhciBsaW5lID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgbGluZS50ZXh0Q29udGVudCA9IG1lc3Nh
Z2U7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChs
aW5lKTsKLX0KLQotdmFyIGNvbnRlbnRTb3VyY2VzID0gWwotICAiPGRpdi8+IiwKLSAgIiN0ZXh0
PGRpdi8+IiwKLSAgIjxkaXYvPiN0ZXh0IiwKLSAgIiN0ZXh0PGRpdi8+I3RleHQiLAotCi0gICI8
c3Bhbi8+IiwKLSAgIiN0ZXh0PHNwYW4vPiIsCi0gICI8c3Bhbi8+I3RleHQiLAotICAiI3RleHQ8
c3Bhbi8+I3RleHQiLAotCi0gICI8c3Bhbi8+I3RleHQ8ZGl2Lz4iLAotICAiPGRpdi8+I3RleHQ8
c3Bhbi8+IiwKLSAgIjxkaXYvPjxzcGFuLz4iLAotICAiPHNwYW4vPjxkaXYvPiIKLQotXTsKLQot
dmFyIHNoYWRvd1NvdXJjZXMgPSBbCi0gICI8Y29udGVudC8+IiwKLSAgIjxkaXYvPjxjb250ZW50
Lz48ZGl2Lz4iLAotICAiPGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4iLAotICAiPHNwYW4vPjxjb250
ZW50Lz48c3Bhbi8+IiwKLSAgIjxzcGFuLz48Y29udGVudC8+PGRpdi8+IiwKLQotICAiPGRpdi8+
PGNvbnRlbnQvPjxkaXYvPiIsCi0gICI8ZGl2Lz48Y29udGVudC8+PHNwYW4vPiIsCi0gICI8c3Bh
bi8+PGNvbnRlbnQvPjxzcGFuLz4iLAotICAiPHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4iLAotCi0g
ICI8ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPiIsCi0gICI8ZGl2Lz4jdGV4dDxjb250
ZW50Lz4jdGV4dDxzcGFuLz4iLAotICAiPHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4v
PiIsCi0gICI8c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4iLAotCi0gICI8ZGl2Pjxj
b250ZW50Lz48L2Rpdj4iLAotICAiPHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4iCi1dOwotCi1mdW5j
dGlvbiBjcmVhdGVUcmVlRnJvbShodG1sKQotewotICAgIHZhciBlbmhhbmNlZEh0bWwgPSBodG1s
LnJlcGxhY2UoLzxzcGFuXC8+L2csICI8c3Bhbj4gPC9zcGFuPiIpLnJlcGxhY2UoLzxkaXZcLz4v
ZywgIjxkaXY+IDwvZGl2PiIpLnJlcGxhY2UoLzxjb250ZW50XC8+L2csICI8Y29udGVudD48L2Nv
bnRlbnQ+IikucmVwbGFjZSgvI3RleHQvZywgIiAiKTsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImJsb2NrcXVvdGUiKTsKLSAgICByb290LmlubmVySFRNTCA9IGVuaGFu
Y2VkSHRtbDsKLSAgICB2YXIgY29udGVudFBsYWNlaG9sZGVyID0gcm9vdC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiQ09OVEVOVCIpWzBdOwotICAgIGlmIChjb250ZW50UGxhY2Vob2xkZXIpIHsKLSAg
ICAgICAgdmFyIGNvbnRlbnRQYXJlbnQgPSBjb250ZW50UGxhY2Vob2xkZXIucGFyZW50Tm9kZTsK
LSAgICAgICAgY29udGVudFBhcmVudC5yZXBsYWNlQ2hpbGQod2luZG93LmludGVybmFscy5jcmVh
dGVDb250ZW50RWxlbWVudCgpLCBjb250ZW50UGxhY2Vob2xkZXIpOwotICAgIH07Ci0KLSAgICBy
ZXR1cm4gcm9vdDsKLX0KLQotZnVuY3Rpb24gbW92ZUNoaWxkcmVuKGZyb21QYXJlbnQsIHRvUGFy
ZW50KQotewotICAgIHZhciBjaGlsZHJlbiA9IGZyb21QYXJlbnQuY2hpbGROb2RlczsKLSAgICB3
aGlsZSAoZnJvbVBhcmVudC5maXJzdENoaWxkKQotICAgICAgICB0b1BhcmVudC5hcHBlbmRDaGls
ZChmcm9tUGFyZW50LmZpcnN0Q2hpbGQpOwotfQotCi1mdW5jdGlvbiBjcmVhdGVUYXJnZXRUcmVl
KGNvbnRlbnRIdG1sLCBzaGFkb3dIdG1sKQotewotICAgIHZhciBjb250ZW50ID0gY3JlYXRlVHJl
ZUZyb20oY29udGVudEh0bWwpOwotICAgIHZhciBzaGFkb3cgPSBjcmVhdGVUcmVlRnJvbShzaGFk
b3dIdG1sKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJsb2NrcXVv
dGUiKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KGhv
c3QpOwotICAgIG1vdmVDaGlsZHJlbihjb250ZW50LCBob3N0KTsKLSAgICBtb3ZlQ2hpbGRyZW4o
c2hhZG93LCBzaGFkb3dSb290KTsgCi0gICAgcmV0dXJuIGhvc3Q7Ci19Ci0KLWZ1bmN0aW9uIGNs
ZWFudXBDb250YWluZXIoY29udGFpbmVyKQotewotICAgIHZhciBjaGlsZCA9IGNvbnRhaW5lci5m
aXJzdENoaWxkOwotICAgIGlmIChjaGlsZCkKLSAgICAgICAgY29udGFpbmVyLnJlbW92ZUNoaWxk
KGNoaWxkKTsKLSAgICBjb250YWluZXIub2Zmc2V0TGVmdDsKLX0KLQotZnVuY3Rpb24gdGVzdFdp
dGhDb250ZW50QW5kU2hhZG93KGNvbnRlbnRIdG1sLCBzaGFkb3dIdG1sLCBsYWJlbCkKLXsKLSAg
ICB2YXIgdGFyZ2V0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldENv
bnRhaW5lciIpOwotICAgIGNsZWFudXBDb250YWluZXIodGFyZ2V0Q29udGFpbmVyKTsKLSAgICB2
YXIgdGFyZ2V0ID0gY3JlYXRlVGFyZ2V0VHJlZShjb250ZW50SHRtbCwgc2hhZG93SHRtbCk7Ci0g
ICAgdGFyZ2V0Q29udGFpbmVyLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0gICAgdmFyIHRhcmdldFJl
bmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh3aW5kb3cuaW50ZXJuYWxzLmVsZW1lbnRS
ZW5kZXJUcmVlQXNUZXh0KHRhcmdldENvbnRhaW5lcikpOwotCi0gICAgdmFyIHJlZmVyZW5jZUNv
bnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2VDb250YWluZXIiKTsK
LSAgICBjbGVhbnVwQ29udGFpbmVyKHJlZmVyZW5jZUNvbnRhaW5lcik7Ci0gICAgdmFyIHNlcGFy
YXRvciA9ICI8IS0tIC0tPiI7IC8vIFVzZXMgYSBzZXBhcmF0b3IgZm9yIGtlZXBpbmcgdGV4dCBu
b2RlIHNlcGFyYXRlLgotICAgIHZhciByZWZlcmVuY2VIdG1sID0gc2hhZG93SHRtbC5yZXBsYWNl
KCI8Y29udGVudC8+IiwgKHNlcGFyYXRvciArIGNvbnRlbnRIdG1sICsgc2VwYXJhdG9yKSk7Ci0g
ICAgdmFyIHJlZmVyZW5jZSA9IGNyZWF0ZVRyZWVGcm9tKHJlZmVyZW5jZUh0bWwpOwotICAgIHJl
ZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChyZWZlcmVuY2UpOwotICAgIHZhciByZWZlcmVu
Y2VSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMod2luZG93LmludGVybmFscy5lbGVt
ZW50UmVuZGVyVHJlZUFzVGV4dChyZWZlcmVuY2VDb250YWluZXIpKTsKLSAgICBpZiAodGFyZ2V0
UmVuZGVyVHJlZSA9PSByZWZlcmVuY2VSZW5kZXJUcmVlKQotICAgICAgICBsb2coIlBBU1NbIiAr
IGxhYmVsICsgIl06IGNvbnRlbnQ9IiArIGNvbnRlbnRIdG1sICsgIiBzaGFkb3c9IiArIHNoYWRv
d0h0bWwpOwotICAgIGVsc2UgewotICAgICAgICBsb2coIkZBSUxbIiArIGxhYmVsICsgIl06IGNv
bnRlbnQ9IiArIGNvbnRlbnRIdG1sICsgIiBzaGFkb3c9IiArIHNoYWRvd0h0bWwpOwotICAgICAg
ICBsb2coIkV4cGVjdGVkOiAoZm9yICIgKyByZWZlcmVuY2UuaW5uZXJIVE1MICsgIikiKTsKLSAg
ICAgICAgbG9nKHJlZmVyZW5jZVJlbmRlclRyZWUpOwotICAgICAgICBsb2coIkFjdHVhbDogKGZv
ciAiICsgdGFyZ2V0LmlubmVySFRNTCArICIpIik7Ci0gICAgICAgIGxvZyh0YXJnZXRSZW5kZXJU
cmVlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHJlbW92ZUNvbnRhaW5lckxpbmVzKHRleHQpCi17
Ci0gICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgiXG4iKTsKLSAgICBsaW5lcy5zcGxpY2UoMCwg
Mik7Ci0gICAgcmV0dXJuIGxpbmVzLmpvaW4oIlxuIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGxvZygiVGhpcyB0ZXN0IGNvbXBh
cmVzIGEgc2hhZG93LWJhc2VkIHJlbmRlciB0cmVlIHdpdGggb25lIGZvciBhIHJlZmVyZW5jZSBE
T00gdHJlZS4iKTsKLSAgICBsb2coIk5vdGUgdGhhdCB0aGlzIHRlc3Qgb25seSBydW5zIG9uIERS
VC4iKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29udGVudFNvdXJjZXMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzaGFkb3dTb3VyY2VzLmxlbmd0aDsg
KytqKSB7Ci0gICAgICAgICAgICB2YXIgdGVzdExhYmVsID0gaSArICIsIiArIGo7Ci0gICAgICAg
ICAgICB0ZXN0V2l0aENvbnRlbnRBbmRTaGFkb3coY29udGVudFNvdXJjZXNbaV0sIHNoYWRvd1Nv
dXJjZXNbal0sIHRlc3RMYWJlbCk7Ci0gICAgICAgIH0KLSAgICB9IAotCi0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRlc3QiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxkaXYgaWQ9InRl
c3QiPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0idGFyZ2V0Q29udGFpbmVyIj48L2Rpdj4K
LTxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9InJlZmVyZW5jZUNvbnRhaW5lciI+PC9kaXY+Ci08
L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PC9wcmU+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVu
dC1lbGVtZW50LXNlbGVjdC1keW5hbWljLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtZWxlbWVudC1zZWxlY3QtZHluYW1pYy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTIgKzAsMCBAQAotdGVzdENoYW5nZVNlbGVjdDEKLVBBU1MKLXRlc3RDaGFu
Z2VTZWxlY3QyCi1QQVNTCi10ZXN0Q2hhbmdlU2VsZWN0VG9FbXB0eQotUEFTUwotdGVzdENoYW5n
ZVNlbGVjdFRvRmFsbGJhY2sKLVBBU1MKLXRlc3RDaGFuZ2VTZWxlY3RGcm9tRmFsbGJhY2sKLVBB
U1MKLVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
b250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNzkgKzAs
MCBAQAotIDwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS8qIHJlbGF0
aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLwotLmNvbnRh
aW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0uc3BhbiB7Ci0gICAgZGlzcGxh
eTogYm94ZWQtaW5saW5lOwotICAgIG1hcmdpbjogMnB4OwotICAgIGJvcmRlcjogc29saWQ7Ci19
Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFkb3ctdGVzdC1kcml2ZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RDaGFuZ2VTZWxlY3QxKGNhbGxJ
ZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicp
LmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdI
VCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUu
Ci0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNwYW4gY2xhc3M9J2MxJz5MSUdIVCAxPC9zcGFuPjxz
cGFuIGNsYXNzPSdjMic+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0
cmVlLgotICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5jMScpOwot
ICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFw
cGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENo
aWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZU
RVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicp
LmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY29udGVu
dCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0JywgJy5jMicpOwotICAgICAgICAgICAgY2Fs
bElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUp
OwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdENoYW5nZVNlbGVj
dDIoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29u
dGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxz
cGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48
L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFu
IGNsYXNzPSdjMSc+TElHSFQgMTwvc3Bhbj48c3BhbiBjbGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+
IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4KLSAgICB2YXIgY29udGVudCA9IGNyZWF0
ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnKTsKLSAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJl
U2hhZG93Um9vdChyb290KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
IkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICBzci5hcHBlbmRD
aGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZh
ciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVj
dCcsICdzcGFuJyk7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAg
fSkocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwot
fQotCi1mdW5jdGlvbiB0ZXN0Q2hhbmdlU2VsZWN0VG9FbXB0eShjYWxsSWZEb25lKSB7Ci0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQot
ICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bh
bj5MSUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9v
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0
IHRyZWUuCi0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNwYW4gY2xhc3M9J2MxJz5MSUdIVCAxPC9z
cGFuPjxzcGFuIGNsYXNzPSdjMic+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNo
YWRvdyB0cmVlLgotICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5j
MScpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFw
cGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRh
aW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwg
Y29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBjb250ZW50LnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0Jyk7Ci0gICAgICAgICAgICBj
YWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVudCwgY2FsbElmRG9u
ZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0Q2hhbmdlU2Vs
ZWN0VG9GYWxsYmFjayhjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZP
UkU8L3NwYW4+PHNwYW4+RkFMTEJBQ0s8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+IjsK
LQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAv
LyBDcmVhdGUgbGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0n
YzEnPkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MyJz5MSUdIVCAyPC9zcGFuPiI7Ci0KLSAg
ICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50
V2l0aFNlbGVjdCgnLmMxJyk7Ci0gICAgY29udGVudC5pbm5lckhUTUwgPSAiPHNwYW4+RkFMTEJB
Q0s8L3NwYW4+IgotCi0gICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9v
dCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0g
ICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlv
bihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnZGl2JykKLSAg
ICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KShyb290LCBjb250ZW50
LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RDaGFuZ2VTZWxlY3RGcm9tRmFsbGJhY2soY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxk
aXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwv
c3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAg
IHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+TElHSFQgMTwvc3Bhbj48c3BhbiBj
bGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4K
LSAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdkaXYnKTsKLSAgICBj
b250ZW50LmlubmVySFRNTCA9ICI8c3Bhbj5GQUxMQkFDSzwvc3Bhbj4iCi0KLSAgICB2YXIgc3Ig
PSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICBzci5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50
KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwotCi0g
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGls
ZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRv
bmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgY29udGVudC5z
ZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJykKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsK
LSAgICAgICAgfTsKLSAgICB9KShyb290LCBjb250ZW50LCBjYWxsSWZEb25lKTsKLQotICAgIHNl
dFRpbWVvdXQoZiwgMCk7Ci19Ci0KLXZhciB0ZXN0RnVuY3MgPSBbCi0gICAgdGVzdENoYW5nZVNl
bGVjdDEsCi0gICAgdGVzdENoYW5nZVNlbGVjdDIsCi0gICAgdGVzdENoYW5nZVNlbGVjdFRvRW1w
dHksCi0gICAgdGVzdENoYW5nZVNlbGVjdFRvRmFsbGJhY2ssCi0gICAgdGVzdENoYW5nZVNlbGVj
dEZyb21GYWxsYmFjaywKLV07Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJk
b1Rlc3QodGVzdEZ1bmNzKSI+Ci0KLTxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJj
b250YWluZXIiPjwvZGl2PgotPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRh
aW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC11c2Vy
LWFnZW50LXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC11c2VyLWFnZW50LXNoYWRvdy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtdXNlci1hZ2VudC1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDggKzAsMCBAQAotUEFTUyBwYXJzZWRFbGVtZW50U2hvdWxkQmVVbmtub3duLnRhZ05h
bWUgaXMgJ1dFQktJVFNIQURPV0NPTlRFTlQnCi1QQVNTIDAgPCBwYXJzZWRFbGVtZW50U2hvdWxk
QmVVbmtub3duLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignSFRNTFVua25vd25FbGVt
ZW50JykgaXMgdHJ1ZQotUEFTUyBjb250ZW50SW51c2VyQWdlbnRTaGFkb3cudGFnTmFtZSBpcyAn
V0VCS0lUU0hBRE9XQ09OVEVOVCcKLVBBU1MgMCA8IGNvbnRlbnRJbnVzZXJBZ2VudFNoYWRvdy5j
b25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0hUTUxFbGVtZW50JykgaXMgdHJ1ZQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtdXNlci1hZ2VudC1zaGFk
b3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVu
dC1lbGVtZW50LXVzZXItYWdlbnQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtdXNlci1hZ2VudC1zaGFk
b3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pjwh
LS0KLShmdW5jdGlvbigpCi17Ci0gICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICAvLyBQYXJzZXIgc2hvdWxkIGJ1aWxkIEhUTUxVbmtub3duRWxlbWVudCBm
b3IgPHdlYmtpdFNoYWRvd0NvbnRlbnQ+LgotICAgIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250YWluZXIiKTsKLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIjxkaXY+
PHdlYmtpdFNoYWRvd0NvbnRlbnQgaWQ9J3Nob3VsZEJlVW5rbm93bic+PC93ZWJraXRTaGFkb3dD
b250ZW50PjwvZGl2PiI7Ci0gICAgcGFyc2VkRWxlbWVudFNob3VsZEJlVW5rbm93biA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzaG91bGRCZVVua25vd24iKTsKLSAgICBzaG91bGRCZSgicGFy
c2VkRWxlbWVudFNob3VsZEJlVW5rbm93bi50YWdOYW1lIiwgIidXRUJLSVRTSEFET1dDT05URU5U
JyIpOwotICAgIHNob3VsZEJlVHJ1ZSgiMCA8IHBhcnNlZEVsZW1lbnRTaG91bGRCZVVua25vd24u
Y29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdIVE1MVW5rbm93bkVsZW1lbnQnKSIpOwot
Ci0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICI8ZGV0YWlscyBpZD0nZGV0YWlscyc+PHN1bW1h
cnk+PC9zdW1tYXJ5PjwvZGV0YWlscz4iOwotICAgIGRldGFpbHMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGV0YWlscyIpOwotCi0gICAgLy8gVGhlIHVzZXIgYWdlbnQgc2hhZG93IGZvciA8
ZGV0YWlscz4gaGFzIEhUTUxDb250ZW50RWxlbWVudCB3aXRoIHRhZ05hbWUgIndlYmtpdFNoYWRv
d0NvbnRlbnQiLgotICAgIC8vIFRoaXMgZWxlbWVudCBzaG91bGQgYmUgd3JhcHBlZCBhcyBhbiBI
VE1MRWxlbWVudCBiZWNhdXNlIGl0IGlzbid0IEhUTUxVbmtub3duRWxlbWVudCBhbmQKLSAgICAv
LyBIVE1MQ29udGVudEVsZW1lbnQgd3JhcHBlciBpcyB1bmF2YWlsYWJsZSB1bmxlc3MgU0hBRE9X
X0RPTSBpcyBlbmFibGVkLgotICAgIHNoYWRvdyA9IGludGVybmFscy5zaGFkb3dSb290KGRldGFp
bHMpOwotICAgIGNvbnRlbnRJbnVzZXJBZ2VudFNoYWRvdyA9IHNoYWRvdy5maXJzdENoaWxkOwot
ICAgIHNob3VsZEJlKCJjb250ZW50SW51c2VyQWdlbnRTaGFkb3cudGFnTmFtZSIsICInV0VCS0lU
U0hBRE9XQ09OVEVOVCciKTsKLSAgICBzaG91bGRCZVRydWUoIjAgPCBjb250ZW50SW51c2VyQWdl
bnRTaGFkb3cuY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdIVE1MRWxlbWVudCcpIik7
Ci19KSgpOwotLS0+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tY29tcGxleC1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LXJlcHJvamVjdGlvbi1jb21wbGV4LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1jb21wbGV4
LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLQotPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBjb250ZW50IGVsZW1l
bnQgY2Fubm90IHNlbGVjdCBlbGVtZW50cyBhc3NpZ25lZCB0byBhIHNoYWRvdyBlbGVtZW50Ljwv
cD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxoMj5BPC9oMj4KLSAgICA8ZGl2PkE8L2Rpdj4K
LSAgICA8ZGl2PkE8L2Rpdj4KLSAgICA8ZGl2PkE8L2Rpdj4KLSAgICA8aDI+QjwvaDI+Ci0gICAg
PGRpdj5CPC9kaXY+Ci0gICAgPGRpdj5CPC9kaXY+Ci08L2Rpdj4KLQotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9qZWN0aW9uLWNvbXBsZXgu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1y
ZXByb2plY3Rpb24tY29tcGxleC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tY29tcGxleC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5UaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IGNvbnRlbnQgZWxlbWVudCBjYW5ub3Qgc2VsZWN0IGVsZW1lbnRzIGFz
c2lnbmVkIHRvIGEgc2hhZG93IGVsZW1lbnQuPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAg
PGRpdiBjbGFzcz0iQSI+QTwvZGl2PgotICAgIDxkaXYgY2xhc3M9IkEiPkE8L2Rpdj4KLSAgICA8
ZGl2IGNsYXNzPSJCIj5CPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iQiI+QjwvZGl2PgotPC9kaXY+
Ci0KLTxzY3JpcHQ+Ci12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0iaG9zdDIiPjxjb250ZW50
IHNlbGVjdD0iLkEiPjwvY29udGVudD48c2hhZG93Pjwvc2hhZG93PjxkaXYgY2xhc3M9IkEiPkE8
L2Rpdj48L2Rpdj4nOwotCi12YXIgc2hhZG93Um9vdDIgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50
QnlJZCgnaG9zdDInKS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5l
ckhUTUwgPSAnPGRpdj48aDI+QTwvaDI+PGNvbnRlbnQgc2VsZWN0PSIuQSI+PC9jb250ZW50Pjxo
Mj5CPC9oMj48c2hhZG93Pjwvc2hhZG93PjwvZGl2PicKLTwvc2NyaXB0PgotCi08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZHlu
YW1pYy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVj
dGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48ZGl2PjxkaXY+
PGRpdj5keW5hbWljYWxseSBhZGRlZCBkaXY8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4KLQotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9qZWN0
aW9uLWR5bmFtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1yZXByb2plY3Rpb24tZHluYW1pYy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZHluYW1p
Yy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
Ci08aHRtbD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hh
ZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5p
bm5lckhUTUwgPSAnPGRpdj48ZGl2IGlkPSJob3N0MiI+PGNvbnRlbnQ+PC9jb250ZW50PjwvZGl2
PjwvZGl2Pic7Ci0KLXZhciBob3N0MiA9IHNoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCdob3N0
MicpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
c2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QzIj48Y29udGVudD48L2NvbnRl
bnQ+PC9kaXY+JzsKLQotdmFyIGhvc3QzID0gc2hhZG93Um9vdDIuZ2V0RWxlbWVudEJ5SWQoJ2hv
c3QzJyk7Ci12YXIgc2hhZG93Um9vdDMgPSBob3N0My53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci1zaGFkb3dSb290My5pbm5lckhUTUwgPSAnPGRpdj48Y29udGVudD48L2NvbnRlbnQ+PC9kaXY+
JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LmlubmVySFRNTCA9ICdkeW5hbWljYWxseSBhZGRl
ZCBkaXYnOwotICAgIGhvc3QxLmFwcGVuZENoaWxkKGRpdik7Ci0KLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3Nj
cmlwdD4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRl
bnQtcmVwcm9qZWN0aW9uLWZhbGxiYWNrLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJh
Y2stY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stY3Jhc2gtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotQSBjcmFzaCBzaG91bGQgbm90
IGhhcHBlbiB3aGVuIGZhbGxiYWNrIGVsZW1lbnRzIGFyZSByZXByb2plY3RlZC4KLQotUEFTUyBk
aXN0cmlidXRlZE5vZGVzLml0ZW0oMCkgaXMgc2hhZG93Um9vdDEuZ2V0RWxlbWVudEJ5SWQoImZh
bGxiYWNrIikKLVBBU1MgZGlzdHJpYnV0ZWROb2Rlcy5pdGVtKDEpIGlzIHNoYWRvd1Jvb3QxLmdl
dEVsZW1lbnRCeUlkKCJkaXYiKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LXJlcHJvamVjdGlvbi1mYWxsYmFjay1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay1jcmFzaC5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08cD5BIGNyYXNoIHNob3VsZCBub3Qg
aGFwcGVuIHdoZW4gZmFsbGJhY2sgZWxlbWVudHMgYXJlIHJlcHJvamVjdGVkLjwvcD4KLQotPGRp
diBpZD0iaG9zdDEiPjwvZGl2PgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlw
dD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNo
YWRvd1Jvb3QxLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJob3N0MiI+PGNvbnRlbnQgc2VsZWN0PSJz
cGFuIj48ZGl2IGlkPSJmYWxsYmFjayI+ZmFsbGJhY2sgZWxlbWVudDwvZGl2PjwvY29udGVudD48
ZGl2IGlkPSJkaXYiPlRoaXMgc2hvdWxkIGJlIHNlbGVjdGVkLjwvZGl2PjwvZGl2Pic7Ci0KLXZh
ciBob3N0MiA9IHNoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCdob3N0MicpOwotdmFyIHNoYWRv
d1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5u
ZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKLQotdmFyIGNvbnRl
bnQgPSBzaGFkb3dSb290Mi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29udGVudCcpLml0ZW0oMCk7
Ci12YXIgZGlzdHJpYnV0ZWROb2RlcyA9IGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpOwot
Ci1zaG91bGRCZSgnZGlzdHJpYnV0ZWROb2Rlcy5pdGVtKDApJywgJ3NoYWRvd1Jvb3QxLmdldEVs
ZW1lbnRCeUlkKCJmYWxsYmFjayIpJyk7Ci1zaG91bGRCZSgnZGlzdHJpYnV0ZWROb2Rlcy5pdGVt
KDEpJywgJ3NoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCJkaXYiKScpOwotCi1maW5pc2hKU1Rl
c3QoKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stZXhwZWN0ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rp
b24tZmFsbGJhY2stZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9qZWN0aW9uLWZhbGxiYWNrLWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0K
LTxodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0K
LTxwPkZhbGxiYWNrIGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCBpZiBpdCdzIGRpc3RyaWJ1
dGVkPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRpdiBpZD0iaG9zdDIiPgotICAgICAg
ICA8ZGl2PmNvbnRlbnQgZmFsbGJhY2sgZWxlbWVudDwvZGl2PgotICAgICAgICA8ZGl2PnNoYWRv
dyBmYWxsYmFjayBlbGVtZW50PC9kaXY+Ci0gICAgICAgIDxkaXY+VGhpcyBzaG91bGQgYmUgc2Vs
ZWN0ZWQuPC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPC9odG1sPgotCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay1y
ZXByb2plY3Rpb24tZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stcmVwcm9qZWN0aW9uLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay1yZXByb2plY3Rpb24tZXhwZWN0ZWQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQot
PGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQot
PHA+RmFsbGJhY2sgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIGlmIGl0J3MgZGlzdHJpYnV0
ZWQ8L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8ZGl2IGlkPSJob3N0MiI+Ci0gICAgICAg
IDxkaXYgaWQ9Imhvc3QzIj4KLSAgICAgICAgICAgIDxkaXY+Y29udGVudCBmYWxsYmFjayBlbGVt
ZW50PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2PnNoYWRvdyBmYWxsYmFjayBlbGVtZW50PC9kaXY+
Ci0gICAgICAgICAgICA8ZGl2PlRoaXMgc2hvdWxkIGJlIHNlbGVjdGVkLjwvZGl2PgotICAgICAg
ICAgICAgPGRpdj5jb250ZW50IGZhbGxiYWNrIGVsZW1lbnQ8L2Rpdj4KLSAgICAgICAgICAgIDxk
aXY+VGhpcyBhbHNvIHNob3VsZCBiZSBzZWxlY3RlZC48L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0g
ICAgPC9kaXY+Ci08L2Rpdj4KLQotPC9odG1sPgotCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay1yZXByb2plY3Rpb24uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXBy
b2plY3Rpb24tZmFsbGJhY2stcmVwcm9qZWN0aW9uLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFj
ay1yZXByb2plY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLQotPHA+RmFsbGJhY2sgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIGlm
IGl0J3MgZGlzdHJpYnV0ZWQ8L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4KLQotPHNjcmlw
dD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNo
YWRvd1Jvb3QxLmlubmVySFRNTCA9Ci0gICAgJzxkaXYgaWQ9Imhvc3QyIj4nICsKLSAgICAgICAg
Jzxjb250ZW50PjxkaXYgdGl0bGU9ImRlYnVnc3RvcCI+Y29udGVudCBmYWxsYmFjayBlbGVtZW50
PC9kaXY+PC9jb250ZW50PicgKwotICAgICAgICAnPHNoYWRvdz48ZGl2PnNoYWRvdyBmYWxsYmFj
ayBlbGVtZW50PC9kaXY+PC9zaGFkb3c+JyArCi0gICAgICAgICc8ZGl2PlRoaXMgc2hvdWxkIGJl
IHNlbGVjdGVkLjwvZGl2PicgKwotICAgICc8L2Rpdj4nOwotCi12YXIgaG9zdDIgPSBzaGFkb3dS
b290MS5nZXRFbGVtZW50QnlJZCgnaG9zdDInKTsKLXZhciBzaGFkb3dSb290MiA9IGhvc3QyLndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QyLmlubmVySFRNTCA9Ci0gICAgJzxk
aXYgaWQ9Imhvc3QzIj4nICsKLSAgICAgICAgJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRl
bnQ+JyArIAotICAgICAgICAnPGNvbnRlbnQgc2VsZWN0PSJzcGFuIj48ZGl2PmNvbnRlbnQgZmFs
bGJhY2sgZWxlbWVudDwvZGl2PjwvY29udGVudD4nICsgCi0gICAgICAgICc8ZGl2PlRoaXMgYWxz
byBzaG91bGQgYmUgc2VsZWN0ZWQuPC9kaXY+JwotICAgICc8L2Rpdj4nOwotCi12YXIgaG9zdDMg
PSBzaGFkb3dSb290Mi5nZXRFbGVtZW50QnlJZCgnaG9zdDMnKTsKLXZhciBzaGFkb3dSb290MyA9
IGhvc3QzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QzLmlubmVySFRNTCA9
Ci0gICAgJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JwotCi08L3NjcmlwdD4KLQot
PC9odG1sPgotCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJl
cHJvamVjdGlvbi1mYWxsYmFjay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rp
b24tZmFsbGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLQotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KLQotPHA+RmFsbGJhY2sgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIGlmIGl0
J3MgZGlzdHJpYnV0ZWQ8L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4KLQotPHNjcmlwdD4K
LXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRv
d1Jvb3QxLmlubmVySFRNTCA9Ci0gICAgJzxkaXYgaWQ9Imhvc3QyIj4nICsKLSAgICAgICAgJzxj
b250ZW50PjxkaXYgdGl0bGU9ImRlYnVnc3RvcCI+Y29udGVudCBmYWxsYmFjayBlbGVtZW50PC9k
aXY+PC9jb250ZW50PicgKwotICAgICAgICAnPHNoYWRvdz48ZGl2PnNoYWRvdyBmYWxsYmFjayBl
bGVtZW50PC9kaXY+PC9zaGFkb3c+JyArCi0gICAgICAgICc8ZGl2IGlkPSJkaXYiPlRoaXMgc2hv
dWxkIGJlIHNlbGVjdGVkLjwvZGl2PicgKwotICAgICc8L2Rpdj4nOwotCi12YXIgaG9zdDIgPSBz
aGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnaG9zdDInKTsKLXZhciBzaGFkb3dSb290MiA9IGhv
c3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QyLmlubmVySFRNTCA9ICc8
Y29udGVudCBzZWxlY3Q9ImRpdiI+PC9jb250ZW50Pic7Ci08L3NjcmlwdD4KLQotPC9odG1sPgot
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlv
bi1vcmRlci1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1vcmRlci1leHBlY3RlZC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2pl
Y3Rpb24tb3JkZXItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPGRpdiBpZD0iaG9zdCI+Ci0g
ICAgPGRpdj5DPC9kaXY+PGhyPgotICAgIDxkaXY+QjwvZGl2Pjxocj4KLSAgICA8ZGl2PjxkaXY+
QTwvZGl2PjwvZGl2Pjxocj4KLSAgICA8ZGl2PkQ8L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2pl
Y3Rpb24tb3JkZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1yZXByb2plY3Rpb24tb3JkZXIuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9qZWN0aW9uLW9yZGVyLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxo
dG1sPgotPGJvZHk+Ci0KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotCi08ZGl2IGlkPSJob3N0Ij4KLSAgICA8ZGl2IGNsYXNzPSJhIGFiIj5BPC9kaXY+Ci0g
ICAgPGRpdiBjbGFzcz0iYiBhYiI+QjwvZGl2PgotICAgIDxkaXYgY2xhc3M9ImMiPkM8L2Rpdj4K
LTwvZGl2PgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLQotc2hhZG93Um9vdC5pbm5lckhUTUwgPQotICAgICc8c2hhZG93IGlkPSJp
ZDEiPjwvc2hhZG93Pjxocj4nICsgCi0gICAgJzxjb250ZW50IGlkPSJpZDIiIHNlbGVjdD0iLmIi
PjwvY29udGVudD48aHI+JyArIAotICAgICc8ZGl2Pjxjb250ZW50IGlkPSJpZDMiIHNlbGVjdD0i
LmFiIj48L2NvbnRlbnQ+PC9kaXY+PGhyPicgKwotICAgICc8c2hhZG93IGlkPSJpZDQiPjxkaXY+
RDwvZGl2Pjwvc2hhZG93PicKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tc2hhZG93LWV4
cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtcmVwcm9qZWN0aW9uLXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tc2hh
ZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLQotPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBlbGVtZW50cyBk
aXN0cmlidXRlZCB0byBhIGNvbnRlbnQgZWxlbWVudCBjYW4gYmUgdGFrZW4gZnJvbSBhIHNoYWRv
dyBlbGVtZW50PC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRpdj5UaGVzZSBlbGVtZW50
czwvZGl2PgotICAgIDxkaXY+c2hvdWxkIGJlPC9kaXY+Ci0gICAgPGRpdj5yZXByb2plY3RlZDwv
ZGl2PgotICAgIDxkaXY+QTwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1zaGFkb3cuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rp
b24tc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+VGhpcyB0ZXN0IGVuc3VyZXMg
dGhhdCBlbGVtZW50cyBkaXN0cmlidXRlZCB0byBhIGNvbnRlbnQgZWxlbWVudCBjYW4gYmUgdGFr
ZW4gZnJvbSBhIHNoYWRvdyBlbGVtZW50PC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRp
dj5UaGVzZSBlbGVtZW50czwvZGl2PgotICAgIDxkaXY+c2hvdWxkIGJlPC9kaXY+Ci0gICAgPGRp
dj5yZXByb2plY3RlZDwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci12YXIgc2hhZG93Um9vdDEg
PSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwg
PSAnPGRpdiBpZD0iaG9zdDIiPjxjb250ZW50PjwvY29udGVudD48L2Rpdj4nOwotCi12YXIgc2hh
ZG93Um9vdDIgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnaG9zdDInKS53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGRpdj48c2hhZG93Pjwv
c2hhZG93PjxkaXY+QTwvZGl2PjwvZGl2PicKLTwvc2NyaXB0PgotCi08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
c2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTY4ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3Mgc2VsZWN0
IGF0dHJpYnV0ZSBvZiBjb250ZW50IGVsZW1lbnQgaXMgdmFsaWQuCi0KLW51bGwKLVBBU1MgaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLQotUEFTUyBpbnRl
cm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotbnN8ZGl2Ci1QQVNT
IGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi0qfGRpdgot
UEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotfGRp
dgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQot
ZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
Ci1uc3wqCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCi0qfCoKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IHRydWUKLXwqCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi0qCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi0uZWxlbQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgdHJ1ZQotcC5lbGVtCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChj
b250ZW50KSBpcyB0cnVlCi1mb28uZWxlbQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRT
ZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotKi5yaWdodAotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotI2VsZW0KLVBBU1MgaW50ZXJuYWxzLmlzVmFs
aWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLXAjZWxlbQotUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZm9vI2VsZW0KLVBBU1MgaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLSojc29tZXRoaW5n
Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1k
aXZbdGl0bGVdCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi1kaXZbY2xhc3M9ImV4YW1wbGUiXQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2W2hlbGxvPSJDbGV2ZWxhbmQiXVtnb29kYnll
PSJDb2x1bWJ1cyJdCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyB0cnVlCi1kaXZbcmVsfj0iY29weXJpZ2h0Il0KLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRD
b250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdltocmVmPSJodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyJdCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi1kaXZbaHJlZmxhbmd8PSJlbiJdCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXZbY2hhcmFjdGVyPXJvbWVvXQotUEFTUyBpbnRl
cm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2OmxpbmsKLVBB
U1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjp2
aXNpdGVkCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCi1kaXY6dGFyZ2V0Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250
ZW50KSBpcyB0cnVlCi1kaXY6ZW5hYmxlZAotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRT
ZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2OmNoZWNrZWQKLVBBU1MgaW50ZXJuYWxzLmlzVmFs
aWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjppbmRldGVybWluYXRlCi1QQVNT
IGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXY6bnRo
LWNoaWxkKDEpCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi1kaXY6bnRoLWxhc3QtY2hpbGQoMSkKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpudGgtb2YtdHlwZSgxKQotUEFTUyBpbnRl
cm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2Om50aC1sYXN0
LW9mLXR5cGUoMSkKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIHRydWUKLWRpdjpmaXJzdC1jaGlsZAotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRT
ZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2Omxhc3QtY2hpbGQKLVBBU1MgaW50ZXJuYWxzLmlz
VmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpmaXJzdC1vZi10eXBlCi1Q
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXY6
bGFzdC1vZi10eXBlCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyB0cnVlCi1kaXY6b25seS1vZi10eXBlCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXY6Zmlyc3Qtb2YtdHlwZTpsYXN0LW9mLXR5cGUK
LVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRp
di5lbGVtOnZpc2l0ZWQKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRl
bnQpIGlzIHRydWUKLSo6dmlzaXRlZAotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgdHJ1ZQotZGl2LCBkaXYKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpmaXJzdC1vZi10eXBlLCBkaXYKLVBBU1Mg
aW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdiwgZGl2
OmZpcnN0LW9mLXR5cGUKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRl
bnQpIGlzIHRydWUKLWRpdjpmaXJzdC1vZi10eXBlLCBkaXY6bGFzdC1vZi10eXBlCi1QQVNTIGlu
dGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi0gZGl2LCAgICAg
IGRpdiAgICAgCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi1kaXYgZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250
ZW50KSBpcyBmYWxzZQotZGl2ID4gZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2ICsgZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlk
Q29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2IH4gZGl2Ci1QQVNTIGludGVybmFs
cy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2Om5vdChkaXYpCi1Q
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2
OnJvb3QKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZh
bHNlCi1kaXY6bGFuZyhlbikKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNv
bnRlbnQpIGlzIGZhbHNlCi1kaXY6OmJlZm9yZQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdjo6YWZ0ZXIKLVBBU1MgaW50ZXJuYWxzLmlz
VmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6OmZpcnN0LWxpbmUKLVBB
U1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6
OmZpcnN0LWxldHRlcgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgZmFsc2UKLWRpdjphY3RpdmUKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6aG92ZXIKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRD
b250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6Zm9jdXMKLVBBU1MgaW50ZXJuYWxz
LmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXYgZGl2Om5vdChkaXYp
Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQot
ZGl2Om5vdChkaXYpIGRpdgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgZmFsc2UKLWRpdiBzcGFuIGRpdgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdiA8IGRpdgotUEFTUyBpbnRlcm5hbHMuaXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdiAtIGR2aQotUEFTUyBpbnRl
cm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLTwgZGl2Ci1QQVNT
IGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotK2Rpdgot
UEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLX5k
aXYKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNl
Ci1kaXY6IQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMg
ZmFsc2UKLSE6IQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkg
aXMgZmFsc2UKLWRpdjo6IQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgZmFsc2UKLWRpdjo6Zmlyc3Rfb2ZfdHlwZQotUEFTUyBpbnRlcm5hbHMuaXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLXBlO3JvCi1QQVNTIGludGVybmFscy5p
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotQHNjcmVlbgotUEFTUyBpbnRl
cm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLUBpbXBvcnQgInN0
eWxlLmNzcyIKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IGZhbHNlCi1kaXYgOmZpcnN0LW9mLXR5cGUKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6OmZpcnN0LW9mLXR5cGUKLVBBU1MgaW50ZXJu
YWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi0gZGl2LCAsZGl2Ci1Q
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2
ICcnCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxz
ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtc2Vs
ZWN0b3ItcXVlcnkuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw3NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHA+VGhpcyB0ZXN0IGNoZWNrcyBzZWxlY3QgYXR0cmlidXRlIG9mIGNvbnRlbnQg
ZWxlbWVudCBpcyB2YWxpZC48L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxkaXYgaWQ9
ImNvbnRhaW5lciI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci12YXIgY29udGFpbmVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwotCi12YXIgY29udGVudDsKLWZ1bmN0aW9uIHRl
c3Qoc2VsZWN0LCB2YWxpZCkgewotICAgIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVu
dEVsZW1lbnQoKTsKLSAgICBpZiAoc2VsZWN0ICE9IG51bGwpCi0gICAgICAgIGNvbnRlbnQuc2V0
QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOwotCi0gICAgZGVidWcoc2VsZWN0KTsKLSAgICBp
ZiAodmFsaWQpCi0gICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkiLCAidHJ1ZSIpOwotICAgIGVsc2UKLSAgICAgICAgc2hvdWxkQmUoImludGVy
bmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSIsICJmYWxzZSIpOwotfQotCi12YXIg
ZGF0YU9mVmFsaWRDYXNlcyA9IFsKLSAgICBudWxsLCAnJywKLSAgICAnbnN8ZGl2JywgJyp8ZGl2
JywgJ3xkaXYnLCAnZGl2JywKLSAgICAnbnN8KicsICcqfConLCAnfConLCAnKicsCi0gICAgJy5l
bGVtJywgJ3AuZWxlbScsICdmb28uZWxlbScsICcqLnJpZ2h0JywKLSAgICAnI2VsZW0nLCAncCNl
bGVtJywgJ2ZvbyNlbGVtJywgJyojc29tZXRoaW5nJywKLSAgICAnZGl2W3RpdGxlXScsICdkaXZb
Y2xhc3M9ImV4YW1wbGUiXScsICdkaXZbaGVsbG89IkNsZXZlbGFuZCJdW2dvb2RieWU9IkNvbHVt
YnVzIl0nLAotICAgICdkaXZbcmVsfj0iY29weXJpZ2h0Il0nLCAnZGl2W2hyZWY9Imh0dHA6Ly93
d3cuZXhhbXBsZS5jb20vIl0nLAotICAgICdkaXZbaHJlZmxhbmd8PSJlbiJdJywgJ2RpdltjaGFy
YWN0ZXI9cm9tZW9dJywKLSAgICAnZGl2OmxpbmsnLCAnZGl2OnZpc2l0ZWQnLCAnZGl2OnRhcmdl
dCcsICdkaXY6ZW5hYmxlZCcsICdkaXY6Y2hlY2tlZCcsCi0gICAgJ2RpdjppbmRldGVybWluYXRl
JywgJ2RpdjpudGgtY2hpbGQoMSknLCAnZGl2Om50aC1sYXN0LWNoaWxkKDEpJywgJ2RpdjpudGgt
b2YtdHlwZSgxKScsCi0gICAgJ2RpdjpudGgtbGFzdC1vZi10eXBlKDEpJywgJ2RpdjpmaXJzdC1j
aGlsZCcsICdkaXY6bGFzdC1jaGlsZCcsICdkaXY6Zmlyc3Qtb2YtdHlwZScsCi0gICAgJ2Rpdjps
YXN0LW9mLXR5cGUnLCAnZGl2Om9ubHktb2YtdHlwZScsCi0gICAgJ2RpdjpmaXJzdC1vZi10eXBl
Omxhc3Qtb2YtdHlwZScsICdkaXYuZWxlbTp2aXNpdGVkJywgJyo6dmlzaXRlZCcsCi0gICAgJ2Rp
diwgZGl2JywgJ2RpdjpmaXJzdC1vZi10eXBlLCBkaXYnLCAnZGl2LCBkaXY6Zmlyc3Qtb2YtdHlw
ZScsICdkaXY6Zmlyc3Qtb2YtdHlwZSwgZGl2Omxhc3Qtb2YtdHlwZScsCi0gICAgJyBkaXYsICAg
ICAgZGl2ICAgICAnLAotXTsKLQotdmFyIGRhdGFPZkludmFsaWRDYXNlcyA9IFsKLSAgICAnZGl2
IGRpdicsICdkaXYgPiBkaXYnLCAnZGl2ICsgZGl2JywgJ2RpdiB+IGRpdicsCi0gICAgJ2Rpdjpu
b3QoZGl2KScsICdkaXY6cm9vdCcsICdkaXY6bGFuZyhlbiknLAotICAgICdkaXY6OmJlZm9yZScs
ICdkaXY6OmFmdGVyJywgJ2Rpdjo6Zmlyc3QtbGluZScsICdkaXY6OmZpcnN0LWxldHRlcicsCi0g
ICAgJ2RpdjphY3RpdmUnLCAnZGl2OmhvdmVyJywgJ2Rpdjpmb2N1cycsCi0gICAgJ2RpdiBkaXY6
bm90KGRpdiknLCAnZGl2Om5vdChkaXYpIGRpdicsICdkaXYgc3BhbiBkaXYnLAotICAgICdkaXYg
PCBkaXYnLCAnZGl2IC0gZHZpJywgJzwgZGl2JywgJytkaXYnLCAnfmRpdicsICdkaXY6IScsICch
OiEnLCAnZGl2OjohJywgJ2Rpdjo6Zmlyc3Rfb2ZfdHlwZScsCi0gICAgJ3BlO3JvJywgJ0BzY3Jl
ZW4nLCAnQGltcG9ydCAic3R5bGUuY3NzIicsICdkaXYgOmZpcnN0LW9mLXR5cGUnLCAnZGl2Ojpm
aXJzdC1vZi10eXBlJywKLSAgICAnIGRpdiwgLGRpdicsICdkaXYgXCdcJycKLV0KLQotZnVuY3Rp
b24gZG9UZXN0KCkgewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRl
cm5hbHMpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhT2ZWYWxpZENhc2VzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgICB0ZXN0KGRhdGFPZlZhbGlkQ2FzZXNbaV0sIHRydWUpOwotICAg
IH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFPZkludmFsaWRDYXNlcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgdGVzdChkYXRhT2ZJbnZhbGlkQ2FzZXNbaV0sIGZhbHNlKTsKLSAgICB9
Ci19Ci0KLWRvVGVzdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb250ZW50LXNoYWRvdy11bmtub3duLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zaGFkb3ctdW5rbm93bi1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LXNoYWRvdy11bmtub3duLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSAr
MCwwIEBACi1TaGFkb3cgRE9NIHJlbGF0ZWQgZWxlbWVudHMgc2hvdWxkIGJlIGhpZGRlbiBpZiB0
aGUgZmVhdHVyZSBpcyBvZmYuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IDAgPD0gY29udGVudC5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0hUTUxVbmtub3du
RWxlbWVudCcpIGlzIHRydWUKLVBBU1MgMCA8PSBzaGFkb3cuY29uc3RydWN0b3IudG9TdHJpbmco
KS5pbmRleE9mKCdIVE1MVW5rbm93bkVsZW1lbnQnKSBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtc2hhZG93LXVua25vd24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zaGFkb3ctdW5rbm93bi5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1z
aGFkb3ctdW5rbm93bi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2PgotICA8
Y29udGVudCBpZD0iY29udGVudC1zaW1wbGVzdCI+PC9jb250ZW50PgotPC9kaXY+Ci08c2NyaXB0
PgotZGVzY3JpcHRpb24oIlNoYWRvdyBET00gcmVsYXRlZCBlbGVtZW50cyBzaG91bGQgYmUgaGlk
ZGVuIGlmIHRoZSBmZWF0dXJlIGlzIG9mZi4iKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTaGFkb3dET01FbmFibGVkKGZhbHNlKTsKLXZhciBjb250
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY29udGVudCIpOwotc2hvdWxkQmVUcnVlKCIw
IDw9IGNvbnRlbnQuY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdIVE1MVW5rbm93bkVs
ZW1lbnQnKSIpOwotdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNoYWRvdyIp
Owotc2hvdWxkQmVUcnVlKCIwIDw9IHNoYWRvdy5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4
T2YoJ0hUTUxVbmtub3duRWxlbWVudCcpIik7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVudC1pbi1zaGFkb3ct
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
cHBldmVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3BwZXZlbnQtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1kYXJrOiBjb3B5IGlzIGZpcmVkLgotaG9z
dDogY29weSBpcyBmaXJlZC4KLWRhcms6IGN1dCBpcyBmaXJlZC4KLWhvc3Q6IGN1dCBpcyBmaXJl
ZC4KLWRhcms6IHBhc3RlIGlzIGZpcmVkLgotaG9zdDogcGFzdGUgaXMgZmlyZWQuCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NwcGV2ZW50LWluLXNoYWRvdy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVudC1pbi1zaGFkb3cuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NwcGV2ZW50
LWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYxICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRp
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci08cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGFkZExpc3RlbmVycyhlbGVtZW50LCBu
YW1lKSB7Ci0gICAgdmFyIGV2ZW50TmFtZXMgPSBbJ2NvcHknLCAnY3V0JywgJ3Bhc3RlJ107Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudE5hbWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
IChmdW5jdGlvbihpKSB7Ci0gICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2
ZW50TmFtZXNbaV0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgZGVidWcobmFtZSAr
ICc6ICcgKyBldmVudE5hbWVzW2ldICsgJyBpcyBmaXJlZC4nKTsKLSAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfSkoaSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBjcmVhdGVCb3gobmFtZSkgewot
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXYuc3R5
bGUud2lkdGggPSAnMTAwcHgnOwotICAgIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnOwotICAg
IGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHRydWUpOwotCi0gICAgcmV0dXJu
IGRpdjsKLX0KLQotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChkaXYpOwotCi12YXIgZGFya1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotdmFyIGJveCA9IGNyZWF0ZUJveCgnZGFyaycpOwotYm94LmlubmVySFRNTCA9
ICJLb3RvcmkgT3RvbmFzaGkiOwotZGFya1Jvb3QuYXBwZW5kQ2hpbGQoYm94KTsKLQotYWRkTGlz
dGVuZXJzKGJveCwgJ2RhcmsnKTsKLWFkZExpc3RlbmVycyhob3N0LCAnaG9zdCcpOwotCi1pZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm94Lm9m
ZnNldExlZnQsIGJveC5vZmZzZXRUb3AgKyBib3gub2Zmc2V0SGVpZ2h0IC8gMik7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm94Lm9m
ZnNldExlZnQgKyBib3gub2Zmc2V0V2lkdGgsIGJveC5vZmZzZXRUb3AgKyBib3gub2Zmc2V0SGVp
Z2h0IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1kb2N1bWVudC5leGVj
Q29tbWFuZCgnY29weScpOwotZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2N1dCcpOwotZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ3Bhc3RlJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwot
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jcHBldmVudC1pbnB1dC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVudC1pbnB1dC1pbi1zaGFk
b3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY3BwZXZlbnQtaW5wdXQtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMCArMCwwIEBACi1kYXJrOiBjb3B5IGlzIGZpcmVkLgotaG9zdDogY29weSBp
cyBmaXJlZC4KLWRhcms6IGN1dCBpcyBmaXJlZC4KLWhvc3Q6IGN1dCBpcyBmaXJlZC4KLWRhcms6
IHBhc3RlIGlzIGZpcmVkLgotaG9zdDogcGFzdGUgaXMgZmlyZWQuCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NwcGV2ZW50LWlucHV0LWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVudC1pbnB1dC1pbi1zaGFkb3cuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NwcGV2
ZW50LWlucHV0LWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU5ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ldmVudC1z
ZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci08cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGFkZExpc3RlbmVycyhl
bGVtZW50LCBuYW1lKSB7Ci0gICAgdmFyIGV2ZW50TmFtZXMgPSBbJ2NvcHknLCAnY3V0JywgJ3Bh
c3RlJ107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudE5hbWVzLmxlbmd0aDsgKytpKSB7
Ci0gICAgICAgIChmdW5jdGlvbihpKSB7Ci0gICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXNbaV0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgZGVi
dWcobmFtZSArICc6ICcgKyBldmVudE5hbWVzW2ldICsgJyBpcyBmaXJlZC4nKTsKLSAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgfSkoaSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBjcmVhdGVJbnB1
dCgpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKLSAg
ICBkaXYuc3R5bGUud2lkdGggPSAnMTAwcHgnOwotICAgIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAw
cHgnOwotICAgIHJldHVybiBkaXY7Ci19Ci0KLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLQotdmFyIGRhcmtSb290ID0gZGl2
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7Ci1p
bnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ0tvdG9yaSBPdG9uYXNoaScpOwotZGFya1Jvb3Qu
YXBwZW5kQ2hpbGQoaW5wdXQpOwotCi1hZGRMaXN0ZW5lcnMoaW5wdXQsICdkYXJrJyk7Ci1hZGRM
aXN0ZW5lcnMoaG9zdCwgJ2hvc3QnKTsKLQotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGlucHV0Lm9mZnNldExlZnQsIGlucHV0Lm9mZnNldFRv
cCArIGlucHV0Lm9mZnNldEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5v
ZmZzZXRXaWR0aCwgaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMik7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1kb2N1bWVudC5leGVjQ29tbWFuZCgnY29w
eScpOwotZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2N1dCcpOwotZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J3Bhc3RlJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
cmVhdGUtY29udGVudC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcmVhdGUt
Y29udGVudC1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAg
QEAKLVRoaXMgdGVzdCBjb21wYXJlcyBhIHNoYWRvdy1iYXNlZCByZW5kZXIgdHJlZSB3aXRoIG9u
ZSBmb3IgYSByZWZyZW5jZSBET00gdHJlZS4KLVBBU1MKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNv
bnRlbnQtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcwICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS8qIHJlbGF0aXZlIHBvc2l0aW9u
aW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLwotLmNvbnRhaW5lciB7Ci0gICAg
cG9zaXRpb246IHJlbGF0aXZlOwotfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2co
bWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVy
SFRNTCArPSAobWVzc2FnZSArICJcbiIpOwotfQotCi1mdW5jdGlvbiByZW1vdmVDb250YWluZXJM
aW5lcyh0ZXh0KQotewotICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoIlxuIik7Ci0gICAgbGlu
ZXMuc3BsaWNlKDAsIDIpOwotICAgIHJldHVybiBsaW5lcy5qb2luKCJcbiIpOwotfQotCi1mdW5j
dGlvbiBzZXR1cFRhcmdldFRyZWUoKQotewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8
L3NwYW4+IjsKLSAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdl
dCk7Ci0gICAgCi0gICAgdmFyIGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KTsKLSAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7Ci0gICAgcm9vdC5hcHBlbmRDaGls
ZChjaGlsZDApOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93LmludGVybmFscy5jcmVhdGVD
b250ZW50RWxlbWVudCgpKTsKLSAgICB2YXIgY2hpbGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOwotICAgIGNoaWxkMS5pbm5lckhUTUwgPSAiV29ybGQuIjsKLSAgICByb290LmFw
cGVuZENoaWxkKGNoaWxkMSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
IikuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgbG9nKCJUaGlzIHRlc3QgY29tcGFyZXMgYSBzaGFk
b3ctYmFzZWQgcmVuZGVyIHRyZWUgd2l0aCBvbmUgZm9yIGEgcmVmcmVuY2UgRE9NIHRyZWUuIik7
Ci0gICAgc2V0dXBUYXJnZXRUcmVlKCk7Ci0gICAgdmFyIHRhcmdldENvbnRhaW5lclJlbmRlclRy
ZWUgPSB3aW5kb3cuaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXRDb250YWluZXIiKSk7Ci0gICAgdmFyIHRhcmdldFJlbmRlclRy
ZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlKTsKLSAg
ICB2YXIgcmVmQ29udGFpbmVyUmVuZGVyVHJlZSA9IHdpbmRvdy5pbnRlcm5hbHMuZWxlbWVudFJl
bmRlclRyZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZkNvbnRhaW5lciIpKTsK
LSAgICB2YXIgcmVmUmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHJlZkNvbnRhaW5l
clJlbmRlclRyZWUpOwotICAgIGlmICh0YXJnZXRSZW5kZXJUcmVlID09IHJlZlJlbmRlclRyZWUp
Ci0gICAgICAgIGxvZygiUEFTUyIpOwotICAgIGVsc2UgewotICAgICAgICBsb2coIkZBSUwiKTsK
LSAgICAgICAgbG9nKCJFeHBlY3RlZDoiKTsKLSAgICAgICAgbG9nKHJlZlJlbmRlclRyZWUpOwot
ICAgICAgICBsb2coIkFjdHVhbDoiKTsKLSAgICAgICAgbG9nKHRhcmdldFJlbmRlclRyZWUpOwot
ICAgIH0KLSAgICAKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLnN0eWxlLmRp
c3BsYXkgPSAibm9uZSI7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVz
dCgpIj4KLTxkaXYgaWQ9InRlc3QiPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0idGFyZ2V0
Q29udGFpbmVyIj48ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0iY29u
dGFpbmVyIiBpZD0icmVmQ29udGFpbmVyIj48ZGl2PjxkaXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxz
cGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2Pgot
PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jc3MtaG9zdHJ1bGUtYXBpLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3NzLWhvc3RydWxl
LWFwaS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jc3MtaG9zdHJ1bGUtYXBpLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwyOSArMCwwIEBACi1UZXN0IHdoZXRoZXIgQ1NTSG9zdFJ1bGUgQVBJIHdvcmtzIGNvcnJl
Y3RseSBvciBub3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1CZWZvcmUgaW5z
ZXJ0aW5nIGEgYm9yZGVyIHJ1bGUgaW50byBAaG9zdCBALXJ1bGVzOgotUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGhvc3QpLmJvcmRlckNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCi1QQVNTIGhvc3RSdWxl
LmNzc1J1bGVzLmxlbmd0aCBpcyAwCi1QQVNTIGhvc3RSdWxlLnR5cGUgaXMgMTAwMQotQWZ0ZXIg
aW5zZXJ0aW5nIGEgYm9yZGVyIHJ1bGUgd2l0aCBhbiBpZCBzZWxlY3RvciBpbnRvIEBob3N0IEAt
cnVsZXM6Ci1QQVNTIGdldENvbXB1dGVkU3R5bGUoaG9zdCkuYm9yZGVyQ29sb3IgaXMgInJnYigw
LCAxMjgsIDApIgotUEFTUyBob3N0UnVsZS5jc3NSdWxlcy5sZW5ndGggaXMgMQotUEFTUyBob3N0
UnVsZS5jc3NUZXh0IGlzICJAaG9zdCB7IFxuICAjaG9zdCB7IGJvcmRlci1jb2xvcjogZ3JlZW47
IH1cbn0iCi1QQVNTIGhvc3RSdWxlLmNzc1J1bGVzWzBdLmNzc1RleHQgaXMgIiNob3N0IHsgYm9y
ZGVyLWNvbG9yOiBncmVlbjsgfSIKLUFmdGVyIGluc2VydGluZyBhIGJvcmRlciBydWxlIHdpdGgg
YSB0YWcgc2VsZWN0b3IgaW50byBAaG9zdCBALXJ1bGVzOgotUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGhvc3QpLmJvcmRlckNvbG9yIGlzICJyZ2IoMCwgMTI4LCAwKSIKLVBBU1MgaG9zdFJ1bGUuY3Nz
UnVsZXMubGVuZ3RoIGlzIDIKLVBBU1MgaG9zdFJ1bGUuY3NzVGV4dCBpcyAiQGhvc3QgeyBcbiAg
I2hvc3QgeyBib3JkZXItY29sb3I6IGdyZWVuOyB9XG4gIGRpdiB7IGJvcmRlci1jb2xvcjogYmx1
ZTsgfVxufSIKLVBBU1MgaG9zdFJ1bGUuY3NzUnVsZXNbMF0uY3NzVGV4dCBpcyAiI2hvc3QgeyBi
b3JkZXItY29sb3I6IGdyZWVuOyB9IgotUEFTUyBob3N0UnVsZS5jc3NSdWxlc1sxXS5jc3NUZXh0
IGlzICJkaXYgeyBib3JkZXItY29sb3I6IGJsdWU7IH0iCi1BZnRlciBkZWxldGluZyB0aGUgYm9y
ZGVyIHJ1bGUgd2l0aCBhbiBpZCBzZWxlY3RvciBmcm9tIEBob3N0IEAtcnVsZXM6Ci1QQVNTIGdl
dENvbXB1dGVkU3R5bGUoaG9zdCkuYm9yZGVyQ29sb3IgaXMgInJnYigwLCAwLCAyNTUpIgotUEFT
UyBob3N0UnVsZS5jc3NSdWxlcy5sZW5ndGggaXMgMQotUEFTUyBob3N0UnVsZS5jc3NUZXh0IGlz
ICJAaG9zdCB7IFxuICBkaXYgeyBib3JkZXItY29sb3I6IGJsdWU7IH1cbn0iCi1QQVNTIGhvc3RS
dWxlLmNzc1J1bGVzWzBdLmNzc1RleHQgaXMgImRpdiB7IGJvcmRlci1jb2xvcjogYmx1ZTsgfSIK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3NzLWhvc3RydWxlLWFwaS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jc3MtaG9zdHJ1bGUtYXBpLmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jc3Mt
aG9zdHJ1bGUtYXBpLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBAQAotPCFkb2N0
eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICA8ZGl2IGlkPSJob3N0Ij5UaGlz
IGRpdiBpcyBhIHNoYWRvdyBob3N0LjwvZGl2PgotPC9ib2R5PgotPHNjcmlwdD4KLWRlc2NyaXB0
aW9uKCJUZXN0IHdoZXRoZXIgQ1NTSG9zdFJ1bGUgQVBJIHdvcmtzIGNvcnJlY3RseSBvciBub3Qu
Iik7Ci12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hh
ZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAnPHN0eWxlIGlkPSJzdHlsZTEiPkBob3N0IHt9PC9zdHlsZT48ZGl2PlNoYWRvdyBU
ZXh0PC9kaXY+JzsKLSAgCi1kZWJ1ZygiQmVmb3JlIGluc2VydGluZyBhIGJvcmRlciBydWxlIGlu
dG8gQGhvc3QgQC1ydWxlczoiKTsKLXNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGhvc3QpLmJv
cmRlckNvbG9yIiwgJyJyZ2IoMCwgMCwgMCkiJyk7Ci0KLXZhciBzdHlsZVNoZWV0ID0gc2hhZG93
Um9vdC5nZXRFbGVtZW50QnlJZCgnc3R5bGUxJykuc2hlZXQ7Ci12YXIgaG9zdFJ1bGUgPSBzdHls
ZVNoZWV0LmNzc1J1bGVzWzBdOwotc2hvdWxkQmUoImhvc3RSdWxlLmNzc1J1bGVzLmxlbmd0aCIs
ICcwJyk7Ci1zaG91bGRCZSgiaG9zdFJ1bGUudHlwZSIsICcxMDAxJyk7Ci0gIAotZGVidWcoIkFm
dGVyIGluc2VydGluZyBhIGJvcmRlciBydWxlIHdpdGggYW4gaWQgc2VsZWN0b3IgaW50byBAaG9z
dCBALXJ1bGVzOiIpOwotaG9zdFJ1bGUuaW5zZXJ0UnVsZSgiI2hvc3QgeyBib3JkZXItY29sb3I6
IGdyZWVuOyB9IiwgaG9zdFJ1bGUuY3NzUnVsZXMubGVuZ3RoKTsKLXNob3VsZEJlKCJnZXRDb21w
dXRlZFN0eWxlKGhvc3QpLmJvcmRlckNvbG9yIiwgJyJyZ2IoMCwgMTI4LCAwKSInKTsKLXNob3Vs
ZEJlKCJob3N0UnVsZS5jc3NSdWxlcy5sZW5ndGgiLCAnMScpOwotc2hvdWxkQmUoImhvc3RSdWxl
LmNzc1RleHQiLCAnIkBob3N0IHsgXFxuICAjaG9zdCB7IGJvcmRlci1jb2xvcjogZ3JlZW47IH1c
XG59IicpOwotc2hvdWxkQmUoImhvc3RSdWxlLmNzc1J1bGVzWzBdLmNzc1RleHQiLCAnIiNob3N0
IHsgYm9yZGVyLWNvbG9yOiBncmVlbjsgfSInKTsKLQotZGVidWcoIkFmdGVyIGluc2VydGluZyBh
IGJvcmRlciBydWxlIHdpdGggYSB0YWcgc2VsZWN0b3IgaW50byBAaG9zdCBALXJ1bGVzOiIpOwot
aG9zdFJ1bGUuaW5zZXJ0UnVsZSgiZGl2IHsgYm9yZGVyLWNvbG9yOiBibHVlOyB9IiwgaG9zdFJ1
bGUuY3NzUnVsZXMubGVuZ3RoKTsKLXNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGhvc3QpLmJv
cmRlckNvbG9yIiwgJyJyZ2IoMCwgMTI4LCAwKSInKTsKLXNob3VsZEJlKCJob3N0UnVsZS5jc3NS
dWxlcy5sZW5ndGgiLCAnMicpOwotc2hvdWxkQmUoImhvc3RSdWxlLmNzc1RleHQiLCAnIkBob3N0
IHsgXFxuICAjaG9zdCB7IGJvcmRlci1jb2xvcjogZ3JlZW47IH1cXG4gIGRpdiB7IGJvcmRlci1j
b2xvcjogYmx1ZTsgfVxcbn0iJyk7Ci1zaG91bGRCZSgiaG9zdFJ1bGUuY3NzUnVsZXNbMF0uY3Nz
VGV4dCIsICciI2hvc3QgeyBib3JkZXItY29sb3I6IGdyZWVuOyB9IicpOwotc2hvdWxkQmUoImhv
c3RSdWxlLmNzc1J1bGVzWzFdLmNzc1RleHQiLCAnImRpdiB7IGJvcmRlci1jb2xvcjogYmx1ZTsg
fSInKTsKLQotZGVidWcoIkFmdGVyIGRlbGV0aW5nIHRoZSBib3JkZXIgcnVsZSB3aXRoIGFuIGlk
IHNlbGVjdG9yIGZyb20gQGhvc3QgQC1ydWxlczoiKTsKLWhvc3RSdWxlLmRlbGV0ZVJ1bGUoMCk7
Ci1zaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShob3N0KS5ib3JkZXJDb2xvciIsICcicmdiKDAs
IDAsIDI1NSkiJyk7Ci1zaG91bGRCZSgiaG9zdFJ1bGUuY3NzUnVsZXMubGVuZ3RoIiwgJzEnKTsK
LXNob3VsZEJlKCJob3N0UnVsZS5jc3NUZXh0IiwgJyJAaG9zdCB7IFxcbiAgZGl2IHsgYm9yZGVy
LWNvbG9yOiBibHVlOyB9XFxufSInKTsKLXNob3VsZEJlKCJob3N0UnVsZS5jc3NSdWxlc1swXS5j
c3NUZXh0IiwgJyJkaXYgeyBib3JkZXItY29sb3I6IGJsdWU7IH0iJyk7Ci0KLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVk
LXBzZXVkby1lbGVtZW50LWNzcy10ZXh0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtY3NzLXRl
eHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtY3NzLXRleHQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLVRlc3QgZm9yIGNzc1RleHQgb2YgJzo6
ZGlzdHJpYnV0ZWQoKScgcnVsZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0eWxlMScpLnNoZWV0LmNzc1J1bGVzLml0ZW0o
MCkuY3NzVGV4dCBpcyAiLmZvbzo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYgLmJhcjo6YmVmb3Jl
KSB7IGRpc3BsYXk6IGJsb2NrOyB9IgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0
cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1jc3MtdGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1jc3MtdGV4
dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtY3NzLXRleHQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzdHls
ZSBpZD0ic3R5bGUxIj4KLS5mb286Oi13ZWJraXQtZGlzdHJpYnV0ZWQoZGl2IC5iYXI6OmJlZm9y
ZSkgeyBkaXNwbGF5OiBibG9jazsgfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiVGVzdCBmb3IgY3NzVGV4dCBvZiAnOjpkaXN0cmlidXRlZCgpJyBydWxlLiIpOwot
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3R5bGUxJyku
c2hlZXQuY3NzUnVsZXMuaXRlbSgwKS5jc3NUZXh0IiwgIi5mb286Oi13ZWJraXQtZGlzdHJpYnV0
ZWQoZGl2IC5iYXI6OmJlZm9yZSkgeyBkaXNwbGF5OiBibG9jazsgfSIpOwotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQt
cHNldWRvLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1
dGVkLXBzZXVkby1lbGVtZW50LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94
Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuIj5ncmVl
bjwvZGl2PgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1mb3Itc2hhZG93LWVsZW1l
bnQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtZm9yLXNoYWRvdy1lbGVtZW50LWV4cGVjdGVk
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9k
aXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1mb3Itc2hhZG93LWVsZW1lbnQtZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPgotICA8ZGl2IGlkPSJob3N0Ij4KLSAgICA8ZGl2
IHN0eWxlPSJjb2xvcjogZ3JlZW4iPmdyZWVuPC9kaXY+Ci0gIDwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVk
by1lbGVtZW50LWZvci1zaGFkb3ctZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1mb3Itc2hhZG93
LWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LWZvci1zaGFkb3ctZWxlbWVudC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotPHNjcmlwdD4KLXZh
ciBzaGFkb3dTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7Ci1zaGFkb3dT
dHlsZS5pbm5lckhUTUwgPSAnc2hhZG93Ojotd2Via2l0LWRpc3RyaWJ1dGVkKGRpdikgeyBjb2xv
cjogZ3JlZW47IH0nOwotCi12YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
YW5kYm94Jyk7Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdob3N0J30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdncmVlbicpKSksCi0gICAgICAgICAgICAgIGNyZWF0
ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBzaGFkb3dTdHlsZSwKLSAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnc2hhZG93JykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8t
ZWxlbWVudC1tYXRjaC1hbGwtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbWF0Y2gtYWxsLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1tYXRjaC1hbGwtZXhwZWN0ZWQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdj4K
LSAgICAgIG5vcm1hbAotICAgICAgPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuIj5ncmVlbjwvZGl2
PgotICAgIDwvZGl2PgotICAgIDxkaXY+Ci0gICAgICBub3JtYWwKLSAgICAgIDxkaXYgc3R5bGU9
ImNvbG9yOiBncmVlbiI+Z3JlZW48L2Rpdj4KLSAgICA8L2Rpdj4KLSAgPC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQt
cHNldWRvLWVsZW1lbnQtbWF0Y2gtYWxsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW1hdGNoLWFsbC5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJp
YnV0ZWQtcHNldWRvLWVsZW1lbnQtbWF0Y2gtYWxsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRp
diBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHNoYWRvd1N0eWxlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlLmlubmVySFRNTCA9ICdjb250
ZW50Ojotd2Via2l0LWRpc3RyaWJ1dGVkKC5oZWxsbykgeyBjb2xvcjogZ3JlZW47IH0nOwotCi12
YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1zYW5kYm94
LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBzaGFkb3dTdHls
ZSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKLSAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydjbGFzcyc6ICdoZWxsbyd9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdncmVlbicpKSksCi0gICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgnbm9ybWFsJyksCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnY2xhc3MnOiAnaGVsbG8nfSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZ3JlZW4nKSkpKSk7Ci08L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9k
aXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1tYXRjaC1kZXNjZW5kYW50LWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBz
ZXVkby1lbGVtZW50LW1hdGNoLWRlc2NlbmRhbnQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1l
bGVtZW50LW1hdGNoLWRlc2NlbmRhbnQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJz
YW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPHA+Ci0gICAgICA8ZGl2IHN0eWxlPSJj
b2xvcjogZ3JlZW4iPmdyZWVuPC9kaXY+Ci0gICAgPC9wPgotICA8L2Rpdj4KLTwvYm9keT4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1
ZG8tZWxlbWVudC1tYXRjaC1kZXNjZW5kYW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW1hdGNoLWRlc2Nl
bmRhbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW1hdGNoLWRlc2NlbmRhbnQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgc2hh
ZG93U3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwotc2hhZG93U3R5bGUu
aW5uZXJIVE1MID0gJ2NvbnRlbnQ6Oi13ZWJraXQtZGlzdHJpYnV0ZWQoZGl2KSB7IGNvbG9yOiBn
cmVlbjsgfSc7Ci0KLXZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRi
b3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAg
ICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgIHNoYWRvd1N0
eWxlLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JykpLAotICAgICAgICAg
ICAgICBjcmVhdGVET00oJ3AnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoJ2dyZWVuJykpKSkpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVs
ZW1lbnQtbmVzdGVkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW5lc3RlZC1leHBlY3RlZC5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlz
dHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbmVzdGVkLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGRp
diBpZD0ic2FuZGJveCI+Ci0gIDxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXYgaWQ9Im5lc3RlZC1o
b3N0Ij4KLSAgICAgIHRleHQxCi0gICAgICA8ZGl2PgotICAgICAgICB0ZXh0MgotICAgICAgICA8
ZGl2PgotICAgICAgICAgIHRleHQzCi0gICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVu
Ij5ncmVlbjwvZGl2PgotICAgICAgICAgIDxkaXY+bm9ybWFsPC9kaXY+Ci0gICAgICAgIDwvZGl2
PgotICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+Ci0gIDwvZGl2PgotPC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNl
dWRvLWVsZW1lbnQtbmVzdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW5lc3RlZC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNl
dWRvLWVsZW1lbnQtbmVzdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzIgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJv
eCI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHNoYWRvd1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlLmlubmVySFRNTCA9ICdkaXYgY29udGVudDo6LXdl
YmtpdC1kaXN0cmlidXRlZChkaXYgY29udGVudDo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYuZ3Jl
ZW4pKSB7IGNvbG9yOiBncmVlbjsgfSc7Ci0KLXZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgK
LSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICduZXN0ZWQtaG9zdCd9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgndGV4dDEnKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCd0
ZXh0MicpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnZGl2J30pKSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2NsYXNzJzogJ2dyZWVuJ30sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCd0ZXh0
MycpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Nv
bnRlbnQnLCB7fSkpKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydjbGFzcyc6
ICdncmVlbid9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ2dyZWVuJykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ25vcm1hbCcpKSkpOwot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbm8tbWF0Y2gtZXhwZWN0ZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNl
dWRvLWVsZW1lbnQtbm8tbWF0Y2gtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW5v
LW1hdGNoLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+Ci0gIDxkaXYg
aWQ9Imhvc3QiPgotICAgIDxwPm5vcm1hbDwvcD4KLSAgICA8ZGl2PgotICAgICAgPGRpdj5ub3Jt
YWw8L2Rpdj4KLSAgICA8L2Rpdj4KLSAgPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbm8t
bWF0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlz
dHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbm8tbWF0Y2guaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50
LW5vLW1hdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9t
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+
Ci08c2NyaXB0PgotdmFyIHNoYWRvd1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5
bGUnKTsKLXNoYWRvd1N0eWxlLmlubmVySFRNTCA9ICd0aGlzLWRvZXMtbm90LW1hdGNoOjotd2Vi
a2l0LWRpc3RyaWJ1dGVkKGRpdikgeyBjb2xvcjogZ3JlZW47IH0nCi0gICAgKyAncDo6LXdlYmtp
dC1kaXN0cmlidXRlZChkaXYpIHsgY29sb3I6IGdyZWVuOyB9JwotICAgICsgJ2Rpdjo6LXdlYmtp
dC1kaXN0cmlidXRlZChkaXYpIHsgY29sb3I6IGdyZWVuOyB9JzsKLQotdmFyIHNhbmRib3ggPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotc2FuZGJveC5hcHBlbmRDaGlsZCgK
LSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdCd9LAotICAgICAgICAgICAgICBjcmVh
dGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgc2hhZG93U3R5bGUsCi0gICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ3AnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSksCi0gICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
Y29udGVudCcpKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0
LWNoaWxkJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgnbm9ybWFsJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1yZXByb2pl
Y3Rpb24tZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtcmVwcm9qZWN0aW9uLWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0
cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1yZXByb2plY3Rpb24tZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+
Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdiBpZD0iaG9z
dDIiPgotICAgICAgPGRpdiBzdHlsZT0nY29sb3I6IGdyZWVuJz4KLSAgICAgICAgZ3JlZW4KLSAg
ICAgIDwvZGl2PgotICAgIDwvZGl2PgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1y
ZXByb2plY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtcmVwcm9qZWN0aW9uLmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1
ZG8tZWxlbWVudC1yZXByb2plY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJz
YW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgc2hhZG93U3R5bGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzdHlsZScpOwotc2hhZG93U3R5bGUuaW5uZXJIVE1MID0gJ2NvbnRlbnQ6Oi13
ZWJraXQtZGlzdHJpYnV0ZWQoLmZvbykgeyBjb2xvcjogZ3JlZW47IH0nOwotCi12YXIgc2FuZGJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1zYW5kYm94LmFwcGVuZENo
aWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAgICAgICAgICAg
IGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnaG9zdDInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dS
b290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dTdHlsZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3Qn
OiAnLmZvbyd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250
ZW50JykpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2NsYXNzJzogJ2Zvbyd9
LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2dyZWVu
JykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1zY29wZWQtZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0
ZWQtcHNldWRvLWVsZW1lbnQtc2NvcGVkLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVu
dC1zY29wZWQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRp
diBpZD0iaG9zdCI+Ci0gICAgPGRpdj5ub3JtYWw8L2Rpdj4KLSAgICA8ZGl2PgotICAgICAgPGRp
diBzdHlsZT0nY29sb3I6IGdyZWVuJz5ncmVlbjwvZGl2PgotICAgIDwvZGl2PgotICA8L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0
cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1zY29wZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc2NvcGVkLmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0
cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1zY29wZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwy
NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2
IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgc2hhZG93U3R5bGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwotc2hhZG93U3R5bGUuaW5uZXJIVE1MID0gJ2NvbnRl
bnQ6Oi13ZWJraXQtZGlzdHJpYnV0ZWQoZGl2KSB7IGNvbG9yOiBncmVlbjsgfSc7Ci1zaGFkb3dT
dHlsZS5zZXRBdHRyaWJ1dGUoJ3Njb3BlZCcsIHRydWUpOwotCi12YXIgc2FuZGJveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNo
YWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVj
dCc6ICcjaG9zdC1jaGlsZDEnfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsn
c2VsZWN0JzogJyNob3N0LWNoaWxkMid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aGFkb3dTdHlsZSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9z
dC1jaGlsZDEnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCdub3JtYWwnKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdo
b3N0LWNoaWxkMid9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoJ2dyZWVuJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1zcGVj
aWZpZXJzLWluLWxlZnQtc2lkZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1zcGVjaWZpZXJz
LWluLWxlZnQtc2lkZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc3BlY2lmaWVy
cy1pbi1sZWZ0LXNpZGUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4K
LSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdj5ub3JtYWw8L2Rpdj4KLSAgICA8ZGl2IHN0eWxl
PSdjb2xvcjogZ3JlZW4nPmdyZWVuPC9kaXY+Ci0gICAgPGRpdiBzdHlsZT0nY29sb3I6IGJsdWUn
PmJsdWU8L2Rpdj4KLSAgPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc3BlY2lmaWVycy1p
bi1sZWZ0LXNpZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc3BlY2lmaWVycy1pbi1sZWZ0LXNpZGUuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3Ry
aWJ1dGVkLXBzZXVkby1lbGVtZW50LXNwZWNpZmllcnMtaW4tbGVmdC1zaWRlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHNoYWRv
d1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlLmlu
bmVySFRNTCA9ICdjb250ZW50Lm5vbi1leGlzdDo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYpIHsg
Y29sb3I6IHJlZDsgfScKLSAgICArICdjb250ZW50LmNvbnRlbnQtY2xhc3M6Oi13ZWJraXQtZGlz
dHJpYnV0ZWQoZGl2KSB7IGNvbG9yOiBncmVlbjsgfScKLSAgICArICcjY29udGVudC1pZDo6LXdl
YmtpdC1kaXN0cmlidXRlZChkaXYpIHsgY29sb3I6IGJsdWU7IH0nOwotCi12YXIgc2FuZGJveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1zYW5kYm94LmFwcGVuZENoaWxk
KAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAgICAgICAgICAgIGNy
ZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7
J3NlbGVjdCc6ICcjaG9zdC1jaGlsZC0xJ30pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JywgeydjbGFzcyc6ICdjb250ZW50LWNsYXNzJywgJ3NlbGVjdCc6ICcjaG9zdC1j
aGlsZC0yJ30pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6
ICdjb250ZW50LWlkJywgJ3NlbGVjdCc6ICcjaG9zdC1jaGlsZC0zJ30pLAotICAgICAgICAgICAg
ICAgICAgc2hhZG93U3R5bGUpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnaG9zdC1jaGlsZC0xJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgnbm9ybWFsJykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnaG9zdC1jaGlsZC0yJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgnZ3JlZW4nKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdob3N0LWNoaWxkLTMnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCdibHVlJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxl
bWVudC1zdXBwb3J0LXNlbGVjdG9yLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXN1cHBvcnQt
c2VsZWN0b3ItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXN1cHBvcnQtc2VsZWN0
b3ItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0i
aG9zdCI+Ci0gICAgPGRpdj4KLSAgICAgIG5vcm1hbAotICAgICAgPGRpdiBzdHlsZT0iY29sb3I6
IGdyZWVuIj5ncmVlbjwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaXY+Ci0gICAgICBub3JtYWwK
LSAgICAgIDxkaXY+bm9ybWFsPC9kaXY+Ci0gICAgPC9kaXY+Ci0gIDwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBz
ZXVkby1lbGVtZW50LXN1cHBvcnQtc2VsZWN0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc3VwcG9ydC1z
ZWxlY3Rvci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc3VwcG9ydC1zZWxlY3Rvci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotPHNjcmlwdD4KLXZhciBz
aGFkb3dTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7Ci1zaGFkb3dTdHls
ZS5pbm5lckhUTUwgPSAnY29udGVudDo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYuaGVsbG8gZGl2
KSB7IGNvbG9yOiBncmVlbjsgfSc7Ci0KLXZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAg
ICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnY2xhc3MnOiAn
aGVsbG8nfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCdub3JtYWwnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ2dyZWVuJykpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ25vcm1hbCcpKSkp
KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXVzZWQtaW4tc2VsZWN0b3ItbGlz
dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC11c2VkLWluLXNlbGVjdG9yLWxpc3QtZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXVzZWQtaW4tc2VsZWN0b3ItbGlzdC1leHBlY3Rl
ZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPgotICA8ZGl2IGlkPSJob3N0Ij4KLSAg
ICA8ZGl2IHN0eWxlPSJjb2xvcjogZ3JlZW4iPmdyZWVuPC9kaXY+Ci0gICAgPHA+bm9ybWFsPC9w
PgotICAgIDxwIHN0eWxlPSJjb2xvcjogZ3JlZW4iPmdyZWVuPC9wPgotICA8L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRl
ZC1wc2V1ZG8tZWxlbWVudC11c2VkLWluLXNlbGVjdG9yLWxpc3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQt
dXNlZC1pbi1zZWxlY3Rvci1saXN0Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC11c2VkLWluLXNl
bGVjdG9yLWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1k
b20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rp
dj4KLTxzY3JpcHQ+Ci12YXIgc2hhZG93U3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
dHlsZScpOwotc2hhZG93U3R5bGUuaW5uZXJIVE1MID0gJ2NvbnRlbnQ6Oi13ZWJraXQtZGlzdHJp
YnV0ZWQoZGl2KSwgcCB7IGNvbG9yOiBncmVlbjsgfSc7Ci0KLXZhciBzYW5kYm94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hh
ZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlLAotICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdjb250ZW50JyksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3An
LCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgnZ3JlZW4nKSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2dyZWVuJykpLAotICAg
ICAgICAgICAgICBjcmVhdGVET00oJ3AnLCB7J2NsYXNzJzogJ2hlbGxvJ30sCi0gICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnbm9ybWFsJykpKSk7Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC13aXRoLWFueS1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8t
ZWxlbWVudC13aXRoLWFueS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtd2l0aC1h
bnktZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdj4KLSAg
ICA8ZGl2Pm5vcm1hbDwvZGl2PgotICAgIDxkaXYgc3R5bGU9ImNvbG9yOiBncmVlbiI+Z3JlZW48
L2Rpdj4KLSAgPC9kaXY+Ci0gIDxkaXY+Ci0gICAgPGRpdj5ub3JtYWw8L2Rpdj4KLSAgICA8ZGl2
IHN0eWxlPSJjb2xvcjogcmVkIj5yZWQ8L2Rpdj4KLSAgPC9kaXY+Ci0gIDxkaXY+Ci0gICAgPGRp
dj5ub3JtYWw8L2Rpdj4KLSAgICA8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZSI+Ymx1ZTwvZGl2Pgot
ICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC13aXRoLWFueS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVu
dC13aXRoLWFueS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtd2l0aC1hbnkuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgc2hhZG93
U3R5bGUxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlMS5p
bm5lckhUTUwgPSAnKjo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYpIHsgY29sb3I6IGdyZWVuOyB9
JzsKLQotdmFyIHNoYWRvd1N0eWxlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7
Ci1zaGFkb3dTdHlsZTIuaW5uZXJIVE1MID0gJ2NvbnRlbnQ6Oi13ZWJraXQtZGlzdHJpYnV0ZWQo
KikgeyBjb2xvcjogcmVkOyB9JzsKLQotdmFyIHNoYWRvd1N0eWxlMyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3N0eWxlJyk7Ci1zaGFkb3dTdHlsZTMuaW5uZXJIVE1MID0gJyo6Oi13ZWJraXQt
ZGlzdHJpYnV0ZWQoKikgeyBjb2xvcjogYmx1ZTsgfSc7Ci0KLXZhciBzYW5kYm94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAg
Y3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAg
ICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlMSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoJ25vcm1hbCcpKSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVu
dCcpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdncmVlbicpKSkpOwotCi1zYW5kYm94
LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgIGNy
ZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBzaGFkb3dTdHlsZTIsCi0gICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSksCi0gICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
e30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgncmVk
JykpKSk7Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0g
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBzaGFkb3dT
dHlsZTMsCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSksCi0g
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSksCi0gICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgnYmx1ZScpKSkpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0
ZWQtcHNldWRvLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHNoYWRvd1N0
eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlLmlubmVy
SFRNTCA9ICdjb250ZW50Ojotd2Via2l0LWRpc3RyaWJ1dGVkKGRpdikgeyBjb2xvcjogZ3JlZW47
IH0nOwotCi12YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7
Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAg
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBzaGFkb3dTdHlsZSwK
LSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKLSAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCdncmVlbicpKSkpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWF0dHJpYnV0ZS1t
b2RpZmllZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9kaXN0cmlidXRpb24tYXR0cmlidXRlLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRp
b24tYXR0cmlidXRlLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxkaXYgaWQ9
Imhvc3QiPgotICAgIDxkaXY+RjwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tYXR0cmlidXRlLW1vZGlmaWVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlv
bi1hdHRyaWJ1dGUtbW9kaWZpZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1hdHRyaWJ1dGUtbW9kaWZpZWQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+
Ci08Ym9keT4KLQotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXY+QTwvZGl2PgotICAgIDxkaXY+QjwvZGl2Pgot
ICAgIDxkaXY+QzwvZGl2PgotICAgIDxkaXY+RDwvZGl2PgotICAgIDxkaXY+RTwvZGl2PgotICAg
IDxkaXYgaWQ9IkYiPkY8L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hhZG93Um9v
dCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwg
PSAnPGNvbnRlbnQgc2VsZWN0PSJkaXZbdGl0bGVdIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICBGLnRpdGxlID0gJ3NvbWV0aGluZyc7Ci0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwot
PC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlz
dHJpYnV0aW9uLWNsYXNzTmFtZS1tb2RpZmllZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tY2xhc3NOYW1lLW1vZGlm
aWVkLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tY2xhc3NOYW1lLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1s
PgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXY+QTwvZGl2PgotICAgIDxkaXY+
RDwvZGl2PgotICAgIDxkaXY+RjwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tY2xhc3NOYW1lLW1vZGlmaWVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlv
bi1jbGFzc05hbWUtbW9kaWZpZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1jbGFzc05hbWUtbW9kaWZpZWQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+
Ci08Ym9keT4KLQotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXYgY2xhc3M9InNlbGVjdGVkIj5BPC9kaXY+Ci0g
ICAgPGRpdj5CPC9kaXY+Ci0gICAgPGRpdj5DPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0ic2VsZWN0
ZWQiPkQ8L2Rpdj4KLSAgICA8ZGl2PkU8L2Rpdj4KLSAgICA8ZGl2IGlkPSJGIj5GPC9kaXY+Ci08
L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iLnNl
bGVjdGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBGLmNs
YXNzTmFtZSA9ICdzZWxlY3RlZCc7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWNyYXNoLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJp
YnV0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsOCArMCwwIEBACi1XaGVuIG1vZGlmeWluZyBJbnNlcnRpb25Qb2ludCdz
IGNoaWxkLCBkaXN0cmlidXRpb24gc2hvdWxkIG5vdCBjYXVzZSBjcmFzaC4KLQotUEFTUyB1bmxl
c3MgY3Jhc2guCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWNy
YXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3Ry
aWJ1dGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD48Ym9keT4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIG1v
ZGlmeWluZyBJbnNlcnRpb25Qb2ludCdzIGNoaWxkLCBkaXN0cmlidXRpb24gc2hvdWxkIG5vdCBj
YXVzZSBjcmFzaC48L3A+Ci08cD5QQVNTIHVubGVzcyBjcmFzaC48L3A+Ci0KLTxkaXYgaWQ9Imhv
c3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLQotZnVuY3Rpb24gY3JlYXRlRWxlbWVudExpa2VEZXRhaWxzKCkKLXsK
LSAgICB2YXIgZGV0YWlscyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZh
ciBzaGFkb3dSb290ID0gZGV0YWlscy53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICBz
aGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdi5zdW1tYXJ5Ij48L2Nv
bnRlbnQ+PGNvbnRlbnQ+PC9jb250ZW50Pic7Ci0KLSAgICB2YXIgZGVmYXVsdFN1bW1hcnkgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkZWZhdWx0U3VtbWFyeS53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJ0RlZmF1bHQgU3VtbWFyeSc7Ci0gICAgc2hh
ZG93Um9vdC5maXJzdENoaWxkLmFwcGVuZENoaWxkKGRlZmF1bHRTdW1tYXJ5KTsKLQotICAgIHJl
dHVybiBkZXRhaWxzOyAgICAKLX0KLQotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdC53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnc29tZXRoaW5nIDEnOwot
Ci12YXIgc2hhZG93Um9vdDIgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBk
ZXRhaWxzID0gY3JlYXRlRWxlbWVudExpa2VEZXRhaWxzKCk7Ci1kZXRhaWxzLmlubmVySFRNTCA9
ICc8c2hhZG93IGlkPSJzaGFkb3ciPnNvbWV0aGluZyAyPC9zaGFkb3c+JzsKLXNoYWRvd1Jvb3Qy
LmFwcGVuZENoaWxkKGRldGFpbHMpOwotCi12YXIgc2hhZG93ID0gZGV0YWlscy5maXJzdENoaWxk
Owotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBzaGFkb3cuZmlyc3RDaGlsZC5yZW1vdmUo
KTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT48
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWlk
LW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1pZC1tb2RpZmllZC1leHBlY3RlZC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWlk
LW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAg
IDxkaXY+RjwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kaXN0cmlidXRpb24taWQtbW9kaWZpZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWlkLW1vZGlmaWVkLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmli
dXRpb24taWQtbW9kaWZpZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXYgaWQ9
InNlbGVjdGVkIj5BPC9kaXY+Ci0gICAgPGRpdj5CPC9kaXY+Ci0gICAgPGRpdj5DPC9kaXY+Ci0g
ICAgPGRpdj5EPC9kaXY+Ci0gICAgPGRpdj5FPC9kaXY+Ci0gICAgPGRpdiBpZD0iRiI+RjwvZGl2
PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9
IiNzZWxlY3RlZCI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAg
QSA9IHNlbGVjdGVkOwotICAgIEYuaWQgPSAnc2VsZWN0ZWQnOyAgICAKLSAgICBBLmlkID0gJyc7
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZHJhZy10by1tZXRlci1pbi1zaGFkb3ctY3Jhc2gtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcmFnLXRvLW1ldGVyLWlu
LXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9kcmFnLXRvLW1ldGVyLWluLXNoYWRvdy1jcmFzaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHNl
bGVjdGluZyBmcm9tIG91dHNpZGUgb2YgYSBzaGFkb3cgdHJlZSBhbmQgdG8gaW5zaWRlIG9mIGEg
c2hhZG93IHRyZWUgd29uJ3QgY3Jhc2guCi0KLVBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kcmFnLXRvLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcmFnLXRvLW1ldGVyLWluLXNoYWRvdy1j
cmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZHJhZy10by1tZXRlci1pbi1zaGFkb3ctY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08cD5UaGlzIHRl
c3QgY2hlY2tzIHNlbGVjdGluZyBmcm9tIG91dHNpZGUgb2YgYSBzaGFkb3cgdHJlZSBhbmQgdG8g
aW5zaWRlIG9mIGEgc2hhZG93IHRyZWUgd29uJ3QgY3Jhc2guPC9wPgotPGRpdiBpZD0nY29udGFp
bmVyJyBzdHlsZT0id2lkdGg6MTAwcHg7IGhlaWdodDogMTAwcHgiPjwvZGl2PgotPGRpdj5QQVNT
PC9kaXY+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LQotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsK
LXZhciBzaGFkb3dSb290ID0gY29udGFpbmVyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZh
ciBtZXRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGVyJyk7Ci1zaGFkb3dSb290LmFw
cGVuZENoaWxkKG1ldGVyKTsKLQotdmFyIG1pZFggPSBtZXRlci5vZmZzZXRMZWZ0ICsgKG1ldGVy
Lm9mZnNldFdpZHRoIC8gMik7Ci12YXIgbWlkWSA9IG1ldGVyLm9mZnNldFRvcCArIChtZXRlci5v
ZmZzZXRIZWlnaHQgLyAyKTsKLXZhciBkZWx0YSA9IDQwOwotCi1ldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhtaWRYLCBtaWRZICsgZGVsdGEpOwotZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci1ldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhtaWRYLCBtaWRZKTsKLWV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2Ryb3AtZXZlbnQtZm9yLWlucHV0LWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ryb3AtZXZlbnQtZm9yLWlucHV0
LWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9kcm9wLWV2ZW50LWZvci1pbnB1dC1pbi1zaGFkb3ctZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzAsMCBAQAotUEFTUzogZHJvcCBldmVudCBpcyBm
aXJlZC4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ryb3AtZXZlbnQtZm9y
LWlucHV0LWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9kcm9wLWV2ZW50LWZvci1pbnB1dC1pbi1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ryb3AtZXZlbnQtZm9yLWlucHV0
LWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRp
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVJbnB1dChuYW1lKSB7
Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci0gICAgZGl2
LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKLSAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsK
LQotICAgIGRpdi5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgZnVuY3Rpb24oZSkgewotICAgICAg
ICBkZWJ1ZygnUEFTUzogZHJvcCBldmVudCBpcyBmaXJlZC4nKTsKLSAgICB9KTsKLQotICAgIHJl
dHVybiBkaXY7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgdmFyIHNoYWRvd1Jvb3Qg
PSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgc2hhZG93SW5wdXQgPSBj
cmVhdGVJbnB1dCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3dJ
bnB1dCk7Ci0KLSAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWyIuLi9yZXNvdXJj
ZXMvYXBwbGUuZ2lmIl0pOwotICAgIG1vdXNlTW92ZVRvRWxlbShzaGFkb3dJbnB1dCk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZHJvcC1ldmVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcm9wLWV2ZW50LWluLXNoYWRvdy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcm9w
LWV2ZW50LWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMCww
IEBACi1QQVNTOiBkcm9wIGV2ZW50IGlzIGZpcmVkLgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZHJvcC1ldmVudC1pbi1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHJvcC1ldmVudC1pbi1zaGFkb3cuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ryb3AtZXZlbnQtaW4t
c2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZUJveChuYW1lKSB7Ci0gICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53
aWR0aCA9ICcxMDBweCc7Ci0gICAgZGl2LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0KLSAgICBk
aXYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGUu
cHJldmVudERlZmF1bHQoKTsKLSAgICB9KTsKLSAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcignZHJv
cCcsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGVidWcoJ1BBU1M6IGRyb3AgZXZlbnQgaXMgZmly
ZWQuJyk7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gZGl2OwotfQotCi1mdW5jdGlvbiBydW5UZXN0
KCkgewotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci0gICAgdmFyIHNoYWRvd0RpdiA9IGNyZWF0ZUJveCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChzaGFkb3dEaXYpOwotCi0gICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0
aEZpbGVzKFsiLi4vcmVzb3VyY2VzL2FwcGxlLmdpZiJdKTsKLSAgICBtb3VzZU1vdmVUb0VsZW0o
c2hhZG93RGl2KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPGRpdiBpZD0iaG9zdCI+PC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4
cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5
bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQt
c2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGJvZHk+Ci08ZGl2PgotVGhpcyB0ZXN0cyB0aGF0IGR5bmFtaWNh
bGx5IGNyZWF0ZWQgU2hhZG93Um9vdCBzaG91bGQgYmUgcmVuZGVyZWQgY29ycmVjdGx5LgotQ2Fu
IG9ubHkgcnVuIHdpdGhpbiBEUlQuCi08L2Rpdj4KLTxkaXY+U2hhZG93IHNob3VsZCBiZSByZW5k
ZXJlZC48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93
LXJvb3QuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxib2R5PgotPGRpdj4KLVRoaXMgdGVz
dHMgdGhhdCBkeW5hbWljYWxseSBjcmVhdGVkIFNoYWRvd1Jvb3Qgc2hvdWxkIGJlIHJlbmRlcmVk
IGNvcnJlY3RseS4KLUNhbiBvbmx5IHJ1biB3aXRoaW4gRFJULgotPC9kaXY+Ci08ZGl2IGlkPSJo
b3N0MSI+TGlnaHQgY2hpbGRyZW4gc2hvdWxkIG5vdCBiZSByZW5kZXJlZC48L2Rpdj4KLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LmludGVybmFscykgewotICAgIHZhciBob3N0MSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJyNob3N0MScpOwotICAgIHZhciBzaGFkb3dSb290ID0gd2luZG93LmludGVy
bmFscy5lbnN1cmVTaGFkb3dSb290KGhvc3QxKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdTaGFkb3cgc2hvdWxkIGJlIHJlbmRlcmVkLicpKTsK
LX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2VsZW1lbnQtZnJvbS1wb2ludC1pbi1uZXN0ZWQtc2hhZG93LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1mcm9t
LXBvaW50LWluLW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1mcm9tLXBvaW50LWluLW5lc3Rl
ZC1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotUEFT
UyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUoZWxlbWVudCkgaXMgZG9jdW1lbnQKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1mcm9tLXBvaW50LWluLW5lc3RlZC1zaGFk
b3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVu
dC1mcm9tLXBvaW50LWluLW5lc3RlZC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnQtZnJvbS1wb2ludC1pbi1uZXN0ZWQt
c2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2Pgot
PHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVCb3go
bmFtZSkgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICBkaXYuc3R5bGUud2lkdGggPSAnMTAwcHgnOwotICAgIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAw
cHgnOwotCi0gICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBmdW5jdGlvbihlKSB7Ci0g
ICAgICAgIGRlYnVnKCdQQVNTOiBkcm9wIGV2ZW50IGlzIGZpcmVkLicpOwotICAgIH0pOwotCi0g
ICAgcmV0dXJuIGRpdjsKLX0KLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLQotdmFyIGRhcmtSb290ID0gZGl2LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBib3ggPSBjcmVhdGVCb3goJ2RhcmsnKTsKLWRhcmtSb290
LmFwcGVuZENoaWxkKGJveCk7Ci0KLXZhciB4ID0gYm94Lm9mZnNldExlZnQgKyBib3gub2Zmc2V0
V2lkdGggLyAyOwotdmFyIHkgPSBib3gub2Zmc2V0VG9wICsgYm94Lm9mZnNldEhlaWdodCAvIDI7
Ci0KLXZhciBlbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KTsKLQotc2hv
dWxkQmUoImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZShlbGVtZW50KSIsICJkb2N1bWVudCIp
OwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1u
YW1lLWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2VsZW1lbnQtbmFtZS1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1uYW1lLWlu
LXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIxICswLDAgQEAKLTxh
PjogQmVmb3JlIGFwcGVuZENoaWxkLCBuYW1lZF9hIHNob3VsZCBub3QgYmUgaW4gZG9jdW1lbnQu
Ci1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5h
bWUgaW4gd2luZG93IGlzIGZhbHNlCi08YT46IEFmdGVyIGFwcGVuZENoaWxkLCBuYW1lZF9hIHNo
b3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQsIGJlY2F1c2UgdGhlIGVsZW1lbnQgd2FzIGlu
c2VydGVkIGludG8gYSBzaGFkb3cgRE9NIHRyZWUuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1
bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08YT46
IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlbmFtZWRfYSBieSB1c2lu
ZyBzZXRBdHRyaWJ1dGUsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQu
Ci1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5h
bWUgaW4gd2luZG93IGlzIGZhbHNlCi08YT46IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJp
YnV0ZSBpbnRvIHJlLXJlbmFtZWRfYSBieSB1c2luZyAnLm5hbWU9JywgdGhlIG5hbWUgc2hvdWxk
IG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50
IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxhcHBsZXQ+
OiBCZWZvcmUgYXBwZW5kQ2hpbGQsIG5hbWVkX2FwcGxldCBzaG91bGQgbm90IGJlIGluIGRvY3Vt
ZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVu
dC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGFwcGxldD46IEFmdGVyIGFwcGVuZENoaWxkLCBu
YW1lZF9hcHBsZXQgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudCwgYmVjYXVzZSB0aGUg
ZWxlbWVudCB3YXMgaW5zZXJ0ZWQgaW50byBhIHNoYWRvdyBET00gdHJlZS4KLVBBU1MgZWxlbWVu
dC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cg
aXMgZmFsc2UKLTxhcHBsZXQ+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50
byByZW5hbWVkX2FwcGxldCBieSB1c2luZyBzZXRBdHRyaWJ1dGUsIHRoZSBuYW1lIHNob3VsZCBu
b3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBp
cyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08YXBwbGV0Pjog
QWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8gcmUtcmVuYW1lZF9hcHBsZXQg
YnkgdXNpbmcgJy5uYW1lPScsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1l
bnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50
Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08YXJlYT46IEJlZm9yZSBhcHBlbmRDaGlsZCwgbmFt
ZWRfYXJlYSBzaG91bGQgbm90IGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4g
ZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQot
PGFyZWE+OiBBZnRlciBhcHBlbmRDaGlsZCwgbmFtZWRfYXJlYSBzaG91bGQgbm90IHN0aWxsIGJl
IGluIGRvY3VtZW50LCBiZWNhdXNlIHRoZSBlbGVtZW50IHdhcyBpbnNlcnRlZCBpbnRvIGEgc2hh
ZG93IERPTSB0cmVlLgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBB
U1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGFyZWE+OiBBZnRlciBjaGFuZ2lu
ZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byBuYW1lZF9hcmVhIGJ5IHVzaW5nIHNldEF0dHJpYnV0
ZSwgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVu
dC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cg
aXMgZmFsc2UKLTxhcmVhPjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8g
cmUtcmVuYW1lZF9hcmVhIGJ5IHVzaW5nICcubmFtZT0nLCB0aGUgbmFtZSBzaG91bGQgbm90IHN0
aWxsIGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFs
c2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGVtYmVkPjogQmVmb3Jl
IGFwcGVuZENoaWxkLCBuYW1lZF9lbWJlZCBzaG91bGQgbm90IGJlIGluIGRvY3VtZW50LgotUEFT
UyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGlu
IHdpbmRvdyBpcyBmYWxzZQotPGVtYmVkPjogQWZ0ZXIgYXBwZW5kQ2hpbGQsIG5hbWVkX2VtYmVk
IHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQsIGJlY2F1c2UgdGhlIGVsZW1lbnQgd2Fz
IGluc2VydGVkIGludG8gYSBzaGFkb3cgRE9NIHRyZWUuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBk
b2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08
ZW1iZWQ+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byByZW5hbWVkX2Vt
YmVkIGJ5IHVzaW5nIHNldEF0dHJpYnV0ZSwgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBp
biBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNT
IGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxlbWJlZD46IEFmdGVyIGNoYW5naW5n
IGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlLXJlbmFtZWRfZW1iZWQgYnkgdXNpbmcgJy5uYW1l
PScsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1l
bnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93
IGlzIGZhbHNlCi08Zm9ybT46IEJlZm9yZSBhcHBlbmRDaGlsZCwgbmFtZWRfZm9ybSBzaG91bGQg
bm90IGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFs
c2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGZvcm0+OiBBZnRlciBh
cHBlbmRDaGlsZCwgbmFtZWRfZm9ybSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LCBi
ZWNhdXNlIHRoZSBlbGVtZW50IHdhcyBpbnNlcnRlZCBpbnRvIGEgc2hhZG93IERPTSB0cmVlLgot
UEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1l
IGluIHdpbmRvdyBpcyBmYWxzZQotPGZvcm0+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRy
aWJ1dGUgaW50byByZW5hbWVkX2Zvcm0gYnkgdXNpbmcgc2V0QXR0cmlidXRlLCB0aGUgbmFtZSBz
aG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9j
dW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGZv
cm0+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byByZS1yZW5hbWVkX2Zv
cm0gYnkgdXNpbmcgJy5uYW1lPScsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9j
dW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVt
ZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08ZnJhbWU+OiBCZWZvcmUgYXBwZW5kQ2hpbGQs
IG5hbWVkX2ZyYW1lIHNob3VsZCBub3QgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFt
ZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZh
bHNlCi08ZnJhbWU+OiBBZnRlciBhcHBlbmRDaGlsZCwgbmFtZWRfZnJhbWUgc2hvdWxkIG5vdCBz
dGlsbCBiZSBpbiBkb2N1bWVudCwgYmVjYXVzZSB0aGUgZWxlbWVudCB3YXMgaW5zZXJ0ZWQgaW50
byBhIHNoYWRvdyBET00gdHJlZS4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZh
bHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxmcmFtZT46IEFmdGVy
IGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlbmFtZWRfZnJhbWUgYnkgdXNpbmcg
c2V0QXR0cmlidXRlLCB0aGUgbmFtZSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50Lgot
UEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1l
IGluIHdpbmRvdyBpcyBmYWxzZQotPGZyYW1lPjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUgYXR0
cmlidXRlIGludG8gcmUtcmVuYW1lZF9mcmFtZSBieSB1c2luZyAnLm5hbWU9JywgdGhlIG5hbWUg
c2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRv
Y3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxm
cmFtZXNldD46IEJlZm9yZSBhcHBlbmRDaGlsZCwgbmFtZWRfZnJhbWVzZXQgc2hvdWxkIG5vdCBi
ZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1Q
QVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxmcmFtZXNldD46IEFmdGVyIGFw
cGVuZENoaWxkLCBuYW1lZF9mcmFtZXNldCBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50
LCBiZWNhdXNlIHRoZSBlbGVtZW50IHdhcyBpbnNlcnRlZCBpbnRvIGEgc2hhZG93IERPTSB0cmVl
LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5u
YW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGZyYW1lc2V0PjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5h
bWUgYXR0cmlidXRlIGludG8gbmFtZWRfZnJhbWVzZXQgYnkgdXNpbmcgc2V0QXR0cmlidXRlLCB0
aGUgbmFtZSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5h
bWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBm
YWxzZQotPGZyYW1lc2V0PjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8g
cmUtcmVuYW1lZF9mcmFtZXNldCBieSB1c2luZyAnLm5hbWU9JywgdGhlIG5hbWUgc2hvdWxkIG5v
dCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlz
IGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxpZnJhbWU+OiBC
ZWZvcmUgYXBwZW5kQ2hpbGQsIG5hbWVkX2lmcmFtZSBzaG91bGQgbm90IGJlIGluIGRvY3VtZW50
LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5u
YW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGlmcmFtZT46IEFmdGVyIGFwcGVuZENoaWxkLCBuYW1l
ZF9pZnJhbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudCwgYmVjYXVzZSB0aGUgZWxl
bWVudCB3YXMgaW5zZXJ0ZWQgaW50byBhIHNoYWRvdyBET00gdHJlZS4KLVBBU1MgZWxlbWVudC5u
YW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMg
ZmFsc2UKLTxpZnJhbWU+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byBy
ZW5hbWVkX2lmcmFtZSBieSB1c2luZyBzZXRBdHRyaWJ1dGUsIHRoZSBuYW1lIHNob3VsZCBub3Qg
c3RpbGwgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBm
YWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08aWZyYW1lPjogQWZ0
ZXIgY2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8gcmUtcmVuYW1lZF9pZnJhbWUgYnkg
dXNpbmcgJy5uYW1lPScsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQu
Ci1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5h
bWUgaW4gd2luZG93IGlzIGZhbHNlCi08aW1nPjogQmVmb3JlIGFwcGVuZENoaWxkLCBuYW1lZF9p
bWcgc2hvdWxkIG5vdCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3Vt
ZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxpbWc+
OiBBZnRlciBhcHBlbmRDaGlsZCwgbmFtZWRfaW1nIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9j
dW1lbnQsIGJlY2F1c2UgdGhlIGVsZW1lbnQgd2FzIGluc2VydGVkIGludG8gYSBzaGFkb3cgRE9N
IHRyZWUuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVt
ZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08aW1nPjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5h
bWUgYXR0cmlidXRlIGludG8gcmVuYW1lZF9pbWcgYnkgdXNpbmcgc2V0QXR0cmlidXRlLCB0aGUg
bmFtZSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUg
aW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxz
ZQotPGltZz46IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlLXJlbmFt
ZWRfaW1nIGJ5IHVzaW5nICcubmFtZT0nLCB0aGUgbmFtZSBzaG91bGQgbm90IHN0aWxsIGJlIGlu
IGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1Mg
ZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPG9iamVjdD46IEJlZm9yZSBhcHBlbmRD
aGlsZCwgbmFtZWRfb2JqZWN0IHNob3VsZCBub3QgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1l
bnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93
IGlzIGZhbHNlCi08b2JqZWN0PjogQWZ0ZXIgYXBwZW5kQ2hpbGQsIG5hbWVkX29iamVjdCBzaG91
bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LCBiZWNhdXNlIHRoZSBlbGVtZW50IHdhcyBpbnNl
cnRlZCBpbnRvIGEgc2hhZG93IERPTSB0cmVlLgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1l
bnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPG9iamVj
dD46IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlbmFtZWRfb2JqZWN0
IGJ5IHVzaW5nIHNldEF0dHJpYnV0ZSwgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBk
b2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVs
ZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxvYmplY3Q+OiBBZnRlciBjaGFuZ2luZyBp
dHMgbmFtZSBhdHRyaWJ1dGUgaW50byByZS1yZW5hbWVkX29iamVjdCBieSB1c2luZyAnLm5hbWU9
JywgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVu
dC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cg
aXMgZmFsc2UKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnQtbmFt
ZS1pbi1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZWxlbWVudC1uYW1lLWluLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1uYW1lLWluLXNoYWRvdy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLSAgPGRpdj48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgZGl2ID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiZGl2Iik7Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7Ci12
YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLS8vV2luZG93
IG5hbWVkIHByb3BlcnRpZXMKLXZhciBuYW1lZEVsZW1lbnRzID0gWydhJywgJ2FwcGxldCcsICdh
cmVhJywgJ2VtYmVkJywgJ2Zvcm0nLCAnZnJhbWUnLAotICAgICdmcmFtZXNldCcsICdpZnJhbWUn
LCdpbWcnLCAnb2JqZWN0J107Ci0KLXZhciBlbGVtZW50OwotbmFtZWRFbGVtZW50cy5mb3JFYWNo
KGZ1bmN0aW9uICh0YWdOYW1lKSB7Ci0gICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQodGFnTmFtZSk7Ci0gICAgZWxlbWVudC5uYW1lID0gJ25hbWVkXycgKyB0YWdOYW1lOwotCi0g
ICAgZGVidWcoIiZsdDsiICsgdGFnTmFtZSArICImZ3Q7OiBCZWZvcmUgYXBwZW5kQ2hpbGQsICIg
KyBlbGVtZW50Lm5hbWUgKyAiIHNob3VsZCBub3QgYmUgaW4gZG9jdW1lbnQuIik7Ci0gICAgc2hv
dWxkQmVGYWxzZSgiZWxlbWVudC5uYW1lIGluIGRvY3VtZW50Iik7Ci0gICAgc2hvdWxkQmVGYWxz
ZSgiZWxlbWVudC5uYW1lIGluIHdpbmRvdyIpOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7Ci0gICAgZGVidWcoIiZsdDsiICsgdGFnTmFtZSArICImZ3Q7OiBBZnRlciBhcHBl
bmRDaGlsZCwgIiArIGVsZW1lbnQubmFtZSArICIgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1
bWVudCwgYmVjYXVzZSB0aGUgZWxlbWVudCB3YXMgaW5zZXJ0ZWQgaW50byBhIHNoYWRvdyBET00g
dHJlZS4iKTsKLSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQiKTsK
LSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gd2luZG93Iik7Ci0KLSAgICBlbGVt
ZW50LnNldEF0dHJpYnV0ZSgnbmFtZScsICdyZW5hbWVkXycgKyB0YWdOYW1lKTsKLSAgICBkZWJ1
ZygiJmx0OyIgKyB0YWdOYW1lICsgIiZndDs6IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJp
YnV0ZSBpbnRvICIgKyBlbGVtZW50Lm5hbWUgKyAiIGJ5IHVzaW5nIHNldEF0dHJpYnV0ZSwgdGhl
IG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4iKTsKLSAgICBzaG91bGRCZUZh
bHNlKCJlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJlbGVt
ZW50Lm5hbWUgaW4gd2luZG93Iik7Ci0gICAgZWxlbWVudC5uYW1lID0gJ3JlLXJlbmFtZWRfJyAr
IHRhZ05hbWU7Ci0gICAgZGVidWcoIiZsdDsiICsgdGFnTmFtZSArICImZ3Q7OiBBZnRlciBjaGFu
Z2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byAiICsgZWxlbWVudC5uYW1lICsgIiBieSB1c2lu
ZyAnLm5hbWU9JywgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4iKTsK
LSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQiKTsKLSAgICBzaG91
bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gd2luZG93Iik7Ci19KTsKLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRm
cm9tcG9pbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9lbGVtZW50ZnJvbXBvaW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRmcm9tcG9pbnQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotUEFTUyBzaGFkb3dSb290LmVsZW1l
bnRGcm9tUG9pbnQoeDEyLCB5MTIpIGlzIGJveDEyCi1QQVNTIG5lc3RlZFNoYWRvd1Jvb3QuZWxl
bWVudEZyb21Qb2ludCh4MjIsIHkyMikgaXMgYm94MjIKLVBBU1Mgc2hhZG93Um9vdC5lbGVtZW50
RnJvbVBvaW50KHgyMiwgeTIyKSBpcyBuZXN0ZWRIb3N0Ci1QQVNTIGRvY3VtZW50LmVsZW1lbnRG
cm9tUG9pbnQoeDIyLCB5MjIpIGlzIGhvc3QKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZWxlbWVudGZyb21wb2ludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9lbGVtZW50ZnJvbXBvaW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50ZnJvbXBvaW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+
Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVCb3goKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53aWR0aCA9ICcxMDBweCc7
Ci0gICAgZGl2LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0gICAgcmV0dXJuIGRpdjsKLX0KLQot
dmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBib3gx
MSA9IGNyZWF0ZUJveCgpOwotdmFyIGJveDEyID0gY3JlYXRlQm94KCk7Ci12YXIgYm94MTMgPSBj
cmVhdGVCb3goKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYm94MTEpOwotc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChib3gxMik7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKGJveDEzKTsKLQotdmFy
IG5lc3RlZEhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXZhciBuZXN0ZWRT
aGFkb3dSb290ID0gbmVzdGVkSG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgYm94
MjEgPSBjcmVhdGVCb3goKTsKLXZhciBib3gyMiA9IGNyZWF0ZUJveCgpOwotdmFyIGJveDIzID0g
Y3JlYXRlQm94KCk7Ci1uZXN0ZWRTaGFkb3dSb290LmFwcGVuZENoaWxkKGJveDIxKTsKLW5lc3Rl
ZFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYm94MjIpOwotbmVzdGVkU2hhZG93Um9vdC5hcHBlbmRD
aGlsZChib3gyMyk7Ci0KLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobmVzdGVkSG9zdCk7Ci0KLXZh
ciB4MTIgPSBib3gxMi5vZmZzZXRMZWZ0ICsgYm94MTIub2Zmc2V0V2lkdGggLyAyOwotdmFyIHkx
MiA9IGJveDEyLm9mZnNldFRvcCArIGJveDEyLm9mZnNldEhlaWdodCAvIDI7Ci12YXIgeDIyID0g
Ym94MjIub2Zmc2V0TGVmdCArIGJveDIyLm9mZnNldFdpZHRoIC8gMjsKLXZhciB5MjIgPSBib3gy
Mi5vZmZzZXRUb3AgKyBib3gyMi5vZmZzZXRIZWlnaHQgLyAyOwotCi1zaG91bGRCZSgnc2hhZG93
Um9vdC5lbGVtZW50RnJvbVBvaW50KHgxMiwgeTEyKScsICdib3gxMicpOwotc2hvdWxkQmUoJ25l
c3RlZFNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh4MjIsIHkyMiknLCAnYm94MjInKTsKLQot
c2hvdWxkQmUoJ3NoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh4MjIsIHkyMiknLCAnbmVzdGVk
SG9zdCcpOwotc2hvdWxkQmUoJ2RvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoeDIyLCB5MjIpJywg
J2hvc3QnKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVu
dHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1
bWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTUgKzAsMCBAQAotVGhpcyB0
ZXN0IGVuc3VyZSB0aGF0IHRoZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlh
dGVkIGV2ZW4gaW5zaWRlIGZyYW1lbGVzcyBkb2N1bWVudHMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1UZXN0aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LgotUEFTUyB3
aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKLVBBU1Mgd2lu
ZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgotTW92aW5nIHRvIHRo
ZSBtYWluIGRvY3VtZW50LgotUEFTUyB3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRl
bnQuY29uc3RydWN0b3IKLVBBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5j
b25zdHJ1Y3RvcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi14KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZy
YW1lbGVzcy1kb2N1bWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVz
cy1kb2N1bWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICswLDAgQEAKLXgrPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRoZSBzaGFkb3cgcmVsYXRlZCBlbGVt
ZW50cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZyYW1lbGVzcyBkb2N1bWVudHMuIik7
Ci0KLXZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQo
KTsKLXZhciBjb250YWluZXIgPSBkb2MuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotZG9jLmJvZHku
YXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLWNvbnRhaW5lci5pbm5lckhUTUwgPSAiPGNvbnRlbnQg
aWQ9J2NvbnRlbnRFbGVtZW50Jz48L2NvbnRlbnQ+PHNoYWRvdyBpZD0nc2hhZG93RWxlbWVudCc+
PC9zaGFkb3c+IjsKLQotdmFyIGNvbnRlbnQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcigiI2Nv
bnRlbnRFbGVtZW50Iik7Ci12YXIgc2hhZG93ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIiNz
aGFkb3dFbGVtZW50Iik7Ci0KLWRlYnVnKCJUZXN0aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3Vt
ZW50LiIpOwotc2hvdWxkQmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQiLCAiY29udGVudC5j
b25zdHJ1Y3RvciIpOwotc2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFk
b3cuY29uc3RydWN0b3IiKTsKLQotZGVidWcoIk1vdmluZyB0byB0aGUgbWFpbiBkb2N1bWVudC4i
KTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLXNob3VsZEJlKCJ3aW5k
b3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRlbnQuY29uc3RydWN0b3IiKTsKLXNob3VsZEJl
KCJ3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQiLCAic2hhZG93LmNvbnN0cnVjdG9yIik7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2V2ZW50cy1zdG9wcGVkLWF0LXNoYWRvdy1ib3VuZGFyeS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2V2ZW50cy1zdG9wcGVkLWF0
LXNoYWRvdy1ib3VuZGFyeS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ldmVudHMtc3RvcHBlZC1hdC1zaGFkb3ctYm91bmRhcnkt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYwICswLDAgQEAKLVRlc3RzIHRvIGVu
c3VyZSB0aGF0IHNvbWUga2luZHMgb2YgZXZlbnRzIGFyZSBzdG9wZWVkIGF0IHNoYWRvdyBib3Vu
ZGFyeS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLU90aGVyIGV2ZW50cyB0aGFu
ICJjbGljayIgc2hvdWxkIGJlIHN0b3BwZWQgYXQgc2hhZG93IGJvdW5kYXJ5LiAgQSAiY2xpY2si
IGlzIGFkZGVkIGZvciB0aGUgcHVycG9zZSBvZiBjb21wYXJpbmcgcmVzdWx0cy4KLQotICBhYm9y
dAotICAgICBAdGFyZ2V0ICh0YXJnZXQ6IHRhcmdldCkKLSAgICAgQHBhcmVudC1vZi10YXJnZXQg
KHRhcmdldDogdGFyZ2V0KQotCi0gIHNlbGVjdAotICAgICBAdGFyZ2V0ICh0YXJnZXQ6IHRhcmdl
dCkKLSAgICAgQHBhcmVudC1vZi10YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotCi0gIGNoYW5nZQot
ICAgICBAdGFyZ2V0ICh0YXJnZXQ6IHRhcmdldCkKLSAgICAgQHBhcmVudC1vZi10YXJnZXQgKHRh
cmdldDogdGFyZ2V0KQotCi0gIHJlc2V0Ci0gICAgIEB0YXJnZXQgKHRhcmdldDogdGFyZ2V0KQot
ICAgICBAcGFyZW50LW9mLXRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0KLSAgcmVzaXplCi0gICAg
IEB0YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotICAgICBAcGFyZW50LW9mLXRhcmdldCAodGFyZ2V0
OiB0YXJnZXQpCi0KLSAgc2Nyb2xsCi0gICAgIEB0YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotICAg
ICBAcGFyZW50LW9mLXRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0KLSAgc2VsZWN0c3RhcnQKLSAg
ICAgQHRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0gICAgIEBwYXJlbnQtb2YtdGFyZ2V0ICh0YXJn
ZXQ6IHRhcmdldCkKLQotICBsb2FkCi0gICAgIEB0YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotICAg
ICBAcGFyZW50LW9mLXRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0KLSAgZXJyb3IKLSAgICAgQHRh
cmdldCAodGFyZ2V0OiB0YXJnZXQpCi0gICAgIEBwYXJlbnQtb2YtdGFyZ2V0ICh0YXJnZXQ6IHRh
cmdldCkKLQotICBjbGljawotICAgICBAdGFyZ2V0ICh0YXJnZXQ6IHRhcmdldCkKLSAgICAgQHBh
cmVudC1vZi10YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotICAgICBAaG9zdCAodGFyZ2V0OiBob3N0
KQotICAgICBAdG9wICh0YXJnZXQ6IGhvc3QpCi0KLUFuIGV2ZW50IGZpcmVkIG9uIGEgZGlzdHJp
YnV0ZWQgY2hpbGQgc2hvdWxkIG5vdCBiZSBzdG9wcGVkIGF0IHRoZSBzaGFkb3cgYm91bmRhcnkg
b2YgaXRzIGhvc3QgKGhvc3QyKSwgYnV0IHNob3VsZCBiZSBzdG9wcGVkIGF0IHRoZSBuZWFyZXN0
IHNoYWRvdyBib3VuZGFyeSAoaG9zdDEpLgotCi0gIHNlbGVjdHN0YXJ0Ci0gICAgIEBkaXN0cmli
dXRlZC1jaGlsZCAodGFyZ2V0OiBkaXN0cmlidXRlZC1jaGlsZCkKLSAgICAgQGNvbnRlbnQgKHRh
cmdldDogZGlzdHJpYnV0ZWQtY2hpbGQpCi0gICAgIEBwYXJlbnQtb2YtY29udGVudCAodGFyZ2V0
OiBkaXN0cmlidXRlZC1jaGlsZCkKLSAgICAgQGhvc3QyICh0YXJnZXQ6IGRpc3RyaWJ1dGVkLWNo
aWxkKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ldmVudHMtc3RvcHBlZC1hdC1zaGFk
b3ctYm91bmRhcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZXZlbnRzLXN0b3BwZWQtYXQtc2hhZG93LWJvdW5kYXJ5Lmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ldmVudHMtc3RvcHBlZC1hdC1zaGFk
b3ctYm91bmRhcnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMjggKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRv
dy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+
Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IHNvbWUga2luZHMg
b2YgZXZlbnRzIGFyZSBzdG9wZWVkIGF0IHNoYWRvdyBib3VuZGFyeS4iKTsKLQotdmFyIGV2ZW50
UmVjb3JkcyA9IHt9OwotCi1mdW5jdGlvbiBkaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQotewot
ICAgIHZhciBldmVudHMgPSBldmVudFJlY29yZHNbZXZlbnRUeXBlXTsKLSAgICBpZiAoIWV2ZW50
cykKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIHJldHVybiBldmVudHM7Ci19Ci0KLWZ1bmN0aW9u
IGR1bXBEaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQotewotICAgIGRlYnVnKCdcbiAgJyArIGV2
ZW50VHlwZSk7Ci0gICAgdmFyIGV2ZW50cyA9IGRpc3BhdGNoZWRFdmVudChldmVudFR5cGUpOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxlbmd0aDsgKytpKQotICAgICAgICBkZWJ1
ZygnICAgICcgKyBldmVudHNbaV0pCi19Ci0KLWZ1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KQot
ewotICAgIHZhciBldmVudFR5cGUgPSBldmVudC50eXBlCi0gICAgaWYgKCFldmVudFJlY29yZHNb
ZXZlbnRUeXBlXSkgewotICAgICAgICBldmVudFJlY29yZHNbZXZlbnRUeXBlXSA9IFtdCi0gICAg
fQotICAgIHZhciBldmVudFN0cmluZyA9ICcnOwotICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0
KQotICAgICAgICBldmVudFN0cmluZyArPSAnIEAnICsgZXZlbnQuY3VycmVudFRhcmdldC5pZDsK
LSAgICBpZiAoZXZlbnQudGFyZ2V0KQotICAgICAgICBldmVudFN0cmluZyArPSAnICh0YXJnZXQ6
ICcgKyBldmVudC50YXJnZXQuaWQgKyAnKSc7Ci0gICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQp
Ci0gICAgICAgIGV2ZW50U3RyaW5nICs9ICcgKHJlbGF0ZWQ6ICcgKyBldmVudC5yZWxhdGVkVGFy
Z2V0LmlkICsgJyknOwotICAgIGlmIChldmVudC5ldmVudFBoYXNlID09IDEpCi0gICAgICAgIGV2
ZW50U3RyaW5nICs9ICcoY2FwdHVyaW5nIHBoYXNlKSc7Ci0gICAgaWYgKGV2ZW50LnRhcmdldCAm
JiBldmVudC5jdXJyZW50VGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5pZCA9PSBldmVudC5jdXJyZW50
VGFyZ2V0LmlkKQotICAgICAgICBzaG91bGRCZSgiZXZlbnQuZXZlbnRQaGFzZSIsICIyIiwgdHJ1
ZSk7Ci0gICAgZXZlbnRSZWNvcmRzW2V2ZW50VHlwZV0ucHVzaChldmVudFN0cmluZyk7Ci19Ci0K
LWRlYnVnKCdPdGhlciBldmVudHMgdGhhbiAiY2xpY2siIHNob3VsZCBiZSBzdG9wcGVkIGF0IHNo
YWRvdyBib3VuZGFyeS4gIEEgImNsaWNrIiBpcyBhZGRlZCBmb3IgdGhlIHB1cnBvc2Ugb2YgY29t
cGFyaW5nIHJlc3VsdHMuJyk7IAotCi12YXIgZXZlbnRzID0gWydhYm9ydCcsICdzZWxlY3QnLCAn
Y2hhbmdlJywgJ3Jlc2V0JywgJ3Jlc2l6ZScsICdzY3JvbGwnLCAnc2VsZWN0c3RhcnQnLCAnbG9h
ZCcsICdlcnJvcicsICdjbGljayddOwotCi1mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVycyhub2Rl
cykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgIHZhciBub2RlID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKG5vZGVzW2ldKTsKLSAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBldmVudHMubGVuZ3RoOyArK2opCi0gICAgICAgICAgICBu
b2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRzW2pdLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAg
IH0KLX0KLQotZnVuY3Rpb24gdGVzdEV2ZW50c1Nob3VkQmVTdG9wcGVkQXRTaGFkb3dCb3VuZGFy
eSgpCi17Ci0gICAgdmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJv
eCcpOwotICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7Ci0gICAgc2FuZGJveC5hcHBlbmRDaGls
ZCgKLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAotICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAncGFyZW50LW9mLXRhcmdldCd9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ3RhcmdldCd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdwYXJlbnQtb2YtY29udGVudCd9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6ICdjb250
ZW50J30pKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2Rpc3RyaWJ1dGVkLWNoaWxkJ30pKSkpOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
TGVmdDsKLQotICAgIGFkZEV2ZW50TGlzdGVuZXJzKFsndG9wJywgJ2hvc3QnLCAnaG9zdC9wYXJl
bnQtb2YtdGFyZ2V0JywgJ2hvc3QvdGFyZ2V0JywgJ2hvc3QvcGFyZW50LW9mLWNvbnRlbnQnLCAn
aG9zdC9jb250ZW50JywgJ2Rpc3RyaWJ1dGVkLWNoaWxkJ10pOwotCi0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBldmVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgZXZlbnRSZWNvcmRzID0ge307
Ci0gICAgICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdVSUV2ZW50Jyk7Ci0g
ICAgICAgIGV2ZW50LmluaXRFdmVudChldmVudHNbaV0sIHRydWUsIGZhbHNlKTsKLSAgICAgICAg
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0L3RhcmdldCcpLmRpc3BhdGNoRXZlbnQoZXZl
bnQpOwotICAgICAgICBkdW1wRGlzcGF0Y2hlZEV2ZW50KGV2ZW50c1tpXSk7Ci0gICAgfQotCi19
Ci0KLWZ1bmN0aW9uIHRlc3RFdmVudHNGaXJlZE9uRGlzdHJpYnV0ZWROb2Rlc1Nob3VsZE5vdEJl
U3RvcHBlZEF0U2hhZG93Qm91bmRhcnkoKQotewotICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLSAgICBzYW5kYm94LmlubmVySFRNTCA9ICcnOwot
ICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdob3N0MSd9LAotICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdDInfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdwYXJlbnQtb2Yt
Y29udGVudCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudCd9KSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGlzdHJpYnV0ZWQt
Y2hpbGQnfSkpKSkpOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLQotICAgIGFkZEV2
ZW50TGlzdGVuZXJzKFsnaG9zdDEnLCAnaG9zdDEvaG9zdDInLCAnaG9zdDEvaG9zdDIvcGFyZW50
LW9mLWNvbnRlbnQnLCAnaG9zdDEvaG9zdDIvY29udGVudCcsICdob3N0MS9kaXN0cmlidXRlZC1j
aGlsZCddKTsKLQotICAgIGRlYnVnKCdcbkFuIGV2ZW50IGZpcmVkIG9uIGEgZGlzdHJpYnV0ZWQg
Y2hpbGQgc2hvdWxkIG5vdCBiZSBzdG9wcGVkIGF0IHRoZSBzaGFkb3cgYm91bmRhcnkgb2YgaXRz
IGhvc3QgKGhvc3QyKSwgYnV0IHNob3VsZCBiZSBzdG9wcGVkIGF0IHRoZSBuZWFyZXN0IHNoYWRv
dyBib3VuZGFyeSAoaG9zdDEpLicpOwotICAgIGV2ZW50UmVjb3JkcyA9IHt9OwotICAgIHZhciBl
dmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdVSUV2ZW50Jyk7Ci0gICAgZXZlbnQuaW5pdEV2
ZW50KCdzZWxlY3RzdGFydCcsIHRydWUsIGZhbHNlKTsKLSAgICBnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soJ2hvc3QxL2Rpc3RyaWJ1dGVkLWNoaWxkJykuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0g
ICAgZHVtcERpc3BhdGNoZWRFdmVudCgnc2VsZWN0c3RhcnQnKTsKLX0KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLQotICAgIHRlc3RFdmVudHNTaG91ZEJlU3RvcHBlZEF0U2hhZG93Qm91bmRh
cnkoKQotICAgIHRlc3RFdmVudHNGaXJlZE9uRGlzdHJpYnV0ZWROb2Rlc1Nob3VsZE5vdEJlU3Rv
cHBlZEF0U2hhZG93Qm91bmRhcnkoKTsKLX0KLXRlc3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmln
YXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9mb2N1cy1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExNSArMCwwIEBACi1UaGlzIHRlc3RzIHRoYXQgcHJlc3Np
bmcgVGFiIGtleSBzaG91bGQgdHJhdmVyc2UgaW50byBzaGFkb3cgRE9NIHN1YnRyZWVzLCBhbmQg
cHJlc3NpbmcgU2hpZnQtVGFiIHNob3VsZCByZXZlcnNlIHRoZSBvcmRlci4KLQotU2hvdWxkIG1v
dmUgZnJvbSBpbnB1dC1BLTEgdG8gaW5wdXQtQi0xIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBt
b3ZlIGZyb20gaW5wdXQtQi0xIHRvIGlucHV0LUMtMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlucHV0LUMtMSB0byBob3N0LUIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1v
dmUgZnJvbSBob3N0LUIgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMSBpbiBmb3J3YXJkCi1Q
QVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1dC1BLTEgdG8gaG9zdC1C
L29sZGVyLWlucHV0LUEtMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3Qt
Qi9vbGRlci1pbnB1dC1BLTEgdG8gbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMSBpbiBmb3J3YXJkCi1Q
QVNTCi1TaG91bGQgbW92ZSBmcm9tIGxpZ2h0LWNoaWxkLXNlbGVjdGVkLTEgdG8gaG9zdC1CL29s
ZGVyLWlucHV0LUItMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi9v
bGRlci1pbnB1dC1CLTEgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUItMSBpbiBmb3J3YXJkCi1Q
QVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1dC1CLTEgdG8gaG9zdC1C
Ly95b3VuZ2VyLWlucHV0LUEtMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhv
c3QtQi8veW91bmdlci1pbnB1dC1BLTAgdG8gaG9zdC1CL29sZGVyLWlucHV0LUEtMCBpbiBmb3J3
YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1dC1BLTAgdG8gbGln
aHQtY2hpbGQtc2VsZWN0ZWQtMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGxp
Z2h0LWNoaWxkLXNlbGVjdGVkLTAgdG8gaG9zdC1CL29sZGVyLWlucHV0LUItMCBpbiBmb3J3YXJk
Ci1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1dC1CLTAgdG8gaG9zdC1C
Ly95b3VuZ2VyLWlucHV0LUItMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhv
c3QtQi8veW91bmdlci1pbnB1dC1CLTAgdG8gaW5wdXQtRC0xIGluIGZvcndhcmQKLVBBU1MKLVNo
b3VsZCBtb3ZlIGZyb20gaW5wdXQtRC0xIHRvIGlucHV0LUEtMCBpbiBmb3J3YXJkCi1QQVNTCi1T
aG91bGQgbW92ZSBmcm9tIGlucHV0LUEtMCB0byBob3N0LUEvaW5wdXQtMSBpbiBmb3J3YXJkCi1Q
QVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQS9pbnB1dC0xIHRvIGhvc3QtQS9pbnB1dC0yMCBp
biBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQS9pbnB1dC0yMCB0byBob3N0
LUEvbmVzdGVkLWhvc3QgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUEv
bmVzdGVkLWhvc3QgdG8gaG9zdC1BL25lc3RlZC1ob3N0L2lucHV0LTE1IGluIGZvcndhcmQKLVBB
U1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1BL25lc3RlZC1ob3N0L2lucHV0LTE1IHRvIGhvc3Qt
QS9uZXN0ZWQtaG9zdC9pbnB1dC0yNSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9t
IGhvc3QtQS9uZXN0ZWQtaG9zdC9pbnB1dC0yNSB0byBpbnB1dC1CLTAgaW4gZm9yd2FyZAotUEFT
UwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1CLTAgdG8gaW5wdXQtQy0wIGluIGZvcndhcmQKLVBB
U1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQy0wIHRvIGlucHV0LUQtMCBpbiBmb3J3YXJkCi1Q
QVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUQtMCB0byBob3N0LUQgaW4gZm9yd2FyZAotUEFT
UwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUQgdG8gaW5wdXQtRS0wIGluIGZvcndhcmQKLVBBU1MK
LVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtRS0wIHRvIGlucHV0LUEtMSBpbiBmb3J3YXJkCi1QQVNT
Ci1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUEtMSB0byBpbnB1dC1FLTAgaW4gYmFja3dhcmQKLVBB
U1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtRS0wIHRvIGhvc3QtRCBpbiBiYWNrd2FyZAotUEFT
UwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUQgdG8gaW5wdXQtRC0wIGluIGJhY2t3YXJkCi1QQVNT
Ci1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUQtMCB0byBpbnB1dC1DLTAgaW4gYmFja3dhcmQKLVBB
U1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQy0wIHRvIGlucHV0LUItMCBpbiBiYWNrd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1CLTAgdG8gaG9zdC1BL25lc3RlZC1ob3N0L2lu
cHV0LTI1IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQS9uZXN0ZWQt
aG9zdC9pbnB1dC0yNSB0byBob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQtMTUgaW4gYmFja3dhcmQK
LVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1BL25lc3RlZC1ob3N0L2lucHV0LTE1IHRvIGhv
c3QtQS9uZXN0ZWQtaG9zdCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0
LUEvbmVzdGVkLWhvc3QgdG8gaG9zdC1BL2lucHV0LTIwIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91
bGQgbW92ZSBmcm9tIGhvc3QtQS9pbnB1dC0yMCB0byBob3N0LUEvaW5wdXQtMSBpbiBiYWNrd2Fy
ZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUEvaW5wdXQtMSB0byBpbnB1dC1BLTAgaW4g
YmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQS0wIHRvIGlucHV0LUQtMSBp
biBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1ELTEgdG8gaG9zdC1CLy95
b3VuZ2VyLWlucHV0LUItMCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0
LUIvL3lvdW5nZXItaW5wdXQtQi0wIHRvIGhvc3QtQi9vbGRlci1pbnB1dC1CLTAgaW4gYmFja3dh
cmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1CL29sZGVyLWlucHV0LUItMCB0byBsaWdo
dC1jaGlsZC1zZWxlY3RlZC0wIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGxp
Z2h0LWNoaWxkLXNlbGVjdGVkLTAgdG8gaG9zdC1CL29sZGVyLWlucHV0LUEtMCBpbiBiYWNrd2Fy
ZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvb2xkZXItaW5wdXQtQS0wIHRvIGhvc3Qt
Qi8veW91bmdlci1pbnB1dC1BLTAgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20g
aG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMCB0byBob3N0LUIvL3lvdW5nZXItaW5wdXQtQi0xIGlu
IGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1dC1C
LTEgdG8gaG9zdC1CL29sZGVyLWlucHV0LUItMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1v
dmUgZnJvbSBob3N0LUIvb2xkZXItaW5wdXQtQi0xIHRvIGxpZ2h0LWNoaWxkLXNlbGVjdGVkLTEg
aW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gbGlnaHQtY2hpbGQtc2VsZWN0ZWQt
MSB0byBob3N0LUIvb2xkZXItaW5wdXQtQS0xIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92
ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1dC1BLTEgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEt
MSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvL3lvdW5nZXItaW5w
dXQtQS0xIHRvIGhvc3QtQiBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0
LUIgdG8gaW5wdXQtQy0xIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0
LUMtMSB0byBpbnB1dC1CLTEgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5w
dXQtQi0xIHRvIGlucHV0LUEtMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBp
bnB1dC1BLTEgdG8gaW5wdXQtRS0wIGluIGJhY2t3YXJkCi1QQVNTCi1UZXN0IGZpbmlzaGVkLgot
Ci0KLQotCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmln
YXRpb24td2l0aC1kaXN0cmlidXRlZC1ub2Rlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRpb24td2l0aC1kaXN0cmli
dXRlZC1ub2Rlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9mb2N1cy1uYXZpZ2F0aW9uLXdpdGgtZGlzdHJpYnV0ZWQtbm9kZXMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICswLDAgQEAKLVRoaXMgdGVzdHMg
dGhhdCBwcmVzc2luZyBUYWIga2V5IHNob3VsZCB0cmF2ZXJzZSBpbnRvIHNoYWRvdyBET00gc3Vi
dHJlZXMsIGFuZCBwcmVzc2luZyBTaGlmdC1UYWIgc2hvdWxkIHJldmVyc2UgdGhlIG9yZGVyLgot
Ci0KLQotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0xIHRvIHNoYWRvd2hvc3QgaW4gZm9yd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBzaGFkb3dob3N0IHRvIGRpc3RyaWJ1dGVkLW5vZGUtMSBp
biBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGRpc3RyaWJ1dGVkLW5vZGUtMSB0byBz
aGFkb3dob3N0L2lucHV0LTIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBzaGFk
b3dob3N0L2lucHV0LTIgdG8gZGlzdHJpYnV0ZWQtbm9kZS0yIGluIGZvcndhcmQKLVBBU1MKLVNo
b3VsZCBtb3ZlIGZyb20gZGlzdHJpYnV0ZWQtbm9kZS0yIHRvIGlucHV0LTMgaW4gZm9yd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0zIHRvIGRpc3RyaWJ1dGVkLW5vZGUtMiBpbiBi
YWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBkaXN0cmlidXRlZC1ub2RlLTIgdG8gc2hh
ZG93aG9zdC9pbnB1dC0yIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIHNoYWRv
d2hvc3QvaW5wdXQtMiB0byBkaXN0cmlidXRlZC1ub2RlLTEgaW4gYmFja3dhcmQKLVBBU1MKLVNo
b3VsZCBtb3ZlIGZyb20gZGlzdHJpYnV0ZWQtbm9kZS0xIHRvIHNoYWRvd2hvc3QgaW4gYmFja3dh
cmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gc2hhZG93aG9zdCB0byBpbnB1dC0xIGluIGJhY2t3
YXJkCi1QQVNTCi1kZXRhaWxzL3N1bW1hcnkgZWxlbWVudHMgdXNlIFNoYWRvdyBET00gYW5kIGRp
c3RyaWJ1dGVkIG5vZGVzIGludGVybmFsbHkuCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTEgdG8g
c3VtbWFyeS0xIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gc3VtbWFyeS0xIHRv
IGlucHV0LTIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0yIHRvIHN1
bW1hcnktMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBzdW1tYXJ5LTEgdG8g
aW5wdXQtMSBpbiBiYWNrd2FyZAotUEFTUwotVGVzdCBmaW5pc2hlZC4KLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRpb24td2l0aC1kaXN0cmlidXRlZC1u
b2Rlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mb2N1
cy1uYXZpZ2F0aW9uLXdpdGgtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRpb24td2l0aC1k
aXN0cmlidXRlZC1ub2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc1ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0cyB0
aGF0IHByZXNzaW5nIFRhYiBrZXkgc2hvdWxkIHRyYXZlcnNlIGludG8gc2hhZG93IERPTSBzdWJ0
cmVlcywgYW5kIHByZXNzaW5nIFNoaWZ0LVRhYiBzaG91bGQgcmV2ZXJzZSB0aGUgb3JkZXIuPC9w
PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoRGlzdHJpYnV0ZWROb2RlcygpCi17Ci0gICAgdmFy
IHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotICAgIHNhbmRi
b3guaW5uZXJIVE1MID0gJyc7Ci0gICAgc2FuZGJveC5hcHBlbmRDaGlsZCgKLSAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcC1kaXYnfSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LTEnLCAndGFiaW5kZXgnOiAxfSksCi0gICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93aG9zdCcsICd0YWJpbmRl
eCc6IDF9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2Vs
ZWN0JzogJyNkaXN0cmlidXRlZC1ub2RlLTEnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LTInLCAndGFiaW5kZXgnOiAx
fSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcs
IHsnc2VsZWN0JzogJyNkaXN0cmlidXRlZC1ub2RlLTInfSkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2Rpc3RyaWJ1dGVkLW5vZGUtMics
ICd0YWJpbmRleCc6IDF9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2lucHV0JywgeydpZCc6ICdkaXN0cmlidXRlZC1ub2RlLTEnLCAndGFiaW5kZXgnOiAxfSkpLAot
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtMycsICd0
YWJpbmRleCc6IDF9KSkpOwotICAgIHNhbmRib3gub2Zmc2V0TGVmdDsKLQotICAgIHZhciBlbGVt
ZW50c0luRm9jdXNOYXZpZ2F0aW9uT3JkZXIgPSBbJ2lucHV0LTEnLCAnc2hhZG93aG9zdCcsICdk
aXN0cmlidXRlZC1ub2RlLTEnLCAnc2hhZG93aG9zdC9pbnB1dC0yJywgJ2Rpc3RyaWJ1dGVkLW5v
ZGUtMicsICdpbnB1dC0zJ107Ci0gICAgdGVzdEZvY3VzTmF2aWdhdGlvbkZvd3JhZChlbGVtZW50
c0luRm9jdXNOYXZpZ2F0aW9uT3JkZXIpOwotICAgIGVsZW1lbnRzSW5Gb2N1c05hdmlnYXRpb25P
cmRlci5yZXZlcnNlKCkKLSAgICB0ZXN0Rm9jdXNOYXZpZ2F0aW9uQmFja3dhcmQoZWxlbWVudHNJ
bkZvY3VzTmF2aWdhdGlvbk9yZGVyKQotfQotCi1mdW5jdGlvbiB0ZXN0RGV0YWlsc1N1bW1hcnko
KQotewotICAgIGRlYnVnKCdkZXRhaWxzL3N1bW1hcnkgZWxlbWVudHMgdXNlIFNoYWRvdyBET00g
YW5kIGRpc3RyaWJ1dGVkIG5vZGVzIGludGVybmFsbHkuJykKLSAgICB2YXIgc2FuZGJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0gICAgc2FuZGJveC5pbm5lckhUTUwg
PSAnJzsKLSAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAndG9wLWRpdid9LAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcs
IHsnaWQnOiAnaW5wdXQtMSd9KSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGV0YWls
cycsIHsnaWQnOiAnZGV0YWlscy0xJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdzdW1tYXJ5JywgeydpZCc6ICdzdW1tYXJ5LTEnfSkpLAotICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtMid9KSkpOwotICAgIHNhbmRib3gu
b2Zmc2V0TGVmdDsKLQotICAgIHZhciBlbGVtZW50c0luRm9jdXNOYXZpZ2F0aW9uT3JkZXIgPSBb
J2lucHV0LTEnLCAnc3VtbWFyeS0xJywgJ2lucHV0LTInXTsKLSAgICB0ZXN0Rm9jdXNOYXZpZ2F0
aW9uRm93cmFkKGVsZW1lbnRzSW5Gb2N1c05hdmlnYXRpb25PcmRlcik7Ci0gICAgZWxlbWVudHNJ
bkZvY3VzTmF2aWdhdGlvbk9yZGVyLnJldmVyc2UoKQotICAgIHRlc3RGb2N1c05hdmlnYXRpb25C
YWNrd2FyZChlbGVtZW50c0luRm9jdXNOYXZpZ2F0aW9uT3JkZXIpOwotfQotCi0KLWZ1bmN0aW9u
IHRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLQotICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAg
IHRlc3RGYWlsZWQoJycpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdGVzdFdpdGhE
aXN0cmlidXRlZE5vZGVzKCkKLSAgICB0ZXN0RGV0YWlsc1N1bW1hcnkoKTsKLQotICAgIGRlYnVn
KCdUZXN0IGZpbmlzaGVkLicpOwotfQotCi10ZXN0KCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRp
b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZm9jdXMt
bmF2aWdhdGlvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZm9jdXMtbmF2aWdhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4NiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRo
aXMgdGVzdHMgdGhhdCBwcmVzc2luZyBUYWIga2V5IHNob3VsZCB0cmF2ZXJzZSBpbnRvIHNoYWRv
dyBET00gc3VidHJlZXMsIGFuZCBwcmVzc2luZyBTaGlmdC1UYWIgc2hvdWxkIHJldmVyc2UgdGhl
IG9yZGVyLjwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLQotZnVuY3Rp
b24gcHJlcGFyZURPTVRyZWUocGFyZW50KQotewotICAgIHBhcmVudC5hcHBlbmRDaGlsZCgKLSAg
ICAgICAgLy8gRklYTUU6IFVzZSBtb3JlIGRlc2NyaXB0aXZlIGlkcyBmb3IgZWFjaCBlbGVtZW50
cy4KLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcC1kaXYnfSwKLSAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LUEtMScsICd0YWJpbmRl
eCc6IDF9KSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lu
cHV0LUItMScsICd0YWJpbmRleCc6IDF9KSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JyksICAvLyBTaG91bGQgbm90IGJlIHNlbGVjdGVkLgotICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtQS0wJywgJ3RhYmluZGV4JzogMH0pLAotICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QtQScsICd0YWJpbmRl
eCc6IC0xfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6
ICdpbnB1dC0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnbmVzdGVkLWhvc3QnLCAndGFiaW5kZXgnOiAz
MH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFk
b3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnaW5wdXQnLCB7J3RhYmluZGV4JzogLTF9KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1
dC0xNScsICd0YWJpbmRleCc6IDE1fSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtMjUnLCAndGFi
aW5kZXgnOiAyNX0pKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LTIwJywgJ3RhYmluZGV4JzogMjB9KSkpLAotICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtQy0xJywgJ3RhYmlu
ZGV4JzogMX0pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAn
aW5wdXQtQi0wJywgJ3RhYmluZGV4JzogMH0pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2hvc3QtQicsICd0YWJpbmRleCc6IDF9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ29sZGVyLWlucHV0LUEtMCcsICd0YWJp
bmRleCc6IDB9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdp
bnB1dCcsIHsnaWQnOiAnb2xkZXItaW5wdXQtQS0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6
ICcjbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMCwgI2xpZ2h0LWNoaWxkLXNlbGVjdGVkLTEnfSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzog
J29sZGVyLWlucHV0LUItMCcsICd0YWJpbmRleCc6IDB9KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnb2xkZXItaW5wdXQtQi0xJywg
J3RhYmluZGV4JzogMX0pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFk
b3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0
JywgeydpZCc6ICd5b3VuZ2VyLWlucHV0LUEtMCcsICd0YWJpbmRleCc6IDB9KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAneW91bmdl
ci1pbnB1dC1BLTEnLCAndGFiaW5kZXgnOiAxfSksICAvLyBUaGUgZmlyc3Qgbm9kZSBpbiB0aGUg
Zm9jdXNTY29wZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3No
YWRvdycpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0
JywgeydpZCc6ICd5b3VuZ2VyLWlucHV0LUItMCcsICd0YWJpbmRleCc6IDB9KSwgIC8vIFRoZSBs
YXN0IG5vZGUgaW4gdGhlIGZvY3VzU2NvcGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAneW91bmdlci1pbnB1dC1CLTEnLCAndGFiaW5k
ZXgnOiAxfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQn
LCB7J2lkJzogJ2xpZ2h0LWNoaWxkLXNlbGVjdGVkLTAnLCAndGFiaW5kZXgnOiAwfSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnbGlnaHQt
Y2hpbGQtc2VsZWN0ZWQtMScsICd0YWJpbmRleCc6IDF9KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdsaWdodC1jaGlsZC1ub24tc2VsZWN0
ZWQtMScsICd0YWJpbmRleCc6IDF9KSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lu
cHV0JywgeydpZCc6ICdpbnB1dC1ELTEnLCAndGFiaW5kZXgnOiAxfSksCi0gICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dC1DLTAnLCAndGFiaW5kZXgnOiAw
fSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC1DJywg
J3RhYmluZGV4JzogLTF9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRv
d1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQn
LCB7J3RhYmluZGV4JzogLTF9KSkpLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1
dCcsIHsnaWQnOiAnaW5wdXQtRC0wJywgJ3RhYmluZGV4JzogMH0pLAotICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC1EJywgJ3RhYmluZGV4JzogMH0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpLAotICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtRS0wJywgJ3RhYmlu
ZGV4JzogMH0pKSk7Ci0gICAgcGFyZW50Lm9mZnNldExlZnQ7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qo
KSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLQotICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIHRlc3RG
YWlsZWQoJycpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcHJlcGFyZURPTVRyZWUo
ZG9jdW1lbnQuYm9keSk7Ci0KLSAgICAvLyBGSVhNRTogT3V0cHV0IGluc2VydGVkIGNvbW1lbnRz
IGluIHRoaXMgYXJyYXkgdG8gZXhwZWN0ZWQudHh0IGZvciByZWFkYWJpbGl0eSBvZiB0aGUgcmVz
dWx0LgotICAgIGVsZW1lbnRzTmF2aWdhdGVkSW5Gb3J3YXJkID0gWwotICAgICAgICAnaW5wdXQt
QS0xJywgJ2lucHV0LUItMScsCi0gICAgICAgIC8vIFRyYXZlcnNlIGVsZW1lbnRzIHdoaWNoIGhh
dmUgdGFiaW5kZXg9MS4KLSAgICAgICAgLy8gU2hvdWxkIHNraXAgZXZlcnkgZWxlbWVudHMsIGV2
ZW4gdGhvdWdoIHRoZXkgaGF2ZSB0aGUgc2FtZSB0YWJpbmRleCwgaW4gbm9uLWZvY3VzYWJsZSBz
aGFkb3cgaG9zdCAoaWQ9aG9zdC1BKSAKLSAgICAgICAgLy8gc2luY2Ugbm9uLWZvY3VzYWJsZSBz
aGFkb3cgaG9zdCBhY3RlZCBhcyBpZiB0aGV5IHdlcmUgYXNzaW5nZWQgdG8gdGFiaW5kZXg9MCBz
byBpdCB3YXMgc2tpcHBlZCBpbiB0aGlzIHR1cm4uCi0gICAgICAgICdpbnB1dC1DLTEnLAotCi0g
ICAgICAgIC8vIFRyYXZlcnNlIGEgZm9jdXNhYmxlIHNoYWRvdyBob3N0LgotICAgICAgICAnaG9z
dC1CJywKLQotICAgICAgICAvLyBFbnRlciBhIGZvY3VzIHNjb3BlIG9mIHRoZSBzaGFkb3cgaG9z
dCBhbmQgdHJhdmVzZSB0aGUgZmlyc3QgZm9jdXNhYmxlIG5vZGUgaW4gc2hhZG93IERPTSBuYXZp
Z2F0aW9uLgotICAgICAgICAnaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMScsCi0KLSAgICAgICAg
Ly8gQSA8c2hhZG93PiBlbGVtZW50IHNob3VsZCBiZSByZXNvbHZlZC4KLSAgICAgICAgJ2hvc3Qt
Qi9vbGRlci1pbnB1dC1BLTEnLAotCi0gICAgICAgIC8vIEEgPGNvbnRlbnQ+IGVsZW1lbnQgc2hv
dWxkIGJlIHJlc29sdmVkLgotICAgICAgICAnbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMScsCi0gICAg
ICAgICdob3N0LUIvb2xkZXItaW5wdXQtQi0xJywKLSAgICAgICAgJ2hvc3QtQi8veW91bmdlci1p
bnB1dC1CLTEnLAotCi0gICAgICAgIC8vIEFsbCBlbGVtZW50cyB3aXRoIHRhYmluZGV4PTEgaGFk
IGJlZW4gdHJhdmVyc2VkLiBTbyBlbGVtZW50cyB3aXRoIHRhYmluZGV4PTAgc2hvb3VkIGZvbGxv
dy4KLSAgICAgICAgJ2hvc3QtQi8veW91bmdlci1pbnB1dC1BLTAnLAotICAgICAgICAnaG9zdC1C
L29sZGVyLWlucHV0LUEtMCcsCi0gICAgICAgICdsaWdodC1jaGlsZC1zZWxlY3RlZC0wJywKLSAg
ICAgICAgJ2hvc3QtQi9vbGRlci1pbnB1dC1CLTAnLAotICAgICAgICAnaG9zdC1CLy95b3VuZ2Vy
LWlucHV0LUItMCcsCi0KLSAgICAgICAgLy8gRXhpdCBhIGZvY3VzIHNjb3BlIG9mIHRoZSBzaGFk
b3cgaG9zdCAoaWQ9aG9zdC1CKSBhbmQgdHJhdmVyc2UgdGhlIG5leHQuCi0gICAgICAgICdpbnB1
dC1ELTEnLAotCi0gICAgICAgIC8vIEFsbCBlbGVtZW50cyB3aXRoIHRhYmluZGV4PTEgaGFkIGJl
ZW4gdHJhdmVyc2VkIGluIHRoZSBvdXRlcm1vc3Qgc2NvcGUuCi0gICAgICAgIC8vIFNvIHRyYXZl
cnNlIGVsZW1lbnRzIHdpdGggdGFiaW5kZXg9MCBpbiBuZXh0LgotICAgICAgICAnaW5wdXQtQS0w
JywKLQotICAgICAgICAvLyBBIG5vbi1mb2N1c2FibGUgc2hhZG93IGhvc3QgKGlkPWhvc3QtQSkg
d2lsbCBiZSAicmVwbGFjZWQiIHdpdGggaXRzIHNoYWRvdyBET00gbmF2aWdhdGlvbi4KLSAgICAg
ICAgJ2hvc3QtQS9pbnB1dC0xJywKLSAgICAgICAgJ2hvc3QtQS9pbnB1dC0yMCcsCi0gICAgICAg
ICdob3N0LUEvbmVzdGVkLWhvc3QnLAotCi0gICAgICAgIC8vIEVudGVyIGEgbmVzdGVkIGZvY3Vz
IHNjb3BlIGluc2lkZSBvZiBhIHNoYWRvdyBob3N0IChpZD1uZXN0ZWQtaG9zdCkuCi0gICAgICAg
ICdob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQtMTUnLAotICAgICAgICAnaG9zdC1BL25lc3RlZC1o
b3N0L2lucHV0LTI1JywKLQotICAgICAgICAvLyBFeGl0IGEgbmVzdGVkIHNoYWRvdyBob3N0Lgot
ICAgICAgICAnaW5wdXQtQi0wJywKLSAgICAgICAgJ2lucHV0LUMtMCcsCi0KLSAgICAgICAgLy8g
QSBub24tZm9jdXNhYmxlIHNoYWRvdyBob3N0IChpZD1ob3N0LUMpLCB3aGljaCBkb2VzIG5vdCBo
YXZlIGZvY3VzYWJsZSBlbGVtZW50cywgc2hvdWxkIGJlIHNraXBwZWQgZW50aXJlbHkuCi0gICAg
ICAgICdpbnB1dC1ELTAnLAotICAgICAgICAnaG9zdC1EJywKLSAgICAgICAgJ2lucHV0LUUtMCcs
Ci0KLSAgICAgICAgLy8gV3JhcHMgdG8gdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIG91dGVybW9z
dCBmb2N1cyBzY29wZS4KLSAgICAgICAgJ2lucHV0LUEtMScsCi0gICAgXTsKLQotCi0gICAgZWxl
bWVudHNOYXZpZ2F0ZWRJbkJhY2t3YXJkID0gWwotICAgICAgICAnaW5wdXQtQS0xJywKLSAgICAg
ICAgJ2lucHV0LUUtMCcsCi0gICAgICAgICdob3N0LUQnLAotICAgICAgICAnaW5wdXQtRC0wJywK
LSAgICAgICAgJ2lucHV0LUMtMCcsCi0gICAgICAgICdpbnB1dC1CLTAnLAotCi0gICAgICAgIC8v
IFRyaWNreSBuYXZpZ2F0aW9uLiBUcmF2YXJzZSB0aGUgZGVlcGx5IGxhc3QgZWxlbWVudCBpbiBu
ZXN0ZWQgc2hhZG93IERPTSBuYXZpZ2F0aW9uLgotICAgICAgICAnaG9zdC1BL25lc3RlZC1ob3N0
L2lucHV0LTI1JywKLSAgICAgICAgJ2hvc3QtQS9uZXN0ZWQtaG9zdC9pbnB1dC0xNScsCi0gICAg
ICAgICdob3N0LUEvbmVzdGVkLWhvc3QnLAotICAgICAgICAnaG9zdC1BL2lucHV0LTIwJywKLSAg
ICAgICAgJ2hvc3QtQS9pbnB1dC0xJywKLQotICAgICAgICAvLyBFeGl0IGEgc2hhZG8gaG9zdC4K
LSAgICAgICAgJ2lucHV0LUEtMCcsCi0KLSAgICAgICAgLy8gQWxsIGVsZW1lbnRzIHdpdGggdGFi
aW5kZXg9MCBoYWQgYmVlbiB0cmF2ZXJzZWQuIFNvIHRyYXZlcnNlIGVsZW1lbnRzIHdpdGggdGFi
aW5kZXg9MSBpbiByZXZlcnNlIG9yZGVyLgotICAgICAgICAnaW5wdXQtRC0xJywKLQotICAgICAg
ICAvLyBZZXQgYW5vdGhlciB0cmlja3kgbmF2aWdhdGlvbi4gU2hvdWxkIHRyYXZlcnNlIHRoZSBs
YXN0IGVsZW1lbnQgaW4gdGhlIHNoYWRvdyBET00gbmF2aWdhdGlvbi4KLSAgICAgICAgJ2hvc3Qt
Qi8veW91bmdlci1pbnB1dC1CLTAnLAotICAgICAgICAnaG9zdC1CL29sZGVyLWlucHV0LUItMCcs
Ci0gICAgICAgICdsaWdodC1jaGlsZC1zZWxlY3RlZC0wJywKLSAgICAgICAgJ2hvc3QtQi9vbGRl
ci1pbnB1dC1BLTAnLAotICAgICAgICAnaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMCcsCi0KLSAg
ICAgICAgJ2hvc3QtQi8veW91bmdlci1pbnB1dC1CLTEnLAotICAgICAgICAnaG9zdC1CL29sZGVy
LWlucHV0LUItMScsCi0gICAgICAgICdsaWdodC1jaGlsZC1zZWxlY3RlZC0xJywKLSAgICAgICAg
J2hvc3QtQi9vbGRlci1pbnB1dC1BLTEnLAotICAgICAgICAnaG9zdC1CLy95b3VuZ2VyLWlucHV0
LUEtMScsCi0KLSAgICAgICAgLy8gQSBzaGFkb3cgaG9zdCBzaG91bGQgYmUgc2VsZWN0ZWQganVz
dCBhZnRlciB0aGUgZmlyc3QgZWxlbWVudCBpbiBpdHMgc2hhZG93IERPTSBuYXZpZ2F0aW9uLgot
ICAgICAgICAvLyBOb3RlIHRoYXQgYSAnZm9jdXMnIGV2ZW50IGlzIG5vdCBjYWxsZWQgaGVyZSBz
aW5jZSBhIGZvY3VzIG1vdmVzIHdpdGhpbiB0aGUgc2FtZSBzaGFkb3cgaG9zdC4KLSAgICAgICAg
J2hvc3QtQicsCi0gICAgICAgICdpbnB1dC1DLTEnLAotICAgICAgICAnaW5wdXQtQi0xJywKLSAg
ICAgICAgJ2lucHV0LUEtMScsCi0KLSAgICAgICAgLy8gV3JhcHMgdG8gdGhlIGxhc3QgZWxlbWVu
dCBpbiB0aGUgb3V0ZXJtb3N0IGZvY3VzIHNjb3BlLgotICAgICAgICAnaW5wdXQtRS0wJywKLSAg
ICBdOwotCi0gICAgdGVzdEZvY3VzTmF2aWdhdGlvbkZvd3JhZChlbGVtZW50c05hdmlnYXRlZElu
Rm9yd2FyZCk7Ci0gICAgdGVzdEZvY3VzTmF2aWdhdGlvbkJhY2t3YXJkKGVsZW1lbnRzTmF2aWdh
dGVkSW5CYWNrd2FyZCk7Ci0KLSAgICBkZWJ1ZygnVGVzdCBmaW5pc2hlZC4nKTsKLX0KLQotdGVz
dCgpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9mb3JtLWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9mb3JtLWluLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZm9ybS1pbi1zaGFkb3cuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotCi08c2NyaXB0PgotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1m
dW5jdGlvbiBjcmVhdGVTaGFkb3dGb3JtKCkgewotICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBjb250
YWluZXIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPQotICAgICAgICAnPGZvcm0+JyArCi0gICAgICAgICcgICAgPGlucHV0IHR5cGU9ImhpZGRl
biIgbmFtZT0iaGlkZGVuIiB2YWx1ZT0iaGlkZGVuIj4nICsKLSAgICAgICAgJyAgICA8aW5wdXQg
dHlwZT0idGV4dCIgbmFtZT0idGV4dCIgdmFsdWU9InRleHQiPicgKwotICAgICAgICAnICAgIDxp
bnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2tib3gxIiBjaGVja2VkPicgKwotICAgICAg
ICAnICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2tib3gyIj4nICsKLSAgICAg
ICAgJyAgICA8aW5wdXQgdHlwZT0icmFuZ2UiIG5hbWU9InJhbmdlIiBtaW49IjAiIG1heD0iMTAw
IiB2YWx1ZT0iNTAiPicgKwotICAgICAgICAnICAgIDx0ZXh0YXJlYSBuYW1lPSJ0ZXh0YXJlYSI+
dGV4dGFyZWE8L3RleHRhcmVhPicgKwotICAgICAgICAnICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0
eXBlPSJzdWJtaXQiPicgKwotICAgICAgICAnPC9mb3JtPic7Ci0KLSAgICByZXR1cm4gc2hhZG93
Um9vdC5nZXRFbGVtZW50QnlJZCgnc3VibWl0Jyk7Ci19Ci0KLWZ1bmN0aW9uIHBhcnNlUXVlcnko
cXVlcnkpIHsKLSAgICB2YXIgcmVzdWx0ID0ge307Ci0gICAgdmFyIG5hbWVWYWx1ZXMgPSBxdWVy
eS5zcGxpdCgnJicpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lVmFsdWVzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIHZhciBpZHggPSBuYW1lVmFsdWVzW2ldLmluZGV4T2YoJz0nKTsK
LSAgICAgICAgdmFyIG5hbWUgPSBuYW1lVmFsdWVzW2ldLnN1YnN0cigwLCBpZHgpOwotICAgICAg
ICB2YXIgdmFsdWUgPSBuYW1lVmFsdWVzW2ldLnN1YnN0cihpZHggKyAxKTsKLQotICAgICAgICBy
ZXN1bHRbbmFtZV0gPSB2YWx1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12
YXIgb2JqOwotZnVuY3Rpb24gY2hlY2tRdWVyeShxdWVyeSkgewotICAgIG9iaiA9IHBhcnNlUXVl
cnkocXVlcnkpOwotCi0gICAgc2hvdWxkQmUoIm9iai5oaWRkZW4iLCAiJ2hpZGRlbiciKTsKLSAg
ICBzaG91bGRCZSgib2JqLnRleHQiLCAiJ3RleHQnIik7Ci0gICAgc2hvdWxkQmUoIm9iai5jaGVj
a2JveDEiLCAiJ29uJyIpOwotICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvYmouY2hlY2tib3gyIik7
Ci0gICAgc2hvdWxkQmUoIm9iai5yYW5nZSIsICInNTAnIik7Ci0gICAgc2hvdWxkQmUoIm9iai50
ZXh0YXJlYSIsICIndGV4dGFyZWEnIik7Ci19Ci0KLXZhciBzdWJtaXRCdXR0b24gPSBjcmVhdGVT
aGFkb3dGb3JtKCk7Ci1pZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCc/JykgPiAwKSB7Ci0gICAg
dmFyIHF1ZXJ5ID0gbG9jYXRpb24uaHJlZi5zdWJzdHIobG9jYXRpb24uaHJlZi5pbmRleE9mKCc/
JykgKyAxKTsKLSAgICBjaGVja1F1ZXJ5KHF1ZXJ5KTsKLQotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19IGVsc2UgewotICAgIHN1
Ym1pdEJ1dHRvbi5jbGljaygpOwotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
LTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZnJhbWVsZXNzLW1lZGlhLWVsZW1lbnQtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mcmFtZWxlc3MtbWVkaWEt
ZWxlbWVudC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9mcmFtZWxlc3MtbWVkaWEtZWxlbWVudC1jcmFzaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1DcmVhdGluZyBhIHZpZGVvIGVs
ZW1lbnQgaW4gYSBmcmFtZWxlc3MgZG9jdW1lbnQgc2hvdWxkIG5vdCBjcmFzaCBXZWJLaXQuCi0K
LVRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZnJhbWVsZXNzLW1lZGlhLWVsZW1lbnQtY3Jhc2guaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZnJhbWVsZXNzLW1lZGlhLWVs
ZW1lbnQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2ZyYW1lbGVzcy1tZWRpYS1lbGVtZW50LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTIgKzAsMCBAQAotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVu
dGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOwotZG9jLm9wZW4oKTsKLWRvYy53cml0ZSgnPHZp
ZGVvIGNvbnRyb2xzPjwvdmlkZW8+Jyk7Ci1kb2MuY2xvc2UoKTsKLQotPC9zY3JpcHQ+Ci08cD5D
cmVhdGluZyBhIHZpZGVvIGVsZW1lbnQgaW4gYSBmcmFtZWxlc3MgZG9jdW1lbnQgc2hvdWxkIG5v
dCBjcmFzaCBXZWJLaXQuCi08cD5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNo
LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9nYy1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9nYy1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi1UaGlzIHRlc3RzIHRoYXQgdGhlIEphdmFT
Y3JpcHQgd3JhcHBlciBvYmplY3RzIG9mIHNoYWRvdyBET00gb2JqZWN0cwotYXJlIG5vdCBwcmVt
YXR1cmVseSBnYXJiYWdlIGNvbGxlY3RlZC4KLQotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChw
c1swXSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
cHNbMV0pLnRhdHRvbyBpcyAiSSA8MyBXZWJLaXQiCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290
KHBzWzJdKS50YXR0b28gaXMgIkkgPDMgV2ViS2l0IgotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9v
dChwc1szXSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QocHNbNF0pLnRhdHRvbyBpcyAiSSA8MyBXZWJLaXQiCi1QQVNTIGludGVybmFscy5zaGFkb3dS
b290KHBzWzVdKS50YXR0b28gaXMgIkkgPDMgV2ViS2l0IgotUEFTUyBpbnRlcm5hbHMuc2hhZG93
Um9vdChwc1s2XSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBBU1MgaW50ZXJuYWxzLnNoYWRv
d1Jvb3QocHNbN10pLnRhdHRvbyBpcyAiSSA8MyBXZWJLaXQiCi1QQVNTIGludGVybmFscy5zaGFk
b3dSb290KHBzWzhdKS50YXR0b28gaXMgIkkgPDMgV2ViS2l0IgotUEFTUyBpbnRlcm5hbHMuc2hh
ZG93Um9vdChwc1s5XSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2djLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxwcmUgaWQ9ImNvbnNvbGUiPgotVGhpcyB0ZXN0cyB0aGF0IHRoZSBKYXZhU2NyaXB0
IHdyYXBwZXIgb2JqZWN0cyBvZiBzaGFkb3cgRE9NIG9iamVjdHMKLWFyZSBub3QgcHJlbWF0dXJl
bHkgZ2FyYmFnZSBjb2xsZWN0ZWQuCi0KLTwvcHJlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7Ci0gICAgdmFyIHBzID0gW107Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
OyBpKyspIHsKLSAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7Ci0g
ICAgICAgIHBzLnB1c2gocCk7Ci0KLSAgICAgICAgdmFyIHNoYWRvdyA9IGludGVybmFscy5lbnN1
cmVTaGFkb3dSb290KHApOwotICAgICAgICBzaGFkb3cudGF0dG9vID0gJ0kgPDMgV2ViS2l0JzsK
LSAgICAgICAgc2hhZG93ID0gbnVsbDsKLSAgICB9Ci0KLSAgICBnYygpOwotCi0gICAgZm9yIChp
ID0gMDsgaSA8IHBzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
c2hhZG93Um9vdChwc1snICsgaSArICddKS50YXR0b28nLCAnIkkgPDMgV2ViS2l0IicpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2dlc3R1cmUtdGFwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2VzdHVyZS10YXAtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2VzdHVyZS10YXAt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLVRlc3RzIHRvIGVu
c3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3Bl
YyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLSAgZ2VzdHVy
ZXRhcAotICAgICBAZGl2MS1zaGFkb3ctcm9vdC1jaGlsZCAodGFyZ2V0OiBkaXYxLXNoYWRvdy1y
b290LWNoaWxkKQotICAgICBAZGl2MSAodGFyZ2V0OiBkaXYxKQotCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZ2VzdHVyZS10YXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2VzdHVyZS10YXAuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dlc3R1cmUtdGFwLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudC1kaXNwYXRjaGluZy5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPgotPC9kaXY+Ci08cHJlIGlk
PSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2NvbnRhaW5lcid9LAotICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgnZm9vJykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdkaXYxLXNoYWRvdy1yb290LWNoaWxkJ30sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdmb28nKSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
J2ZvbycpKSkpKSk7Ci0KLXNhbmRib3gub2Zmc2V0TGVmdDsKLQotZnVuY3Rpb24gZ2VzdHVyZVRh
cChlbGVtZW50SWQpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3Rh
Y2soZWxlbWVudElkKTsKLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGV2
ZW50U2VuZGVyLmdlc3R1cmVUYXAoZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDIsIGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyKTsK
LSAgICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTApOwotICAgICAgICBldmVudFNlbmRl
ci5rZXlEb3duKCcgJyk7Ci0gICAgfQotfQotCi1hZGRFdmVudExpc3RlbmVycyhbJ2RpdjEnLCAn
ZGl2MS9kaXYxLXNoYWRvdy1yb290LWNoaWxkJ10pOwotZ2VzdHVyZVRhcCgnZGl2MS9kaXYxLXNo
YWRvdy1yb290LWNoaWxkJyk7Ci1kZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnZ2VzdHVyZXRhcCcpOwot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZ2V0LWRpc3RyaWJ1dGVkLW5vZGVzLW9ycGhhbi1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1kaXN0cmlidXRlZC1ub2Rlcy1v
cnBoYW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZ2V0LWRpc3RyaWJ1dGVkLW5vZGVzLW9ycGhhbi1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjkgKzAsMCBAQAotZ2V0RGlzdHJpYnV0ZWROb2RlcygpIHNob3Vs
ZCB3b3JrIG91dCBvZiBEb2N1bWVudAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
Z2V0RGlzdHJpYnV0ZWROb2RlcygpIHNob3VsZCB3b3JrIG91dCBvZiBEb2N1bWVudAotUEFTUyBu
b2RlTGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9kZUxpc3QuaXRl
bSgwKSBpcyBleHBlY3RlZE5vZGVzWzBdCi0KLVdoZW4gYSBjb250ZW50IGVsZW1lbnQgaXMgZGlz
Y29ubmVjdGVkIGZyb20gU2hhZG93Um9vdCwgaXQgc2hvdWxkIG5vdCB3b3JrLgotUEFTUyBub2Rl
TGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLQotUmVwcm9qZWN0aW9uIGNhc2UK
LVBBU1Mgbm9kZUxpc3QubGVuZ3RoIGlzIGV4cGVjdGVkTm9kZXMubGVuZ3RoCi1QQVNTIG5vZGVM
aXN0Lml0ZW0oMCkgaXMgZXhwZWN0ZWROb2Rlc1swXQotUEFTUyBub2RlTGlzdC5sZW5ndGggaXMg
ZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9kZUxpc3QuaXRlbSgwKSBpcyBleHBlY3RlZE5v
ZGVzWzBdCi1QQVNTIG5vZGVMaXN0Lml0ZW0oMSkgaXMgZXhwZWN0ZWROb2Rlc1sxXQotCi1yb290
Q2hpbGQgaXMgZGlzY29ubmVjdGVkLiBOb3cgY29udGVudCBiZWNhbWUgaW5hY3RpdmUsIHNvIGNv
bnRlbnQgZWxlbWVudCBpdHNlbGYgc2hvdWxkIGJlIGRpc3RyaWJ1dGVkLgotUEFTUyBub2RlTGlz
dC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9kZUxpc3QubGVuZ3RoIGlz
IGV4cGVjdGVkTm9kZXMubGVuZ3RoCi1QQVNTIG5vZGVMaXN0Lml0ZW0oMCkgaXMgZXhwZWN0ZWRO
b2Rlc1swXQotUEFTUyBub2RlTGlzdC5pdGVtKDEpIGlzIGV4cGVjdGVkTm9kZXNbMV0KLQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZGlzdHJpYnV0ZWQtbm9kZXMtb3JwaGFuLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1kaXN0cmli
dXRlZC1ub2Rlcy1vcnBoYW4uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2dldC1kaXN0cmlidXRlZC1ub2Rlcy1vcnBoYW4uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw2NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oImdldERpc3RyaWJ1dGVkTm9kZXMo
KSBzaG91bGQgd29yayBvdXQgb2YgRG9jdW1lbnQiKTsKLQotZnVuY3Rpb24gYXNzZXJ0Tm9kZUxp
c3Qobm9kZUxpc3QsIGV4cGVjdGVkTm9kZXMpCi17Ci0gICAgd2luZG93Lm5vZGVMaXN0ID0gbm9k
ZUxpc3Q7Ci0gICAgd2luZG93LmV4cGVjdGVkTm9kZXMgPSBleHBlY3RlZE5vZGVzOwotICAgIHNo
b3VsZEJlKCJub2RlTGlzdC5sZW5ndGgiLCAiZXhwZWN0ZWROb2Rlcy5sZW5ndGgiKTsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHNob3Vs
ZEJlKCJub2RlTGlzdC5pdGVtKCIgKyBpICsgIikiLCAiZXhwZWN0ZWROb2Rlc1siICsgaSArICJd
Iik7Ci0gICAgfQotfQotCi12YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBj
aGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotdmFyIHJvb3RDaGlsZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdjb250ZW50Jyk7Ci0KLWhvc3QuYXBwZW5kQ2hpbGQoY2hpbGQpOwotcm9vdENo
aWxkLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChyb290Q2hp
bGQpOwotCi1kZWJ1ZygnZ2V0RGlzdHJpYnV0ZWROb2RlcygpIHNob3VsZCB3b3JrIG91dCBvZiBE
b2N1bWVudCcpOwotYXNzZXJ0Tm9kZUxpc3QoY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCks
IFtjaGlsZF0pOwotZGVidWcoJycpOwotCi1kZWJ1ZygnV2hlbiBhIGNvbnRlbnQgZWxlbWVudCBp
cyBkaXNjb25uZWN0ZWQgZnJvbSBTaGFkb3dSb290LCBpdCBzaG91bGQgbm90IHdvcmsuJyk7Ci1z
aGFkb3dSb290LnJlbW92ZUNoaWxkKHJvb3RDaGlsZCk7Ci1hc3NlcnROb2RlTGlzdChjb250ZW50
LmdldERpc3RyaWJ1dGVkTm9kZXMoKSwgW10pOwotZGVidWcoJycpOwotCi1kZWJ1ZygnUmVwcm9q
ZWN0aW9uIGNhc2UnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocm9vdENoaWxkKTsKLXZhciBz
aGFkb3dSb290MiA9IHJvb3RDaGlsZC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgY29u
dGVudDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7Ci12YXIgcm9vdENoaWxk
Q2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXNoYWRvd1Jvb3QyLmFwcGVu
ZENoaWxkKGNvbnRlbnQyKTsKLXJvb3RDaGlsZC5hcHBlbmRDaGlsZChyb290Q2hpbGRDaGlsZCk7
Ci0KLWFzc2VydE5vZGVMaXN0KGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLCBbY2hpbGRd
KTsKLWFzc2VydE5vZGVMaXN0KGNvbnRlbnQyLmdldERpc3RyaWJ1dGVkTm9kZXMoKSwgW2NoaWxk
LCByb290Q2hpbGRDaGlsZF0pOwotZGVidWcoJycpOwotCi1kZWJ1Zygncm9vdENoaWxkIGlzIGRp
c2Nvbm5lY3RlZC4gTm93IGNvbnRlbnQgYmVjYW1lIGluYWN0aXZlLCBzbyBjb250ZW50IGVsZW1l
bnQgaXRzZWxmIHNob3VsZCBiZSBkaXN0cmlidXRlZC4nKTsKLXNoYWRvd1Jvb3QucmVtb3ZlQ2hp
bGQocm9vdENoaWxkKTsKLWFzc2VydE5vZGVMaXN0KGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2Rl
cygpLCBbXSk7Ci1hc3NlcnROb2RlTGlzdChjb250ZW50Mi5nZXREaXN0cmlidXRlZE5vZGVzKCks
IFtjb250ZW50LCByb290Q2hpbGRDaGlsZF0pOwotZGVidWcoJycpOwotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVs
ZW1lbnQtYnktaWQtaW4tc2hhZG93LW11dGF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93
LW11dGF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1tdXRhdGlvbi1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAotVGVzdHMgdG8gZW5zdXJl
IHRoYXQgU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCB3b3JrcyBldmVuIGFmdGVyIG11dGF0aW9u
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG51bGwgaXMgc2hhZG93Lmdl
dEVsZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGEgaXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdm
b28nKQotUEFTUyBlMGIgaXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGMg
aXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGIgaXMgc2hhZG93LmdldEVs
ZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGEgaXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28n
KQotUEFTUyBudWxsIGlzIHNoYWRvdy5nZXRFbGVtZW50QnlJZCgnZm9vJykKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LW11dGF0aW9uLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50
LWJ5LWlkLWluLXNoYWRvdy1tdXRhdGlvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LW11dGF0
aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBTaGFkb3dSb290
LmdldEVsZW1lbnRCeUlkIHdvcmtzIGV2ZW4gYWZ0ZXIgbXV0YXRpb24iKTsKLQotdmFyIGhvc3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotdmFyIHNoYWRvdyA9IGhvc3Qud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi1zaG91bGRCZSgibnVsbCIsICJzaGFkb3cuZ2V0RWxl
bWVudEJ5SWQoJ2ZvbycpIik7Ci0KLWUwYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwotZTBhLmlkID0gImZvbyI7Ci1zaGFkb3cuYXBwZW5kQ2hpbGQoZTBhKTsKLXNob3VsZEJlKCJl
MGEiLCAic2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKSIpOwotCi1lMGIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7Ci1lMGIuaWQgPSAiZm9vIjsKLXNoYWRvdy5pbnNlcnRCZWZv
cmUoZTBiLCBlMGEpOwotc2hvdWxkQmUoImUwYiIsICJzaGFkb3cuZ2V0RWxlbWVudEJ5SWQoJ2Zv
bycpIik7Ci0KLWUwYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKLWUwYy5pZCA9ICJm
b28iOwotZTBjUGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci1lMGNQYXJl
bnQuYXBwZW5kQ2hpbGQoZTBjKTsKLXNoYWRvdy5pbnNlcnRCZWZvcmUoZTBjUGFyZW50LCBlMGIp
Owotc2hvdWxkQmUoImUwYyIsICJzaGFkb3cuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpIik7Ci0KLXNo
YWRvdy5yZW1vdmVDaGlsZChlMGNQYXJlbnQpOwotc2hvdWxkQmUoImUwYiIsICJzaGFkb3cuZ2V0
RWxlbWVudEJ5SWQoJ2ZvbycpIik7Ci1zaGFkb3cucmVtb3ZlQ2hpbGQoZTBiKTsKLXNob3VsZEJl
KCJlMGEiLCAic2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKSIpOwotc2hhZG93LnJlbW92ZUNo
aWxkKGUwYSk7Ci1zaG91bGRCZSgibnVsbCIsICJzaGFkb3cuZ2V0RWxlbWVudEJ5SWQoJ2Zvbycp
Iik7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ctcm9vdC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50
LWJ5LWlkLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1y
b290LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCwwIEBACi1UZXN0cyB0
byBlbnN1cmUgdGhhdCBTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkIGNhbiBnZXQgYW4gZWxlbWVu
dCBpbiBTaGFkb3dSb290IGJ5IGl0cyBpZC4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQKLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNr
KCdkaXZBL2lucHV0QicpLmlkIGlzICJpbnB1dEIiCi1QQVNTIGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnZGl2QS9kaXZDJykuaWQgaXMgImRpdkMiCi1QQVNTIGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnZGl2QS9kaXZDL2lucHV0RCcpLmlkIGlzICJpbnB1dEQiCi1QQVNTIGdldE5vZGVJblNo
YWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDLy9pbnB1dEUnKS5pZCBpcyAiaW5wdXRFIgotUEFTUyBn
ZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvZGl2Qy8vL2lucHV0RicpLmlkIGlzICJpbnB1
dEYiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNo
YWRvdy1yb290Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFk
b3ctcm9vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9t
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJU
ZXN0cyB0byBlbnN1cmUgdGhhdCBTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkIGNhbiBnZXQgYW4g
ZWxlbWVudCBpbiBTaGFkb3dSb290IGJ5IGl0cyBpZC4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQi
KTsKLQotZnVuY3Rpb24gcHJlcGFyZURvbVRyZWUocGFyZW50KQotewotICAgIHBhcmVudC5hcHBl
bmRDaGlsZCgKLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdkEnfSwKLSAgICAg
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRCJ30pLAotICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXZDJ30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dEQnfSkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRFJ30p
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lk
JzogJ2lucHV0Rid9KSkpKSkpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi0gICAg
cHJlcGFyZURvbVRyZWUoZG9jdW1lbnQuYm9keSk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvaW5wdXRCJykuaWQiLCAnaW5wdXRCJyk7
Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2Rp
dkEvZGl2QycpLmlkIiwgJ2RpdkMnKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldE5v
ZGVJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDL2lucHV0RCcpLmlkIiwgJ2lucHV0RCcpOwot
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdkaXZB
L2RpdkMvL2lucHV0RScpLmlkIiwgJ2lucHV0RScpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMvLy9pbnB1dEYnKS5pZCIsICdp
bnB1dEYnKTsKLX0KLQotdGVzdCgpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0ZWxlbWVudGJ5aWQtaW4tb3JwaGFu
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Z2V0ZWxlbWVudGJ5aWQtaW4tb3JwaGFuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldGVsZW1lbnRieWlkLWluLW9ycGhhbi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMzUgKzAsMCBAQAotVGVzdHMgdG8gZW5z
dXJlIFNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQgd29ya3MgZXZlbiBpZiBhIFNoYWRvd1Jvb3Qg
aXMgb3JwaGFuLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dS
b290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDEiKSBpcyBzaGFkb3dDaGlsZDEKLVBBU1Mgc2hhZG93
Um9vdC5nZXRFbGVtZW50QnlJZCgiY2hpbGQyIikgaXMgc2hhZG93Q2hpbGQyCi1QQVNTIHNoYWRv
d1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpIGlzIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5n
ZXRFbGVtZW50QnlJZCgiY2hpbGQ0IikgaXMgbnVsbAotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY2hpbGQxIikgaXMgbnVsbAotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hp
bGQyIikgaXMgbnVsbAotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQzIikgaXMg
bnVsbAotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQ0IikgaXMgbnVsbAotCi1J
bnNlcnQgZWxlbWVudHMgaGF2aW5nIHRoZSBzYW1lIGlkCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoImNoaWxkMiIpIGlzIHNoYWRvd0NoaWxkMgotUEFTUyBzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCJjaGlsZDIiKSBpcyBzaGFkb3dDaGlsZDJfMwotCi1NYWtlIHRoZSBob3N0IGlu
IGRvY3VtZW50Ci1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMSIpIGlzIHNo
YWRvd0NoaWxkMQotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKSBpcyBz
aGFkb3dDaGlsZDJfMwotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDMiKSBp
cyBudWxsCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkNCIpIGlzIG51bGwK
LVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMSIpIGlzIG51bGwKLVBBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMiIpIGlzIG51bGwKLVBBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNoaWxkMyIpIGlzIGNoaWxkMwotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY2hpbGQ0IikgaXMgY2hpbGQ0Ci0KLUFkZCBhIGNoaWxkIGFuZCBtYWtlIHRoZSBob3N0
IG5vdCBpbiBkb2N1bWVudAotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDUi
KSBpcyBzaGFkb3dDaGlsZDUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVt
ZW50YnlpZC1pbi1vcnBoYW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZ2V0ZWxlbWVudGJ5aWQtaW4tb3JwaGFuLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVtZW50YnlpZC1pbi1vcnBoYW4u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotCi08ZGl2IGlkPSJ3cmFwcGVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotCi08c2NyaXB0PgotZnVuY3Rpb24gY3JlYXRlRGl2V2l0aElkKGlkKQotewotICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXYuaWQgPSBpZDsKLQot
ICAgIHJldHVybiBkaXY7Ci19Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgU2hhZG93
Um9vdC5nZXRFbGVtZW50QnlJZCB3b3JrcyBldmVuIGlmIGEgU2hhZG93Um9vdCBpcyBvcnBoYW4u
Iik7Ci0KLXZhciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hh
ZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi12YXIgc2hhZG93Q2hp
bGQxID0gY3JlYXRlRGl2V2l0aElkKCdjaGlsZDEnKTsKLXZhciBzaGFkb3dDaGlsZDIgPSBjcmVh
dGVEaXZXaXRoSWQoJ2NoaWxkMicpOwotdmFyIGhvc3RDaGlsZDEgPSBjcmVhdGVEaXZXaXRoSWQo
J2NoaWxkMycpOwotdmFyIGhvc3RDaGlsZDIgPSBjcmVhdGVEaXZXaXRoSWQoJ2NoaWxkNCcpOwot
Ci1ob3N0LmFwcGVuZENoaWxkKGhvc3RDaGlsZDEpOwotaG9zdC5hcHBlbmRDaGlsZChob3N0Q2hp
bGQyKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93Q2hpbGQxKTsKLXNoYWRvd1Jvb3Qu
YXBwZW5kQ2hpbGQoc2hhZG93Q2hpbGQyKTsKLQotc2hvdWxkQmUoJ3NoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoImNoaWxkMSIpJywgJ3NoYWRvd0NoaWxkMScpOwotc2hvdWxkQmUoJ3NoYWRvd1Jv
b3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMiIpJywgJ3NoYWRvd0NoaWxkMicpOwotc2hvdWxkQmUo
J3NoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ251bGwnKTsKLXNob3VsZEJl
KCdzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDQiKScsICdudWxsJyk7Ci0KLXNob3Vs
ZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQxIiknLCAnbnVsbCcpOwotc2hvdWxk
QmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKScsICdudWxsJyk7Ci1zaG91bGRC
ZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ251bGwnKTsKLXNob3VsZEJl
KCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQ0IiknLCAnbnVsbCcpOwotCi1kZWJ1Zygn
Jyk7Ci1kZWJ1ZygnSW5zZXJ0IGVsZW1lbnRzIGhhdmluZyB0aGUgc2FtZSBpZCcpOwotCi12YXIg
c2hhZG93Q2hpbGQyXzIgPSBjcmVhdGVEaXZXaXRoSWQoJ2NoaWxkMicpOwotc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChzaGFkb3dDaGlsZDJfMik7Ci0KLXNob3VsZEJlKCdzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCJjaGlsZDIiKScsICdzaGFkb3dDaGlsZDInKTsKLQotdmFyIHNoYWRvd0NoaWxk
Ml8zID0gY3JlYXRlRGl2V2l0aElkKCdjaGlsZDInKTsKLXNoYWRvd1Jvb3QuaW5zZXJ0QmVmb3Jl
KHNoYWRvd0NoaWxkMl8zLCBzaGFkb3dSb290LmZpcnN0Q2hpbGQpOwotCi1zaG91bGRCZSgnc2hh
ZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY2hpbGQyIiknLCAnc2hhZG93Q2hpbGQyXzMnKTsKLQot
ZGVidWcoJycpOwotZGVidWcoJ01ha2UgdGhlIGhvc3QgaW4gZG9jdW1lbnQnKTsKLXdyYXBwZXIu
YXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLXNob3VsZEJlKCdzaGFkb3dSb290LmdldEVsZW1lbnRCeUlk
KCJjaGlsZDEiKScsICdzaGFkb3dDaGlsZDEnKTsKLXNob3VsZEJlKCdzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCJjaGlsZDIiKScsICdzaGFkb3dDaGlsZDJfMycpOwotc2hvdWxkQmUoJ3NoYWRv
d1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ251bGwnKTsKLXNob3VsZEJlKCdzaGFk
b3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDQiKScsICdudWxsJyk7Ci0KLXNob3VsZEJlKCdk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQxIiknLCAnbnVsbCcpOwotc2hvdWxkQmUoJ2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKScsICdudWxsJyk7Ci1zaG91bGRCZSgnZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ2NoaWxkMycpOwotc2hvdWxkQmUoJ2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDQiKScsICdjaGlsZDQnKTsKLQotZGVidWcoJycp
OwotZGVidWcoJ0FkZCBhIGNoaWxkIGFuZCBtYWtlIHRoZSBob3N0IG5vdCBpbiBkb2N1bWVudCcp
OwotdmFyIHNoYWRvd0NoaWxkNSA9IGNyZWF0ZURpdldpdGhJZCgnY2hpbGQ1Jyk7Ci1zaGFkb3dS
b290LmFwcGVuZENoaWxkKHNoYWRvd0NoaWxkNSk7Ci13cmFwcGVyLnJlbW92ZUNoaWxkKGhvc3Qp
OwotCi1zaG91bGRCZSgnc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY2hpbGQ1IiknLCAnc2hh
ZG93Q2hpbGQ1Jyk7Ci0KLWRlYnVnKCcnKTsKLXdyYXBwZXIuaW5uZXJIVE1MID0gIiI7Ci08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9nZXRlbGVtZW50YnlpZC1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVtZW50YnlpZC1zaGFkb3ctZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0
ZWxlbWVudGJ5aWQtc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyAr
MCwwIEBACi1UZXN0cyB0byBlbnN1cmUgU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCB3b3JrcyBh
ZnRlciBjb21wbGV4IERPTSBtYW5pcHVsYXRpb24uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJBIikgaXMgQQotUEFTUyBzaGFk
b3dSb290QS5nZXRFbGVtZW50QnlJZCgiQiIpIGlzIEIKLVBBU1Mgc2hhZG93Um9vdEIuZ2V0RWxl
bWVudEJ5SWQoIkMiKSBpcyBDCi1QQVNTIHNoYWRvd1Jvb3RDLmdldEVsZW1lbnRCeUlkKCJEIikg
aXMgRAotCi1SZW1vdmUgQyBmcm9tIHNoYWRvd1Jvb3RCCi1QQVNTIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJBIikgaXMgQQotUEFTUyBzaGFkb3dSb290QS5nZXRFbGVtZW50QnlJZCgiQiIpIGlz
IEIKLVBBU1Mgc2hhZG93Um9vdEIuZ2V0RWxlbWVudEJ5SWQoIkMiKSBpcyBudWxsCi1QQVNTIHNo
YWRvd1Jvb3RDLmdldEVsZW1lbnRCeUlkKCJEIikgaXMgRAotCi1BcHBlbmQgQyB0byBTaGFkb3dS
b290QiwgYW5kIHJlbW92ZSBBIGZyb20gZG9jdW1lbnQKLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIkEiKSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3RBLmdldEVsZW1lbnRCeUlkKCJCIikg
aXMgQgotUEFTUyBzaGFkb3dSb290Qi5nZXRFbGVtZW50QnlJZCgiQyIpIGlzIEMKLVBBU1Mgc2hh
ZG93Um9vdEMuZ2V0RWxlbWVudEJ5SWQoIkQiKSBpcyBECi0KLVJlbW92ZSBDIGZyb20gc2hhZG93
Um9vdEIKLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkEiKSBpcyBudWxsCi1QQVNTIHNo
YWRvd1Jvb3RBLmdldEVsZW1lbnRCeUlkKCJCIikgaXMgQgotUEFTUyBzaGFkb3dSb290Qi5nZXRF
bGVtZW50QnlJZCgiQyIpIGlzIG51bGwKLVBBU1Mgc2hhZG93Um9vdEMuZ2V0RWxlbWVudEJ5SWQo
IkQiKSBpcyBECi0KLVJlbW92ZSBEIGZyb20gc2hhZG93Um9vdEMKLVBBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIkEiKSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3RBLmdldEVsZW1lbnRCeUlk
KCJCIikgaXMgQgotUEFTUyBzaGFkb3dSb290Qi5nZXRFbGVtZW50QnlJZCgiQyIpIGlzIG51bGwK
LVBBU1Mgc2hhZG93Um9vdEMuZ2V0RWxlbWVudEJ5SWQoIkQiKSBpcyBudWxsCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2dldGVsZW1lbnRieWlkLXNoYWRvdy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVtZW50YnlpZC1zaGFkb3cuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldGVs
ZW1lbnRieWlkLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc4ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBl
bnN1cmUgU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCB3b3JrcyBhZnRlciBjb21wbGV4IERPTSBt
YW5pcHVsYXRpb24uIik7Ci0KLWZ1bmN0aW9uIGNyZWF0ZURpdihpZCkKLXsKLSAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LmlkID0gaWQ7Ci0gICAg
cmV0dXJuIGRpdjsKLX0KLQotdmFyIEEgPSBjcmVhdGVEaXYoJ0EnKTsKLXZhciBCID0gY3JlYXRl
RGl2KCdCJyk7Ci12YXIgQyA9IGNyZWF0ZURpdignQycpOwotdmFyIEQgPSBjcmVhdGVEaXYoJ0Qn
KTsKLXZhciBzaGFkb3dSb290QSA9IEEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIHNo
YWRvd1Jvb3RCID0gQi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgc2hhZG93Um9vdEMg
PSBDLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotc2hhZG93Um9vdEEuYXBwZW5kQ2hpbGQo
Qik7Ci1zaGFkb3dSb290Qi5hcHBlbmRDaGlsZChDKTsKLXNoYWRvd1Jvb3RDLmFwcGVuZENoaWxk
KEQpOwotCi1jb250YWluZXIuYXBwZW5kQ2hpbGQoQSk7Ci1zaG91bGRCZSgnZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIkEiKScsICdBJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEEuZ2V0RWxlbWVu
dEJ5SWQoIkIiKScsICdCJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEIuZ2V0RWxlbWVudEJ5SWQo
IkMiKScsICdDJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEMuZ2V0RWxlbWVudEJ5SWQoIkQiKScs
ICdEJyk7Ci0KLWRlYnVnKCcnKTsKLWRlYnVnKCdSZW1vdmUgQyBmcm9tIHNoYWRvd1Jvb3RCJyk7
Ci1zaGFkb3dSb290Qi5yZW1vdmVDaGlsZChDKTsKLQotc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJBIiknLCAnQScpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RBLmdldEVsZW1lbnRC
eUlkKCJCIiknLCAnQicpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RCLmdldEVsZW1lbnRCeUlkKCJD
IiknLCAnbnVsbCcpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RDLmdldEVsZW1lbnRCeUlkKCJEIikn
LCAnRCcpOwotCi1kZWJ1ZygnJyk7Ci1kZWJ1ZygnQXBwZW5kIEMgdG8gU2hhZG93Um9vdEIsIGFu
ZCByZW1vdmUgQSBmcm9tIGRvY3VtZW50Jyk7Ci1zaGFkb3dSb290Qi5hcHBlbmRDaGlsZChDKTsK
LWNvbnRhaW5lci5yZW1vdmVDaGlsZChBKTsKLQotc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJBIiknLCAnbnVsbCcpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RBLmdldEVsZW1lbnRC
eUlkKCJCIiknLCAnQicpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RCLmdldEVsZW1lbnRCeUlkKCJD
IiknLCAnQycpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RDLmdldEVsZW1lbnRCeUlkKCJEIiknLCAn
RCcpOwotCi1kZWJ1ZygnJyk7Ci1kZWJ1ZygnUmVtb3ZlIEMgZnJvbSBzaGFkb3dSb290QicpOwot
c2hhZG93Um9vdEIucmVtb3ZlQ2hpbGQoQyk7Ci0KLXNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiQSIpJywgJ251bGwnKTsKLXNob3VsZEJlKCdzaGFkb3dSb290QS5nZXRFbGVtZW50
QnlJZCgiQiIpJywgJ0InKTsKLXNob3VsZEJlKCdzaGFkb3dSb290Qi5nZXRFbGVtZW50QnlJZCgi
QyIpJywgJ251bGwnKTsKLXNob3VsZEJlKCdzaGFkb3dSb290Qy5nZXRFbGVtZW50QnlJZCgiRCIp
JywgJ0QnKTsKLQotZGVidWcoJycpOwotZGVidWcoJ1JlbW92ZSBEIGZyb20gc2hhZG93Um9vdEMn
KTsKLXNoYWRvd1Jvb3RDLnJlbW92ZUNoaWxkKEQpOwotCi1zaG91bGRCZSgnZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIkEiKScsICdudWxsJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEEuZ2V0RWxl
bWVudEJ5SWQoIkIiKScsICdCJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEIuZ2V0RWxlbWVudEJ5
SWQoIkMiKScsICdudWxsJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEMuZ2V0RWxlbWVudEJ5SWQo
IkQiKScsICdudWxsJyk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2hhcy1jb250ZW50LWVsZW1lbnRzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWNvbnRl
bnQtZWxlbWVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWNvbnRlbnQtZWxlbWVudHMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAgQEAKLVRlc3QgZm9yIEJ1ZyAxMDA5MjEgYW5kIDEwNDM0
NjogSFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBiZSByZWdpc3RlcmVkIGNvcnJlY3RseS4KLQot
SW4gdGhlIGNhc2UgaG9zdCBpcyBpbiBkb2N1bWVudAotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVu
dEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRF
bGVtZW50KHNoYWRvd1Jvb3QpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVt
ZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVu
dChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQo
c2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hh
ZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRv
d1Jvb3QpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jv
b3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChpbm5lclNoYWRv
d1Jvb3QxKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChpbm5lclNo
YWRvd1Jvb3QyKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFk
b3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93
Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoeW91bmdlclNo
YWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFk
b3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoeW91bmdl
clNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChz
aGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoeW91
bmdlclNoYWRvd1Jvb3QpIGlzIHRydWUKLUluIHRoZSBjYXNlIGhvc3QgaXMgbm90IGluIGRvY3Vt
ZW50Ci1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxz
ZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQot
UEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBB
U1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNT
IGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVlCi1QQVNTIGlu
dGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRl
cm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5h
bHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxz
Lmhhc0NvbnRlbnRFbGVtZW50KGlubmVyU2hhZG93Um9vdDEpIGlzIHRydWUKLVBBU1MgaW50ZXJu
YWxzLmhhc0NvbnRlbnRFbGVtZW50KGlubmVyU2hhZG93Um9vdDIpIGlzIHRydWUKLVBBU1MgaW50
ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVy
bmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVlCi1QQVNTIGludGVybmFs
cy5oYXNDb250ZW50RWxlbWVudCh5b3VuZ2VyU2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50
ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVy
bmFscy5oYXNDb250ZW50RWxlbWVudCh5b3VuZ2VyU2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1Mg
aW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGlu
dGVybmFscy5oYXNDb250ZW50RWxlbWVudCh5b3VuZ2VyU2hhZG93Um9vdCkgaXMgdHJ1ZQotaW5z
ZXJ0ZWRJbnRvL3JlbW92ZWRGcm9tIGNhbiBiZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcy4KLVBBU1Mg
aW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGlu
dGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVlCi1QQVNTIGludGVy
bmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVlCi1QQVNTIGludGVybmFs
cy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5o
YXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9oYXMtY29udGVudC1lbGVtZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9oYXMtY29udGVudC1lbGVtZW50cy5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWNvbnRlbnQtZWxl
bWVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgZGVidWco
IndpbmRvd3MuaW50ZXJuYWxzIG5vdCBmb3VuZCEiKTsKLWVsc2UgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzLmhhc0NvbnRlbnRFbGVtZW50KQotICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5oYXND
b250ZW50RWxlbWVudCBub3QgZm91bmQhIik7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
Ci08cD5UZXN0IGZvciBCdWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDkyMSI+MTAwOTIxPC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NiI+MTA0MzQ2PC9hPjogSFRNTENvbnRlbnRF
bGVtZW50IHNob3VsZCBiZSByZWdpc3RlcmVkIGNvcnJlY3RseS48L3A+Ci0KLTxkaXYgaWQ9Indy
YXBwZXIiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiBkb0NvbW1vblRlc3QoKSB7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc0Nv
bnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIik7Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImNvbnRlbnQiKSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotICAg
IHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIik7
Ci0gICAgCi0gICAgc2hhZG93Um9vdC5yZW1vdmVDaGlsZChkaXYpOwotICAgIHNob3VsZEJlRmFs
c2UoImludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSIpOwotICAgIAotICAg
IHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXY+Tm8gSW5zZXJ0aW9uIFBvaW50czwvZGl2PiI7
Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jv
b3QpIik7Ci0gICAgCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250
ZW50PiI7Ci0gICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hh
ZG93Um9vdCkiKTsKLSAgICAKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hhZG93Pjwv
c2hhZG93PiI7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50
KHNoYWRvd1Jvb3QpIik7Ci0gICAgCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGRpdj48
ZGl2PjxkaXY+PGNvbnRlbnQ+PC9jb250ZW50PjwvZGl2PjwvZGl2PjwvZGl2PiI7Ci0gICAgc2hv
dWxkQmVUcnVlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkiKTsKLSAg
ICAKLSAgICAvLyBDYXNlIGZvciBuZXN0ZWQgc2hhZG93IHN1YnRyZWUKLSAgICBzaGFkb3dSb290
LmlubmVySFRNTCA9ICc8ZGl2PmluIHNoYWRvdyByb290PC9kaXY+JzsKLSAgICB2YXIgaW5uZXJE
aXYxID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkaXYnKTsKLSAgICBpbm5lclNoYWRvd1Jv
b3QxID0gaW5uZXJEaXYxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBpbm5lclNoYWRv
d1Jvb3QxLmlubmVySFRNTCA9ICI8ZGl2Pjxjb250ZW50PjwvY29udGVudD48L2Rpdj4iOwotICAg
IHZhciBpbm5lckRpdjIgPSBpbm5lclNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0b3IoJ2RpdicpOwot
ICAgIGlubmVyU2hhZG93Um9vdDIgPSBpbm5lckRpdjIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIGlubmVyU2hhZG93Um9vdDIuaW5uZXJIVE1MID0gIjxkaXY+PGNvbnRlbnQgdGl0bGU9
J2RlYnVnc3RvcCc+PC9jb250ZW50PjwvZGl2PiI7Ci0gICAgCi0gICAgc2hvdWxkQmVGYWxzZSgi
aW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIik7Ci0gICAgc2hvdWxkQmVU
cnVlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoaW5uZXJTaGFkb3dSb290MSkiKTsKLSAg
ICBzaG91bGRCZVRydWUoImludGVybmFscy5oYXNDb250ZW50RWxlbWVudChpbm5lclNoYWRvd1Jv
b3QyKSIpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXY+PC9kaXY+IjsKLSAgICBz
aG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkiKTsK
LQotICAgIC8vIENhc2UgZm9yIG11bHRpcGxlIHNoYWRvdyBzdWJ0cmVlcwotICAgIHNoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gIjxkaXY+PGRpdj48ZGl2Pjxjb250ZW50PjwvY29udGVudD48L2Rpdj48
L2Rpdj48L2Rpdj4iOwotICAgIHlvdW5nZXJTaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0gICAgLy8gTW9kaWZ5aW5nIG9sZGVyIHNoYWRvdyByb290IG9yIHlvdW5n
ZXIgc2hhZG93IHJvb3QgZG9lc24ndCBhZmZlY3QgdGhlIG90aGVyLgotICAgIHNob3VsZEJlVHJ1
ZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIik7Ci0gICAgc2hvdWxk
QmVGYWxzZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHlvdW5nZXJTaGFkb3dSb290KSIp
OwotICAgIAotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IjsK
LSAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9v
dCkiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoeW91
bmdlclNoYWRvd1Jvb3QpIik7Ci0gICAgCi0gICAgeW91bmdlclNoYWRvd1Jvb3QuaW5uZXJIVE1M
ID0gIjxjb250ZW50PjwvY29udGVudD4iOwotICAgIHNob3VsZEJlRmFsc2UoImludGVybmFscy5o
YXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSIpOwotICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJu
YWxzLmhhc0NvbnRlbnRFbGVtZW50KHlvdW5nZXJTaGFkb3dSb290KSIpOwotfQotCi1kZWJ1Zygn
SW4gdGhlIGNhc2UgaG9zdCBpcyBpbiBkb2N1bWVudCcpOwotaG9zdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotd3JhcHBlci5hcHBlbmRDaGlsZChob3N0KTsKLXNoYWRvd1Jvb3Qg
PSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLWRvQ29tbW9uVGVzdCgpOwotd3JhcHBl
ci5pbm5lckhUTUwgPSAiIjsKLQotZGVidWcoJ0luIHRoZSBjYXNlIGhvc3QgaXMgbm90IGluIGRv
Y3VtZW50Jyk7Ci1ob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1zaGFkb3dS
b290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1kb0NvbW1vblRlc3QoKTsKLXdy
YXBwZXIuaW5uZXJIVE1MID0gIiI7Ci0KLWRlYnVnKCdpbnNlcnRlZEludG8vcmVtb3ZlZEZyb20g
Y2FuIGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzLicpOwotdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLXZhciBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
Y29udGVudCcpOwotdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXZh
ciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93Um9vdCA9
IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotZGl2MS5hcHBlbmRDaGlsZChjb250ZW50
KTsKLXNob3VsZEJlRmFsc2UoJ2ludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290
KScpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYxKTsKLXNob3VsZEJlVHJ1ZSgnaW50ZXJu
YWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpJyk7Ci1kaXYyLmFwcGVuZENoaWxkKGhv
c3QpOwotc2hvdWxkQmVUcnVlKCdpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9v
dCknKTsKLWRpdjIucmVtb3ZlQ2hpbGQoaG9zdCk7Ci1zaG91bGRCZVRydWUoJ2ludGVybmFscy5o
YXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KScpOwotc2hhZG93Um9vdC5yZW1vdmVDaGlsZChk
aXYxKTsKLXNob3VsZEJlRmFsc2UoJ2ludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dS
b290KScpOwotZGl2MS5yZW1vdmVDaGlsZChjb250ZW50KTsKLQotd3JhcHBlci5pbm5lckhUTUwg
PSAnJzsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWVsZW1lbnRzaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9oYXMtZWxlbWVudHNoYWRvdy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9oYXMtZWxlbWVudHNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkg
KzAsMCBAQAotVGhpcyB0ZXN0IGNvbmZpcm1zIHRoYXQgdGhlIG51bWJlciBvZiBlbGVtZW50cyBo
YXZpbmcgU2hhZG93IGluIGEgc2hhZG93IHN1YnRyZWUgaXMgY29ycmVjdGx5IGNvdW50ZWQuIFNl
ZSBCdWcgMTAwOTIyIGFsc28uCi0KLUluaXRpYWwgY291bnQgc2hvdWxkIGJlIDAKLVBBU1MgaW50
ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBpcyAwCi0KLUluc2VydGVkIGlu
dG8gLyByZW1vdmVkIGZyb20gYW4gZWxlbWVudCBoYXZpbmcgc2hhZG93Ci1QQVNTIGludGVybmFs
cy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMQotUEFTUyBpbnRlcm5hbHMuY291
bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpIGlzIDAKLQotSW5zZXJ0ZWQgaW50byAvIHJlbW92
ZWQgZnJvbSBhbiBlbGVtZW50IGhhdmluZyBtdWx0aXBsZSBzaGFkb3cgcm9vdHMKLVBBU1MgaW50
ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBpcyAxCi1QQVNTIGludGVybmFs
cy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMAotCi1TaGFkb3dSb290IGlzIGFk
ZGVkCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMAot
UEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpIGlzIDEKLVBBU1Mg
aW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBpcyAxCi0KLVNob3VsZCBi
ZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93IHJvb3QgKG11bHRpcGxlIHNoYWRvdyByb290IGNhc2Up
Ci1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMQotUEFT
UyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHlvdW5nZXJTaGFkb3dSb290KSBpcyAwCi1Q
QVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMAotUEFTUyBp
bnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHlvdW5nZXJTaGFkb3dSb290KSBpcyAxCi0KLVNo
b3VsZCBiZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93IHJvb3QgKG5lc3RlZCBzaGFkb3cgcm9vdCBj
YXNlKQotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpIGlzIDEK
LVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0ZWRTaGFkb3dSb290KSBpcyAw
Ci1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMQotUEFT
UyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5lc3RlZFNoYWRvd1Jvb3QpIGlzIDEKLVBB
U1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBpcyAyCi1QQVNTIGlu
dGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3cobmVzdGVkU2hhZG93Um9vdCkgaXMgMQotUEFTUyBp
bnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpIGlzIDIKLVBBU1MgaW50ZXJu
YWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0ZWRTaGFkb3dSb290KSBpcyAyCi0KLVNob3VsZCBi
ZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93IHJvb3QgKGRlZXAgbmVzdGVkIHNoYWRvdyByb290IGNh
c2UpCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMQot
UEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5lc3RlZFNoYWRvd1Jvb3QpIGlzIDAK
LVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhkZWVwTmVzdGVkU2hhZG93Um9vdCkg
aXMgMAotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpIGlzIDEK
LVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0ZWRTaGFkb3dSb290KSBpcyAx
Ci1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coZGVlcE5lc3RlZFNoYWRvd1Jvb3Qp
IGlzIDEKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBpcyAw
Ci1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3cobmVzdGVkU2hhZG93Um9vdCkgaXMg
MAotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KGRlZXBOZXN0ZWRTaGFkb3dSb290
KSBpcyAwCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWVsZW1lbnRzaGFkb3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWVsZW1l
bnRzaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2hhcy1lbGVtZW50c2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTUwICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxwPlRoaXMgdGVzdCBj
b25maXJtcyB0aGF0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaGF2aW5nIFNoYWRvdyBpbiBhIHNo
YWRvdyBzdWJ0cmVlIGlzIGNvcnJlY3RseSBjb3VudGVkLgotU2VlIDxhIGhyZWY9Imh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA5MjIiPkJ1ZyAxMDA5MjI8L2E+IGFs
c28uPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0Q2FzZShmKQotewotICAgIGNvbnRhaW5l
ci5pbm5lckhUTUwgPSAnJzsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZVNoYWRvd1Jvb3QoKSkpOwotICAgIHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93
Um9vdChob3N0KTsKLQotICAgIGYoKTsKLSAgICBkZWJ1ZygnJyk7Ci19Ci0KLXRlc3RDYXNlKGZ1
bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnSW5pdGlhbCBjb3VudCBzaG91bGQgYmUgMCcpOwotICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpJywgJzAn
KTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ0luc2VydGVkIGlu
dG8gLyByZW1vdmVkIGZyb20gYW4gZWxlbWVudCBoYXZpbmcgc2hhZG93Jyk7Ci0KLSAgICB2YXIg
ZGl2ID0gY3JlYXRlRE9NKCdkaXYnLCB7fSwgY3JlYXRlU2hhZG93Um9vdCgpKTsKLSAgICBzaGFk
b3dSb290LmFwcGVuZENoaWxkKGRpdik7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVs
ZW1lbnRTaGFkb3coc2hhZG93Um9vdCknLCAnMScpOwotCi0gICAgc2hhZG93Um9vdC5yZW1vdmVD
aGlsZChkaXYpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNo
YWRvd1Jvb3QpJywgJzAnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVi
dWcoJ0luc2VydGVkIGludG8gLyByZW1vdmVkIGZyb20gYW4gZWxlbWVudCBoYXZpbmcgbXVsdGlw
bGUgc2hhZG93IHJvb3RzJyk7Ci0KLSAgICB2YXIgZGl2ID0gY3JlYXRlRE9NKCdkaXYnLCB7fSwg
Y3JlYXRlU2hhZG93Um9vdCgpLCBjcmVhdGVTaGFkb3dSb290KCkpOwotCi0gICAgc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChkaXYpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50
U2hhZG93KHNoYWRvd1Jvb3QpJywgJzEnKTsKLQotICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQo
ZGl2KTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dS
b290KScsICcwJyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdT
aGFkb3dSb290IGlzIGFkZGVkJyk7Ci0gICAgdmFyIGRpdiA9IGNyZWF0ZURPTSgnZGl2Jywge30p
OwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KScsICcwJyk7Ci0KLSAgICBkaXYud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVt
ZW50U2hhZG93KHNoYWRvd1Jvb3QpJywgJzEnKTsKLQotICAgIGRpdi53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hh
ZG93Um9vdCknLCAnMScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1
ZygnU2hvdWxkIGJlIGNvdW50ZWQgYnkgZWFjaCBzaGFkb3cgcm9vdCAobXVsdGlwbGUgc2hhZG93
IHJvb3QgY2FzZSknKTsKLSAgICB5b3VuZ2VyU2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotCi0gICAgdmFyIGRpdiA9IGNyZWF0ZURPTSgnZGl2Jywge30sIGNyZWF0
ZVNoYWRvd1Jvb3QoKSk7Ci0KLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdik7Ci0gICAg
c2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCknLCAnMScp
OwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHlvdW5nZXJTaGFk
b3dSb290KScsICcwJyk7Ci0KLSAgICB5b3VuZ2VyU2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYp
OwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3Qp
JywgJzAnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyh5b3Vu
Z2VyU2hhZG93Um9vdCknLCAnMScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAg
ICBkZWJ1ZygnU2hvdWxkIGJlIGNvdW50ZWQgYnkgZWFjaCBzaGFkb3cgcm9vdCAobmVzdGVkIHNo
YWRvdyByb290IGNhc2UpJyk7Ci0gICAgdmFyIGRpdiA9IGNyZWF0ZURPTSgnZGl2Jywge30sIGNy
ZWF0ZVNoYWRvd1Jvb3QoKSk7Ci0gICAgbmVzdGVkU2hhZG93Um9vdCA9IGludGVybmFscy5zaGFk
b3dSb290KGRpdik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgc2hv
dWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCknLCAnMScpOwot
ICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5lc3RlZFNoYWRvd1Jv
b3QpJywgJzAnKTsKLQotICAgIG5lc3RlZFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlRE9N
KCdkaXYnLCB7fSwgY3JlYXRlU2hhZG93Um9vdCgpKSk7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KScsICcxJyk7Ci0gICAgc2hvdWxkQmUo
J2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3cobmVzdGVkU2hhZG93Um9vdCknLCAnMScpOwot
Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjcmVhdGVET00oJ2RpdicsIHt9LCBjcmVhdGVT
aGFkb3dSb290KCkpKTsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hh
ZG93KHNoYWRvd1Jvb3QpJywgJzInKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxl
bWVudFNoYWRvdyhuZXN0ZWRTaGFkb3dSb290KScsICcxJyk7Ci0KLSAgICBuZXN0ZWRTaGFkb3dS
b290LmFwcGVuZENoaWxkKGNyZWF0ZURPTSgnZGl2Jywge30sIGNyZWF0ZVNoYWRvd1Jvb3QoKSkp
OwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9v
dCknLCAnMicpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5l
c3RlZFNoYWRvd1Jvb3QpJywgJzInKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0g
ICAgZGVidWcoJ1Nob3VsZCBiZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93IHJvb3QgKGRlZXAgbmVz
dGVkIHNoYWRvdyByb290IGNhc2UpJyk7Ci0gICAgdmFyIGRpdiA9IGNyZWF0ZURPTSgnZGl2Jywg
e30sIGNyZWF0ZVNoYWRvd1Jvb3QoKSk7Ci0gICAgbmVzdGVkU2hhZG93Um9vdCA9IGludGVybmFs
cy5zaGFkb3dSb290KGRpdik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotCi0g
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCknLCAn
MScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5lc3RlZFNo
YWRvd1Jvb3QpJywgJzAnKTsKLQotICAgIHZhciBkaXYxID0gY3JlYXRlRE9NKCdkaXYnLCB7fSwg
Y3JlYXRlU2hhZG93Um9vdCgpKTsKLSAgICBkaXYxLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnZGVi
dWdzdG9wJyk7Ci0gICAgZGVlcE5lc3RlZFNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9v
dChkaXYxKTsKLSAgICB2YXIgZGl2MiA9IGNyZWF0ZURPTSgnZGl2Jywge30sIGNyZWF0ZVNoYWRv
d1Jvb3QoKSk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QyID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2
Mik7Ci0KLSAgICBkZWVwTmVzdGVkU2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYyKTsKLSAgICAv
LyBXaGVuIG5vdCBpbiBkb2N1bWVudCwgd2UgZG9uJ3QgY291bnQgaXQuCi0gICAgc2hvdWxkQmUo
J2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coZGVlcE5lc3RlZFNoYWRvd1Jvb3QpJywgJzAn
KTsKLQotICAgIG5lc3RlZFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2MSk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCknLCAnMScpOwotICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5lc3RlZFNoYWRvd1Jvb3Qp
JywgJzEnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhkZWVw
TmVzdGVkU2hhZG93Um9vdCknLCAnMScpOwotCi0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICIi
OwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3Qp
JywgJzAnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0
ZWRTaGFkb3dSb290KScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1l
bnRTaGFkb3coZGVlcE5lc3RlZFNoYWRvd1Jvb3QpJywgJzAnKTsKLX0pOwotCi1maW5pc2hKU1Rl
c3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2hhcy1zaGFkb3ctaW5zZXJ0aW9uLXBvaW50LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLXNoYWRvdy1pbnNl
cnRpb24tcG9pbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaGFzLXNoYWRvdy1pbnNlcnRpb24tcG9pbnQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwICswLDAgQEAKLVRlc3QgZm9yIEJ1ZyA5NzE4NCBhbmQg
MTA0MzQ2IDogSFRNTFNoYWRvd0VsZW1lbnQgc2hvdWxkIGJlIHJlZ2lzdGVyZWQgY29ycmVjdGx5
LgotCi1JbiB0aGUgY2FzZSBob3N0IGlzIGluIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy5oYXNT
aGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMu
aGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5h
bHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50
ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNT
IGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQot
UEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1
ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMg
dHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkg
aXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91bmdlclNo
YWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2lu
dChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9u
UG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTaGFk
b3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFz
U2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIHRydWUKLUluIHRoZSBj
YXNlIGhvc3QgaXMgbm90IGluIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy5oYXNTaGFkb3dJbnNl
cnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93
SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hh
ZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhh
c1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFs
cy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRl
cm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBp
bnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFT
UyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQot
UEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91bmdlclNoYWRvd1Jvb3Qp
IGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dS
b290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91
bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRp
b25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5z
ZXJ0aW9uUG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIHRydWUKLWluc2VydGVkSW50by9yZW1v
dmVkRnJvbSBjYW4gYmUgY2FsbGVkIHNldmVyYWwgdGltZXMuCi1QQVNTIGludGVybmFscy5oYXNT
aGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMu
aGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5h
bHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRl
cm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBp
bnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLXNoYWRvdy1pbnNlcnRpb24tcG9pbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLXNoYWRvdy1p
bnNlcnRpb24tcG9pbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2hhcy1zaGFkb3ctaW5zZXJ0aW9uLXBvaW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsOTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1p
ZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgZGVidWcoIndpbmRvd3MuaW50ZXJuYWxzIG5vdCBm
b3VuZCEiKTsKLWVsc2UgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBv
aW50KQotICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2lu
dCBub3QgZm91bmQhIik7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08cD5UZXN0IGZv
ciBCdWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3
MTg0Ij45NzE4NDwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDQzNDYiPjEwNDM0NjwvYT4gOiBIVE1MU2hhZG93RWxlbWVudCBzaG91bGQg
YmUgcmVnaXN0ZXJlZCBjb3JyZWN0bHkuPC9wPgotCi08ZGl2IGlkPSJ3cmFwcGVyIj48L2Rpdj4K
LTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotZnVuY3Rpb24gZG9UZXN0KCkg
ewotICAgIHNob3VsZEJlRmFsc2UoImludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChz
aGFkb3dSb290KSIpOwotCi0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzaGFkb3ci
KSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotICAgIHNob3VsZEJlVHJ1ZSgi
aW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIik7Ci0KLSAgICBz
aGFkb3dSb290LnJlbW92ZUNoaWxkKGRpdik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxz
Lmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIik7Ci0KLSAgICBzaGFkb3dSb290
LmlubmVySFRNTCA9ICI8ZGl2Pk5vIEluc2VydGlvbiBQb2ludHM8L2Rpdj4iOwotICAgIHNob3Vs
ZEJlRmFsc2UoImludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSIp
OwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRv
d1Jvb3QpIik7Ci0KLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hhZG93Pjwvc2hhZG93
PiI7Ci0gICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQo
c2hhZG93Um9vdCkiKTsKLQotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXY+PGRpdj48
ZGl2PjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+PC9kaXY+PC9kaXY+IjsKLSAgICBzaG91bGRCZVRy
dWUoImludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSIpOwotCi0g
ICAgeW91bmdlclNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoaG9zdCk7
Ci0gICAgLy8gTW9kaWZ5aW5nIG9sZGVyIHNoYWRvdyByb290IG9yIHlvdW5nZXIgc2hhZG93IHJv
b3QgZG9lc24ndCBhZmZlY3QgdGhlIG90aGVyLgotICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxz
Lmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIik7Ci0gICAgc2hvdWxkQmVGYWxz
ZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHlvdW5nZXJTaGFkb3dSb290KSIp
OwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRv
d1Jvb3QpIik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlv
blBvaW50KHlvdW5nZXJTaGFkb3dSb290KSIpOwotCi0gICAgeW91bmdlclNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IjsKLSAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5h
bHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkiKTsKLSAgICBzaG91bGRCZVRy
dWUoImludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludCh5b3VuZ2VyU2hhZG93Um9vdCki
KTsKLX0KLQotZGVidWcoJ0luIHRoZSBjYXNlIGhvc3QgaXMgaW4gZG9jdW1lbnQnKTsKLWhvc3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXdyYXBwZXIuYXBwZW5kQ2hpbGQoaG9z
dCk7Ci1zaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1kb1Rlc3Qo
KTsKLXdyYXBwZXIuaW5uZXJIVE1MID0gIiI7Ci0KLWRlYnVnKCdJbiB0aGUgY2FzZSBob3N0IGlz
IG5vdCBpbiBkb2N1bWVudCcpOwotaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
Owotc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotZG9UZXN0KCk7
Ci13cmFwcGVyLmlubmVySFRNTCA9ICIiOwotCi1kZWJ1ZygnaW5zZXJ0ZWRJbnRvL3JlbW92ZWRG
cm9tIGNhbiBiZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcy4nKTsKLXZhciBob3N0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2hhZG93Jyk7Ci12YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
dmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXZhciBzaGFkb3dSb290
ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1kaXYxLmFwcGVuZENoaWxkKHNoYWRv
dyk7Ci1zaG91bGRCZUZhbHNlKCdpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hh
ZG93Um9vdCknKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2MSk7Ci1zaG91bGRCZVRydWUo
J2ludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KScpOwotZGl2Mi5h
cHBlbmRDaGlsZChob3N0KTsKLXNob3VsZEJlVHJ1ZSgnaW50ZXJuYWxzLmhhc1NoYWRvd0luc2Vy
dGlvblBvaW50KHNoYWRvd1Jvb3QpJyk7Ci1kaXYyLnJlbW92ZUNoaWxkKGhvc3QpOwotc2hvdWxk
QmVUcnVlKCdpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCknKTsK
LXNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoZGl2MSk7Ci1zaG91bGRCZUZhbHNlKCdpbnRlcm5hbHMu
aGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCknKTsKLWRpdjEucmVtb3ZlQ2hpbGQo
c2hhZG93KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ob3N0LXdyYXBwZXItcmVjbGFpbWVkLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaG9zdC13cmFwcGVy
LXJlY2xhaW1lZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9ob3N0LXdyYXBwZXItcmVjbGFpbWVkLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotUEFTUyB1bmxlc3MgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaG9zdC13cmFwcGVyLXJlY2xhaW1lZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ob3N0LXdyYXBwZXItcmVjbGFpbWVkLmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ob3N0
LXdyYXBwZXItcmVjbGFpbWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiBtYWtlT3JwaGFuU2hhZG93KCkgewotICAgIHZhciBob3N0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIHJldHVybiBzaGFkb3c7Ci19OwotCi12YXIgc2hhZG93ID0g
bWFrZU9ycGhhblNoYWRvdygpOwotZ2ModHJ1ZSk7Ci0KLXRyeSB7IHNoYWRvdy5pbm5lckhUTUwg
PSAiSGVsbG8iOyB9IGNhdGNoKGUpIHsgfQotc2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKSk7Ci1zaGFkb3cucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1
ZTsKLXNoYWRvdy5hcHBseUF1dGhvclN0eWxlcyA9IGZhbHNlOwotCi1kb2N1bWVudC5ib2R5Lmlu
bmVySFRNTCA9ICJQQVNTIHVubGVzcyBjcmFzaC4iOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaWZyYW1lLXNoYWRvdy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lm
cmFtZS1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaWZyYW1lLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjMgKzAsMCBAQAotVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpZnJhbWUgaW5zaWRl
IHNoYWRvdyBpc24ndCB2aXNpYmxlIGZyb20gdGhlIGhvc3QgZG9jdW1lbnQuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHdpbmRvdy5sZW5ndGggaXMgNAotUEFTUyBpMGJ5
bmFtZS5sZW5ndGggaXMgMQotUEFTUyBpMCBpcyBpMGJ5bmFtZVswXS5jb250ZW50V2luZG93Ci1Q
QVNTIGkxLmxlbmd0aCBpcyAyCi1QQVNTIHdpbmRvdy5sZW5ndGggaXMgNAotUEFTUyBpMmJ5bmFt
ZS5sZW5ndGggaXMgMQotUEFTUyBpMmJ5bmFtZVswXS5jb250ZW50V2luZG93IGlzIGkyCi1QQVNT
IGkzYnluYW1lLmxlbmd0aCBpcyAwCi1QQVNTIGkzIGlzIHVuZGVmaW5lZAotUEFTUyB3aW5kb3cu
bGVuZ3RoIGlzIDMKLVBBU1MgZG9jdW1lbnRbJ2kwJ10gaXMgdW5kZWZpbmVkCi1QQVNTIHdpbmRv
dy5sZW5ndGggaXMgNAotUEFTUyBkb2N1bWVudFsnaTMnXSBpcyBpM0luU2hhZG93LmNvbnRlbnRX
aW5kb3cKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
ICAgCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pZnJhbWUtc2hhZG93Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lmcmFtZS1zaGFk
b3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2lmcmFtZS1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3MiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KLTxpZnJhbWUgbmFtZT0iaTAiPjwvaWZyYW1lPgotPGlmcmFtZSBuYW1lPSJpMSI+PC9p
ZnJhbWU+Ci08aWZyYW1lIG5hbWU9ImkxIj48L2lmcmFtZT4KLTxpZnJhbWUgbmFtZT0iaTIiPjwv
aWZyYW1lPgotCi08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLQotPHNjcmlwdD4KLQotZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaWZyYW1lIGluc2lkZSBzaGFkb3cgaXNuJ3Qgdmlz
aWJsZSBmcm9tIHRoZSBob3N0IGRvY3VtZW50LiIpOwotCi0vLyBBdCBmaXJzdCwgY2hlY2sgaWZy
YW1lIGluIHVzdWFsIHdheQotc2hvdWxkQmUoIndpbmRvdy5sZW5ndGgiLCAiNCIpOwotdmFyIGkw
ID0gZG9jdW1lbnRbImkwIl07Ci12YXIgaTBieW5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgiaTAiKTsKLXNob3VsZEJlKCJpMGJ5bmFtZS5sZW5ndGgiLCAiMSIpOwotc2hvdWxkQmUo
ImkwIiwgImkwYnluYW1lWzBdLmNvbnRlbnRXaW5kb3ciKTsKLQotdmFyIGkxID0gZG9jdW1lbnRb
ImkxIl07Ci12YXIgaTJieW5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgiaTAiKTsK
LXNob3VsZEJlKCJpMS5sZW5ndGgiLCAiMiIpOwotCi0vLyBUaGVuIEFkZGluZyBzb21lIGlmcmFt
ZXMgaW50byBhIHNoYWRvdy4KLQotdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aG9zdCIpOwotdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFy
IGkySW5TaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLWkySW5TaGFk
b3cuc2V0QXR0cmlidXRlKCJuYW1lIiwgImkyIik7Ci1zaGFkb3cuYXBwZW5kQ2hpbGQoaTJJblNo
YWRvdyk7Ci0KLXZhciBpM0luU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7Ci1pM0luU2hhZG93LnNldEF0dHJpYnV0ZSgibmFtZSIsICJpMyIpOwotc2hhZG93LmFwcGVu
ZENoaWxkKGkzSW5TaGFkb3cpOwotCi1zaG91bGRCZSgid2luZG93Lmxlbmd0aCIsICI0Iik7Ci0K
LXZhciBpMiA9IGRvY3VtZW50WyJpMiJdOwotdmFyIGkyYnluYW1lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeU5hbWUoImkyIik7Ci1zaG91bGRCZSgiaTJieW5hbWUubGVuZ3RoIiwgIjEiKTsKLXNo
b3VsZEJlKCJpMmJ5bmFtZVswXS5jb250ZW50V2luZG93IiwgImkyIik7Ci0KLXZhciBpMyA9IGRv
Y3VtZW50WyJpMyJdOwotdmFyIGkzYnluYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUo
ImkzIik7Ci1zaG91bGRCZSgiaTNieW5hbWUubGVuZ3RoIiwgIjAiKTsKLXNob3VsZEJlKCJpMyIs
ICJ1bmRlZmluZWQiKTsKLQotLy8gTW92aW5nIGlmcmFtZXMgYWNyb3NzIHNoYWRvdyBib3VuZGFy
eSB0byBlbnN1cmUKLS8vIFRoYXQgd2luZG93Lmxlbmd0aCBhbmQgcHJvcGVydHkgYXZhaWxhYmls
aXR5IGFyZQotLy8gY29ycmVjdGx5IHVwZGF0ZWQuCi0KLXNoYWRvdy5hcHBlbmRDaGlsZChpMC5m
cmFtZUVsZW1lbnQpOwotCi1zaG91bGRCZSgid2luZG93Lmxlbmd0aCIsICIzIik7Ci1zaG91bGRC
ZSgiZG9jdW1lbnRbJ2kwJ10iLCAidW5kZWZpbmVkIik7Ci0KLWRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaTNJblNoYWRvdyk7Ci1zaG91bGRCZSgid2luZG93Lmxlbmd0aCIsICI0Iik7Ci1zaG91
bGRCZSgiZG9jdW1lbnRbJ2kzJ10iLCAiaTNJblNoYWRvdy5jb250ZW50V2luZG93Iik7Ci0KLTwv
c2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2lucHV0LXNoYWRvdy1ub2NoYW5nZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
NTIgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBpbnB1dCdzIHNoYWRvdyByb290IGlzIG5vdCBj
aGFuZ2VkIGlmIGlucHV0IHR5cGUgaXMgY2hhbmdlZC4KLQotaGlkZGVuCi1QQVNTIG5ld1NoYWRv
dyBpcyBzaGFkb3cKLXRleHQKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotc2VhcmNoCi1QQVNT
IG5ld1NoYWRvdyBpcyBzaGFkb3cKLXRlbAotUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Ci11cmwK
LVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotZW1haWwKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRv
dwotcGFzc3dvcmQKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotZGF0ZXRpbWUKLVBBU1MgbmV3
U2hhZG93IGlzIHNoYWRvdwotZGF0ZQotUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Ci1tb250aAot
UEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Ci13ZWVrCi1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cK
LXRpbWUKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotZGF0ZXRpbWUtbG9jYWwKLVBBU1MgbmV3
U2hhZG93IGlzIHNoYWRvdwotbnVtYmVyCi1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLXJhbmdl
Ci1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLWNvbG9yCi1QQVNTIG5ld1NoYWRvdyBpcyBzaGFk
b3cKLWNoZWNrYm94Ci1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLXJhZGlvCi1QQVNTIG5ld1No
YWRvdyBpcyBzaGFkb3cKLWZpbGUKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotc3VibWl0Ci1Q
QVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLWltYWdlCi1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cK
LXJlc2V0Ci1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLWJ1dHRvbgotUEFTUyBuZXdTaGFkb3cg
aXMgc2hhZG93Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXNoYWRvdy1ub2No
YW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1
dC1zaGFkb3ctbm9jaGFuZ2UuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2lucHV0LXNoYWRvdy1ub2NoYW5nZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgY2hlY2tzIGlucHV0J3Mgc2hhZG93IHJvb3QgaXMg
bm90IGNoYW5nZWQgaWYgaW5wdXQgdHlwZSBpcyBjaGFuZ2VkLjwvcD4KLTxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgotPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBj
b250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7Ci0KLWZ1bmN0
aW9uIGRvVGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50
ZXJuYWxzKQotICAgICAgICByZXR1cm47Ci0KLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LQotICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci0gICAg
dmFyIGlucHV0VHlwZXMgPSBbCi0gICAgICAgICJoaWRkZW4iLCAidGV4dCIsICJzZWFyY2giLCAi
dGVsIiwgInVybCIsICJlbWFpbCIsICJwYXNzd29yZCIsICJkYXRldGltZSIsCi0gICAgICAgICJk
YXRlIiwgIm1vbnRoIiwgIndlZWsiLCAidGltZSIsICJkYXRldGltZS1sb2NhbCIsICJudW1iZXIi
LCAicmFuZ2UiLAotICAgICAgICAiY29sb3IiLCAiY2hlY2tib3giLCAicmFkaW8iLCAiZmlsZSIs
ICJzdWJtaXQiLCAiaW1hZ2UiLCAicmVzZXQiLCAiYnV0dG9uIgotICAgIF07Ci0KLSAgICBzaGFk
b3cgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChpbnB1dCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpbnB1dFR5cGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlucHV0LnR5cGUgPSBpbnB1dFR5
cGVzW2ldOwotCi0gICAgICAgIG5ld1NoYWRvdyA9IGludGVybmFscy5zaGFkb3dSb290KGlucHV0
KTsKLQotICAgICAgICBkZWJ1ZyhpbnB1dFR5cGVzW2ldKTsKLSAgICAgICAgc2hvdWxkQmUoIm5l
d1NoYWRvdyIsICJzaGFkb3ciKTsKLSAgICB9Ci19Ci0KLWRvVGVzdCgpOwotdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC13aXRoLXZhbGlkYXRpb24tZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQt
d2l0aC12YWxpZGF0aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC13aXRoLXZhbGlkYXRpb24tZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwyMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5WYWxpZGF0aW9u
IHNob3VsZCBiZSBzaG93biBpZiBTaGFkb3cgRE9NIGhhcyBhIHNoYWRvdyBlbGVtZW50LjwvcD4K
LTxmb3JtIGlkPSdmb3JtJyBhY3Rpb249ImlucHV0LXdpdGgtdmFsaWRhdGlvbi5odG1sIj4KLTxp
bnB1dCBpZD1wYXNzd29yZCB0eXBlPXBhc3N3b3JkIHJlcXVpcmVkIG1heGxlbmd0aD0yMCB0aXRs
ZT0iTmVlZHMgYXQgbGVhc3QgOCBsZXR0ZXJzLiYjeDBhO1Nob3VsZCBub3QgYmUgaWRlbnRpY2Fs
IHdpdGggdGhlIGN1cnJlbnQgcGFzc3dvcmQuIj4KLTxpbnB1dCB0eXBlPXN1Ym1pdCBpZD1zdWJt
aXQ+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFzc3dvcmQnKTsKLQotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Ym1pdCcpLmNs
aWNrKCk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLSAgICB9LCAxMCk7Ci19Ci08L3NjcmlwdD4KLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXdpdGgtdmFsaWRhdGlvbi13aXRob3V0LXNoYWRv
dy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9pbnB1dC13aXRoLXZhbGlkYXRpb24td2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXdpdGgt
dmFsaWRhdGlvbi13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPlZhbGlkYXRpb24gd29uJ3QgYmUgc2hvd24gaWYg
U2hhZG93IERPTSBkb2VzIG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQuPC9wPgotPGZvcm0gaWQ9
J2Zvcm0nIGFjdGlvbj0iaW5wdXQtd2l0aC12YWxpZGF0aW9uLXdpdGhvdXQtc2hhZG93Lmh0bWwi
PgotPGlucHV0IGlkPXBhc3N3b3JkIHR5cGU9cGFzc3dvcmQgbWF4bGVuZ3RoPTIwIHRpdGxlPSJO
ZWVkcyBhdCBsZWFzdCA4IGxldHRlcnMuJiN4MGE7U2hvdWxkIG5vdCBiZSBpZGVudGljYWwgd2l0
aCB0aGUgY3VycmVudCBwYXNzd29yZC4iPgotPGlucHV0IHR5cGU9c3VibWl0IGlkPXN1Ym1pdD4K
LTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdwYXNzd29yZCcpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9LCAxMCk7Ci19Ci08L3NjcmlwdD4KLQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXdpdGgtdmFsaWRhdGlvbi13aXRo
b3V0LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9pbnB1dC13aXRoLXZhbGlkYXRpb24td2l0aG91dC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXdpdGgtdmFsaWRhdGlv
bi13aXRob3V0LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxwPlZhbGlkYXRpb24gd29uJ3QgYmUgc2hvd24gaWYgU2hhZG93IERPTSBkb2VzIG5v
dCBoYXZlIGEgc2hhZG93IGVsZW1lbnQuPC9wPgotPGZvcm0gaWQ9J2Zvcm0nIGFjdGlvbj0iaW5w
dXQtd2l0aC12YWxpZGF0aW9uLXdpdGhvdXQtc2hhZG93Lmh0bWwiPgotPGlucHV0IGlkPXBhc3N3
b3JkIHR5cGU9cGFzc3dvcmQgcmVxdWlyZWQgbWF4bGVuZ3RoPTIwIHRpdGxlPSJOZWVkcyBhdCBs
ZWFzdCA4IGxldHRlcnMuJiN4MGE7U2hvdWxkIG5vdCBiZSBpZGVudGljYWwgd2l0aCB0aGUgY3Vy
cmVudCBwYXNzd29yZC4iPgotPGlucHV0IHR5cGU9c3VibWl0IGlkPXN1Ym1pdD4KLTwvZm9ybT4K
LQotPHNjcmlwdD4KLWZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICB2YXIgaW5wdXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGlucHV0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzdWJtaXQnKS5jbGljaygpOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9LCAx
MCk7Ci0gICAgfQotfQotCi10cnkgewotICAgIGRvVGVzdCgpCi19IGNhdGNoIChlKSB7Ci0gICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
LX0KLTwvc2NyaXB0PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQt
d2l0aC12YWxpZGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2lucHV0LXdpdGgtdmFsaWRhdGlvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtd2l0aC12YWxpZGF0aW9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+VmFsaWRhdGlvbiBzaG91
bGQgYmUgc2hvd24gaWYgU2hhZG93IERPTSBoYXMgYSBzaGFkb3cgZWxlbWVudC48L3A+Ci08Zm9y
bSBpZD0nZm9ybScgYWN0aW9uPSJpbnB1dC13aXRoLXZhbGlkYXRpb24uaHRtbCI+Ci08aW5wdXQg
aWQ9cGFzc3dvcmQgdHlwZT1wYXNzd29yZCByZXF1aXJlZCBtYXhsZW5ndGg9MjAgdGl0bGU9Ik5l
ZWRzIGF0IGxlYXN0IDggbGV0dGVycy4mI3gwYTtTaG91bGQgbm90IGJlIGlkZW50aWNhbCB3aXRo
IHRoZSBjdXJyZW50IHBhc3N3b3JkLiI+Ci08aW5wdXQgdHlwZT1zdWJtaXQgaWQ9c3VibWl0Pgot
PC9mb3JtPgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwot
Ci12YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKTsKLXZhciBz
aGFkb3dSb290ID0gaW5wdXQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5p
bm5lckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz4iOwotCi1kb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc3VibWl0JykuY2xpY2soKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0sIDEwKTsKLX0KLTwvc2NyaXB0Pgot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBhcmVudC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2Vy
dGlvbi1wYXJlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBhcmVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgZm9yIG5vZGUncyBpbnNlcnRpb25QYXJlbnQo
KS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZG9jdW1lbnQud2Via2l0
SW5zZXJ0aW9uUGFyZW50IGlzIHVuZGVmaW5lZC4KLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2hvc3QtMScpLndlYmtpdEluc2VydGlvblBhcmVudCBpcyBudWxsCi1QQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjaGlsZCcpLndlYmtpdEluc2VydGlvblBhcmVudC5pZCBpcyAiY29u
dGVudC0xIgotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVwcm9qZWN0ZWQtY2hpbGQn
KS53ZWJraXRJbnNlcnRpb25QYXJlbnQuaWQgaXMgImNvbnRlbnQtMiIKLVBBU1MgdGV4dE5vZGUu
d2Via2l0SW5zZXJ0aW9uUGFyZW50LmlkIGlzICJjb250ZW50LTMiCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLWhlbGxvCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBhcmVudC1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcGFyZW50
LXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcGFyZW50LXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTEgKzAsMCBAQAotVGVzdHMgZm9yIGluc2VydGlvblBhcmVudCB3aXRo
IGEgc2hhZG93IGVsZW1lbnQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC9vbGRlci1zaGFkb3ctcm9vdC1jaGlsZCcp
LndlYmtpdEluc2VydGlvblBhcmVudC5pZCBpcyAic2hhZG93IgotUEFTUyBnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ2hvc3QvL3NoYWRvdycpLndlYmtpdEluc2VydGlvblBhcmVudCBpcyBudWxs
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wYXJlbnQtc2hhZG93Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1w
YXJlbnQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9pbnNlcnRpb24tcGFyZW50LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgaW5zZXJ0aW9uUGFyZW50IHdpdGgg
YSBzaGFkb3cgZWxlbWVudC4iKTsKLQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAgICBj
cmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnaG9zdCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnb2xkZXIt
c2hhZG93LXJvb3QtY2hpbGQnfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hh
ZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycs
IHsnaWQnOiAnc2hhZG93J30pKSkpKTsKLQotZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotCi1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC9vbGRl
ci1zaGFkb3ctcm9vdC1jaGlsZCcpLndlYmtpdEluc2VydGlvblBhcmVudC5pZCIsICJzaGFkb3ci
KTsKLXNob3VsZEJlTnVsbCgiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0Ly9zaGFkb3cn
KS53ZWJraXRJbnNlcnRpb25QYXJlbnQiKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wYXJlbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBh
cmVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaW5zZXJ0aW9uLXBhcmVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0cyBmb3Igbm9kZSdzIGluc2VydGlvblBhcmVudCgpLiIpOwotCi12YXIg
dGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnaGVsbG8nKTsKLQotZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC0xJ30sCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudC0xJ30pKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZCd9KSksCi0gICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0LTInfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdjb250ZW50JywgeydpZCc6ICdjb250ZW50LTInLCAnc2VsZWN0JzogJy5jbHMnfSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3Qt
Myd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dS
b290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JywgeydpZCc6ICdjb250ZW50LTMnfSkpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSkpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3JlcHJvamVjdGVkLWNoaWxkJywgJ2Ns
YXNzJzogJ2Nscyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRleHROb2RlKSkpOwotCi1k
b2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0KLXNob3VsZEJlVW5kZWZpbmVkKCJkb2N1bWVudC53
ZWJraXRJbnNlcnRpb25QYXJlbnQiKTsKLXNob3VsZEJlTnVsbCgiZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2hvc3QtMScpLndlYmtpdEluc2VydGlvblBhcmVudCIpOwotc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKS53ZWJraXRJbnNlcnRpb25Q
YXJlbnQuaWQiLCAiY29udGVudC0xIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZXByb2plY3RlZC1jaGlsZCcpLndlYmtpdEluc2VydGlvblBhcmVu
dC5pZCIsICJjb250ZW50LTIiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygidGV4dE5vZGUud2Vi
a2l0SW5zZXJ0aW9uUGFyZW50LmlkIiwgImNvbnRlbnQtMyIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9u
LXBvaW50LWxpc3QtbWVudS1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wb2ludC1saXN0LW1lbnUtY3Jhc2gtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaW5zZXJ0aW9uLXBvaW50LWxpc3QtbWVudS1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMiArMCwwIEBACi1QQVNTIHVubGVzcyBjcmFzaAotCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LWxpc3QtbWVudS1jcmFzaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9p
bnQtbGlzdC1tZW51LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtbGlzdC1tZW51LWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LWZ1bmN0aW9uIGJvb20oKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotCi0gICAgdmFyIG9sZGVyID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0g
ICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRpdik7Ci0KLSAgICB2YXIg
eW91bmdlciA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIHNlbGVjdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOwotICAgIHZhciBzaGFkb3cgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzZWxlY3QuYXBwZW5kQ2hpbGQoc2hh
ZG93KTsKLSAgICB5b3VuZ2VyLmFwcGVuZENoaWxkKHNlbGVjdCk7Ci0KLSAgICB0ZXN0UGFzc2Vk
KCJ1bmxlc3MgY3Jhc2giKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLXdpbmRvdy5vbmxvYWQg
PSBib29tOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2Vy
dGlvbi1wb2ludC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJl
c2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMzEg
KzAsMCBAQAotVGVzdCBjYXNlOiBubyByZXNldC1zdHlsZS1pbmhlcml0YW5jZS4gY29sb3IgdmFs
dWUgc2hvdWxkIGJlIGluaGVyaXRlZCBmcm9tIHRoZSBzaGFkb3cgaG9zdC4KLVBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vLXJlc2V0LXN0eWxl
LWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuY29sb3IgaXMgInJnYigyNTUsIDIzOCwgMjM4KSIK
LVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5v
LXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgotVGVzdCBjYXNlOiByZXNldC1zdHlsZS1pbmhlcnRpYWNlIGJh
c2ljIHRlc3QuIGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbml0aWFsIGJlY2F1c2UgaW5zZXJ0aW9u
IHBvaW50J3MgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGlzIHRydWUuCi1QQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0
YW5jZSIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCi1QQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhl
cml0YW5jZSIpLmZpcnN0Q2hpbGQpLmJhY2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAw
KSIKLVRlc3QgY2FzZTogbWFrZSBhIGNvbnRlbnQgZWxlbWVudCByZXNldC1zdHlsZS1pbmhlcnRp
YWNlIGJ5IHVzaW5nIGl0cyBhdHRyaWJ1dGUuIGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbml0aWFs
IGJlY2F1c2UgaW5zZXJ0aW9uIHBvaW50J3MgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGlzIHRydWUu
Ci1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZXNldC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMCwgMCwg
MCkiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmJhY2tncm91bmRDb2xvciBp
cyAicmdiYSgwLCAwLCAwLCAwKSIKLVRlc3QgY2FzZTogbWFrZSBhIHNoYWRvdyBlbGVtZW50IHJl
c2V0LXN0eWxlLWluaGVydGlhY2UgYnkgdXNpbmcgaXRzIGF0dHJpYnV0ZS4gY29sb3IgdmFsdWUg
c2hvdWxkIGJlIGluaXRpYWwgYmVjYXVzZSBpbnNlcnRpb24gcG9pbnQncyByZXNldFN0eWxlSW5o
ZXJpdGFuY2UgaXMgdHJ1ZS4KLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuY29s
b3IgaXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotVGVzdCBjYXNlOiByZXNldC1z
dHlsZS1pbmhlcnRpYWNlIGNoYW5nZXMgZHluYW1pY2FsbHkuIEZpcnN0bHkgY29sb3IgdmFsdWUg
c2hvdWxkIGJlIGluaGVyaXRlZC4gTmV4dCwgaW5pdGlhbC4gQXQgbGFzdCwgaW5oZXJpdGVkLgot
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVz
ZXQtc3R5bGUtaW5oZXJpdGFuY2UtZHluYW1pYyIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2Io
MjU1LCAyMzgsIDIzOCkiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGls
ZCkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJp
dGFuY2UtZHluYW1pYyIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCi1QQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1z
dHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZHluYW1pYyIpLmZpcnN0
Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMjU1LCAyMzgsIDIzOCkiCi1QQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5j
ZS1keW5hbWljIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAs
IDApIgotVGVzdCBjYXNlOiB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIGRpc3RyaWJ1dGVkIG5vZGUg
aXMgaW4gdGhlIHNhbWUgc2hhZG93IGRvbSBzdWJ0cmVlIGFzIHRoZSBpbnNlcnRpb24gcG9pbnQu
IGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbml0aWFsLiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBk
b2Vzbid0IGRlcGVuZCBvbiB3aGV0aGVyIHBhcmVudCBzdHlsZSBub2RlIGlzIGluIHRoZSBzYW1l
IHRyZWVzY29wZSBvciBub3QuCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXNldC1idXQtbm90LWNyb3NzLXVwcGVyLWJvdW5kYXJ5IikuZmly
c3RDaGlsZCkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LWJ1dC1ub3QtY3Jvc3MtdXBwZXIt
Ym91bmRhcnkiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYmEoMCwgMCwgMCwg
MCkiCi1UZXN0IGNhc2U6IHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIHdpdGggbXVsdGlwbGUgc2hh
ZG93IHJvb3RzLiBjb2xvciB2YWx1ZSBzaG91bGQgYmUgaW5pdGlhbCwgYmVjYXVzZSByZXNldC1z
dHlsZS1pbmhlcml0YW5jZSBvZiB0aGUgaW5zZXJ0aW9uIHBvaW50IGluIHRoZSB5b3VuZ2VzdCBz
aGFkb3cgcm9vdCBpcyB0cnVlLgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibXVsdGlwbGUtc2hhZG93LXJvb3RzIikuZmlyc3RDaGlsZCkuY29s
b3IgaXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlLXNoYWRvdy1yb290cyIpLmZpcnN0Q2hpbGQpLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVRlc3QgY2FzZTogbXVsdGlwbGUg
aW5zZXJ0aW9uIHBvaW50cyBpbiB0aGUgc2FtZSBzaGFkb3cgZG9tIHN1YnRyZWUuLiBFYWNoIHJl
c2V0LXN0eWxlLWluaGVyaXRhbmNlIHNob3VsZCBiZSBjaGVja2VkLgotUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXVsdGlwbGUtaW5zZXJ0aW9u
LXBvaW50cyIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMjU1LCAyMzgsIDIzOCkiCi1QQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtdWx0aXBs
ZS1pbnNlcnRpb24tcG9pbnRzIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Jh
KDAsIDAsIDAsIDApIgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibXVsdGlwbGUtaW5zZXJ0aW9uLXBvaW50cyIpLmxhc3RDaGlsZCkuY29sb3Ig
aXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlLWluc2VydGlvbi1wb2ludHMiKS5sYXN0Q2hpbGQpLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLURPTkUKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtcmVzZXRTdHlsZUluaGVyaXRhbmNl
LXdpdGgtcHNldWRvLWVsZW1lbnQtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtcmVzZXRTdHlsZUluaGVy
aXRhbmNlLXdpdGgtcHNldWRvLWVsZW1lbnQtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJl
c2V0U3R5bGVJbmhlcml0YW5jZS13aXRoLXBzZXVkby1lbGVtZW50LWNyYXNoLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLVtidWcgMTEyMzIyXSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyMzIyIFRoaXMgdGVzdCBlbnN1cmVzIFdl
YktpdCBkb2VzIG5vdCBjcmFzaCB3aGVuIGNoZWNraW5nIHdoZXRoZXIgZGlzdHJpYnV0ZWQgbm9k
ZXMgaGF2ZSBhbnkgcHNldWRvIGVsZW1lbnQgb3Igbm90LiBJZiB0aGVyZSBpcyBubyBjcmFzaCwg
dGhlIHRlc3QgcGFzc2VzLgotCi1QQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS13aXRoLXBzZXVkby1lbGVt
ZW50LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2luc2VydGlvbi1wb2ludC1yZXNldFN0eWxlSW5oZXJpdGFuY2Utd2l0aC1wc2V1ZG8tZWxlbWVu
dC1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS13aXRoLXBzZXVkby1l
bGVtZW50LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotPCFkb2N0
eWxlIGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLXNwYW46OmFmdGVyIHsKLSAgICAtd2Via2l0LW1h
c2stYm94LWltYWdlLXNvdXJjZTogdXJsKGRvZXMtbm90LWV4aXN0LmdpZikKLX0KLTwvc3R5bGU+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotCi1mdW5jdGlvbiBydW5UZXN0cygpIHsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8Y29udGVu
dCBpZD0nY29udGVudCc+IgotICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQi
KS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgotICA8cD5bYnVnIDExMjMyMl0gPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjMyMiI+aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjMyMjwvYT4gVGhpcyB0ZXN0IGVuc3VyZXMg
V2ViS2l0IGRvZXMgbm90IGNyYXNoIHdoZW4gY2hlY2tpbmcgd2hldGhlciBkaXN0cmlidXRlZCBu
b2RlcyBoYXZlIGFueSBwc2V1ZG8gZWxlbWVudCBvciBub3QuIElmIHRoZXJlIGlzIG5vIGNyYXNo
LCB0aGUgdGVzdCBwYXNzZXMuPC9wPgotICA8ZGl2IGlkPSdob3N0Jz4KLSAgICA8c3Bhbj5QQVNT
PC9zcGFuPgotICA8L2Rpdj4KLTwvYm9keT4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2luc2VydGlvbi1wb2ludC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0
U3R5bGVJbmhlcml0YW5jZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c3R5bGU+Ci1kaXYucmVzZXRUZXN0IHsKLSAgYmFja2dyb3VuZC1jb2xvcjog
I2VlZjsKLSAgY29sb3I6ICNmZWU7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0Tm9SZXNl
dFN0eWxlSW5oZXJpdGFuY2UoKSB7Ci0gICAgZGVidWcoIlRlc3QgY2FzZTogbm8gcmVzZXQtc3R5
bGUtaW5oZXJpdGFuY2UuIGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbmhlcml0ZWQgZnJvbSB0aGUg
c2hhZG93IGhvc3QuIik7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdu
by1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxj
b250ZW50IGlkPSJjb250ZW50Ij48L2NvbnRlbnQ+JzsKLSAgICAKLSAgICBzaGFkb3dSb290Lmdl
dEVsZW1lbnRCeUlkKCdjb250ZW50JykucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0g
ICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmNvbG9yJywgJyJy
Z2IoMjU1LCAyMzgsIDIzOCkiJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZSIp
LmZpcnN0Q2hpbGQpLmJhY2tncm91bmRDb2xvcicsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKLX0K
LQotZnVuY3Rpb24gdGVzdFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKLSAgICBkZWJ1ZygiVGVz
dCBjYXNlOiByZXNldC1zdHlsZS1pbmhlcnRpYWNlIGJhc2ljIHRlc3QuIGNvbG9yIHZhbHVlIHNo
b3VsZCBiZSBpbml0aWFsIGJlY2F1c2UgaW5zZXJ0aW9uIHBvaW50J3MgcmVzZXRTdHlsZUluaGVy
aXRhbmNlIGlzIHRydWUuIik7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZScpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxj
b250ZW50IGlkPSJjb250ZW50Ij48L2NvbnRlbnQ+JzsKLQotICAgIHNoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnRlbnQnKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwotICAgIHNo
b3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiKS5maXJzdENoaWxkKS5jb2xvcicsICcicmdiKDAsIDAs
IDApIicpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiKS5maXJzdENoaWxkKS5iYWNr
Z3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RS
ZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoQXR0cmlidXRlKCkgewotICAgIGRlYnVnKCJUZXN0IGNh
c2U6IG1ha2UgYSBjb250ZW50IGVsZW1lbnQgcmVzZXQtc3R5bGUtaW5oZXJ0aWFjZSBieSB1c2lu
ZyBpdHMgYXR0cmlidXRlLiBjb2xvciB2YWx1ZSBzaG91bGQgYmUgaW5pdGlhbCBiZWNhdXNlIGlu
c2VydGlvbiBwb2ludCdzIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0cnVlLiIpOwotICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Un
KTsKLQotICAgIHZhciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBpZD0iY29udGVudCIgcmVzZXQt
c3R5bGUtaW5oZXJpdGFuY2U+PC9jb250ZW50Pic7Ci0KLSAgICBzaG91bGRCZSgnd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVy
aXRhbmNlIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigwLCAwLCAwKSInKTsKLSAgICBzaG91
bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yJywgJyJy
Z2JhKDAsIDAsIDAsIDApIicpOwotfQotCi1mdW5jdGlvbiB0ZXN0U2hhZG93UmVzZXRTdHlsZUlu
aGVyaXRhbmNlV2l0aEF0dHJpYnV0ZSgpIHsKLSAgICBkZWJ1ZygiVGVzdCBjYXNlOiBtYWtlIGEg
c2hhZG93IGVsZW1lbnQgcmVzZXQtc3R5bGUtaW5oZXJ0aWFjZSBieSB1c2luZyBpdHMgYXR0cmli
dXRlLiBjb2xvciB2YWx1ZSBzaG91bGQgYmUgaW5pdGlhbCBiZWNhdXNlIGluc2VydGlvbiBwb2lu
dCdzIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0cnVlLiIpOwotICAgIHZhciBkaXYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKTsKLQotICAgIHZh
ciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICc8c2hhZG93IGlkPSJjb250ZW50IiByZXNldC1zdHlsZS1pbmhlcml0
YW5jZT48L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiKS5maXJz
dENoaWxkKS5jb2xvcicsICcicmdiKDAsIDAsIDApIicpOwotICAgIHNob3VsZEJlKCd3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwg
MCkiJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VEeW5hbWljKCkg
ewotICAgIGRlYnVnKCJUZXN0IGNhc2U6IHJlc2V0LXN0eWxlLWluaGVydGlhY2UgY2hhbmdlcyBk
eW5hbWljYWxseS4gRmlyc3RseSBjb2xvciB2YWx1ZSBzaG91bGQgYmUgaW5oZXJpdGVkLiBOZXh0
LCBpbml0aWFsLiBBdCBsYXN0LCBpbmhlcml0ZWQuIik7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5hbWljJyk7Ci0KLSAg
ICB2YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgaWQ9ImNvbnRlbnQiPjwvY29udGVudD4nOwot
Ci0gICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpLnJlc2V0U3R5bGVJbmhl
cml0YW5jZSA9IGZhbHNlOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZHluYW1pYyIp
LmZpcnN0Q2hpbGQpLmNvbG9yJywgJyJyZ2IoMjU1LCAyMzgsIDIzOCkiJyk7Ci0gICAgc2hvdWxk
QmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNl
dC1zdHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9y
JywgJyJyZ2JhKDAsIDAsIDAsIDApIicpOwotCi0gICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJ
ZCgnY29udGVudCcpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7Ci0gICAgc2hvdWxkQmUo
J3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1z
dHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigwLCAw
LCAwKSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWR5bmFtaWMiKS5maXJzdENo
aWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci0KLSAgICBzaGFk
b3dSb290LmdldEVsZW1lbnRCeUlkKCdjb250ZW50JykucmVzZXRTdHlsZUluaGVyaXRhbmNlID0g
ZmFsc2U7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGls
ZCkuY29sb3InLCAnInJnYigyNTUsIDIzOCwgMjM4KSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWlu
aGVyaXRhbmNlLWR5bmFtaWMiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEo
MCwgMCwgMCwgMCkiJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VX
aXRob3V0Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5KCkgewotICAgIGRlYnVnKCJUZXN0IGNhc2U6IHRo
ZSBwYXJlbnQgbm9kZSBvZiB0aGUgZGlzdHJpYnV0ZWQgbm9kZSBpcyBpbiB0aGUgc2FtZSBzaGFk
b3cgZG9tIHN1YnRyZWUgYXMgdGhlIGluc2VydGlvbiBwb2ludC4gY29sb3IgdmFsdWUgc2hvdWxk
IGJlIGluaXRpYWwuIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIGRvZXNuJ3QgZGVwZW5kIG9uIHdo
ZXRoZXIgcGFyZW50IHN0eWxlIG5vZGUgaXMgaW4gdGhlIHNhbWUgdHJlZXNjb3BlIG9yIG5vdC4i
KTsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LWJ1dC1ub3Qt
Y3Jvc3MtdXBwZXItYm91bmRhcnknKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2IHN0
eWxlPSJjb2xvcjpibHVlOyBiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuOyI+PGNvbnRlbnQgaWQ9ImNv
bnRlbnQiPjwvY29udGVudD48L2Rpdj4nOwotCi0gICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJ
ZCgnY29udGVudCcpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7Ci0gICAgc2hvdWxkQmUo
J3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1i
dXQtbm90LWNyb3NzLXVwcGVyLWJvdW5kYXJ5IikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigw
LCAwLCAwKSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LWJ1dC1ub3QtY3Jvc3MtdXBwZXItYm91bmRhcnkiKS5m
aXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoTXVsdGlwbGVTaGFkb3dSb290
cygpIHsKLSAgICBkZWJ1ZygiVGVzdCBjYXNlOiByZXNldC1zdHlsZS1pbmhlcml0YW5jZSB3aXRo
IG11bHRpcGxlIHNoYWRvdyByb290cy4gY29sb3IgdmFsdWUgc2hvdWxkIGJlIGluaXRpYWwsIGJl
Y2F1c2UgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Ugb2YgdGhlIGluc2VydGlvbiBwb2ludCBpbiB0
aGUgeW91bmdlc3Qgc2hhZG93IHJvb3QgaXMgdHJ1ZS4iKTsKLSAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ211bHRpcGxlLXNoYWRvdy1yb290cycpOwotICAgIHZhciBvbGRl
c3RTaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBvbGRlc3RT
aGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBpZD0iY29udGVudCI+PC9jb250ZW50Pic7
Ci0KLSAgICB2YXIgeW91bmdlclNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotICAgIHlvdW5nZXJTaGFkb3dSb290LmlubmVySFRNTCA9ICc8c2hhZG93IGlkPSJzaGFk
b3ciPjwvc2hhZG93Pic7Ci0KLSAgICB2YXIgeW91bmdlc3RTaGFkb3dSb290ID0gZGl2LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB5b3VuZ2VzdFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
JzxzaGFkb3cgaWQ9InNoYWRvdyI+PC9zaGFkb3c+JzsKLQotICAgIG9sZGVzdFNoYWRvd1Jvb3Qu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnRlbnQnKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsK
LSAgICB5b3VuZ2VyU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc2hhZG93JykucmVzZXRTdHls
ZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0gICAgeW91bmdlc3RTaGFkb3dSb290LmdldEVsZW1lbnRC
eUlkKCdzaGFkb3cnKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwotICAgIHNob3VsZEJl
KCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXVsdGlw
bGUtc2hhZG93LXJvb3RzIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigwLCAwLCAwKSInKTsK
LSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm11bHRpcGxlLXNoYWRvdy1yb290cyIpLmZpcnN0Q2hpbGQpLmJhY2tncm91bmRDb2xv
cicsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlc2V0U3R5bGVJ
bmhlcml0YW5jZVdpdGhNdWx0aXBsZUluc2VydGlvblBvaW50cygpIHsKLSAgICBkZWJ1ZygiVGVz
dCBjYXNlOiBtdWx0aXBsZSBpbnNlcnRpb24gcG9pbnRzIGluIHRoZSBzYW1lIHNoYWRvdyBkb20g
c3VidHJlZS4uIEVhY2ggcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGNoZWNrZWQu
Iik7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtdWx0aXBsZS1pbnNl
cnRpb24tcG9pbnRzJyk7Ci0gICAgdmFyIG9sZGVzdFNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIG9sZGVzdFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250
ZW50IGlkPSJjb250ZW50Ij48L2NvbnRlbnQ+JzsKLQotICAgIHZhciB5b3VuZ2VzdFNoYWRvd1Jv
b3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHlvdW5nZXN0U2hhZG93Um9v
dC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6Zmlyc3QtY2hpbGQiIGlkPSJjb250ZW50
Ij48L2NvbnRlbnQ+PHNoYWRvdyBpZD0ic2hhZG93Ij48L3NoYWRvdz4nOwotCi0gICAgeW91bmdl
c3RTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdjb250ZW50JykucmVzZXRTdHlsZUluaGVyaXRh
bmNlID0gZmFsc2U7Ci0gICAgeW91bmdlc3RTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzaGFk
b3cnKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwotCi0gICAgc2hvdWxkQmUoJ3dpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtdWx0aXBsZS1pbnNl
cnRpb24tcG9pbnRzIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigyNTUsIDIzOCwgMjM4KSIn
KTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm11bHRpcGxlLWluc2VydGlvbi1wb2ludHMiKS5maXJzdENoaWxkKS5iYWNrZ3Jv
dW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtdWx0aXBsZS1pbnNlcnRp
b24tcG9pbnRzIikubGFzdENoaWxkKS5jb2xvcicsICcicmdiKDAsIDAsIDApIicpOwotICAgIHNo
b3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bXVsdGlwbGUtaW5zZXJ0aW9uLXBvaW50cyIpLmxhc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yJywg
JyJyZ2JhKDAsIDAsIDAsIDApIicpOwotfQotCi1mdW5jdGlvbiBydW5UZXN0cygpIHsKLSAgICB0
ZXN0Tm9SZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKLSAgICB0ZXN0UmVzZXRTdHlsZUluaGVyaXRh
bmNlKCk7Ci0gICAgdGVzdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhBdHRyaWJ1dGUoKTsKLSAg
ICB0ZXN0U2hhZG93UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aEF0dHJpYnV0ZSgpOwotICAgIHRl
c3RSZXNldFN0eWxlSW5oZXJpdGFuY2VEeW5hbWljKCk7Ci0gICAgdGVzdFJlc2V0U3R5bGVJbmhl
cml0YW5jZVdpdGhvdXRDcm9zc2luZ1VwcGVyQm91bmRhcnkoKQotICAgIHRlc3RSZXNldFN0eWxl
SW5oZXJpdGFuY2VXaXRoTXVsdGlwbGVTaGFkb3dSb290cygpOwotICAgIHRlc3RSZXNldFN0eWxl
SW5oZXJpdGFuY2VXaXRoTXVsdGlwbGVJbnNlcnRpb25Qb2ludHMoKTsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdC1jYXNlcycpLmlubmVySFRNTCA9ICdET05FJzsKLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KLTxkaXYgaWQ9InRlc3Qt
Y2FzZXMiPgotICA8ZGl2IGlkPSJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZSIgY2xhc3M9InJl
c2V0VGVzdCI+PHNwYW4+Zmlyc3QtY2hpbGQ8L3NwYW4+PC9kaXY+Ci0gIDxkaXYgaWQ9InJlc2V0
LXN0eWxlLWluaGVyaXRhbmNlIiBjbGFzcz0icmVzZXRUZXN0Ij48c3Bhbj5maXJzdC1jaGlsZDwv
c3Bhbj48L2Rpdj4KLSAgPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZHluYW1pYyIg
Y2xhc3M9InJlc2V0VGVzdCI+PHNwYW4+Zmlyc3QtY2hpbGQ8L3NwYW4+PC9kaXY+Ci0gIDxkaXYg
aWQ9InJlc2V0LWJ1dC1ub3QtY3Jvc3MtdXBwZXItYm91bmRhcnkiIGNsYXNzPSJyZXNldFRlc3Qi
PjxzcGFuPmZpcnN0LWNoaWxkPC9zcGFuPjwvZGl2PgotICA8ZGl2IGlkPSJtdWx0aXBsZS1zaGFk
b3ctcm9vdHMiIGNsYXNzPSJyZXNldFRlc3QiPjxzcGFuPmZpcnN0LWNoaWxkPC9zcGFuPjwvZGl2
PgotICA8ZGl2IGlkPSJtdWx0aXBsZS1pbnNlcnRpb24tcG9pbnRzIiBjbGFzcz0icmVzZXRUZXN0
Ij48c3Bhbj5maXJzdC1jaGlsZDwvc3Bhbj48c3Bhbj5sYXN0LWNoaWxkPC9zcGFuPjwvZGl2Pgot
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaW5zZXJ0aW9uLXBvaW50LXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wb2ludC1zaGFkb3ctY3Jh
c2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEgKzAsMCBAQAotUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2luc2VydGlvbi1wb2ludC1zaGFkb3ctY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXNoYWRvdy1jcmFzaC5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5z
ZXJ0aW9uLXBvaW50LXNoYWRvdy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI0ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1mdW5jdGlv
biBydW5UZXN0cygpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKLQot
ICAgIHNoYWRvdzEgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvdzEu
aW5uZXJIVE1MID0gIjxzdHlsZT5kaXYgeyBjb2xvcjogcmVkOyB9PC9zdHlsZT48ZGl2PkhFTExP
PC9kaXY+IjsKLQotICAgIHNoYWRvdzIgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
ICAgIHNoYWRvdzIuaW5uZXJIVE1MID0gIjxkaXY+PHNoYWRvdz48L3NoYWRvdz48L2Rpdj4iOwot
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLSAgICBkb2N1bWVudC5ib2R5LmlubmVySFRN
TCA9ICJQQVNTIjsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
cygpIj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9pbnNlcnRpb24tcG9pbnQtdmlkZW8tY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtdmlkZW8tY3Jhc2gt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvaW5zZXJ0aW9uLXBvaW50LXZpZGVvLWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwyICswLDAgQEAKLVBBU1MgdW5sZXNzIGNyYXNoCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtdmlkZW8tY3Jhc2guaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXZp
ZGVvLWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtdmlkZW8tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotZnVuY3Rpb24gYm9v
bSgpIHsKLSAgICBkaXZOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRpdk5vZGUpOwotICAgIGRpdlNo
YWRvdzEgPSBkaXZOb2RlLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBkaXZTaGFkb3cy
ID0gZGl2Tm9kZS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgCi0gICAgdmlkZW9Ob2Rl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKLSAgICBkaXZTaGFkb3cyLmFwcGVu
ZENoaWxkKHZpZGVvTm9kZSk7Ci0gICAgCi0gICAgc2hhZG93Tm9kZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIHZpZGVvTm9kZS5hcHBlbmRDaGlsZChzaGFkb3dOb2Rl
KTsKLSAgICAKLSAgICB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0hlbGxvJyk7Ci0g
ICAgZGl2U2hhZG93MS5hcHBlbmRDaGlsZCh0ZXh0KTsKLQotICAgIHRlc3RQYXNzZWQoInVubGVz
cyBjcmFzaCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKLX0KLQotd2luZG93Lm9ubG9hZCA9
IGJvb207Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnRzLXdpdGgtc2hhZG93LWRpc2FibGVkLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0
aW9uLXBvaW50cy13aXRoLXNoYWRvdy1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnRzLXdp
dGgtc2hhZG93LWRpc2FibGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSArMCww
IEBACi1QQVNTIHVubGVzcyBjcmFzaApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2luc2VydGlvbi1wb2ludHMtd2l0aC1zaGFkb3ctZGlzYWJsZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50cy13aXRoLXNoYWRv
dy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50cy13aXRoLXNoYWRvdy1kaXNhYmxlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFNoYWRvd0RPTUVu
YWJsZWQoZmFsc2UpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzdW1tYXJ5Pgot
ICA8Y29udGVudD48L2NvbnRlbnQ+Ci08L3N1bW1hcnk+Ci08c3VtbWFyeT4KLSAgPHNoYWRvdz48
L3NoYWRvdz4KLTwvc3VtbWFyeT4KLTxkaXY+UEFTUyB1bmxlc3MgY3Jhc2g8L2Rpdj4KLTwvaGVh
ZD4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnZhbGlkYXRl
LWRpc3RyaWJ1dGlvbi1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9pbnZhbGlkYXRlLWRpc3RyaWJ1dGlvbi1leHBlY3RlZC5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW52YWxpZGF0ZS1k
aXN0cmlidXRpb24tZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxkaXYgaWQ9Imhvc3QiPjxwPnlvdW5n
ZXIgc2hhZG93PC9wPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaW52YWxpZGF0ZS1kaXN0cmlidXRpb24uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW52YWxpZGF0ZS1kaXN0cmlidXRpb24u
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lu
dmFsaWRhdGUtZGlzdHJpYnV0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjMgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLQotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxwPm9sZGVzdCBzaGFkb3c8L3A+IgotCi1zZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewotICAgIHZhciBzaGFkb3dSb290MiA9IGhvc3Qud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotICAgIHNoYWRvd1Jvb3QyLmlubmVySFRNTCA9ICI8cD55b3VuZ2VyIHNoYWRv
dzwvcD4iOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hh
ZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4t
YWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBA
QAotCi1UaGlzIHRlc3RzIHRoYXQgbGF5b3V0IHRlc3RzIGNhbiBhY2Nlc3Mgc2hhZG93IERPTS4K
LQotUEFTUyBzaGFkb3cubm9kZU5hbWUgaXMgIiNkb2N1bWVudC1mcmFnbWVudCIKLVBBU1MgZXhj
ZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCi1QQVNTIGludGVy
bmFscy5zaGFkb3dSb290KHApIGlzIG51bGwKLVBBU1Mgc2hhZG93Lm5vZGVOYW1lIGlzICIjZG9j
dW1lbnQtZnJhZ21lbnQiCi1QQVNTIHNoYWRvdyA9PT0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCkg
aXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlvdXQtdGVzdHMtY2FuLWFj
Y2Vzcy1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1z
aGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGtleWdlbiBpZD0ia2V5cyIg
Lz4KLTxwIGlkPSJwZWFzIiAvPgotPHByZSBpZD0iY29uc29sZSI+Ci1UaGlzIHRlc3RzIHRoYXQg
bGF5b3V0IHRlc3RzIGNhbiBhY2Nlc3Mgc2hhZG93IERPTS4KLQotPC9wcmU+Ci08c2NyaXB0Pgot
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAvLyBNYWtlIGFzc2VydGlvbnMgYWJvdXQgYSBi
dWlsdC1pbiBzaGFkb3cKLSAgICB2YXIga2V5Z2VuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2tleXMnKTsKLSAgICB2YXIgc2hhZG93ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoa2V5Z2VuKTsK
LSAgICBzaG91bGRCZSgnc2hhZG93Lm5vZGVOYW1lJywgJyIjZG9jdW1lbnQtZnJhZ21lbnQiJyk7
Ci0KLSAgICAvLyBTaGFkb3cgcm9vdHMgYXJlbid0IGVsZW1lbnRzLCBzbyBhY2Nlc3NpbmcgdGhl
aXIgc2hhZG93IHNob3VsZAotICAgIC8vIHJhaXNlCi0gICAgdmFyIGV4Y2VwdGlvbkNvZGU7Ci0g
ICAgdHJ5IHsKLSAgICAgICAgaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoc2hhZG93KTsKLSAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgIGV4Y2VwdGlvbkNvZGUgPSBlLmNvZGU7Ci0gICAgfQotICAgIHNo
b3VsZEJlKCdleGNlcHRpb25Db2RlJywgJ0RPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIn
KTsKLQotICAgIC8vIE9yZGluYXJ5IGVsZW1lbnQgc2hvdWxkIG5vdCBoYXZlIHNoYWRvdwotICAg
IHZhciBwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BlYXMnKTsKLSAgICBzaG91bGRCZSgn
aW50ZXJuYWxzLnNoYWRvd1Jvb3QocCknLCAnbnVsbCcpOwotCi0gICAgLy8gQ2FuIGJsZXNzIG9y
ZGluYXJ5IGVsZW1lbnRzIHdpdGggc2hhZG93cwotICAgIHNoYWRvdyA9IGludGVybmFscy5lbnN1
cmVTaGFkb3dSb290KHApOwotICAgIHNob3VsZEJlKCdzaGFkb3cubm9kZU5hbWUnLCAnIiNkb2N1
bWVudC1mcmFnbWVudCInKTsKLSAgICBzaG91bGRCZSgnc2hhZG93ID09PSBpbnRlcm5hbHMuc2hh
ZG93Um9vdChwKScsICd0cnVlJyk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9saW5rLWluLXNoYWRvdy10cmVlLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGlu
ay1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9saW5rLWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSw4ICswLDAgQEAKLVBBU1MgY29tcHV0ZWRCYWNrZ3JvdW5kQ29s
b3Ioc3BhbkluU2hhZG93KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRCYWNr
Z3JvdW5kQ29sb3Ioc3BhbkluSG9zdENoaWxkcmVuKSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBB
U1MgY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3Ioc3Bhbk91dHNpZGVPZlNoYWRvdykgaXMgInJnYmEo
MCwgMCwgMCwgMCkiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLXRlaGVwZXJvCi10ZWhlcGVybwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2xpbmstaW4tc2hhZG93LXRyZWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvbGluay1pbi1zaGFkb3ctdHJlZS5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGluay1pbi1zaGFkb3ctdHJlZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJjb250YWluZXIiPjxzcGFuIGlkPSJpbi1ob3N0LWNo
aWxkcmVuIiBjbGFzcz0ia290b3JpIiBocmVmPSIvIj50ZWhlcGVybzwvc3Bhbj48L2Rpdj4KLTxk
aXY+PHNwYW4gaWQ9Im91dHNpZGUtb2Ytc2hhZG93IiBjbGFzcz0ia290b3JpIiBocmVmPSIvIj50
ZWhlcGVybzwvc3Bhbj48L2Rpdj4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gY29tcHV0ZWRCYWNr
Z3JvdW5kQ29sb3IoZWxlbSkgewotICAgIHZhciBzdHlsZSA9IGRvY3VtZW50LmRlZmF1bHRWaWV3
LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgJycpOwotICAgIHJldHVybiBzdHlsZS5iYWNrZ3JvdW5k
Q29sb3I7Ci19Ci0KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
dGFpbmVyJyk7Ci0KLXZhciBzaGFkb3dSb290ID0gY29udGFpbmVyLndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLQotdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7Ci1s
aW5rLnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTsKLWxpbmsuc2V0QXR0cmlidXRl
KCdocmVmJywgJ3Jlc291cmNlcy9saW5rLWluLXNoYWRvdy1zdHlsZS5jc3MnKTsKLQotdmFyIHNw
YW5JblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLXNwYW5JblNoYWRv
dy5pbm5lckhUTUwgPSAndGVoZXBlcm8nOwotc3BhbkluU2hhZG93LmNsYXNzTmFtZSA9ICdrb3Rv
cmknOwotCi1zaGFkb3dSb290LmFwcGVuZENoaWxkKGxpbmspOwotc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChzcGFuSW5TaGFkb3cpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdjb250ZW50JykpOwotCi12YXIgc3BhbkluSG9zdENoaWxkcmVuID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2luLWhvc3QtY2hpbGRyZW4nKTsKLXZhciBzcGFuT3V0c2lkZU9m
U2hhZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHNpZGUtb2Ytc2hhZG93Jyk7Ci0K
LXNob3VsZEJlKCdjb21wdXRlZEJhY2tncm91bmRDb2xvcihzcGFuSW5TaGFkb3cpJywgJyJyZ2Jh
KDAsIDAsIDAsIDApIicpOwotc2hvdWxkQmUoJ2NvbXB1dGVkQmFja2dyb3VuZENvbG9yKHNwYW5J
bkhvc3RDaGlsZHJlbiknLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci1zaG91bGRCZSgnY29tcHV0
ZWRCYWNrZ3JvdW5kQ29sb3Ioc3Bhbk91dHNpZGVPZlNoYWRvdyknLCAnInJnYmEoMCwgMCwgMCwg
MCkiJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlw
bGUtc2hhZG93cm9vdC1hZG9wdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtYWRvcHQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlw
bGUtc2hhZG93cm9vdC1hZG9wdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAg
KzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBtdWx0aXBsZSBzaGFkb3cgdHJlZXMgY2FuIGJlIG1v
dmVkIGludG8gYW5vdGhlciBkb2N1bWVudC4KLQotUEFTUyBkb2N1bWVudCBpcyBzcjEub3duZXJE
b2N1bWVudAotUEFTUyBzcjEub3duZXJEb2N1bWVudCBpcyBzcjIub3duZXJEb2N1bWVudAotUEFT
UyBzcjEub3duZXJEb2N1bWVudCBpcyBpZnJhbWVEb2MKLVBBU1Mgc3IyLm93bmVyRG9jdW1lbnQg
aXMgaWZyYW1lRG9jCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRv
d3Jvb3QtYWRvcHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvbXVsdGlwbGUtc2hhZG93cm9vdC1hZG9wdC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1hZG9wdC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgY2hlY2tzIG11bHRpcGxl
IHNoYWRvdyB0cmVlcyBjYW4gYmUgbW92ZWQgaW50byBhbm90aGVyIGRvY3VtZW50LjwvcD4KLTxw
cmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08aWZyYW1lIGlkPSJpZnJhbWUiPjwvaWZyYW1lPgot
Ci08c2NyaXB0PgotZnVuY3Rpb24gZG9UZXN0KCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBzcjEgPSB0YXJnZXQud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotICAgIHNyMiA9IHRhcmdldC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0K
LSAgICBzaG91bGRCZSgnZG9jdW1lbnQnLCAnc3IxLm93bmVyRG9jdW1lbnQnKTsKLSAgICBzaG91
bGRCZSgnc3IxLm93bmVyRG9jdW1lbnQnLCAnc3IyLm93bmVyRG9jdW1lbnQnKTsKLQotICAgIHZh
ciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJyk7Ci0gICAgaWZyYW1l
RG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDsKLSAgICBpZnJhbWVEb2MuYm9keS5hcHBlbmRD
aGlsZCh0YXJnZXQpOwotCi0gICAgc2hvdWxkQmUoJ3NyMS5vd25lckRvY3VtZW50JywgJ2lmcmFt
ZURvYycpOwotICAgIHNob3VsZEJlKCdzcjIub3duZXJEb2N1bWVudCcsICdpZnJhbWVEb2MnKTsK
LX0KLQotZG9UZXN0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L211bHRpcGxlLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNo
YWRvd3Jvb3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAKLVRo
aXMgdGVzdCBlbnN1cmUgdGhhdCB0aGUgbXVsdGlwbGUgc2hhZG93IHJvb3QgaXMgYXZhaWxhYmxl
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBpbnRlcm5hbHMuc2hhZG93
Um9vdChkaXYpIGlzIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBzaGFk
b3dSb290MQotUEFTUyBpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QxKSBpcyBu
dWxsCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KGRpdikgaXMgc2hhZG93Um9vdDIKLVBBU1Mg
aW50ZXJuYWxzLm9sZGVyU2hhZG93Um9vdChzaGFkb3dSb290MikgaXMgc2hhZG93Um9vdDEKLVBB
U1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBzaGFkb3dSb290MwotUEFTUyBpbnRlcm5h
bHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QzKSBpcyBzaGFkb3dSb290MgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJlbmRlcmluZy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxl
LXNoYWRvd3Jvb3QtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtcmVuZGVyaW5n
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCwwIEBACi10ZXN0RG91Ymxl
U2hhZG93U3VidHJlZXMKLVBBU1MKLXRlc3RUcmlwbGVTaGFkb3dTdWJ0cmVlcwotUEFTUwotdGVz
dFNoYWRvd1N1YnRyZWVzV2l0aENvbnRlbnQKLVBBU1MKLXRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhD
b250ZW50SW5PbGRlclN1YnRyZWUKLVBBU1MKLXRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhEeW5hbWlj
Q3JlYXRpb24KLVBBU1MKLXRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhEeW5hbWljQ3JlYXRpb25PdXRP
ZlRyZWUKLVBBU1MKLVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJlbmRlcmluZy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJlbmRlcmlu
Zy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
bXVsdGlwbGUtc2hhZG93cm9vdC1yZW5kZXJpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwx
NjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyog
cmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0u
Y29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLS5zcGFuIHsKLSAgICBk
aXNwbGF5OiBib3hlZC1pbmxpbmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0gICAgYm9yZGVyOiBzb2xp
ZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRy
aXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIHRlc3RGdW5jcyA9IFtdOwotCi10ZXN0
RnVuY3MucHVzaChmdW5jdGlvbiB0ZXN0RG91YmxlU2hhZG93U3VidHJlZXMoY2FsbElmRG9uZSkg
ewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJI
VE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5BRlRF
Ujwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElHSFQn
KSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAg
c3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFOiBTSE9VTEQgTk9UIEJF
IFJFTkRFUkVEJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01J
RDogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLQotICAgIHZh
ciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0FGVEVSJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVh
bC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIGNhbGxJZkRvbmUoKTsKLX0p
OwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiB0ZXN0VHJpcGxlU2hhZG93U3VidHJlZXMoY2Fs
bElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVy
JykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48
c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgnTElHSFQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFOiBTSE9V
TEQgTk9UIEJFIFJFTkRFUkVEJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0
aFRleHQoJ01JRDogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLSAgICBzcjEuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsK
LQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkU6IFNIT1VMRCBOT1QgQkUgUkVO
REVSRUQnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEOiBT
SE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0FGVEVSOiBTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotCi0gICAgdmFyIHNy
MyA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMy5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRScpKTsKLSAgICBzcjMuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0gICAgc3IzLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnQUZURVInKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNv
bnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0K
LXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhDb250ZW50KGNh
bGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5l
cicpLmlubmVySFRNTCA9ICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdIVDwvc3Bh
bj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnTElHSFQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFOiBT
SE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ01JRDogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLSAgICBzcjEuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcp
KTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBz
cjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IyLmFw
cGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJykpOwot
ICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSJykpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChy
b290KTsKLQotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlv
biB0ZXN0U2hhZG93U3VidHJlZXNXaXRoQ29udGVudEluT2xkZXJTdWJ0cmVlKGNhbGxJZkRvbmUp
IHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVy
SFRNTCA9ICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFu
PkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdM
SUdIVCAxJywgJ2MxJykpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCdMSUdIVCAyJywgJ2MyJykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9S
RTogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRl
Q29udGVudFdpdGhTZWxlY3QoJy5jMicsICdGQUxMQkFDSycpKTsKLSAgICBzcjEuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsK
LQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IyLmFwcGVu
ZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnLCAnRkFMTEJBQ0snKSk7Ci0gICAg
c3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVInKSk7Ci0KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3Qp
OwotCi0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHRl
c3RTaGFkb3dTdWJ0cmVlc1dpdGhEeW5hbWljQ3JlYXRpb24oY2FsbElmRG9uZSkgewotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxk
aXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwv
c3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgnTElHSFQgMScsICdjMScpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgnTElHSFQgMicsICdjMicpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdCRUZPUkU6IFNIT1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7Ci0gICAgc3IxLmFwcGVuZENo
aWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLIDEnKSk7Ci0gICAg
c3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVI6IFNIT1VMRCBOT1QgQkUg
UkVOREVSRUQnKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRh
aW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgc2V0VGltZW91dCgoZnVuY3Rpb24oY2Fs
bElmRG9uZSwgcm9vdCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzcjIgPSBy
b290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICAgICAgc3IyLmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFJykpOwotICAgICAgICBzcjIuYXBwZW5kQ2hpbGQoY3Jl
YXRlQ29udGVudFdpdGhTZWxlY3QoJ3NwYW4nLCAnRkFMTEJBQ0sgMicpKTsKLSAgICAgICAgc3Iy
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVInKSk7Ci0KLSAgICAgICAgY2Fs
bElmRG9uZSgpOwotICAgIH07fSkoY2FsbElmRG9uZSwgcm9vdCksIDApOwotfSk7Ci0KLXRlc3RG
dW5jcy5wdXNoKGZ1bmN0aW9uIHRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhEeW5hbWljQ3JlYXRpb25P
dXRPZlRyZWUoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFu
PkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rp
dj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElHSFQgMScsICdjMScpKTsK
LSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElHSFQgMicsICdjMicp
KTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBz
cjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkU6IFNIT1VMRCBOT1QgQkUg
UkVOREVSRUQnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0
KCdzcGFuJywgJ0ZBTExCQUNLIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgnQUZURVI6IFNIT1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7Ci0KLSAgICBzZXRUaW1l
b3V0KChmdW5jdGlvbihjYWxsSWZEb25lLCByb290KSB7IHJldHVybiBmdW5jdGlvbigpIHsKLSAg
ICAgICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgICAgICBz
cjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgICAgIHNy
Mi5hcHBlbmRDaGlsZChjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdGQUxMQkFDSyAy
JykpOwotICAgICAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUicp
KTsKLQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicp
LmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICB9O30pKGNh
bGxJZkRvbmUsIHJvb3QpLCAwKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9ImRvVGVzdCh0ZXN0RnVuY3MpIj4KLQotPGRpdiBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xh
c3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08ZGl2IGlkPSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0i
Y29udGFpbmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93
cm9vdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0
aXBsZS1zaGFkb3dyb290Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRo
ZSBtdWx0aXBsZSBzaGFkb3cgcm9vdCBpcyBhdmFpbGFibGUuIik7Ci0KLXZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9v
dChkaXYpIiwgIm51bGwiKTsKLXZhciBzaGFkb3dSb290MSA9IGRpdi53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSIsICJzaGFkb3dS
b290MSIpOwotc2hvdWxkQmUoImludGVybmFscy5vbGRlclNoYWRvd1Jvb3Qoc2hhZG93Um9vdDEp
IiwgIm51bGwiKTsKLQotdmFyIHNoYWRvd1Jvb3QyID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKQotc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGRpdikiLCAic2hhZG93Um9vdDIi
KTsKLXNob3VsZEJlKCJpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QyKSIsICJz
aGFkb3dSb290MSIpOwotCi12YXIgc2hhZG93Um9vdDMgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGRpdikiLCAic2hhZG93Um9v
dDMiKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QzKSIs
ICJzaGFkb3dSb290MiIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L211bHRpcGxlLXNoYWRvd3Jvb3RzLXdpdGgtZW1wdHktc3R5bGVzLWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRv
d3Jvb3RzLXdpdGgtZW1wdHktc3R5bGVzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290cy13aXRo
LWVtcHR5LXN0eWxlcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGRpdiBpZD0ib3V0cHV0Ij4KLTxk
aXYgaWQ9ImYiPjxkaXY+SGVsbG8gZnJvbSBmb28uPC9kaXY+PC9kaXY+Ci08ZGl2IGlkPSJiIj48
ZGl2PkhlbGxvIGZyb20gYmFyLjwvZGl2PjxkaXY+SGVsbG8gZnJvbSB6b3QuPC9kaXY+PC9kaXY+
Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9tdWx0aXBsZS1zaGFkb3dyb290cy13aXRoLWVtcHR5LXN0eWxlcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290cy13
aXRoLWVtcHR5LXN0eWxlcy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdHMtd2l0aC1lbXB0eS1zdHlsZXMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGJvZHk+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgewotICAgIHZh
ciBvdXRwdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0Iik7Ci0gICAgLy8gMS4g
bWFrZSBhbiBlbGVtZW50IGFuZCBpbnNlcnQgaXQgaW50byB0aGUgZG9jdW1lbnQuIAotICAgIC8v
IDIuIGNyZWF0ZSBhIHNoYWRvdyByb290IHRoYXQgY29udGFpbnMgYSBzdHlsZSBlbGVtZW50Lgot
ICAgIHZhciBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgb3V0cHV0LmFw
cGVuZENoaWxkKGYpOwotICAgIHZhciBmcyA9IGYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
ICAgIGZzLmlubmVySFRNTCA9ICI8c3R5bGU+PC9zdHlsZT48ZGl2PkhlbGxvIGZyb20gZm9vLjwv
ZGl2PiI7Ci0gICAgLy8KLSAgICAvLyAzLiBtYWtlIGFub3RoZXIgZWxlbWVudC4KLSAgICAvLyA0
LiBjcmVhdGUgYSBzaGFkb3cgcm9vdCBvbiB0aGlzIGVsZW1lbnQgdGhhdCBjb250YWlucyBhIHN0
eWxlIGVsZW1lbnQuCi0gICAgLy8gNS4gY3JlYXRlIGFub3RoZXIgc2hhZG93IHJvb3Qgb24gdGhl
IGVsZW1lbnQuCi0gICAgLy8gNi4gaW5zZXJ0IHRoZSBlbGVtZW50IGludG8gdGhlIGRvY3VtZW50
LgotICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdmFyIGJz
MCA9IGIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIGJzMC5pbm5lckhUTUwgPSAiPHN0
eWxlPjwvc3R5bGU+PGRpdj5IZWxsbyBmcm9tIGJhci48L2Rpdj4iOwotICAgIHZhciBiczEgPSBi
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBiczEuaW5uZXJIVE1MID0gIjxzaGFkb3c+
PC9zaGFkb3c+PGRpdj5IZWxsbyBmcm9tIHpvdC48L2Rpdj4iOwotICAgIC8vIE5PVEU6IG11c3Qg
YWRkIHRvIGRvbSBhZnRlciBhZGRpbmcgc2hhZG93Um9vdCB0byBvYnNlcnZlIHByb2JsZW0uCi0g
ICAgb3V0cHV0LmFwcGVuZENoaWxkKGIpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbmVzdGVkLXJlcHJv
amVjdGlvbi1pbmNvbnNpc3RlbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9uZXN0ZWQtcmVwcm9qZWN0aW9uLWluY29uc2lzdGVudC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9uZXN0ZWQtcmVwcm9qZWN0aW9uLWluY29uc2lzdGVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMjYgKzAsMCBAQAotV2hlbiB3ZSBtb2RpZnkgaG9zdCBjaGlsZHJlbiBhbmQg
Z2V0IGRpc3RyaWJ1dGVkIG5vZGVzIGluIG5lc3RlZCBTaGFkb3dET00sIGRpc3RyaWJ1dGlvbiBz
aG91bGQgb2NjdXIgZnJvbSB0aGUgaG9zdC4KLQotQWRkcyBhIGRpdiB0byBTaGFkb3dSb290Lgot
UEFTUyBjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5sZW5ndGggaXMgMgotUEFTUyBjb250
ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDApIGlzIGRpdjEKLVBBU1MgY29udGVudC5n
ZXREaXN0cmlidXRlZE5vZGVzKCkuaXRlbSgxKSBpcyBhZGRlZERpdgotCi1BZGRzIGEgZGl2IGFz
IGZhbGxiYWNrIGNvbnRlbnQKLVBBU1MgY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkubGVu
Z3RoIGlzIDMKLVBBU1MgY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkuaXRlbSgwKSBpcyBk
aXYxCi1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0ZW0oMSkgaXMgYW5vdGhl
ckFkZGVkRGl2Ci1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0ZW0oMikgaXMg
YWRkZWREaXYKLQotUmVtb3ZlcyB0aGUgZmlyc3QgYWRkZWQgZGl2Ci1QQVNTIGNvbnRlbnQuZ2V0
RGlzdHJpYnV0ZWROb2RlcygpLmxlbmd0aCBpcyAyCi1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0
ZWROb2RlcygpLml0ZW0oMCkgaXMgZGl2MQotUEFTUyBjb250ZW50LmdldERpc3RyaWJ1dGVkTm9k
ZXMoKS5pdGVtKDEpIGlzIGFub3RoZXJBZGRlZERpdgotCi1SZW1vdmVzIHRoZSBzZWNvbmQgYWRk
ZWQgZGl2Ci1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLmxlbmd0aCBpcyAxCi1Q
QVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0ZW0oMCkgaXMgZGl2MQotCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25lc3RlZC1yZXByb2plY3Rpb24taW5jb25zaXN0ZW50
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25lc3RlZC1y
ZXByb2plY3Rpb24taW5jb25zaXN0ZW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9uZXN0ZWQtcmVwcm9qZWN0aW9uLWluY29uc2lzdGVudC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDczICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+PGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLQotPHA+V2hlbiB3ZSBtb2RpZnkgaG9zdCBjaGlsZHJlbiBhbmQgZ2V0IGRp
c3RyaWJ1dGVkIG5vZGVzIGluIG5lc3RlZCBTaGFkb3dET00sIGRpc3RyaWJ1dGlvbiBzaG91bGQg
b2NjdXIgZnJvbSB0aGUgaG9zdC48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRp
diBpZD0iaG9zdDEiPjwvZGl2PgotPC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQot
PHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgc2hhZG93Um9vdDExID0gaG9z
dDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDExLmlubmVySFRNTCA9ICc8
ZGl2PjwvZGl2PjxzaGFkb3c+PC9zaGFkb3c+JzsKLXZhciBkaXYxID0gc2hhZG93Um9vdDExLmZp
cnN0Q2hpbGQ7Ci12YXIgc2hhZG93MSA9IHNoYWRvd1Jvb3QxMS5sYXN0Q2hpbGQ7Ci0KLXZhciBz
aGFkb3dSb290MTIgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290
MTIuaW5uZXJIVE1MID0gJzxkaXY+PHNoYWRvdz48L3NoYWRvdz48L2Rpdj4nOwotdmFyIGhvc3Qy
ID0gc2hhZG93Um9vdDEyLmZpcnN0Q2hpbGQ7Ci0KLXZhciBzaGFkb3dSb290MjEgPSBob3N0Mi53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MjEuaW5uZXJIVE1MID0gJzxjb250
ZW50PjwvY29udGVudD4nOwotCi12YXIgc2hhZG93Um9vdDIyID0gaG9zdDIud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIyLmlubmVySFRNTCA9ICc8ZGl2PjxzaGFkb3c+PC9z
aGFkb3c+PC9kaXY+JzsKLXZhciBob3N0MyA9IHNoYWRvd1Jvb3QyMi5maXJzdENoaWxkOwotCi12
YXIgc2hhZG93Um9vdDMxID0gaG9zdDMud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93
Um9vdDMxLmlubmVySFRNTCA9ICc8Y29udGVudD48L2NvbnRlbnQ+JzsKLQotdmFyIGNvbnRlbnQg
PSBzaGFkb3dSb290MzEuZmlyc3RDaGlsZDsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAg
ICBkZWJ1ZygnQWRkcyBhIGRpdiB0byBTaGFkb3dSb290LicpOwotICAgIGFkZGVkRGl2ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgc2hhZG93Um9vdDExLmFwcGVuZENoaWxk
KGFkZGVkRGl2KTsKLSAgICBzaG91bGRCZSgnY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCku
bGVuZ3RoJywgJzInKTsKLSAgICBzaG91bGRCZSgnY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVz
KCkuaXRlbSgwKScsICdkaXYxJyk7Ci0gICAgc2hvdWxkQmUoJ2NvbnRlbnQuZ2V0RGlzdHJpYnV0
ZWROb2RlcygpLml0ZW0oMSknLCAnYWRkZWREaXYnKTsKLSAgICBkZWJ1ZygnJyk7Ci0KLQotICAg
IGRlYnVnKCdBZGRzIGEgZGl2IGFzIGZhbGxiYWNrIGNvbnRlbnQnKTsKLSAgICBhbm90aGVyQWRk
ZWREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBzaGFkb3cxLmFwcGVu
ZENoaWxkKGFub3RoZXJBZGRlZERpdik7Ci0gICAgc2hvdWxkQmUoJ2NvbnRlbnQuZ2V0RGlzdHJp
YnV0ZWROb2RlcygpLmxlbmd0aCcsICczJyk7Ci0gICAgc2hvdWxkQmUoJ2NvbnRlbnQuZ2V0RGlz
dHJpYnV0ZWROb2RlcygpLml0ZW0oMCknLCAnZGl2MScpOwotICAgIHNob3VsZEJlKCdjb250ZW50
LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDEpJywgJ2Fub3RoZXJBZGRlZERpdicpOwotICAg
IHNob3VsZEJlKCdjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDIpJywgJ2FkZGVk
RGl2Jyk7Ci0gICAgZGVidWcoJycpOwotCi0gICAgZGVidWcoJ1JlbW92ZXMgdGhlIGZpcnN0IGFk
ZGVkIGRpdicpOwotICAgIGFkZGVkRGl2LnJlbW92ZSgpOwotICAgIHNob3VsZEJlKCdjb250ZW50
LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5sZW5ndGgnLCAnMicpOwotICAgIHNob3VsZEJlKCdjb250
ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDApJywgJ2RpdjEnKTsKLSAgICBzaG91bGRC
ZSgnY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkuaXRlbSgxKScsICdhbm90aGVyQWRkZWRE
aXYnKTsKLSAgICBkZWJ1ZygnJyk7Ci0KLSAgICBkZWJ1ZygnUmVtb3ZlcyB0aGUgc2Vjb25kIGFk
ZGVkIGRpdicpOwotICAgIGFub3RoZXJBZGRlZERpdi5yZW1vdmUoKTsKLSAgICBzaG91bGRCZSgn
Y29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkubGVuZ3RoJywgJzEnKTsKLSAgICBzaG91bGRC
ZSgnY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkuaXRlbSgwKScsICdkaXYxJyk7Ci0gICAg
ZGVidWcoJycpOwotCi0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICIiOwotICAgIGZpbmlzaEpT
VGVzdCgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tcmVuZGVyZXJzLWZvci1saWdodC1jaGlsZHJlbi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25v
LXJlbmRlcmVycy1mb3ItbGlnaHQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tcmVuZGVyZXJzLWZvci1saWdo
dC1jaGlsZHJlbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1D
aGlsZHJlbiBvZiBhbiBlbGVtZW50IGFyZSBuZXZlciByZW5kZXJlZCBpcyBpdCBoYXMgYSBzaGFk
b3cgRE9NIHN1YnRyZWUuCi1TaG91bGQgbm90IHNlZSB0aGUgd29yZCBGQUlMIGJlbG93LgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tcmVuZGVyZXJzLWZvci1saWdodC1j
aGlsZHJlbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9u
by1yZW5kZXJlcnMtZm9yLWxpZ2h0LWNoaWxkcmVuLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9uby1yZW5kZXJlcnMtZm9yLWxpZ2h0LWNoaWxk
cmVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpCi17
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2tleWdlbicpWzBdLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdGQUlMJykpOwotfSwgZmFsc2UpOwotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotQ2hpbGRyZW4gb2YgYW4gZWxlbWVudCBhcmUgbmV2ZXIg
cmVuZGVyZWQgaXMgaXQgaGFzIGEgc2hhZG93IERPTSBzdWJ0cmVlLjxicj4KLVNob3VsZCBub3Qg
c2VlIHRoZSB3b3JkIEZBSUwgYmVsb3cuPGJyPgotPGtleWdlbj48L2tleWdlbj4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvbm8tc3R5bGUtc2hhcmluZy13aXRoLWRpc3RyaWJ1dGVkLW5vZGVzLWV4
cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25v
LXN0eWxlLXNoYXJpbmctd2l0aC1kaXN0cmlidXRlZC1ub2Rlcy1leHBlY3RlZC5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tc3R5bGUtc2hh
cmluZy13aXRoLWRpc3RyaWJ1dGVkLW5vZGVzLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzQgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxl
PgotLmNvbnRhaW5lciB7Ci0gICAgYm9yZGVyOjFweCBzb2xpZCBibGFjazsKLX0KLS5jb250YWlu
ZXI+Lm51bWJlciB7Ci0gICAgY29sb3I6cmVkOwotfQotLmNvbnRhaW5lcj4ubGV0dGVycyB7Ci0g
ICAgY29sb3I6Ymx1ZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9InRl
c3QxIj4KLSAgPGRpdiBjbGFzcz0ibnVtYmVyIj4xPC9kaXY+Ci0gIDxkaXYgY2xhc3M9ImxldHRl
cnMiPlFVWDwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgaWQ9InRlc3QyIj4KLSAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNzPSJudW1iZXIiPjxkaXYgY2xhc3M9Im51bWJlciI+
MjwvZGl2PjwvZGl2PgotICAgIDxkaXYgY2xhc3M9ImxldHRlcnMiPjxkaXYgY2xhc3M9ImxldHRl
cnMiPkZPTzwvZGl2PjwvZGl2PgotICA8L2Rpdj4KLTwvZGl2PgotCi08ZGl2IGlkPSJ0ZXN0MyI+
Ci0gIDxkaXYgY2xhc3M9Im51bWJlciI+MzwvZGl2PgotICA8ZGl2IGNsYXNzPSJsZXR0ZXJzIj5C
QVI8L2Rpdj4KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L25vLXN0eWxlLXNoYXJpbmctd2l0aC1kaXN0cmlidXRlZC1ub2Rlcy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9uby1zdHlsZS1zaGFy
aW5nLXdpdGgtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vLXN0eWxlLXNoYXJpbmctd2l0aC1kaXN0cmlidXRl
ZC1ub2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICB2
YXIgc2hhZG93ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Rlc3QyJykud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0
ZW1wbGF0ZScpOwotICBzaGFkb3cuYXBwZW5kQ2hpbGQodGVtcGxhdGUuY29udGVudCk7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTx0ZW1wbGF0ZT4K
LSAgPHN0eWxlPgotICAgIC5jb250YWluZXIgewotICAgICAgYm9yZGVyOjFweCBzb2xpZCBibGFj
azsKLSAgICB9Ci0gICAgLmNvbnRhaW5lcj4ubnVtYmVyIHsKLSAgICAgIGNvbG9yOnJlZDsKLSAg
ICB9Ci0gICAgLmNvbnRhaW5lcj4ubGV0dGVycyB7Ci0gICAgICBjb2xvcjpibHVlOwotICAgIH0K
LSAgPC9zdHlsZT4KLSAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNzPSJu
dW1iZXIiPjxjb250ZW50IHNlbGVjdD0iLm51bWJlciI+PC9jb250ZW50PjwvZGl2PgotICAgIDxk
aXYgY2xhc3M9ImxldHRlcnMiPjxjb250ZW50IHNlbGVjdD0iLmxldHRlcnMiPjwvY29udGVudD48
L2Rpdj4KLSAgPC9kaXY+Ci08L3RlbXBsYXRlPgotCi08ZGl2IGlkPSJ0ZXN0MSI+Ci0gIDxkaXYg
Y2xhc3M9Im51bWJlciI+MTwvZGl2PgotICA8ZGl2IGNsYXNzPSJsZXR0ZXJzIj5RVVg8L2Rpdj4K
LTwvZGl2PgotCi08ZGl2IGlkPSJ0ZXN0MiI+Ci0gIDxkaXYgY2xhc3M9Im51bWJlciI+MjwvZGl2
PgotICA8ZGl2IGNsYXNzPSJsZXR0ZXJzIj5GT088L2Rpdj4KLTwvZGl2PgotCi08ZGl2IGlkPSJ0
ZXN0MyI+Ci0gIDxkaXYgY2xhc3M9Im51bWJlciI+MzwvZGl2PgotICA8ZGl2IGNsYXNzPSJsZXR0
ZXJzIj5CQVI8L2Rpdj4KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L25vZGV0eXBlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm9kZXR5cGUtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm9kZXR5cGUtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLQotVGhpcyB0ZXN0cyB0aGUg
c2hhZG93IGhvc3QncyBhbmQgc2hhZG93IHJvb3QncyBub2RlVHlwZS4KLVBBU1Mga2V5Z2VuLm5v
ZGVUeXBlIGlzIE5vZGUuRUxFTUVOVF9OT0RFCi1QQVNTIHNoYWRvdy5ub2RlVHlwZSBpcyBOb2Rl
LkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUKLVBBU1Mgc2hhZG93Q2hpbGQgaXMgbm9uLW51bGwuCi1Q
QVNTIHNoYWRvd0NoaWxkLm5vZGVUeXBlICE9IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSBp
cyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGV0eXBlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGV0eXBlLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ub2RldHlwZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08a2V5Z2VuIGlkPSJrZXlzIiAvPgotPHByZSBp
ZD0iY29uc29sZSI+Ci1UaGlzIHRlc3RzIHRoZSBzaGFkb3cgaG9zdCdzIGFuZCBzaGFkb3cgcm9v
dCdzIG5vZGVUeXBlLgotPC9wcmU+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAgICAg
IHZhciBrZXlnZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2V5cycpOwotICAgICAgICB2
YXIgc2hhZG93ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoa2V5Z2VuKTsKLSAgICAgICAgdmFyIHNo
YWRvd0NoaWxkID0gc2hhZG93LmZpcnN0Q2hpbGQ7Ci0gICAgICAgIHNob3VsZEJlKCdrZXlnZW4u
bm9kZVR5cGUnLCAnTm9kZS5FTEVNRU5UX05PREUnKTsKLSAgICAgICAgc2hvdWxkQmUoJ3NoYWRv
dy5ub2RlVHlwZScsICdOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUnKTsKLSAgICAgICAgc2hv
dWxkQmVOb25OdWxsKCdzaGFkb3dDaGlsZCcpOwotICAgICAgICBzaG91bGRCZVRydWUoJ3NoYWRv
d0NoaWxkLm5vZGVUeXBlICE9IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERScpOwotICAgIH0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L29mZnNldC1wYXJlbnQtZG9lcy1ub3QtbGVhay11YS1zaGFkb3ctZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9vZmZzZXQtcGFy
ZW50LWRvZXMtbm90LWxlYWstdWEtc2hhZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29mZnNldC1wYXJlbnQtZG9lcy1ub3Qt
bGVhay11YS1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAg
QEAKLW9mZnNldFBhcmVudCBzaG91bGQgbm90IGxlYWsgbm9kZXMgaW4gdXNlciBhZ2VudCBTaGFk
b3cgRE9NLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBjaGlsZC5vZmZz
ZXRQYXJlbnQgaXMgc2hhZG93LnBvc2l0aW9uZWRFbGVtZW50Ci1QQVNTIGNoaWxkLm9mZnNldFBh
cmVudCBpcyBjb250YWluZXIKLVBBU1MgY2hpbGQub2Zmc2V0UGFyZW50IGlzIG51bGwKLVBBU1Mg
Y2hpbGQub2Zmc2V0UGFyZW50IGlzIGNvbnRhaW5lcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9vZmZzZXQtcGFyZW50LWRvZXMtbm90LWxlYWstdWEtc2hhZG93Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29mZnNldC1wYXJlbnQtZG9lcy1ub3Qt
bGVhay11YS1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L29mZnNldC1wYXJlbnQtZG9lcy1ub3QtbGVhay11YS1zaGFkb3cuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+
Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij48L2Rpdj4K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbignb2Zmc2V0UGFyZW50IHNob3VsZCBub3QgbGVhayBub2Rl
cyBpbiB1c2VyIGFnZW50IFNoYWRvdyBET00uJyk7Ci0KLWlmICghd2luZG93LmludGVybmFscykK
LSAgICBmYWlsKCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscyB0byBtYW5pcHVs
YXRlIHVzZXIgYWdlbnQgU2hhZG93IERPTS4nKTsKLQotZnVuY3Rpb24gY29uZmlndXJlU2hhZG93
Um9vdChzaGFkb3cpIHsKLSAgICBzaGFkb3cuaW5uZXJIVE1MID0KLSAgICAgICAgJzxkaXYgaWQ9
IngiIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij48Y29udGVudD48L2NvbnRlbnQ+PC9kaXY+
JzsKLSAgICBzaGFkb3cucG9zaXRpb25lZEVsZW1lbnQgPSBzaGFkb3cucXVlcnlTZWxlY3Rvcign
I3gnKTsKLX0KLQotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjb250
YWluZXInKTsKLQotLy8gVGVzdCB0aGF0IG9mZnNldFBhcmVudCB3b3JrcyBpbiBhdXRob3IgU2hh
ZG93IERPTQotdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLWNvbnRh
aW5lci5hcHBlbmRDaGlsZChob3N0KTsKLXZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotaG9zdC5hcHBlbmRDaGlsZChjaGlsZCk7Ci12YXIgc2hhZG93ID0gaG9zdC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1jb25maWd1cmVTaGFkb3dSb290KHNoYWRvdyk7Ci1z
aG91bGRCZSgnY2hpbGQub2Zmc2V0UGFyZW50JywgJ3NoYWRvdy5wb3NpdGlvbmVkRWxlbWVudCcp
OwotCi0vLyBUZXN0IHRoYXQgb2Zmc2V0UGFyZW50IHdvcmtzICd0aHJvdWdoJyBTaGFkb3cgRE9N
IHdoZW4gdGhlcmUgaXMgbm8KLS8vIHBvc2l0aW9uZWQgYW5jZXN0b3IgaW4gdXNlciBhZ2VudCBT
aGFkb3cgRE9NCi1zaGFkb3cucG9zaXRpb25lZEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdzdHls
ZScpOwotc2hvdWxkQmUoJ2NoaWxkLm9mZnNldFBhcmVudCcsICdjb250YWluZXInKTsKLQotLy8g
VGVzdCB0aGF0IHdoZW4gdGhlIG9mZnNldFBhcmVudCBpcyBpbiB1c2VyIGFnZW50IFNoYWRvdyBE
T00sIGl0IGlzCi0vLyBub3QgZXhwb3NlZCB0byBzY3JpcHQKLWhvc3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkZXRhaWxzJyk7Ci1jb250YWluZXIuYXBwZW5kQ2hpbGQoaG9zdCk7Ci1ob3N0
LnNldEF0dHJpYnV0ZSgnb3BlbicsICdvcGVuJyk7Ci1ob3N0LmFwcGVuZENoaWxkKGNoaWxkKTsK
LXZhciBzaGFkb3cgPSB3aW5kb3cuaW50ZXJuYWxzLnlvdW5nZXN0U2hhZG93Um9vdChob3N0KTsg
IC8vIHRoaXMgaXMgYSBVQSBzaGFkb3cgcm9vdAotY29uZmlndXJlU2hhZG93Um9vdChzaGFkb3cp
Owotc2hvdWxkQmUoJ2NoaWxkLm9mZnNldFBhcmVudCcsICdudWxsJyk7Ci0KLS8vIFRlc3QgdGhh
dCBvZmZzZXRQYXJlbnQgd29ya3MgJ3Rocm91Z2gnIHVzZXIgYWdlbnQgU2hhZG93IERPTSB3aGVu
IHRoZXJlIGlzIG5vCi0vLyBwb3NpdGlvbmVkIGFuY2VzdG9yIGluIHVzZXIgYWdlbnQgU2hhZG93
IERPTQotc2hhZG93LnBvc2l0aW9uZWRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTsK
LXNob3VsZEJlKCdjaGlsZC5vZmZzZXRQYXJlbnQnLCAnY29udGFpbmVyJyk7Ci0KLWNvbnRhaW5l
ci5yZW1vdmUoKTsKLQotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29sZGVyU2hhZG93Um9vdC1pbi1zaGFk
b3dlbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvb2xkZXJTaGFkb3dSb290LWluLXNoYWRvd2VsZW1lbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvb2xkZXJTaGFk
b3dSb290LWluLXNoYWRvd2VsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDM5ICswLDAgQEAKLUNvbmZpcm1zIHNoYWRvdy5vbGRlclNoYWRvd1Jvb3QgcmV0dXJucyBjb3Jy
ZWN0IFNoYWRvd1Jvb3QKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotCi1zaGFk
b3cgaW4geW91bmdlciBTaGFkb3dET00KLVBBU1Mgc2hhZG93Lm9sZGVyU2hhZG93Um9vdCBpcyBv
bGRlc3RTaGFkb3dSb290Ci0KLXNoYWRvdyBpbiB0aGUgb2xkZXN0IFNoYWRvd0RPTQotUEFTUyBz
aGFkb3cub2xkZXJTaGFkb3dSb290IGlzIG51bGwKLQotMiBhY3RpdmUgc2hhZG93cwotUEFTUyBz
aGFkb3cxLm9sZGVyU2hhZG93Um9vdCBpcyBvbGRlc3RTaGFkb3dSb290Ci1QQVNTIHNoYWRvdzIu
b2xkZXJTaGFkb3dSb290IGlzIG51bGwKLQotdGhlIGZpcnN0IHNoYWRvdyBpcyBub3QgYWN0aXZl
Ci1QQVNTIHNoYWRvdzEub2xkZXJTaGFkb3dSb290IGlzIG51bGwKLVBBU1Mgc2hhZG93Mi5vbGRl
clNoYWRvd1Jvb3QgaXMgb2xkZXN0U2hhZG93Um9vdAotCi1uZXN0ZWQgU2hhZG93RE9NIGNhc2UK
LVBBU1Mgc2hhZG93MS5vbGRlclNoYWRvd1Jvb3QgaXMgbnVsbAotUEFTUyBzaGFkb3cyLm9sZGVy
U2hhZG93Um9vdCBpcyBuZXN0ZWRPbGRlc3RTaGFkb3dSb290Ci0KLW9ycGhhbiBzaGFkb3cKLVBB
U1Mgc2hhZG93Lm9sZGVyU2hhZG93Um9vdCBpcyBudWxsCi0KLW9ycGhhbiBTaGFkb3cgRE9NCi1Q
QVNTIHNoYWRvdy5vbGRlclNoYWRvd1Jvb3QgaXMgb2xkZXN0U2hhZG93Um9vdAotCi0KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCi0KLQotCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvb2xkZXJTaGFkb3dSb290LWluLXNoYWRvd2Vs
ZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvb2xk
ZXJTaGFkb3dSb290LWluLXNoYWRvd2VsZW1lbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29sZGVyU2hhZG93Um9vdC1pbi1zaGFkb3dlbGVt
ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xl
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdDb25maXJtcyBzaGFkb3cub2xkZXJT
aGFkb3dSb290IHJldHVybnMgY29ycmVjdCBTaGFkb3dSb290Jyk7Ci0KLWZ1bmN0aW9uIHRlc3RD
YXNlKGYpCi17Ci0gICAgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
IG9sZGVzdFNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB5
b3VuZ2VyU2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAg
Y29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOwotCi0gICAgZigpOwotCi0gICAgY29udGFpbmVy
LmlubmVySFRNTCA9ICIiOwotICAgIGRlYnVnKCcnKTsKLX0KLQotdGVzdENhc2UoZnVuY3Rpb24o
KQotewotICAgIGRlYnVnKCdzaGFkb3cgaW4geW91bmdlciBTaGFkb3dET00nKTsKLSAgICBzaGFk
b3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICB5b3VuZ2VyU2hhZG93
Um9vdC5hcHBlbmRDaGlsZChzaGFkb3cpOwotCi0gICAgc2hvdWxkQmUoJ3NoYWRvdy5vbGRlclNo
YWRvd1Jvb3QnLCAnb2xkZXN0U2hhZG93Um9vdCcpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9u
KCkKLXsKLSAgICBkZWJ1Zygnc2hhZG93IGluIHRoZSBvbGRlc3QgU2hhZG93RE9NJyk7Ci0gICAg
c2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgb2xkZXN0U2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3cpOwotCi0gICAgc2hvdWxkQmUoJ3NoYWRvdy5vbGRl
clNoYWRvd1Jvb3QnLCAnbnVsbCcpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAg
ICBkZWJ1ZygnMiBhY3RpdmUgc2hhZG93cycpOwotICAgIHNoYWRvdzEgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2hhZG93Jyk7Ci0gICAgeW91bmdlclNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93MSk7
Ci0gICAgeW91bmdlclNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93Mik7Ci0KLSAgICBzaG91
bGRCZSgnc2hhZG93MS5vbGRlclNoYWRvd1Jvb3QnLCAnb2xkZXN0U2hhZG93Um9vdCcpOwotICAg
IHNob3VsZEJlKCdzaGFkb3cyLm9sZGVyU2hhZG93Um9vdCcsICdudWxsJyk7Ci19KTsKLQotdGVz
dENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCd0aGUgZmlyc3Qgc2hhZG93IGlzIG5vdCBh
Y3RpdmUnKTsKLSAgICBzaGFkb3cxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7
Ci0gICAgc2hhZG93MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotCi0gICAg
dmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7Ci0gICAgY29u
dGVudC5hcHBlbmRDaGlsZChzaGFkb3cxKTsKLQotICAgIHlvdW5nZXJTaGFkb3dSb290LmFwcGVu
ZENoaWxkKGNvbnRlbnQpOwotICAgIHlvdW5nZXJTaGFkb3dSb290LmFwcGVuZENoaWxkKHNoYWRv
dzIpOwotCi0gICAgc2hvdWxkQmUoJ3NoYWRvdzEub2xkZXJTaGFkb3dSb290JywgJ251bGwnKTsK
LSAgICBzaG91bGRCZSgnc2hhZG93Mi5vbGRlclNoYWRvd1Jvb3QnLCAnb2xkZXN0U2hhZG93Um9v
dCcpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnbmVzdGVkIFNo
YWRvd0RPTSBjYXNlJyk7Ci0gICAgbmVzdGVkSG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgIG5lc3RlZE9sZGVzdFNoYWRvd1Jvb3QgPSBuZXN0ZWRIb3N0LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBuZXN0ZWRZb3VuZ2VyU2hhZG93Um9vdCA9IG5lc3RlZEhv
c3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIG9sZGVzdFNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQobmVzdGVkSG9zdCk7Ci0KLSAgICBzaGFkb3cxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRv
dycpOwotICAgIG5lc3RlZE9sZGVzdFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93MSk7Ci0g
ICAgbmVzdGVkWW91bmdlclNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93Mik7Ci0KLSAgICBz
aG91bGRCZSgnc2hhZG93MS5vbGRlclNoYWRvd1Jvb3QnLCAnbnVsbCcpOwotICAgIHNob3VsZEJl
KCdzaGFkb3cyLm9sZGVyU2hhZG93Um9vdCcsICduZXN0ZWRPbGRlc3RTaGFkb3dSb290Jyk7Ci19
KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdvcnBoYW4gc2hhZG93Jyk7
Ci0gICAgc2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgc2hv
dWxkQmUoJ3NoYWRvdy5vbGRlclNoYWRvd1Jvb3QnLCAnbnVsbCcpOwotfSk7Ci0KLXRlc3RDYXNl
KGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1Zygnb3JwaGFuIFNoYWRvdyBET00nKTsKLSAgICBzaGFk
b3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICB5b3VuZ2VyU2hhZG93
Um9vdC5hcHBlbmRDaGlsZChzaGFkb3cpOwotCi0gICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGhv
c3QpOwotCi0gICAgc2hvdWxkQmUoJ3NoYWRvdy5vbGRlclNoYWRvd1Jvb3QnLCAnb2xkZXN0U2hh
ZG93Um9vdCcpOwotfSk7Ci0KLWNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bh
cmVudC10cmVlLXNjb3BlLWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BhcmVudC10cmVlLXNjb3BlLWluLXNoYWRvdy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9wYXJlbnQtdHJlZS1zY29wZS1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDE1ICswLDAgQEAKLUNyZWF0aW5nIHNoYWRvdyBkb20gc3VidHJlZXMgZnJvbSB0b3Ag
dG8gYm90dG9tLgotUEFTUyBpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzEpIGlzIGRv
Y3VtZW50Ci1QQVNTIGludGVybmFscy5wYXJlbnRUcmVlU2NvcGUoc2hhZG93MikgaXMgc2hhZG93
MQotUEFTUyBpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzMpIGlzIHNoYWRvdzIKLUNy
ZWF0aW5nIG11bHRpcGxlIHNoYWRvdyBkb20gc3VidHJlZXMuCi1QQVNTIGludGVybmFscy5wYXJl
bnRUcmVlU2NvcGUoc2hhZG93MikgaXMgc2hhZG93MQotUEFTUyBpbnRlcm5hbHMucGFyZW50VHJl
ZVNjb3BlKHNoYWRvdzMpIGlzIHNoYWRvdzEKLUNyZWF0aW5nIG11bHRpcGxlIHNoYWRvdyBkb20g
c3VidHJlZXMgZnJvbSBib3R0b20gdG8gdG9wLgotUEFTUyBpbnRlcm5hbHMucGFyZW50VHJlZVNj
b3BlKHNoYWRvdzEpIGlzIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy5wYXJlbnRUcmVlU2NvcGUo
c2hhZG93MikgaXMgc2hhZG93MQotUEFTUyBpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRv
dzMpIGlzIHNoYWRvdzIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcGFyZW50LXRyZWUt
c2NvcGUtaW4tc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BhcmVudC10cmVlLXNjb3BlLWluLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcGFyZW50LXRyZWUtc2NvcGUtaW4tc2hh
ZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZG9tL3NoYWRvdy9yZXNvdXJj
ZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJ0ZXN0
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLSAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwotICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7Ci0KLSAgZGVidWcoIkNy
ZWF0aW5nIHNoYWRvdyBkb20gc3VidHJlZXMgZnJvbSB0b3AgdG8gYm90dG9tLiIpOwotICB2YXIg
c2hhZG93MSA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gIHNoYWRvdzEuaW5uZXJI
VE1MID0gIjxkaXYgaWQ9J0UnPi9kaXY+IjsKLSAgdmFyIGUgPSBzaGFkb3cxLmdldEVsZW1lbnRC
eUlkKCJFIik7Ci0gIHZhciBzaGFkb3cyID0gZS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0g
IHNoYWRvdzIuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J0YnPjwvZGl2PiI7Ci0gIHZhciBmID0gc2hh
ZG93Mi5nZXRFbGVtZW50QnlJZCgiRiIpOwotICB2YXIgc2hhZG93MyA9IGYud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotICBzaGFkb3czLmlubmVySFRNTCA9ICI8ZGl2IGlkPSdHJz48L2Rpdj4i
OwotCi0gIHNob3VsZEJlKCJpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzEpIiwgImRv
Y3VtZW50Iik7Ci0gIHNob3VsZEJlKCJpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzIp
IiwgInNoYWRvdzEiKTsKLSAgc2hvdWxkQmUoImludGVybmFscy5wYXJlbnRUcmVlU2NvcGUoc2hh
ZG93MykiLCAic2hhZG93MiIpOwotCi0gIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsK
LQotICBkZWJ1ZygiQ3JlYXRpbmcgbXVsdGlwbGUgc2hhZG93IGRvbSBzdWJ0cmVlcy4iKTsKLSAg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZGl2KTsKLSAgc2hhZG93MSA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci0gIHNoYWRvdzEuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J0gnPjwvZGl2PiI7Ci0KLSAgdmFyIGgg
PSBzaGFkb3cxLmdldEVsZW1lbnRCeUlkKCJIIik7Ci0gIHNoYWRvdzIgPSBoLndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgc2hhZG93Mi5pbm5lckhUTUwgPSAiPGRpdj5zaGFkb3cyPC9kaXY+
IjsKLSAgc2hhZG93MyA9IGgud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICBzaGFkb3czLmlu
bmVySFRNTCA9ICI8ZGl2PnNoYWRvdzM8L2Rpdj4iOwotICBzaG91bGRCZSgiaW50ZXJuYWxzLnBh
cmVudFRyZWVTY29wZShzaGFkb3cyKSIsICJzaGFkb3cxIik7Ci0gIHNob3VsZEJlKCJpbnRlcm5h
bHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzMpIiwgInNoYWRvdzEiKTsKLQotICBkb2N1bWVudC5i
b2R5LnJlbW92ZUNoaWxkKGRpdik7Ci0KLSAgZGVidWcoIkNyZWF0aW5nIG11bHRpcGxlIHNoYWRv
dyBkb20gc3VidHJlZXMgZnJvbSBib3R0b20gdG8gdG9wLiIpOwotICBmID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gIHNoYWRvdzMgPSBmLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLSAgc2hhZG93My5pbm5lckhUTUwgPSAiPGRpdiBpZD0nRyc+PC9kaXY+IjsKLSAgZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICBzaGFkb3cyID0gZS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0gIHNoYWRvdzIuYXBwZW5kQ2hpbGQoZik7Ci0gIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICBzaGFkb3cxID0gZGl2LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgc2hhZG93MS5hcHBlbmRDaGlsZChlKTsKLSAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChkaXYpOwotCi0gIHNob3VsZEJlKCJpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNo
YWRvdzEpIiwgImRvY3VtZW50Iik7Ci0gIHNob3VsZEJlKCJpbnRlcm5hbHMucGFyZW50VHJlZVNj
b3BlKHNoYWRvdzIpIiwgInNoYWRvdzEiKTsKLSAgc2hvdWxkQmUoImludGVybmFscy5wYXJlbnRU
cmVlU2NvcGUoc2hhZG93MykiLCAic2hhZG93MiIpOwotCi0gIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZGl2KTsKLTwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1keW5hbWljLWV4cGVjdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkby1h
dHRyaWJ1dGUtZHluYW1pYy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1keW5hbWljLWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGJvZHk+Ci0KLTxwPlRoaXMgdGVzdCBjaGVja3MgZHluYW1pYyAncHNldWRvJyBhdHRy
aWJ1dGUgc2hvdWxkIHJlZmxlY3Qgc3R5bGUuPC9wPgotCi08ZGl2PjxkaXYgc3R5bGU9ImNvbG9y
OiBibHVlOyI+VGhpcyBzaG91bGQgYmUgYmx1ZS48L2Rpdj48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLWR5
bmFtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNl
dWRvLWF0dHJpYnV0ZS1keW5hbWljLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLWR5bmFtaWMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4K
LSNob3N0Ojp4LWZvbyB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLQotI2hvc3Q6OngtYmFyIHsKLSAg
ICBjb2xvcjogYmx1ZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+VGhpcyB0
ZXN0IGNoZWNrcyBkeW5hbWljICdwc2V1ZG8nIGF0dHJpYnV0ZSBzaG91bGQgcmVmbGVjdCBzdHls
ZS48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hhZG93
Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotZGl2LndlYmtpdFBzZXVkbyA9ICd4LWZvbyc7Ci1kaXYu
aW5uZXJIVE1MID0gIlRoaXMgc2hvdWxkIGJlIGJsdWUuIjsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hp
bGQoZGl2KTsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBkaXYud2Via2l0UHNldWRv
ID0gJ3gtYmFyJzsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvLWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNSArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHBzZXVkbyBhdHRyaWJ1dGUgaXMg
ZXhwb3NlZCBjb3JyZWN0bHkuCi0KLVBBU1MgZGl2LndlYmtpdFBzZXVkbyBpcyAnJwotUEFTUyBk
aXYuZ2V0QXR0cmlidXRlKCdwc2V1ZG8nKSBpcyBudWxsCi1QQVNTIGRpdi53ZWJraXRQc2V1ZG8g
aXMgJ2ZvbycKLVBBU1MgZGl2LmdldEF0dHJpYnV0ZSgncHNldWRvJykgaXMgJ2ZvbycKLVBBU1Mg
ZGl2LndlYmtpdFBzZXVkbyBpcyAnYmFyJwotUEFTUyBkaXYuZ2V0QXR0cmlidXRlKCdwc2V1ZG8n
KSBpcyAnYmFyJwotUEFTUyBkaXYud2Via2l0UHNldWRvIGlzICcnCi1QQVNTIGRpdi5nZXRBdHRy
aWJ1dGUoJ3BzZXVkbycpIGlzIG51bGwKLVBBU1MgZGl2LndlYmtpdFBzZXVkbyBpcyAnZmlyc3Qt
bGV0dGVyJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLXJl
bmRlcmluZy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLXJlbmRlcmluZy1leHBlY3RlZC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvLWF0dHJpYnV0
ZS1yZW5kZXJpbmctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgY2hlY2tzIGVs
ZW1lbnQucHNldWRvIHN0YXJ0aW5nICctd2Via2l0LScgb25seSB3b3JrcyBpbiBVc2VyQWdlbnRT
aGFkb3dSb290LjwvcD4KLQotPGRpdj48ZGl2IHN0eWxlPSJjb2xvcjogcmVkIj5UaGlzIHRleHQg
c2hvdWxkIGJlIHJlZC48L2Rpdj48L2Rpdj4KLTxkaXY+PGRpdj5UaGlzIHRleHQgc2hvdWxkIG5v
dCBiZSByZWQuPC9kaXY+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLXJlbmRlcmluZy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLXJl
bmRlcmluZy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1yZW5kZXJpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWRpdjo6eC1mb28g
ewotICAgIGNvbG9yOiByZWQ7Ci19Ci1kaXY6Oi13ZWJraXQtZm9vYmFyIHsKLSAgICBjb2xvcjog
cmVkOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IGNoZWNrcyBl
bGVtZW50LnBzZXVkbyBzdGFydGluZyAnLXdlYmtpdC0nIG9ubHkgd29ya3MgaW4gVXNlckFnZW50
U2hhZG93Um9vdC48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4KLTxkaXYgaWQ9Imhvc3Qy
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci1kaXYxLndlYmtpdFBzZXVkbyA9ICd4LWZvbyc7Ci1kaXYxLmlubmVySFRNTCA9ICJUaGlzIHRl
eHQgc2hvdWxkIGJlIHJlZC4iOwotc2hhZG93Um9vdDEuYXBwZW5kQ2hpbGQoZGl2MSk7Ci0KLXZh
ciBzaGFkb3dSb290MiA9IGhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1kaXYyLndlYmtpdFBzZXVkbyA9ICct
d2Via2l0LWZvb2Jhcic7Ci1kaXYyLmlubmVySFRNTCA9ICJUaGlzIHRleHQgc2hvdWxkIG5vdCBi
ZSByZWQuIjsKLXNoYWRvd1Jvb3QyLmFwcGVuZENoaWxkKGRpdjIpOwotPC9zY3JpcHQ+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8t
YXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkby1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkby1hdHRyaWJ1dGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPHA+VGhp
cyB0ZXN0IGNoZWNrcyBwc2V1ZG8gYXR0cmlidXRlIGlzIGV4cG9zZWQgY29ycmVjdGx5LjwvcD4K
LQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLXNob3VsZEJlKCJkaXYud2Via2l0UHNldWRvIiwg
IicnIik7Ci1zaG91bGRCZSgiZGl2LmdldEF0dHJpYnV0ZSgncHNldWRvJykiLCAibnVsbCIpOwot
Ci1kaXYuc2V0QXR0cmlidXRlKCJwc2V1ZG8iLCAiZm9vIik7Ci1zaG91bGRCZSgiZGl2LndlYmtp
dFBzZXVkbyIsICInZm9vJyIpOwotc2hvdWxkQmUoImRpdi5nZXRBdHRyaWJ1dGUoJ3BzZXVkbycp
IiwgIidmb28nIik7Ci0KLWRpdi53ZWJraXRQc2V1ZG8gPSAiYmFyIjsKLXNob3VsZEJlKCJkaXYu
d2Via2l0UHNldWRvIiwgIidiYXInIik7Ci1zaG91bGRCZSgiZGl2LmdldEF0dHJpYnV0ZSgncHNl
dWRvJykiLCAiJ2JhciciKTsKLQotZGl2LnJlbW92ZUF0dHJpYnV0ZSgncHNldWRvJyk7Ci1zaG91
bGRCZSgiZGl2LndlYmtpdFBzZXVkbyIsICInJyIpOwotc2hvdWxkQmUoImRpdi5nZXRBdHRyaWJ1
dGUoJ3BzZXVkbycpIiwgIm51bGwiKTsKLQotLy8gQ2hlY2tzIHBzZXVkbyBhY2NlcHRzIGtub3du
IHBzZXVkby1lbGVtZW50IHdvcmQuCi1kaXYud2Via2l0UHNldWRvID0gJ2ZpcnN0LWxldHRlcic7
Ci1zaG91bGRCZSgiZGl2LndlYmtpdFBzZXVkbyIsICInZmlyc3QtbGV0dGVyJyIpOwotCi1maW5p
c2hKU1Rlc3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1jaGVja2VkLWlucHV0LWV4
cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS1jaGVja2VkLWlucHV0LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
Y2hlY2tlZC1pbnB1dC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLQotPHA+V2hlbiBhbiBpbnB1dCBl
bGVtZW50IGJlY2FtZSAnY2hlY2tlZCcgb3Igbm90LSdjaGVja2VkJywgZGlzdHJpYnV0aW9uIHNo
b3VsZCBoYXBwZW4uPC9wPgotCi08cD5DYXNlIDE6IGlucHV0W3R5cGU9Y2hlY2tib3hdIGJlY29t
ZXMgY2hlY2tlZDwvcD4KLTxkaXYgaWQ9Imhvc3QxIj48aW5wdXQgaWQ9ImlucHV0MSIgdHlwZT0i
Y2hlY2tib3giIGNoZWNrZWQ+PC9kaXY+Ci0KLTxwPkNhc2UgMjogaW5wdXRbdHlwZT1jaGVja2Jv
eF0gYmVjb21lcyBub24tY2hlY2tlZDwvcD4KLTxkaXYgaWQ9Imhvc3QyIj48L2Rpdj4KLQotPHA+
Q2FzZSAzOiBpbnB1dFt0eXBlPXJhZGlvXSBiZWNvbWVzIGNoZWNrZWQ8L3A+Ci08ZGl2IGlkPSJo
b3N0MyI+PGlucHV0IGlkPSJpbnB1dDMiIG5hbWU9InJhZGlvMyIgdHlwZT0icmFkaW8iIGNoZWNr
ZWQ+PC9kaXY+Ci0KLTxwPkNhc2UgNDogaW5wdXRbdHlwZT1yYWRpb10gYmVjb21lcyBub24tY2hl
Y2tlZDwvcD4KLTxkaXYgaWQ9Imhvc3Q0Ij48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWNoZWNr
ZWQtaW5wdXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cHNldWRvY2xhc3MtdXBkYXRlLWNoZWNrZWQtaW5wdXQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1jaGVja2Vk
LWlucHV0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFuIGlucHV0IGVsZW1lbnQg
YmVjYW1lICdjaGVja2VkJyBvciBub3QtJ2NoZWNrZWQnLCBkaXN0cmlidXRpb24gc2hvdWxkIGhh
cHBlbi48L3A+Ci0KLTxwPkNhc2UgMTogaW5wdXRbdHlwZT1jaGVja2JveF0gYmVjb21lcyBjaGVj
a2VkPC9wPgotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQxIiB0eXBlPSJj
aGVja2JveCI+Ci08L2Rpdj4KLQotPHA+Q2FzZSAyOiBpbnB1dFt0eXBlPWNoZWNrYm94XSBiZWNv
bWVzIG5vbi1jaGVja2VkPC9wPgotPGRpdiBpZD0iaG9zdDIiPgotICAgIDxpbnB1dCBpZD0iaW5w
dXQyIiB0eXBlPSJjaGVja2JveCIgY2hlY2tlZD4KLTwvZGl2PgotCi08cD5DYXNlIDM6IGlucHV0
W3R5cGU9cmFkaW9dIGJlY29tZXMgY2hlY2tlZDwvcD4KLTxkaXYgaWQ9Imhvc3QzIj4KLSAgICA8
aW5wdXQgaWQ9ImlucHV0MyIgbmFtZT0icmFkaW8zIiB0eXBlPSJyYWRpbyI+Ci08L2Rpdj4KLQot
PHA+Q2FzZSA0OiBpbnB1dFt0eXBlPXJhZGlvXSBiZWNvbWVzIG5vbi1jaGVja2VkPC9wPgotPGRp
diBpZD0iaG9zdDQiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQ0IiBuYW1lPSJyYWRpbzQiIHR5cGU9
InJhZGlvIiBjaGVja2VkPgotPC9kaXY+Ci0KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotaG9zdDEud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImlucHV0OmNoZWNr
ZWQiPic7Ci1ob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250
ZW50IHNlbGVjdD0iaW5wdXQ6Y2hlY2tlZCI+JzsKLWhvc3QzLndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJpbnB1dDpjaGVja2VkIj4nOwotaG9z
dDQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9
ImlucHV0OmNoZWNrZWQiPic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgaW5wdXQx
LmNoZWNrZWQgPSB0cnVlOwotICAgIGlucHV0Mi5jaGVja2VkID0gZmFsc2U7Ci0gICAgaW5wdXQz
LmNoZWNrZWQgPSB0cnVlOwotICAgIGlucHV0NC5jaGVja2VkID0gZmFsc2U7Ci0gICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
Y2hlY2tlZC1vcHRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtY2hlY2tlZC1vcHRpb24tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNl
dWRvY2xhc3MtdXBkYXRlLWNoZWNrZWQtb3B0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMSArMCwwIEBACi1XaGVuIGFuIG9wdGlvbiBlbGVtZW50IGJlY2FtZSAnY2hlY2tl
ZCcgb3Igbm90LSdjaGVja2VkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uCi0KLVNpbmNl
IGFuIG9wdGlvbiBlbGVtZW50IGRvZXMgbm90IGNyZWF0ZSBhIHJlbmRlcmVyLCB3ZSBjYW5ub3Qg
Y2hlY2sgdGhpcyB1c2luZyByZWZ0ZXN0LgotCi1QQVNTIG5vZGVzMS5sZW5ndGggaXMgMAotUEFT
UyBub2RlczIubGVuZ3RoIGlzIDEKLVBBU1Mgbm9kZXMyLml0ZW0oMCkuaW5uZXJIVE1MIGlzICJv
cHRpb24gMiIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LWNoZWNrZWQtb3B0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1jaGVja2VkLW9wdGlvbi5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LWNoZWNrZWQtb3B0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTUgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5
ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gYW4gb3B0
aW9uIGVsZW1lbnQgYmVjYW1lICdjaGVja2VkJyBvciBub3QtJ2NoZWNrZWQnLCBkaXN0cmlidXRp
b24gc2hvdWxkIGhhcHBlbi48L3A+Ci08cD5TaW5jZSBhbiBvcHRpb24gZWxlbWVudCBkb2VzIG5v
dCBjcmVhdGUgYSByZW5kZXJlciwgd2UgY2Fubm90IGNoZWNrIHRoaXMgdXNpbmcgcmVmdGVzdC48
L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaG9zdDEiPgotICAgICAg
ICA8b3B0aW9uIGlkPSJvcHRpb24xIj5vcHRpb24gMTwvb3B0aW9uPgotICAgIDwvZGl2PgotCi0g
ICAgPGRpdiBpZD0iaG9zdDIiPgotICAgICAgICA8b3B0aW9uIGlkPSJvcHRpb24yIiBzZWxlY3Rl
ZD5vcHRpb24gMjwvb3B0aW9uPgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgotCi08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBzaGFk
b3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBzaGFkb3dSb290
MiA9IGhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotc2hhZG93Um9vdDEuaW5uZXJI
VE1MID0gJzxjb250ZW50IHNlbGVjdD0ib3B0aW9uOmNoZWNrZWQiPic7Ci1zaGFkb3dSb290Mi5p
bm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJvcHRpb246Y2hlY2tlZCI+JzsKLQotdmFyIGNv
bnRlbnQxID0gc2hhZG93Um9vdDEucXVlcnlTZWxlY3RvcignY29udGVudCcpOwotdmFyIGNvbnRl
bnQyID0gc2hhZG93Um9vdDIucXVlcnlTZWxlY3RvcignY29udGVudCcpOwotCi1zZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewotICAgIG9wdGlvbjEuc2V0QXR0cmlidXRlKCdzZWxlY3RlZCcsIHRydWUp
OwotICAgIG9wdGlvbjIucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcpOwotCi0gICAgbm9kZXMx
ID0gY29udGVudDEuZ2V0RGlzdHJpYnV0ZWROb2RlcygpOwotICAgIHNob3VsZEJlKCdub2RlczEu
bGVuZ3RoJywgJzAnKTsKLQotICAgIG5vZGVzMiA9IGNvbnRlbnQyLmdldERpc3RyaWJ1dGVkTm9k
ZXMoKTsKLSAgICBzaG91bGRCZSgnbm9kZXMyLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUo
J25vZGVzMi5pdGVtKDApLmlubmVySFRNTCcsICcib3B0aW9uIDIiJyk7Ci0KLSAgICBjb250YWlu
ZXIuaW5uZXJIVE1MID0gIiI7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCAwKTsKLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWJ1dHRvbi1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZGlzYWJsZWQtYnV0dG9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtYnV0dG9u
LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUg
J2Rpc2FibGVkJyBzdGF0ZSBvZiBhIGJ1dHRvbiB0YWcgaXMgY2hhbmdlZCwgd2UgaGF2ZSB0byBp
bnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48YnV0dG9uIGRp
c2FibGVkPkJ1dHRvbiAyPC9idXR0b24+PC9kaXY+Ci0KLTxkaXYgaWQ9Imhvc3QyIj48YnV0dG9u
IGRpc2FibGVkPkJ1dHRvbiAzPC9idXR0b24+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNh
YmxlZC1idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWJ1dHRvbi5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRp
c2FibGVkLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2Rpc2Fi
bGVkJyBzdGF0ZSBvZiBhIGJ1dHRvbiB0YWcgaXMgY2hhbmdlZCwgd2UgaGF2ZSB0byBpbnZhbGlk
YXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8YnV0dG9uIGlk
PSJidXR0b24xIj5CdXR0b24gMTwvYnV0dG9uPgotICAgIDxidXR0b24gaWQ9ImJ1dHRvbjIiPkJ1
dHRvbiAyPC9idXR0b24+Ci08L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPgotICAgIDxidXR0b24g
aWQ9ImJ1dHRvbjMiIGRpc2FibGVkPkJ1dHRvbiAzPC9idXR0b24+Ci0gICAgPGJ1dHRvbiBpZD0i
YnV0dG9uNCIgZGlzYWJsZWQ+QnV0dG9uIDQ8L2J1dHRvbj4KLTwvZGl2PgotCi08c2NyaXB0Pgot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
Ci1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNl
bGVjdD0iOmRpc2FibGVkIj48L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZGlzYWJsZWQiPjwvY29udGVudD4n
OwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGJ1dHRvbjIuc2V0QXR0cmlidXRlKCdk
aXNhYmxlZCcsIHRydWUpOwotICAgIGJ1dHRvbjQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcp
OwotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWRpc2FibGVkLWZpZWxkc2V0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxl
ZC1maWVsZHNldC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWZpZWxkc2V0LWV4
cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2Rp
c2FibGVkJyBzdGF0ZSBvZiBhIGZpZWxkc2V0IHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGlu
dmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjxmaWVsZHNldCBp
ZD0iZmllbGRzZXQyIiBkaXNhYmxlZD5GaWVsZHNldCAyPC9maWVsZHNldD48L2Rpdj4KLQotPGRp
diBpZD0iaG9zdDIiPjxmaWVsZHNldCBpZD0iZmllbGRzZXQzIiBkaXNhYmxlZD5GaWVsZHNldCAz
PC9maWVsZHNldD48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWZpZWxkc2V0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNz
LXVwZGF0ZS1kaXNhYmxlZC1maWVsZHNldC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWZpZWxk
c2V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIHRoZSAnZGlzYWJsZWQnIHN0YXRl
IG9mIGEgZmllbGRzZXQgdGFnIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0
cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGZpZWxkc2V0IGlkPSJmaWVs
ZHNldDEiPkZpZWxkc2V0IDE8L2ZpZWxkc2V0PgotICAgIDxmaWVsZHNldCBpZD0iZmllbGRzZXQy
Ij5GaWVsZHNldCAyPC9maWVsZHNldD4KLTwvZGl2PgotCi08ZGl2IGlkPSJob3N0MiI+Ci0gICAg
PGZpZWxkc2V0IGlkPSJmaWVsZHNldDMiIGRpc2FibGVkPkZpZWxkc2V0IDM8L2ZpZWxkc2V0Pgot
ICAgIDxmaWVsZHNldCBpZD0iZmllbGRzZXQ0IiBkaXNhYmxlZD5GaWVsZHNldCA0PC9maWVsZHNl
dD4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCku
aW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2FibGVkIj48L2NvbnRlbnQ+JzsKLWhv
c3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0
PSI6ZGlzYWJsZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg
IGZpZWxkc2V0Mi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgZmllbGRzZXQ0
LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKLX0sIDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1pbnB1dC1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9w
c2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtaW5wdXQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS1kaXNhYmxlZC1pbnB1dC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLQotPGJvZHk+
Ci0KLTxwPldoZW4gdGhlICdkaXNhYmxlZCcgc3RhdGUgb2YgYW4gaW5wdXQgdGFnIGlzIGNoYW5n
ZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJo
b3N0MSI+PGlucHV0IGlkPSJpbnB1dDIiIHZhbHVlPSJJbnB1dCAyIiBkaXNhYmxlZD48L2Rpdj4K
LQotPGRpdiBpZD0iaG9zdDIiPjxpbnB1dCBpZD0iaW5wdXQzIiB2YWx1ZT0iSW5wdXQgMyIgZGlz
YWJsZWQ+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1pbnB1dC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZGlzYWJsZWQtaW5wdXQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1pbnB1dC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2Rpc2FibGVkJyBzdGF0ZSBvZiBhbiBpbnB1dCB0
YWcgaXMgY2hhbmdlZCwgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0K
LTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0MSIgdmFsdWU9IklucHV0IDEi
PgotICAgIDxpbnB1dCBpZD0iaW5wdXQyIiB2YWx1ZT0iSW5wdXQgMiI+Ci08L2Rpdj4KLQotPGRp
diBpZD0iaG9zdDIiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQzIiB2YWx1ZT0iSW5wdXQgMyIgZGlz
YWJsZWQ+Ci0gICAgPGlucHV0IGlkPSJpbnB1dDQiIHZhbHVlPSJJbnB1dCA0IiBkaXNhYmxlZD4K
LTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5u
ZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2FibGVkIj48L2NvbnRlbnQ+JzsKLWhvc3Qy
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6
ZGlzYWJsZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGlu
cHV0Mi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgaW5wdXQ0LnJlbW92ZUF0
dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDAp
OwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1vcHRncm91cC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2Ns
YXNzLXVwZGF0ZS1kaXNhYmxlZC1vcHRncm91cC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlz
YWJsZWQtb3B0Z3JvdXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAg
QEAKLVdoZW4gYW4gb3B0Z3JvdXAgZWxlbWVudCBiZWNhbWUgJ2Rpc2FibGVkJyBvciBub3QtJ2Rp
c2FibGVkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uCi0KLVNpbmNlIGFuIG9wdGdyb3Vw
IGVsZW1lbnQgZG9lcyBub3QgY3JlYXRlIGEgcmVuZGVyZXIsIHdlIGNhbm5vdCBjaGVjayB0aGlz
IHVzaW5nIHJlZnRlc3QuCi0KLVBBU1Mgbm9kZXMxLmxlbmd0aCBpcyAxCi1QQVNTIG5vZGVzMS5p
dGVtKDApLmlubmVySFRNTCBpcyAib3B0Z3JvdXAgMiIKLVBBU1Mgbm9kZXMyLmxlbmd0aCBpcyAx
Ci1QQVNTIG5vZGVzMi5pdGVtKDApLmlubmVySFRNTCBpcyAib3B0Z3JvdXAgMyIKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLW9wdGdyb3Vw
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2Ns
YXNzLXVwZGF0ZS1kaXNhYmxlZC1vcHRncm91cC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLW9w
dGdyb3VwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gYW4gb3B0Z3JvdXAgZWxl
bWVudCBiZWNhbWUgJ2Rpc2FibGVkJyBvciBub3QtJ2Rpc2FibGVkJywgZGlzdHJpYnV0aW9uIHNo
b3VsZCBoYXBwZW4uPC9wPgotPHA+U2luY2UgYW4gb3B0Z3JvdXAgZWxlbWVudCBkb2VzIG5vdCBj
cmVhdGUgYSByZW5kZXJlciwgd2UgY2Fubm90IGNoZWNrIHRoaXMgdXNpbmcgcmVmdGVzdC48L3A+
Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaG9zdDEiPgotICAgICAgICA8
b3B0Z3JvdXAgaWQ9Im9wdGdyb3VwMSI+b3B0Z3JvdXAgMTwvb3B0Z3JvdXA+Ci0gICAgICAgIDxv
cHRncm91cCBpZD0ib3B0Z3JvdXAyIj5vcHRncm91cCAyPC9vcHRncm91cD4KLSAgICA8L2Rpdj4K
LQotICAgIDxkaXYgaWQ9Imhvc3QyIj4KLSAgICAgICAgPG9wdGdyb3VwIGlkPSJvcHRncm91cDMi
IGRpc2FibGVkPm9wdGdyb3VwIDM8L29wdGdyb3VwPgotICAgICAgICA8b3B0Z3JvdXAgaWQ9Im9w
dGdyb3VwNCIgZGlzYWJsZWQ+b3B0Z3JvdXAgNDwvb3B0Z3JvdXA+Ci0gICAgPC9kaXY+Ci08L2Rp
dj4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZGlzYWJsZWQiPic7
Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZGlzYWJsZWQiPic7
Ci0KLXZhciBjb250ZW50MSA9IHNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsK
LXZhciBjb250ZW50MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsKLQot
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBvcHRncm91cDIuc2V0QXR0cmlidXRlKCdkaXNh
YmxlZCcsIHRydWUpOwotICAgIG9wdGdyb3VwNC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7
Ci0KLSAgICBub2RlczEgPSBjb250ZW50MS5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hv
dWxkQmUoJ25vZGVzMS5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdub2RlczEuaXRlbSgw
KS5pbm5lckhUTUwnLCAnIm9wdGdyb3VwIDIiJyk7Ci0KLSAgICBub2RlczIgPSBjb250ZW50Mi5n
ZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMi5sZW5ndGgnLCAnMScp
OwotICAgIHNob3VsZEJlKCdub2RlczIuaXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGdyb3VwIDMi
Jyk7Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIiI7Ci0gICAgZmluaXNoSlNUZXN0KCk7
Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLW9wdGlvbi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1vcHRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LWRpc2FibGVkLW9wdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAs
MCBAQAotV2hlbiBhbiBvcHRpb24gZWxlbWVudCBiZWNhbWUgJ2Rpc2FibGVkJyBvciBub3QtJ2Rp
c2FibGVkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uCi0KLVNpbmNlIGFuIG9wdGlvbiBl
bGVtZW50IGRvZXMgbm90IGNyZWF0ZSBhIHJlbmRlcmVyLCB3ZSBjYW5ub3QgY2hlY2sgdGhpcyB1
c2luZyByZWZ0ZXN0LgotCi1QQVNTIG5vZGVzMS5sZW5ndGggaXMgMQotUEFTUyBub2RlczEuaXRl
bSgwKS5pbm5lckhUTUwgaXMgIm9wdGlvbiAyIgotUEFTUyBub2RlczIubGVuZ3RoIGlzIDEKLVBB
U1Mgbm9kZXMyLml0ZW0oMCkuaW5uZXJIVE1MIGlzICJvcHRpb24gMyIKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLW9wdGlvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRh
dGUtZGlzYWJsZWQtb3B0aW9uLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtb3B0aW9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gYW4gb3B0aW9uIGVsZW1lbnQgYmVjYW1lICdk
aXNhYmxlZCcgb3Igbm90LSdkaXNhYmxlZCcsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwv
cD4KLTxwPlNpbmNlIGFuIG9wdGlvbiBlbGVtZW50IGRvZXMgbm90IGNyZWF0ZSBhIHJlbmRlcmVy
LCB3ZSBjYW5ub3QgY2hlY2sgdGhpcyB1c2luZyByZWZ0ZXN0LjwvcD4KLQotPGRpdiBpZD0iY29u
dGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJob3N0MSI+Ci0gICAgICAgIDxvcHRpb24gaWQ9Im9wdGlv
bjEiPm9wdGlvbiAxPC9vcHRpb24+Ci0gICAgICAgIDxvcHRpb24gaWQ9Im9wdGlvbjIiPm9wdGlv
biAyPC9vcHRpb24+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJob3N0MiI+Ci0gICAgICAg
IDxvcHRpb24gaWQ9Im9wdGlvbjMiIGRpc2FibGVkPm9wdGlvbiAzPC9vcHRpb24+Ci0gICAgICAg
IDxvcHRpb24gaWQ9Im9wdGlvbjQiIGRpc2FibGVkPm9wdGlvbiA0PC9vcHRpb24+Ci0gICAgPC9k
aXY+Ci08L2Rpdj4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotCi1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZGlz
YWJsZWQiPic7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZGlz
YWJsZWQiPic7Ci0KLXZhciBjb250ZW50MSA9IHNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0b3IoJ2Nv
bnRlbnQnKTsKLXZhciBjb250ZW50MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRl
bnQnKTsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBvcHRpb24yLnNldEF0dHJpYnV0
ZSgnZGlzYWJsZWQnLCB0cnVlKTsKLSAgICBvcHRpb240LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJs
ZWQnKTsKLQotICAgIG5vZGVzMSA9IGNvbnRlbnQxLmdldERpc3RyaWJ1dGVkTm9kZXMoKTsKLSAg
ICBzaG91bGRCZSgnbm9kZXMxLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMS5p
dGVtKDApLmlubmVySFRNTCcsICcib3B0aW9uIDIiJyk7Ci0KLSAgICBub2RlczIgPSBjb250ZW50
Mi5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMi5sZW5ndGgnLCAn
MScpOwotICAgIHNob3VsZEJlKCdub2RlczIuaXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGlvbiAz
IicpOwotCi0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICIiOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1zZWxlY3Qt
ZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLXNlbGVjdC1leHBlY3RlZC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBk
YXRlLWRpc2FibGVkLXNlbGVjdC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLQotPGJv
ZHk+Ci0KLTxwPldoZW4gdGhlICdkaXNhYmxlZCcgc3RhdGUgb2YgYSBzZWxlY3QgdGFnIGlzIGNo
YW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlk
PSJob3N0MSI+PHNlbGVjdCBkaXNhYmxlZD48b3B0aW9uPlNlbGVjdCAyPC9vcHRpb24+PC9zZWxl
Y3Q+PC9kaXY+Ci0KLTxkaXYgaWQ9Imhvc3QyIj48c2VsZWN0IGRpc2FibGVkPjxvcHRpb24+U2Vs
ZWN0IDM8L29wdGlvbj48L3NlbGVjdD48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgotCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVk
LXNlbGVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9w
c2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtc2VsZWN0Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJs
ZWQtc2VsZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIHRoZSAnZGlzYWJsZWQn
IHN0YXRlIG9mIGEgc2VsZWN0IHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUg
ZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxzZWxlY3QgaWQ9InNl
bGVjdDEiPjxvcHRpb24+U2VsZWN0IDE8L29wdGlvbj48L3NlbGVjdD4KLSAgICA8c2VsZWN0IGlk
PSJzZWxlY3QyIj48b3B0aW9uPlNlbGVjdCAyPC9vcHRpb24+PC9zZWxlY3Q+Ci08L2Rpdj4KLQot
PGRpdiBpZD0iaG9zdDIiPgotICAgIDxzZWxlY3QgaWQ9InNlbGVjdDMiIGRpc2FibGVkPjxvcHRp
b24+U2VsZWN0IDM8L29wdGlvbj48L3NlbGVjdD4KLSAgICA8c2VsZWN0IGlkPSJzZWxlY3Q0IiBk
aXNhYmxlZD48b3B0aW9uPlNlbGVjdCA0PC9vcHRpb24+PC9zZWxlY3Q+Ci08L2Rpdj4KLQotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLQotaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29u
dGVudCBzZWxlY3Q9IjpkaXNhYmxlZCI+PC9jb250ZW50Pic7Ci1ob3N0Mi53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2FibGVkIj48L2Nv
bnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBzZWxlY3QyLnNldEF0dHJp
YnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTsKLSAgICBzZWxlY3Q0LnJlbW92ZUF0dHJpYnV0ZSgnZGlz
YWJsZWQnKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotCi08L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC10ZXh0YXJlYS1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZGlzYWJsZWQtdGV4dGFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC10ZXh0
YXJlYS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4g
dGhlICdkaXNhYmxlZCcgc3RhdGUgb2YgYSB0ZXh0YXJlYSB0YWcgaXMgY2hhbmdlZCwgd2UgaGF2
ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48dGV4
dGFyZWEgZGlzYWJsZWQ+VGV4dGFyZWEgMjwvdGV4dGFyZWE+PC9kaXY+Ci0KLTxkaXYgaWQ9Imhv
c3QyIj48dGV4dGFyZWEgZGlzYWJsZWQ+VGV4dGFyZWEgMzwvdGV4dGFyZWE+PC9kaXY+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVk
b2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC10ZXh0YXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtdGV4dGFy
ZWEuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC10ZXh0YXJlYS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eT4KLQotPHA+V2hlbiB0aGUgJ2Rpc2FibGVkJyBzdGF0ZSBvZiBhIHRleHRhcmVhIHRhZyBpcyBj
aGFuZ2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBp
ZD0iaG9zdDEiPgotICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj5UZXh0YXJlYSAxPC90ZXh0
YXJlYT4KLSAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVhMiI+VGV4dGFyZWEgMjwvdGV4dGFyZWE+
Ci08L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPgotICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWEz
IiBkaXNhYmxlZD5UZXh0YXJlYSAzPC90ZXh0YXJlYT4KLSAgICA8dGV4dGFyZWEgaWQ9InRleHRh
cmVhNCIgZGlzYWJsZWQ+VGV4dGFyZWEgNDwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotPHNjcmlwdD4K
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LQotaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBz
ZWxlY3Q9IjpkaXNhYmxlZCI+PC9jb250ZW50Pic7Ci1ob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2FibGVkIj48L2NvbnRlbnQ+
JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICB0ZXh0YXJlYTIuc2V0QXR0cmlidXRl
KCdkaXNhYmxlZCcsIHRydWUpOwotICAgIHRleHRhcmVhNC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2Fi
bGVkJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9w
c2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1hbmNob3ItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJs
ZWQtYW5jaG9yLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1hbmNob3ItZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotCi08Ym9keT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBh
dHRyaWJ1dGUgb3IgcmVsZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxk
IGhhcHBlbi48L3A+Ci0KLTxkaXY+PGEgaWQ9ImFuY2hvcjEiIGhyZWY9Imh0dHA6Ly93d3cuZXhh
bXBsZS5jb20vIj5BbmNob3IgMTwvYT48L2Rpdj4KLTxkaXY+PGEgaWQ9ImFuY2hvcjQiIGhyZWY9
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIj5BbmNob3IgNDwvYT48L2Rpdj4KLQotPC9ib2R5Pgot
PC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLWVuYWJsZWQtYW5jaG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWFuY2hvci5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLWVuYWJsZWQtYW5jaG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFu
IGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNlICdocmVmJyBhdHRy
aWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEi
PgotICAgIDxhIGlkPSJhbmNob3IxIiBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+QW5j
aG9yIDE8L2E+Ci0gICAgPGEgaWQ9ImFuY2hvcjIiIGhyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5j
b20vIj5BbmNob3IgMjwvYT4KLTwvZGl2PgotCi08ZGl2IGlkPSJob3N0MiI+Ci0gICAgPGEgaWQ9
ImFuY2hvcjMiPkFuY2hvciAzPC9hPgotICAgIDxhIGlkPSJhbmNob3I0Ij5BbmNob3IgNDwvYT4K
LTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5u
ZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQiPjwvY29udGVudD4nOwotaG9zdDIu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9Ijpl
bmFibGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBhbmNo
b3IyLnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpOwotICAgIGFuY2hvcjQuc2V0QXR0cmlidXRlKCdo
cmVmJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1hcmVh
LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS1lbmFibGVkLWFyZWEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+Ci0KLTxib2R5Pgot
Ci08c3R5bGU+Ci1hcmVhIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci19Ci08L3N0eWxlPgotCi08
cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNlICdo
cmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRpdiBp
ZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgotCi08c2NyaXB0PgotZnVu
Y3Rpb24gY3JlYXRlQXJlYShocmVmLCB0ZXh0Q29udGVudCkKLXsKLSAgICB2YXIgYXJlYSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2FyZWEnKTsKLSAgICBpZiAoaHJlZikKLSAgICAgICAgYXJl
YS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTsKLSAgICBhcmVhLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHRleHRDb250ZW50KSk7Ci0KLSAgICByZXR1cm4gYXJlYTsKLX0K
LQotdmFyIGFyZWExID0gY3JlYXRlQXJlYSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8nLCAnQW5j
aG9yIDEnKTsKLXZhciBhcmVhNCA9IGNyZWF0ZUFyZWEoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20v
JywgJ0FuY2hvciA0Jyk7Ci0KLWhvc3QxLmFwcGVuZENoaWxkKGFyZWExKTsKLWhvc3QyLmFwcGVu
ZENoaWxkKGFyZWE0KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYXJlYS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFz
cy11cGRhdGUtZW5hYmxlZC1hcmVhLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1hcmVhLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5PgotCi08c3R5bGU+Ci1hcmVhIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7
Ci19Ci08L3N0eWxlPgotCi08cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJp
YnV0ZSBvciByZWxlYXNlICdocmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFw
cGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2
PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotCi1mdW5jdGlvbiBjcmVhdGVBcmVhKGhyZWYsIHRleHRDb250ZW50KQot
ewotICAgIHZhciBhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXJlYScpOwotICAgIGlm
IChocmVmKQotICAgICAgICBhcmVhLnNldEF0dHJpYnV0ZSgnaHJlZicsIGhyZWYpOwotICAgIGFy
ZWEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dENvbnRlbnQpKTsKLQot
ICAgIHJldHVybiBhcmVhOwotfQotCi12YXIgYXJlYTEgPSBjcmVhdGVBcmVhKCdodHRwOi8vd3d3
LmV4YW1wbGUuY29tLycsICdBbmNob3IgMScpOwotdmFyIGFyZWEyID0gY3JlYXRlQXJlYSgnaHR0
cDovL3d3dy5leGFtcGxlLmNvbS8nLCAnQW5jaG9yIDInKTsKLXZhciBhcmVhMyA9IGNyZWF0ZUFy
ZWEobnVsbCwgJ0FuY2hvciAzJyk7Ci12YXIgYXJlYTQgPSBjcmVhdGVBcmVhKG51bGwsICdBbmNo
b3IgNCcpOwotCi1ob3N0MS5hcHBlbmRDaGlsZChhcmVhMSk7Ci1ob3N0MS5hcHBlbmRDaGlsZChh
cmVhMik7Ci1ob3N0Mi5hcHBlbmRDaGlsZChhcmVhMyk7Ci1ob3N0Mi5hcHBlbmRDaGlsZChhcmVh
NCk7Ci0KLWhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSJhcmVhOmVuYWJsZWQiPjwvY29udGVudD4nOwotaG9zdDIud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImFyZWE6ZW5hYmxlZCI+
PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgYXJlYTIucmVtb3Zl
QXR0cmlidXRlKCdocmVmJyk7Ci0gICAgYXJlYTQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2h0dHA6
Ly93d3cuZXhhbXBsZS5jb20vJyk7Ci0gICAgaWYgKHRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LWVuYWJsZWQtYnV0dG9uLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWJ1dHRvbi1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYnV0dG9uLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2VuYWJsZWQnIHN0YXRlIG9mIGEgYnV0
dG9uIHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwv
cD4KLQotPGRpdiBpZD0iaG9zdDEiPjxidXR0b24+QnV0dG9uIDE8L2J1dHRvbj48L2Rpdj4KLQot
PGRpdiBpZD0iaG9zdDIiPjxidXR0b24+QnV0dG9uIDQ8L2J1dHRvbj48L2Rpdj4KLQotPC9ib2R5
PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xh
c3MtdXBkYXRlLWVuYWJsZWQtYnV0dG9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWJ1dHRvbi5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xh
c3MtdXBkYXRlLWVuYWJsZWQtYnV0dG9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVu
IHRoZSAnZW5hYmxlZCcgc3RhdGUgb2YgYSBidXR0b24gdGFnIGlzIGNoYW5nZWQsIHdlIGhhdmUg
dG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAg
PGJ1dHRvbiBpZD0iYnV0dG9uMSI+QnV0dG9uIDE8L2J1dHRvbj4KLSAgICA8YnV0dG9uIGlkPSJi
dXR0b24yIj5CdXR0b24gMjwvYnV0dG9uPgotPC9kaXY+Ci0KLTxkaXYgaWQ9Imhvc3QyIj4KLSAg
ICA8YnV0dG9uIGlkPSJidXR0b24zIiBkaXNhYmxlZD5CdXR0b24gMzwvYnV0dG9uPgotICAgIDxi
dXR0b24gaWQ9ImJ1dHRvbjQiIGRpc2FibGVkPkJ1dHRvbiA0PC9idXR0b24+Ci08L2Rpdj4KLQot
PHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLQotaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8
Y29udGVudCBzZWxlY3Q9IjplbmFibGVkIj48L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZW5hYmxlZCI+PC9j
b250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgYnV0dG9uMi5zZXRBdHRy
aWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgYnV0dG9uNC5yZW1vdmVBdHRyaWJ1dGUoJ2Rp
c2FibGVkJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1maWVsZHNldC1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZW5hYmxlZC1maWVsZHNldC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtZmllbGRz
ZXQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIHRo
ZSAnZW5hYmxlZCcgc3RhdGUgb2YgYSBmaWVsZHNldCB0YWcgaXMgY2hhbmdlZCwgd2UgaGF2ZSB0
byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48ZmllbGRz
ZXQgaWQ9ImZpZWxkc2V0MSIgZGlzYWJsZWQ+RmllbGRzZXQgMTwvZmllbGRzZXQ+PC9kaXY+Ci0K
LTxkaXYgaWQ9Imhvc3QyIj48ZmllbGRzZXQgaWQ9ImZpZWxkc2V0NCIgZGlzYWJsZWQ+RmllbGRz
ZXQgNDwvZmllbGRzZXQ+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWZpZWxkc2V0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2Ns
YXNzLXVwZGF0ZS1lbmFibGVkLWZpZWxkc2V0Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1maWVs
ZHNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2VuYWJsZWQnIHN0YXRl
IG9mIGEgZmllbGRzZXQgdGFnIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0
cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGZpZWxkc2V0IGlkPSJmaWVs
ZHNldDEiPkZpZWxkc2V0IDE8L2ZpZWxkc2V0PgotICAgIDxmaWVsZHNldCBpZD0iZmllbGRzZXQy
Ij5GaWVsZHNldCAyPC9maWVsZHNldD4KLTwvZGl2PgotCi08ZGl2IGlkPSJob3N0MiI+Ci0gICAg
PGZpZWxkc2V0IGlkPSJmaWVsZHNldDMiIGRpc2FibGVkPkZpZWxkc2V0IDM8L2ZpZWxkc2V0Pgot
ICAgIDxmaWVsZHNldCBpZD0iZmllbGRzZXQ0IiBkaXNhYmxlZD5GaWVsZHNldCA0PC9maWVsZHNl
dD4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCku
aW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQiPjwvY29udGVudD4nOwotaG9z
dDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9
IjplbmFibGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBm
aWVsZHNldDIuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwotICAgIGZpZWxkc2V0NC5y
ZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1pbnB1dC1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1pbnB1dC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVu
YWJsZWQtaW5wdXQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08
cD5XaGVuIHRoZSAnZW5hYmxlZCcgc3RhdGUgb2YgYW4gaW5wdXQgdGFnIGlzIGNoYW5nZWQsIHdl
IGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+
PGlucHV0IHZhbHVlPSJJbnB1dCAxIj48L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPjxpbnB1dCB2
YWx1ZT0iSW5wdXQgNCI+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWlucHV0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNz
LXVwZGF0ZS1lbmFibGVkLWlucHV0Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1pbnB1dC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2VuYWJsZWQnIHN0YXRlIG9mIGFuIGlu
cHV0IHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwv
cD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQxIiB2YWx1ZT0iSW5w
dXQgMSI+Ci0gICAgPGlucHV0IGlkPSJpbnB1dDIiIHZhbHVlPSJJbnB1dCAyIj4KLTwvZGl2Pgot
Ci08ZGl2IGlkPSJob3N0MiI+Ci0gICAgPGlucHV0IGlkPSJpbnB1dDMiIHZhbHVlPSJJbnB1dCAz
IiBkaXNhYmxlZD4KLSAgICA8aW5wdXQgaWQ9ImlucHV0NCIgdmFsdWU9IklucHV0IDQiIGRpc2Fi
bGVkPgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLWhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci1o
b3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVj
dD0iOmVuYWJsZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg
IGlucHV0Mi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgaW5wdXQ0LnJlbW92
ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0s
IDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9wdGdyb3VwLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWVuYWJsZWQtb3B0Z3JvdXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVu
YWJsZWQtb3B0Z3JvdXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAg
QEAKLVdoZW4gYW4gb3B0Z3JvdXAgZWxlbWVudCBiZWNhbWUgJ2VuYWJsZWQnIG9yIG5vdC0nZW5h
YmxlZCcsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLgotCi1TaW5jZSBhbiBvcHRncm91cCBl
bGVtZW50IGRvZXMgbm90IGNyZWF0ZSBhIHJlbmRlcmVyLCB3ZSBjYW5ub3QgY2hlY2sgdGhpcyB1
c2luZyByZWZ0ZXN0LgotCi1QQVNTIG5vZGVzMS5sZW5ndGggaXMgMQotUEFTUyBub2RlczEuaXRl
bSgwKS5pbm5lckhUTUwgaXMgIm9wdGdyb3VwIDEiCi1QQVNTIG5vZGVzMi5sZW5ndGggaXMgMQot
UEFTUyBub2RlczIuaXRlbSgwKS5pbm5lckhUTUwgaXMgIm9wdGdyb3VwIDQiCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9wdGdyb3VwLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNz
LXVwZGF0ZS1lbmFibGVkLW9wdGdyb3VwLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1vcHRncm91
cC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFuIG9wdGdyb3VwIGVsZW1lbnQg
YmVjYW1lICdlbmFibGVkJyBvciBub3QtJ2VuYWJsZWQnLCBkaXN0cmlidXRpb24gc2hvdWxkIGhh
cHBlbi48L3A+Ci08cD5TaW5jZSBhbiBvcHRncm91cCBlbGVtZW50IGRvZXMgbm90IGNyZWF0ZSBh
IHJlbmRlcmVyLCB3ZSBjYW5ub3QgY2hlY2sgdGhpcyB1c2luZyByZWZ0ZXN0LjwvcD4KLQotPGRp
diBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJob3N0MSI+Ci0gICAgICAgIDxvcHRncm91
cCBpZD0ib3B0Z3JvdXAxIj5vcHRncm91cCAxPC9vcHRncm91cD4KLSAgICAgICAgPG9wdGdyb3Vw
IGlkPSJvcHRncm91cDIiPm9wdGdyb3VwIDI8L29wdGdyb3VwPgotICAgIDwvZGl2PgotCi0gICAg
PGRpdiBpZD0iaG9zdDIiPgotICAgICAgICA8b3B0Z3JvdXAgaWQ9Im9wdGdyb3VwMyIgZGlzYWJs
ZWQ+b3B0Z3JvdXAgMzwvb3B0Z3JvdXA+Ci0gICAgICAgIDxvcHRncm91cCBpZD0ib3B0Z3JvdXA0
IiBkaXNhYmxlZD5vcHRncm91cCA0PC9vcHRncm91cD4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12
YXIgc2hhZG93Um9vdDIgPSBob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLXNoYWRv
d1Jvb3QxLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjplbmFibGVkIj4nOwotc2hhZG93
Um9vdDIuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQiPic7Ci0KLXZhciBj
b250ZW50MSA9IHNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsKLXZhciBjb250
ZW50MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsKLQotc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICBvcHRncm91cDIuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRy
dWUpOwotICAgIG9wdGdyb3VwNC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7Ci0KLSAgICBu
b2RlczEgPSBjb250ZW50MS5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25v
ZGVzMS5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdub2RlczEuaXRlbSgwKS5pbm5lckhU
TUwnLCAnIm9wdGdyb3VwIDEiJyk7Ci0KLSAgICBub2RlczIgPSBjb250ZW50Mi5nZXREaXN0cmli
dXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMi5sZW5ndGgnLCAnMScpOwotICAgIHNo
b3VsZEJlKCdub2RlczIuaXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGdyb3VwIDQiJyk7Ci0KLSAg
ICBjb250YWluZXIuaW5uZXJIVE1MID0gIiI7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCAwKTsK
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtb3B0aW9uLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLWVuYWJsZWQtb3B0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9w
dGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotV2hlbiBh
biBvcHRpb24gZWxlbWVudCBiZWNhbWUgJ2VuYWJsZWQnIG9yIG5vdC0nZW5hYmxlZCcsIGRpc3Ry
aWJ1dGlvbiBzaG91bGQgaGFwcGVuLgotCi1TaW5jZSBhbiBvcHRpb24gZWxlbWVudCBkb2VzIG5v
dCBjcmVhdGUgYSByZW5kZXJlciwgd2UgY2Fubm90IGNoZWNrIHRoaXMgdXNpbmcgcmVmdGVzdC4K
LQotUEFTUyBub2RlczEubGVuZ3RoIGlzIDEKLVBBU1Mgbm9kZXMxLml0ZW0oMCkuaW5uZXJIVE1M
IGlzICJvcHRpb24gMSIKLVBBU1Mgbm9kZXMyLmxlbmd0aCBpcyAxCi1QQVNTIG5vZGVzMi5pdGVt
KDApLmlubmVySFRNTCBpcyAib3B0aW9uIDQiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9wdGlvbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1vcHRp
b24uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9wdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
PgotCi08cD5XaGVuIGFuIG9wdGlvbiBlbGVtZW50IGJlY2FtZSAnZW5hYmxlZCcgb3Igbm90LSdl
bmFibGVkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uPC9wPgotPHA+U2luY2UgYW4gb3B0
aW9uIGVsZW1lbnQgZG9lcyBub3QgY3JlYXRlIGEgcmVuZGVyZXIsIHdlIGNhbm5vdCBjaGVjayB0
aGlzIHVzaW5nIHJlZnRlc3QuPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYg
aWQ9Imhvc3QxIj4KLSAgICAgICAgPG9wdGlvbiBpZD0ib3B0aW9uMSI+b3B0aW9uIDE8L29wdGlv
bj4KLSAgICAgICAgPG9wdGlvbiBpZD0ib3B0aW9uMiI+b3B0aW9uIDI8L29wdGlvbj4KLSAgICA8
L2Rpdj4KLQotICAgIDxkaXYgaWQ9Imhvc3QyIj4KLSAgICAgICAgPG9wdGlvbiBpZD0ib3B0aW9u
MyIgZGlzYWJsZWQ+b3B0aW9uIDM8L29wdGlvbj4KLSAgICAgICAgPG9wdGlvbiBpZD0ib3B0aW9u
NCIgZGlzYWJsZWQ+b3B0aW9uIDQ8L29wdGlvbj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIg
c2hhZG93Um9vdDIgPSBob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLXNoYWRvd1Jv
b3QxLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjplbmFibGVkIj4nOwotc2hhZG93Um9v
dDIuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQiPic7Ci0KLXZhciBjb250
ZW50MSA9IHNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsKLXZhciBjb250ZW50
MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsKLQotc2V0VGltZW91dChm
dW5jdGlvbigpIHsKLSAgICBvcHRpb24yLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTsK
LSAgICBvcHRpb240LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLQotICAgIG5vZGVzMSA9
IGNvbnRlbnQxLmdldERpc3RyaWJ1dGVkTm9kZXMoKTsKLSAgICBzaG91bGRCZSgnbm9kZXMxLmxl
bmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMS5pdGVtKDApLmlubmVySFRNTCcsICci
b3B0aW9uIDEiJyk7Ci0KLSAgICBub2RlczIgPSBjb250ZW50Mi5nZXREaXN0cmlidXRlZE5vZGVz
KCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMi5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdu
b2RlczIuaXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGlvbiA0IicpOwotCi0gICAgY29udGFpbmVy
LmlubmVySFRNTCA9ICIiOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLXNlbGVjdC1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5h
YmxlZC1zZWxlY3QtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLXNlbGVjdC1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gdGhlICdlbmFi
bGVkJyBzdGF0ZSBvZiBhIHNlbGVjdCB0YWcgaXMgY2hhbmdlZCwgd2UgaGF2ZSB0byBpbnZhbGlk
YXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48c2VsZWN0PjxvcHRpb24+
U2VsZWN0IDE8L29wdGlvbj48L3NlbGVjdD48L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPjxzZWxl
Y3Q+PG9wdGlvbj5TZWxlY3QgNDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PgotCi08L2JvZHk+Ci08
L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11
cGRhdGUtZW5hYmxlZC1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtc2VsZWN0Lmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11
cGRhdGUtZW5hYmxlZC1zZWxlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gdGhl
ICdlbmFibGVkJyBzdGF0ZSBvZiBhIHNlbGVjdCB0YWcgaXMgY2hhbmdlZCwgd2UgaGF2ZSB0byBp
bnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8c2Vs
ZWN0IGlkPSJzZWxlY3QxIj48b3B0aW9uPlNlbGVjdCAxPC9vcHRpb24+PC9zZWxlY3Q+Ci0gICAg
PHNlbGVjdCBpZD0ic2VsZWN0MiI+PG9wdGlvbj5TZWxlY3QgMjwvb3B0aW9uPjwvc2VsZWN0Pgot
PC9kaXY+Ci0KLTxkaXYgaWQ9Imhvc3QyIj4KLSAgICA8c2VsZWN0IGlkPSJzZWxlY3QzIiBkaXNh
YmxlZD48b3B0aW9uPlNlbGVjdCAzPC9vcHRpb24+PC9zZWxlY3Q+Ci0gICAgPHNlbGVjdCBpZD0i
c2VsZWN0NCIgZGlzYWJsZWQ+PG9wdGlvbj5TZWxlY3QgNDwvb3B0aW9uPjwvc2VsZWN0PgotPC9k
aXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci0KLWhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhU
TUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci1ob3N0Mi53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJs
ZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIHNlbGVjdDIu
c2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwotICAgIHNlbGVjdDQucmVtb3ZlQXR0cmli
dXRlKCdkaXNhYmxlZCcpOwotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0K
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtdGV4dGFyZWEtZXhwZWN0ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLWVuYWJsZWQtdGV4dGFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVk
LXRleHRhcmVhLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+
V2hlbiB0aGUgJ2VuYWJsZWQnIHN0YXRlIG9mIGEgdGV4dGFyZWEgdGFnIGlzIGNoYW5nZWQsIHdl
IGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+
PHRleHRhcmVhPlRleHRhcmVhIDE8L3RleHRhcmVhPjwvZGl2PgotCi08ZGl2IGlkPSJob3N0MiI+
PHRleHRhcmVhPlRleHRhcmVhIDQ8L3RleHRhcmVhPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZW5hYmxlZC10ZXh0YXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC10ZXh0YXJlYS5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBk
YXRlLWVuYWJsZWQtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gdGhl
ICdlbmFibGVkJyBzdGF0ZSBvZiBhIHRleHRhcmVhIHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRv
IGludmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDx0
ZXh0YXJlYSBpZD0idGV4dGFyZWExIj5UZXh0YXJlYSAxPC90ZXh0YXJlYT4KLSAgICA8dGV4dGFy
ZWEgaWQ9InRleHRhcmVhMiI+VGV4dGFyZWEgMjwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotPGRpdiBp
ZD0iaG9zdDIiPgotICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWEzIiBkaXNhYmxlZD5UZXh0YXJl
YSAzPC90ZXh0YXJlYT4KLSAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVhNCIgZGlzYWJsZWQ+VGV4
dGFyZWEgNDwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotaG9zdDEud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjplbmFibGVkIj48
L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAn
PGNvbnRlbnQgc2VsZWN0PSI6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7Ci0gICAgdGV4dGFyZWEyLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTsK
LSAgICB0ZXh0YXJlYTQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpOwotICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWlu
ZGV0ZXJtaW5hdGUtaW5wdXQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWluZGV0ZXJtaW5hdGUtaW5wdXQt
ZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1pbmRldGVybWluYXRlLWlucHV0LWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxib2R5PgotCi08cD5XaGVuIGlucHV0IGJlY2FtZSAnaW5kZXRlcm1pbmF0ZScgc3RhdGUg
b3Igbm90LSdpbmRldGVybWluYXRlJyBzdGF0ZSwgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4u
PC9wPgotCi08ZGl2IGlkPSJob3N0Ij48c3Bhbj5zZXBhcmF0b3IgMTwvc3Bhbj48c3Bhbj5zZXBh
cmF0b3IgMjwvc3Bhbj48aW5wdXQgaWQ9ImlucHV0MyIgdHlwZT0iY2hlY2tib3giIGluZGV0ZXJt
aW5hdGU9InRydWUiPjxzcGFuPnNlcGFyYXRvciAzPC9zcGFuPjxzcGFuPnNlcGFyYXRvciA0PC9z
cGFuPjxpbnB1dCBpZD0iaW5wdXQ1IiB0eXBlPSJjaGVja2JveCIgaW5kZXRlcm1pbmF0ZT0idHJ1
ZSI+PHNwYW4+c2VwYXJhdG9yIDU8L3NwYW4+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pbnB1dDMuaW5k
ZXRlcm1pbmF0ZSA9IHRydWU7Ci1pbnB1dDUuaW5kZXRlcm1pbmF0ZSA9IHRydWU7Ci08L3Njcmlw
dD4KLQotCi08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtaW5kZXRlcm1pbmF0ZS1pbnB1dC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtaW5k
ZXRlcm1pbmF0ZS1pbnB1dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWluZGV0ZXJtaW5hdGUtaW5wdXQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gaW5wdXQgYmVjYW1lICdpbmRldGVybWluYXRl
JyBzdGF0ZSBvciBub3QtJ2luZGV0ZXJtaW5hdGUnIHN0YXRlLCBkaXN0cmlidXRpb24gc2hvdWxk
IGhhcHBlbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQxIiB0
eXBlPSJjaGVja2JveCI+Ci0gICAgPHNwYW4+c2VwYXJhdG9yIDE8L3NwYW4+Ci0gICAgPGlucHV0
IGlkPSJpbnB1dDIiIHR5cGU9ImNoZWNrYm94Ij4KLSAgICA8c3Bhbj5zZXBhcmF0b3IgMjwvc3Bh
bj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0MyIgdHlwZT0iY2hlY2tib3giPgotICAgIDxzcGFuPnNl
cGFyYXRvciAzPC9zcGFuPgotICAgIDxpbnB1dCBpZD0iaW5wdXQ0IiB0eXBlPSJ0ZXh0Ij4KLSAg
ICA8c3Bhbj5zZXBhcmF0b3IgNDwvc3Bhbj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0NSIgdHlwZT0i
dGV4dCI+Ci0gICAgPHNwYW4+c2VwYXJhdG9yIDU8L3NwYW4+Ci0gICAgPGlucHV0IGlkPSJpbnB1
dDYiIHR5cGU9InRleHQiPgotPC9kaXY+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1pbnB1dDEuaW5kZXRlcm1pbmF0
ZSA9IHRydWU7Ci1pbnB1dDIuaW5kZXRlcm1pbmF0ZSA9IHRydWU7Ci1pbnB1dDQuaW5kZXRlcm1p
bmF0ZSA9IHRydWU7Ci1pbnB1dDUuaW5kZXRlcm1pbmF0ZSA9IHRydWU7Ci0KLXZhciBzaGFkb3dS
b290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRN
TCA9ICc8Y29udGVudCBzZWxlY3Q9InNwYW4sIGlucHV0OmluZGV0ZXJtaW5hdGUiPjwvY29udGVu
dD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGlucHV0MS5pbmRldGVybWluYXRl
ID0gZmFsc2U7Ci0gICAgaW5wdXQzLmluZGV0ZXJtaW5hdGUgPSB0cnVlOwotICAgIGlucHV0NC5p
bmRldGVybWluYXRlID0gZmFsc2U7Ci0gICAgaW5wdXQ2LmluZGV0ZXJtaW5hdGUgPSB0cnVlOwot
ICAgIAotICAgIGlucHV0Mi50eXBlID0gJ3RleHQnOwotICAgIGlucHV0NS50eXBlID0gJ2NoZWNr
Ym94JzsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotCi08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS1pbmRldGVybWluYXRlLXByb2dyZXNzLWV4cGVjdGVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS1pbmRldGVybWluYXRlLXByb2dyZXNzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtaW5kZXRl
cm1pbmF0ZS1wcm9ncmVzcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLXByb2dyZXNz
IHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgot
Ci08Ym9keT4KLQotPHA+V2hlbiBwcm9ncmVzcyBiZWNhbWUgJ2luZGV0ZXJtaW5hdGUnIG9yIG5v
dC0naW5kZXRlcm1pbmF0ZScsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRp
diBpZD0iaG9zdCI+PHByb2dyZXNzIGlkPSJwcm9ncmVzczEiPjwvcHJvZ3Jlc3M+PHNwYW4+c2Vw
YXJhdG9yPC9zcGFuPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWluZGV0ZXJtaW5hdGUtcHJvZ3Jl
c3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWluZGV0ZXJtaW5hdGUtcHJvZ3Jlc3MuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1pbmRl
dGVybWluYXRlLXByb2dyZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1wcm9ncmVzcyB7Ci0gICAgLXdlYmtpdC1h
cHBlYXJhbmNlOiBub25lOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldo
ZW4gcHJvZ3Jlc3MgYmVjYW1lICdpbmRldGVybWluYXRlJyBvciBub3QtJ2luZGV0ZXJtaW5hdGUn
LCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAg
IDxwcm9ncmVzcyBpZD0icHJvZ3Jlc3MxIj48L3Byb2dyZXNzPgotICAgIDxzcGFuPnNlcGFyYXRv
cjwvc3Bhbj4KLSAgICA8cHJvZ3Jlc3MgaWQ9InByb2dyZXNzMiI+PC9wcm9ncmVzcz4KLTwvZGl2
PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0ic3Bhbixwcm9n
cmVzczppbmRldGVybWluYXRlIj48L2NvbnRlbnQ+JzsKLXByb2dyZXNzMS52YWx1ZSA9ICczMCc7
Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgcHJvZ3Jlc3MxLnJlbW92ZUF0dHJpYnV0
ZSgndmFsdWUnKTsKLSAgICBwcm9ncmVzczIudmFsdWUgPSAnNzAnOwotICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWxpbmst
YW5jaG9yLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1saW5rLWFuY2hvci1leHBlY3RlZC5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLWxpbmstYW5jaG9yLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gYW4g
YW5jaG9yIHRhZyBjYXRjaCAnaHJlZicgYXR0cmlidXRlIG9yIHJlbGVhc2UgJ2hyZWYnIGF0dHJp
YnV0ZSwgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uPC9wPgotCi08ZGl2PjxhIGlkPSJhbmNo
b3IxIiBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+QW5jaG9yIDE8L2E+PC9kaXY+Ci08
ZGl2PjxhIGlkPSJhbmNob3I0IiBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+QW5jaG9y
IDQ8L2E+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1saW5rLWFuY2hvci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtbGlu
ay1hbmNob3IuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1saW5rLWFuY2hvci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBhdHRyaWJ1dGUgb3IgcmVs
ZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0K
LTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8YSBpZD0iYW5jaG9yMSIgaHJlZj0iaHR0cDovL3d3dy5l
eGFtcGxlLmNvbS8iPkFuY2hvciAxPC9hPgotICAgIDxhIGlkPSJhbmNob3IyIiBocmVmPSJodHRw
Oi8vd3d3LmV4YW1wbGUuY29tLyI+QW5jaG9yIDI8L2E+Ci08L2Rpdj4KLQotPGRpdiBpZD0iaG9z
dDIiPgotICAgIDxhIGlkPSJhbmNob3IzIj5BbmNob3IgMzwvYT4KLSAgICA8YSBpZD0iYW5jaG9y
NCI+QW5jaG9yIDQ8L2E+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotaG9zdDEud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjpsaW5rIj48L2NvbnRl
bnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSI6bGluayI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgYW5jaG9yMi5yZW1vdmVBdHRyaWJ1dGUoJ2hyZWYnKTsKLSAgICBhbmNob3I0LnNldEF0
dHJpYnV0ZSgnaHJlZicsICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLycpOwotICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWxp
bmstYXJlYS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtbGluay1hcmVhLWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11
cGRhdGUtbGluay1hcmVhLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9oZWFkPgotCi08Ym9keT4K
LQotPHN0eWxlPgotYXJlYSB7Ci0gICAgZGlzcGxheTogaW5saW5lOwotfQotPC9zdHlsZT4KLQot
PHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBhdHRyaWJ1dGUgb3IgcmVsZWFzZSAn
aHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0KLTxkaXYg
aWQ9Imhvc3QxIj48L2Rpdj4KLTxkaXYgaWQ9Imhvc3QyIj48L2Rpdj4KLQotPHNjcmlwdD4KLWZ1
bmN0aW9uIGNyZWF0ZUFyZWEoaHJlZiwgdGV4dENvbnRlbnQpCi17Ci0gICAgdmFyIGFyZWEgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdhcmVhJyk7Ci0gICAgaWYgKGhyZWYpCi0gICAgICAgIGFy
ZWEuc2V0QXR0cmlidXRlKCdocmVmJywgaHJlZik7Ci0gICAgYXJlYS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0Q29udGVudCkpOwotCi0gICAgcmV0dXJuIGFyZWE7Ci19
Ci0KLXZhciBhcmVhMSA9IGNyZWF0ZUFyZWEoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJywgJ0Fu
Y2hvciAxJyk7Ci12YXIgYXJlYTQgPSBjcmVhdGVBcmVhKCdodHRwOi8vd3d3LmV4YW1wbGUuY29t
LycsICdBbmNob3IgNCcpOwotCi1ob3N0MS5hcHBlbmRDaGlsZChhcmVhMSk7Ci1ob3N0Mi5hcHBl
bmRDaGlsZChhcmVhNCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1saW5rLWFyZWEuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLWxpbmstYXJlYS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWxpbmstYXJlYS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDU3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keT4KLQotPHN0eWxlPgotYXJlYSB7Ci0gICAgZGlzcGxheTogaW5saW5lOwotfQotPC9z
dHlsZT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBhdHRyaWJ1dGUgb3Ig
cmVsZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+
Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4KLTxkaXYgaWQ9Imhvc3QyIj48L2Rpdj4KLQotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLQotZnVuY3Rpb24gY3JlYXRlQXJlYShocmVmLCB0ZXh0Q29udGVudCkKLXsKLSAgICB2
YXIgYXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2FyZWEnKTsKLSAgICBpZiAoaHJlZikK
LSAgICAgICAgYXJlYS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTsKLSAgICBhcmVhLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHRDb250ZW50KSk7Ci0KLSAgICByZXR1
cm4gYXJlYTsKLX0KLQotdmFyIGFyZWExID0gY3JlYXRlQXJlYSgnaHR0cDovL3d3dy5leGFtcGxl
LmNvbS8nLCAnQW5jaG9yIDEnKTsKLXZhciBhcmVhMiA9IGNyZWF0ZUFyZWEoJ2h0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vJywgJ0FuY2hvciAyJyk7Ci12YXIgYXJlYTMgPSBjcmVhdGVBcmVhKG51bGws
ICdBbmNob3IgMycpOwotdmFyIGFyZWE0ID0gY3JlYXRlQXJlYShudWxsLCAnQW5jaG9yIDQnKTsK
LQotaG9zdDEuYXBwZW5kQ2hpbGQoYXJlYTEpOwotaG9zdDEuYXBwZW5kQ2hpbGQoYXJlYTIpOwot
aG9zdDIuYXBwZW5kQ2hpbGQoYXJlYTMpOwotaG9zdDIuYXBwZW5kQ2hpbGQoYXJlYTQpOwotCi1o
b3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVj
dD0iYXJlYTpsaW5rIj48L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJhcmVhOmxpbmsiPjwvY29udGVudD4nOwot
Ci1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGFyZWEyLnJlbW92ZUF0dHJpYnV0ZSgnaHJl
ZicpOwotICAgIGFyZWE0LnNldEF0dHJpYnV0ZSgnaHJlZicsICdodHRwOi8vd3d3LmV4YW1wbGUu
Y29tLycpOwotICAgIGlmICh0ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLX0sIDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS10YXJnZXQtZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLXRhcmdldC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXRhcmdldC1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08Ym9keT4KLQotPHA+V2hlbiA6dGFyZ2V0IGlzIGNoYW5nZWQsIHdlIGhhdmUg
dG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0Ij4KLSAgICA8
ZGl2IGlkPSJ0YXJnZXQyIj50YXJnZXQgMjwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRt
bD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS10YXJnZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cHNldWRvY2xhc3MtdXBkYXRlLXRhcmdldC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXRhcmdldC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiA6dGFyZ2V0IGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8g
aW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0Ij4KLSAgICA8ZGl2
IGlkPSJ0YXJnZXQxIj50YXJnZXQgMTwvZGl2PgotICAgIDxkaXYgaWQ9InRhcmdldDIiPnRhcmdl
dCAyPC9kaXY+Ci0gICAgPGRpdiBpZD0idGFyZ2V0MyI+dGFyZ2V0IDM8L2Rpdj4KLTwvZGl2Pgot
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotCi1sb2NhdGlvbi5oYXNoID0gJyN0YXJnZXQxJzsKLQotdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1M
ID0gJzxjb250ZW50IHNlbGVjdD0iZGl2OnRhcmdldCI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7Ci0gICAgbG9jYXRpb24uaGFzaCA9ICcjdGFyZ2V0Mic7Ci0gICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRh
dGUtdmlzaXRlZC1hbmNob3ItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXZpc2l0ZWQtYW5jaG9yLWV4cGVj
dGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9wc2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRlZC1hbmNob3ItZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08Ym9k
eT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBhdHRyaWJ1dGUgb3IgcmVs
ZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0K
LTxkaXY+PGEgaWQ9ImFuY2hvcjEiIGhyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIj5BbmNo
b3IgMTwvYT48L2Rpdj4KLTxkaXY+PGEgaWQ9ImFuY2hvcjQiIGhyZWY9Imh0dHA6Ly93d3cuZXhh
bXBsZS5jb20vIj5BbmNob3IgNDwvYT48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgotCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXZpc2l0ZWQt
YW5jaG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS12aXNpdGVkLWFuY2hvci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXZpc2l0ZWQt
YW5jaG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0
Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNlICdocmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1
dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxhIGlkPSJh
bmNob3IxIiBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+QW5jaG9yIDE8L2E+Ci0gICAg
PGEgaWQ9ImFuY2hvcjIiIGhyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIj5BbmNob3IgMjwv
YT4KLTwvZGl2PgotCi08ZGl2IGlkPSJob3N0MiI+Ci0gICAgPGEgaWQ9ImFuY2hvcjMiPkFuY2hv
ciAzPC9hPgotICAgIDxhIGlkPSJhbmNob3I0Ij5BbmNob3IgNDwvYT4KLTwvZGl2PgotCi08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250
ZW50IHNlbGVjdD0iOnZpc2l0ZWQiPjwvY29udGVudD4nOwotaG9zdDIud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9Ijp2aXNpdGVkIj48L2NvbnRl
bnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBhbmNob3IyLnJlbW92ZUF0dHJp
YnV0ZSgnaHJlZicpOwotICAgIGFuY2hvcjQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2h0dHA6Ly93
d3cuZXhhbXBsZS5jb20vJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsK
LQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRlZC1hcmVhLWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVw
ZGF0ZS12aXNpdGVkLWFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS12aXNpdGVkLWFyZWEt
ZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08c3R5bGU+Ci1hcmVh
IHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci19Ci08L3N0eWxlPgotCi08cD5XaGVuIGFuIGFuY2hv
ciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNlICdocmVmJyBhdHRyaWJ1dGUs
IGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2
PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgotCi08c2NyaXB0PgotZnVuY3Rpb24gY3JlYXRlQXJl
YShocmVmLCB0ZXh0Q29udGVudCkKLXsKLSAgICB2YXIgYXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2FyZWEnKTsKLSAgICBpZiAoaHJlZikKLSAgICAgICAgYXJlYS5zZXRBdHRyaWJ1dGUo
J2hyZWYnLCBocmVmKTsKLSAgICBhcmVhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHRleHRDb250ZW50KSk7Ci0KLSAgICByZXR1cm4gYXJlYTsKLX0KLQotdmFyIGFyZWExID0g
Y3JlYXRlQXJlYSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8nLCAnQW5jaG9yIDEnKTsKLXZhciBh
cmVhNCA9IGNyZWF0ZUFyZWEoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJywgJ0FuY2hvciA0Jyk7
Ci0KLWhvc3QxLmFwcGVuZENoaWxkKGFyZWExKTsKLWhvc3QyLmFwcGVuZENoaWxkKGFyZWE0KTsK
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXZpc2l0ZWQtYXJlYS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRl
ZC1hcmVhLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRlZC1hcmVhLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
PgotCi08c3R5bGU+Ci1hcmVhIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci19Ci08L3N0eWxlPgot
Ci08cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNl
ICdocmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRp
diBpZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgotCi08c2NyaXB0Pgot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
Ci1mdW5jdGlvbiBjcmVhdGVBcmVhKGhyZWYsIHRleHRDb250ZW50KQotewotICAgIHZhciBhcmVh
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXJlYScpOwotICAgIGlmIChocmVmKQotICAgICAg
ICBhcmVhLnNldEF0dHJpYnV0ZSgnaHJlZicsIGhyZWYpOwotICAgIGFyZWEuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dENvbnRlbnQpKTsKLQotICAgIHJldHVybiBhcmVh
OwotfQotCi12YXIgYXJlYTEgPSBjcmVhdGVBcmVhKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLycs
ICdBbmNob3IgMScpOwotdmFyIGFyZWEyID0gY3JlYXRlQXJlYSgnaHR0cDovL3d3dy5leGFtcGxl
LmNvbS8nLCAnQW5jaG9yIDInKTsKLXZhciBhcmVhMyA9IGNyZWF0ZUFyZWEobnVsbCwgJ0FuY2hv
ciAzJyk7Ci12YXIgYXJlYTQgPSBjcmVhdGVBcmVhKG51bGwsICdBbmNob3IgNCcpOwotCi1ob3N0
MS5hcHBlbmRDaGlsZChhcmVhMSk7Ci1ob3N0MS5hcHBlbmRDaGlsZChhcmVhMik7Ci1ob3N0Mi5h
cHBlbmRDaGlsZChhcmVhMyk7Ci1ob3N0Mi5hcHBlbmRDaGlsZChhcmVhNCk7Ci0KLWhvc3QxLndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJhcmVh
OnZpc2l0ZWQiPjwvY29udGVudD4nOwotaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlu
bmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImFyZWE6dmlzaXRlZCI+PC9jb250ZW50Pic7Ci0K
LXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgYXJlYTIucmVtb3ZlQXR0cmlidXRlKCdocmVm
Jyk7Ci0gICAgYXJlYTQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5j
b20vJyk7Ci0gICAgaWYgKHRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVtb3ZlLXN0eWxlcy1pbi1zaGFkb3ctY3Jhc2gtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZW1v
dmUtc3R5bGVzLWluLXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZW1vdmUtc3R5bGVzLWluLXNoYWRvdy1j
cmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEgKzAsMCBAQAotUEFTUwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlbW92ZS1zdHlsZXMtaW4tc2hhZG93LWNy
YXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlbW92
ZS1zdHlsZXMtaW4tc2hhZG93LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZW1vdmUtc3R5bGVzLWluLXNoYWRvdy1jcmFzaC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgdmFyIGhvc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotICAgIHZhciBzciA9IGhvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIC8vIFRlc3QgdGhlIGNhc2U6IHR3byBzdHlsZXMgYXJl
IGluIHNoYWRvdyBkb20gc3VidHJlZSBhbmQgdGhleSBhcmUgbm90Ci0gICAgLy8gZGlyZWN0IGNo
aWxyZW4gb2YgdGhlIHNoYWRvdyByb290LgotICAgIHNyLmlubmVySFRNTCA9ICc8ZGl2PjxzdHls
ZT5kaXYgeyBjb2xvcjogYmx1ZTsgfTwvc3R5bGU+SGVsbG88L2Rpdj48ZGl2PjxzdHlsZT5zcGFu
IHsgY29sb3I6IHJlZCB9PC9zdHlsZT48c3Bhbj5Xb3JsZDwvc3Bhbj48L2Rpdj4nOwotICAgIHNy
LmlubmVySFRNTCA9ICcnOwotCi0gICAgLy8gVGVzdCB0aGUgY2FzZTogdHdvIHN0eWxlcyBhcmUg
aW4gc2hhZG93IGRvbSBzdWJ0cmVlLCBidXQgb25lIGlzIGEgZGlyZWN0Ci0gICAgLy8gY2hpbGQg
b2Ygc2hhZG93IHJvb3QgYW5kIHNjb3BlZC4gVGhlIG90aGVyIGlzIG5vdCBhIGRpcmVjdCBjaGls
ZCBhbmQKLSAgICAvLyBub3Qgc2NvcGVkLgotICAgIHNyLmlubmVySFRNTCA9ICc8c3R5bGUgc2Nv
cGVkPmRpdiB7IGNvbG9yOiBibHVlOyB9PC9zdHlsZT5IZWxsbzxkaXY+PHN0eWxlPnNwYW4geyBj
b2xvcjogcmVkIH08L3N0eWxlPjxzcGFuPldvcmxkPC9zcGFuPjwvZGl2Pic7Ci0gICAgc3IuaW5u
ZXJIVE1MID0gJyc7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLSAgICA8IS0tIFtCdWcgMTAwNDU1XSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDQ1NSAtLT4KLSAgICA8IS0tIFtTaGFkb3ddOiByZW1vdmluZyBzdHls
ZXMgaW4gc2hhZG93IGRvbSBzdWJ0cmVlIGNhdXNlcyBjcmFzaC4gLS0+Ci0gICAgPCEtLSBJZiB0
aGlzIHRlc3QgcGFzc2VzLCB3ZSBjYW4gc2VlIGp1c3QgIlBBU1MiIHdpdGhvdXQgYW55IGNyYXNo
ZXMuIC0tPgotICAgIDxkaXYgaWQ9Imhvc3QiPjwvZGl2PiAgCi0gICAgPGRpdj5QQVNTPC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVw
cm9qZWN0aW9uLWF0dHJpYnV0ZS1tb2RpZmllZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24tYXR0cmlidXRlLW1vZGlm
aWVkLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9yZXByb2plY3Rpb24tYXR0cmlidXRlLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1s
PgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPjxkaXY+Ci0gICAgPGRpdj5GPC9kaXY+Ci08L2Rp
dj48L2Rpdj4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jl
cHJvamVjdGlvbi1hdHRyaWJ1dGUtbW9kaWZpZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWF0dHJpYnV0ZS1tb2RpZmllZC5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVwcm9q
ZWN0aW9uLWF0dHJpYnV0ZS1tb2RpZmllZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM0ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08aHRtbD4KLTxib2R5PgotCi08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAg
IDxkaXY+QTwvZGl2PgotICAgIDxkaXY+QjwvZGl2PgotICAgIDxkaXY+QzwvZGl2PgotICAgIDxk
aXY+RDwvZGl2PgotICAgIDxkaXY+RTwvZGl2PgotICAgIDxkaXYgaWQ9IkYiPkY8L2Rpdj4KLTwv
ZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0iaG9zdDIiPjxz
aGFkb3c+PC9zaGFkb3c+PC9kaXY+JzsKLQotdmFyIGhvc3QyID0gc2hhZG93Um9vdDEuZ2V0RWxl
bWVudEJ5SWQoJ2hvc3QyJyk7Ci12YXIgc2hhZG93Um9vdDIgPSBob3N0Mi53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJk
aXZbdGl0bGU9c2VsZWN0ZWRdIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICBGLnRpdGxlID0gJ3NlbGVjdGVkJzsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24tY2xh
c3NOYW1lLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3JlcHJvamVjdGlvbi1jbGFzc05hbWUtbW9kaWZpZWQtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jl
cHJvamVjdGlvbi1jbGFzc05hbWUtbW9kaWZpZWQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQot
PGRpdiBpZD0iaG9zdCI+PGRpdj4KLSAgICA8ZGl2PkE8L2Rpdj4KLSAgICA8ZGl2PkQ8L2Rpdj4K
LSAgICA8ZGl2PkY8L2Rpdj4KLTwvZGl2PjwvZGl2PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWNsYXNzTmFtZS1tb2RpZmllZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24t
Y2xhc3NOYW1lLW1vZGlmaWVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24tY2xhc3NOYW1lLW1vZGlmaWVkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgot
PGJvZHk+Ci0KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
Ci08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRpdiBjbGFzcz0ic2VsZWN0ZWQiPkE8L2Rpdj4KLSAg
ICA8ZGl2PkI8L2Rpdj4KLSAgICA8ZGl2PkM8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJzZWxlY3Rl
ZCI+RDwvZGl2PgotICAgIDxkaXY+RTwvZGl2PgotICAgIDxkaXYgaWQ9IkYiPkY8L2Rpdj4KLTwv
ZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0iaG9zdDIiPjxz
aGFkb3c+PC9zaGFkb3c+PC9kaXY+JzsKLQotdmFyIGhvc3QyID0gc2hhZG93Um9vdDEuZ2V0RWxl
bWVudEJ5SWQoJ2hvc3QyJyk7Ci12YXIgc2hhZG93Um9vdDIgPSBob3N0Mi53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIu
c2VsZWN0ZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIEYu
Y2xhc3NOYW1lID0gJ3NlbGVjdGVkJzsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24taWQtbW9kaWZp
ZWQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcmVwcm9qZWN0aW9uLWlkLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24taWQtbW9kaWZp
ZWQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPGRpdiBpZD0iaG9zdCI+PGRpdj4KLSAgICA8
ZGl2PkY8L2Rpdj4KLTwvZGl2PjwvZGl2PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWlkLW1vZGlmaWVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlcHJvamVjdGlvbi1pZC1tb2RpZmllZC5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVw
cm9qZWN0aW9uLWlkLW1vZGlmaWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRp
diBpZD0ic2VsZWN0ZWQiPkE8L2Rpdj4KLSAgICA8ZGl2PkI8L2Rpdj4KLSAgICA8ZGl2PkM8L2Rp
dj4KLSAgICA8ZGl2PkQ8L2Rpdj4KLSAgICA8ZGl2PkU8L2Rpdj4KLSAgICA8ZGl2IGlkPSJGIj5G
PC9kaXY+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDEuaW5uZXJIVE1MID0gJzxkaXYgaWQ9
Imhvc3QyIj48c2hhZG93Pjwvc2hhZG93PjwvZGl2Pic7Ci0KLXZhciBob3N0MiA9IHNoYWRvd1Jv
b3QxLmdldEVsZW1lbnRCeUlkKCdob3N0MicpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxjb250ZW50
IHNlbGVjdD0iI3NlbGVjdGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigp
IHsKLSAgICBBID0gc2VsZWN0ZWQ7Ci0gICAgQS5pZCA9ICcnOwotICAgIEYuaWQgPSAnc2VsZWN0
ZWQnOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Ci19LCAwKTsKLTwvc2NyaXB0PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3Jlc2l6ZS1pbi1zaGFkb3ctZG9tLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzaXplLWluLXNoYWRvdy1kb20t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvcmVzaXplLWluLXNoYWRvdy1kb20tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzAsMCBAQAotUEFTUyBib3gub2Zmc2V0V2lkdGggaXMgMTE0Ci1QQVNTIGJveC5vZmZz
ZXRIZWlnaHQgaXMgMTE0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc2l6ZS1pbi1z
aGFkb3ctZG9tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3Jlc2l6ZS1pbi1zaGFkb3ctZG9tLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNpemUtaW4tc2hhZG93LWRvbS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPGRpdiBp
ZD0iaG9zdCI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWZ1
bmN0aW9uIGNyZWF0ZUJveChuYW1lKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53aWR0aCA9ICcxMDBweCc7Ci0gICAgZGl2LnN0
eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0gICAgZGl2LnN0eWxlLnJlc2l6ZSA9ICdib3RoJzsKLSAg
ICBkaXYuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsKLSAgICBkaXYuc3R5bGUuYmFja2dyb3Vu
ZCA9ICdyZWQnOwotCi0gICAgcmV0dXJuIGRpdjsKLX0KLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBib3ggPSBjcmVhdGVCb3goJ2RhcmsnKTsK
LXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYm94KTsKLQotdmFyIHggPSBib3gub2Zmc2V0TGVmdCAr
IGJveC5vZmZzZXRXaWR0aDsKLXZhciB5ID0gYm94Lm9mZnNldExlZnQgKyBib3gub2Zmc2V0V2lk
dGg7Ci0KLWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggLSA3LCB5IC0gNyk7Ci1ldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKLWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyA3LCB5ICsgNyk7Ci1l
dmVudFNlbmRlci5tb3VzZVVwKCk7Ci0KLXNob3VsZEJlKCdib3gub2Zmc2V0V2lkdGgnLCAnMTE0
Jyk7Ci1zaG91bGRCZSgnYm94Lm9mZnNldEhlaWdodCcsICcxMTQnKTsKLQotdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9ldmVudC1kaXNwYXRjaGlu
Zy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2Vz
L2V2ZW50LWRpc3BhdGNoaW5nLmpzCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE3OSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdHMgdG8gZW5zdXJlIHRoYXQg
ZXZlbnQgZGlzcGF0Y2hpbmcgYmVoYXZlcyBhcyB0aGUgU2hhZG93IERPTSBzcGVjIGRlc2NyaWJl
cy4iKTsKLQotdmFyIGRlZmF1bHRQYWRkaW5nU2l6ZSA9IDQwOwotCi1mdW5jdGlvbiBtb3ZlTW91
c2VPdmVyKGVsZW1lbnQpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZhciB4ID0gZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFyIHk7Ci0gICAgaWYgKGVs
ZW1lbnQuaGFzQ2hpbGROb2RlcygpIHx8IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChlbGVt
ZW50KSkKLSAgICAgICAgeSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZGVmYXVsdFBhZGRpbmdTaXpl
IC8gMjsKLSAgICBlbHNlCi0gICAgICAgIHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLX0K
LQotZnVuY3Rpb24gdG91Y2hMb2NhdGlvbihub2RlKQotewotICAgIHZhciB4ID0gbm9kZS5vZmZz
ZXRMZWZ0ICsgNTsKLSAgICB2YXIgeSA9IG5vZGUub2Zmc2V0VG9wICsgZGVmYXVsdFBhZGRpbmdT
aXplICsgNTsKLSAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KHgsIHkpOwotICAgIGV2ZW50
U2VuZGVyLnRvdWNoU3RhcnQoKTsKLSAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDApOwot
ICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7Ci0gICAgZXZlbnRTZW5kZXIuY2FuY2VsVG91Y2hQ
b2ludCgwKTsKLX0KLQotZnVuY3Rpb24gc2VsZWN0VGV4dE5vZGUobm9kZSkKLXsKLSAgICBnZXRT
ZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KG5vZGUsIDAsIG5vZGUsIG5vZGUubGVuZ3RoKTsK
LX0KLQotZnVuY3Rpb24gZHJhZ01vdXNlKG5vZGUpIHsKLSAgICB2YXIgeCA9IG5vZGUub2Zmc2V0
TGVmdCArIDU7Ci0gICAgdmFyIHkgPSBub2RlLm9mZnNldFRvcCArIGRlZmF1bHRQYWRkaW5nU2l6
ZSArIDU7Ci0KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDApOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyAxMDAsIHkgKyAxMDApOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLX0KLQot
ZnVuY3Rpb24gc2Nyb2xsTW91c2VXaGVlbChub2RlKSB7Ci0gICAgdmFyIHggPSBub2RlLm9mZnNl
dExlZnQgKyA1OwotICAgIHZhciB5ID0gbm9kZS5vZmZzZXRUb3AgKyBkZWZhdWx0UGFkZGluZ1Np
emUgKyA1OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnkoMCwgMTIwKTsKLX0KLQotdmFyIGV2ZW50UmVjb3JkcyA9IHt9Owot
Ci1mdW5jdGlvbiBjbGVhckV2ZW50UmVjb3JkcygpCi17Ci0gICAgZXZlbnRSZWNvcmRzID0ge307
Ci19Ci0KLWZ1bmN0aW9uIGRpc3BhdGNoZWRFdmVudChldmVudFR5cGUpCi17Ci0gICAgdmFyIGV2
ZW50cyA9IGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdOwotICAgIGlmICghZXZlbnRzKQotICAgICAg
ICByZXR1cm4gW107Ci0gICAgcmV0dXJuIGV2ZW50czsKLX0KLQotZnVuY3Rpb24gcmVjb3JkRXZl
bnQoZXZlbnQpCi17Ci0gICAgdmFyIGV2ZW50VHlwZSA9IGV2ZW50LnR5cGU7Ci0gICAgaWYgKCFl
dmVudFJlY29yZHNbZXZlbnRUeXBlXSkgewotICAgICAgICBldmVudFJlY29yZHNbZXZlbnRUeXBl
XSA9IFtdOwotICAgIH0KLSAgICB2YXIgZXZlbnRTdHJpbmcgPSAnJzsKLSAgICBpZiAoZXZlbnQu
Y3VycmVudFRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyBAJyArIGV2ZW50LmN1cnJl
bnRUYXJnZXQuaWQ7Ci0gICAgaWYgKGV2ZW50LnRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJpbmcg
Kz0gJyAodGFyZ2V0OiAnICsgZXZlbnQudGFyZ2V0LmlkICsgJyknOwotICAgIGlmIChldmVudC5y
ZWxhdGVkVGFyZ2V0KQotICAgICAgICBldmVudFN0cmluZyArPSAnIChyZWxhdGVkOiAnICsgZXZl
bnQucmVsYXRlZFRhcmdldC5pZCArICcpJzsKLSAgICBpZiAoZXZlbnQudG91Y2hlcykKLSAgICAg
ICAgZXZlbnRTdHJpbmcgKz0gJyAodG91Y2hlczogJyArIGR1bXBUb3VjaExpc3QoZXZlbnQudG91
Y2hlcykgKyAnKSc7Ci0gICAgaWYgKGV2ZW50LnRhcmdldFRvdWNoZXMpCi0gICAgICAgIGV2ZW50
U3RyaW5nICs9ICcgKHRhcmdldFRvdWNoZXM6ICcgKyBkdW1wVG91Y2hMaXN0KGV2ZW50LnRhcmdl
dFRvdWNoZXMpICsgJyknOwotICAgIGlmIChldmVudC5jaGFuZ2VkVG91Y2hlcykKLSAgICAgICAg
ZXZlbnRTdHJpbmcgKz0gJyAoY2hhbmdlZFRvdWNoZXM6ICcgKyBkdW1wVG91Y2hMaXN0KGV2ZW50
LmNoYW5nZWRUb3VjaGVzKSArICcpJzsKLSAgICBpZiAoZXZlbnQuZXZlbnRQaGFzZSA9PSAxKQot
ICAgICAgICBldmVudFN0cmluZyArPSAnKGNhcHR1cmluZyBwaGFzZSknOwotICAgIGlmIChldmVu
dC50YXJnZXQgJiYgZXZlbnQuY3VycmVudFRhcmdldCAmJiBldmVudC50YXJnZXQuaWQgPT0gZXZl
bnQuY3VycmVudFRhcmdldC5pZCkKLSAgICAgICAgc2hvdWxkQmUoImV2ZW50LmV2ZW50UGhhc2Ui
LCAiMiIsIHRydWUpOwotICAgIGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdLnB1c2goZXZlbnRTdHJp
bmcpOwotfQotCi1mdW5jdGlvbiBkdW1wTm9kZShub2RlKQotewotICAgIHZhciBvdXRwdXQgPSBu
b2RlLm5vZGVOYW1lICsgIlx0IjsKLSAgICBpZiAobm9kZS5pZCkKLSAgICAgICAgb3V0cHV0ICs9
ICcgaWQ9JyArIG5vZGUuaWQ7Ci0gICAgaWYgKG5vZGUuY2xhc3NOYW1lKQotICAgICAgICBvdXRw
dXQgKz0gJyBjbGFzcz0nICsgbm9kZS5jbGFzc05hbWU7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0K
LQotZnVuY3Rpb24gZHVtcFRvdWNoTGlzdCh0b3VjaGVzKSB7Ci0gICAgdmFyIGlkcyA9IFtdOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG91Y2hlcy5sZW5ndGg7ICsraSkgewotICAgICAgICBp
ZiAodG91Y2hlcy5pdGVtKGkpLnRhcmdldCAmJiB0b3VjaGVzLml0ZW0oaSkudGFyZ2V0LmlkKQot
ICAgICAgICAgICAgaWRzLnB1c2godG91Y2hlcy5pdGVtKGkpLnRhcmdldC5pZCk7Ci0gICAgfQot
ICAgIGlkcy5zb3J0KCk7Ci0gICAgdmFyIHJlc3VsdCA9ICcnOwotICAgIGZvciAoaSA9IDA7IGkg
PCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgIHJlc3VsdCArPSBpZHNbaV07Ci0gICAgICAg
ICBpZiAoaSAhPSBpZHMubGVuZ3RoIC0gMSkKLSAgICAgICAgICAgICByZXN1bHQgKz0gJywgJzsK
LSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gZHVtcENvbXBvc2VkU2hh
ZG93VHJlZShub2RlLCBpbmRlbnQpCi17Ci0gICAgaW5kZW50ID0gaW5kZW50IHx8ICIiOwotICAg
IHZhciBvdXRwdXQgPSBpbmRlbnQgKyBkdW1wTm9kZShub2RlKSArICJcbiI7Ci0gICAgdmFyIGNo
aWxkOwotICAgIGZvciAoY2hpbGQgPSBpbnRlcm5hbHMuZmlyc3RDaGlsZEJ5V2Fsa2VyKG5vZGUp
OyBjaGlsZDsgY2hpbGQgPSBpbnRlcm5hbHMubmV4dFNpYmxpbmdCeVdhbGtlcihjaGlsZCkpCi0g
ICAgICAgICBvdXRwdXQgKz0gZHVtcENvbXBvc2VkU2hhZG93VHJlZShjaGlsZCwgaW5kZW50ICsg
Ilx0Iik7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5l
cnMobm9kZXMpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7ICsraSkg
ewotICAgICAgICB2YXIgbm9kZSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhub2Rlc1tpXSk7
Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZWNvcmRFdmVudCwgZmFs
c2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdzdGFydCcsIHJlY29yZEV2
ZW50LCBmYWxzZSk7Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBy
ZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
b3ZlcicsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2V3aGVlbCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAgICAgIG5vZGUuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAgICAgIG5v
ZGUuYWRkRXZlbnRMaXN0ZW5lcignZ2VzdHVyZXRhcCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0g
ICAgICAgIC8vIDxjb250ZW50PiBtaWdodCBiZSBhbiBpbmFjdGl2ZSBpbnNlcnRpb24gcG9pbnQs
IHNvIHN0eWxlIGl0IGFsc28uCi0gICAgICAgIGlmIChub2RlLnRhZ05hbWUgPT0gJ0RJVicgfHwg
bm9kZS50YWdOYW1lID09ICdERVRBSUxTJyB8fCBub2RlLnRhZ05hbWUgPT0gJ1NVTU1BUlknIHx8
IG5vZGUudGFnTmFtZSA9PSAnQ09OVEVOVCcpCi0gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0
ZSgnc3R5bGUnLCAncGFkZGluZy10b3A6ICcgKyBkZWZhdWx0UGFkZGluZ1NpemUgKyAncHg7Jyk7
Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkZWJ1Z0Rpc3BhdGNoZWRFdmVudChldmVudFR5cGUpCi17
Ci0gICAgZGVidWcoJ1xuICAnICsgZXZlbnRUeXBlKTsKLSAgICB2YXIgZXZlbnRzID0gZGlzcGF0
Y2hlZEV2ZW50KGV2ZW50VHlwZSk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVu
Z3RoOyArK2kpCi0gICAgICAgIGRlYnVnKCcgICAgJyArIGV2ZW50c1tpXSkKLX0KLQotZnVuY3Rp
b24gc29ydERpc3BhdGNoZWRFdmVudChldmVudFR5cGUpCi17Ci0gICAgZGlzcGF0Y2hlZEV2ZW50
KGV2ZW50VHlwZSkuc29ydCgpOwotfQotCi1mdW5jdGlvbiBtb3ZlTW91c2Uob2xkRWxlbWVudElk
LCBuZXdFbGVtZW50SWQpCi17Ci0gICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBkZWJ1Zygn
XG4nICsgJ01vdmluZyBtb3VzZSBmcm9tICcgKyBvbGRFbGVtZW50SWQgKyAnIHRvICcgKyBuZXdF
bGVtZW50SWQpOwotICAgIG1vdmVNb3VzZU92ZXIoZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKG9s
ZEVsZW1lbnRJZCkpOwotCi0gICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBtb3ZlTW91c2VP
dmVyKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhuZXdFbGVtZW50SWQpKTsKLQotICAgIGRlYnVn
RGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW91dCcpOwotICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdt
b3VzZW92ZXInKTsKLX0KLQotZnVuY3Rpb24gc2hvd1NhbmRib3hUcmVlKCkKLXsKLSAgICB2YXIg
c2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0gICAgc2FuZGJv
eC5vZmZzZXRMZWZ0OwotICAgIGRlYnVnKCdcblxuQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBi
ZTpcbicgKyBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKHNhbmRib3gpKTsKLX0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvbGluay1pbi1zaGFkb3ctc3R5bGUuY3Nz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvbGlu
ay1pbi1zaGFkb3ctc3R5bGUuY3NzCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2xpbmstaW4tc2hhZG93LXN0eWxlLmNzcwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLS5rb3RvcmkgewotICAgIGJhY2tncm91bmQtY29sb3I6
ICMwMGZmMDA7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlm
aWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotaWYgKCFFbGVtZW50LnByb3Rv
dHlwZS53ZWJraXRDcmVhdGVTaGFkb3dSb290ICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICBF
bGVtZW50LnByb3RvdHlwZS53ZWJraXRDcmVhdGVTaGFkb3dSb290ID0gZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHJldHVybiB3aW5kb3cuaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd1Jvb3QodGhpcyk7Ci0g
ICAgfTsKLX0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcmVw
bGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9yZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3JlcGxh
Y2VkLWVsZW1lbnQtc3R5bGVzLmNzcwkod29ya2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi0u
cHJvZ3Jlc3MtbGlrZSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBwcm9ncmVzcy1iYXI7Ci0g
ICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKLSAgICBoZWlnaHQ6IDFlbTsKLSAgICB3aWR0aDogMTBlbTsKLSAgICB2ZXJ0aWNhbC1h
bGlnbjogLTAuMmVtOwotICAgIG1hcmdpbjogMDsKLSAgICBwYWRkaW5nOiAwOwotfQotCi0ucHJv
Z3Jlc3MtaW5uZXItZWxlbWVudC1saWtlIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dy
ZXNzLWJhcjsKLSAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgLXdlYmtp
dC11c2VyLW1vZGlmeTogcmVhZC1vbmx5OwotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGhlaWdo
dDogMTAwJTsKLSAgICB3aWR0aDogMTAwJTsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogMGVtOwotfQot
Ci0ubWV0ZXItbGlrZSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZXRlcjsKLSAgICAtd2Vi
a2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwot
ICAgIGhlaWdodDogMWVtOwotICAgIHdpZHRoOiA1ZW07Ci0gICAgdmVydGljYWwtYWxpZ246IC0w
LjJlbTsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotLm1ldGVyLWlubmVy
LWVsZW1lbnQtbGlrZSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZXRlcjsKLSAgICAtd2Vi
a2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVh
ZC1vbmx5OwotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGhlaWdodDogMTAwJTsKLSAgICB3aWR0
aDogMTAwJTsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogMGVtOwotfQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLXV0aWwuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLXV0aWwu
anMJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNv
dXJjZXMvc2hhZG93LWRvbS11dGlsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICswLDAgQEAK
LS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLS8vIHNoYWRvdy1kb20tdXRpbC5qcyBpcyBhIHNldCBvZiB1dGls
aXR5IHRvIHRlc3QgU2hhZG93IERPTS4KLQotZnVuY3Rpb24gZ2V0RWxlbWVudEJ5SWRDb25zaWRl
cmluZ1NoYWRvd0RPTShyb290LCBpZCkgewotICAgIGZ1bmN0aW9uIGl0ZXIocm9vdCwgaWQpIHsK
LSAgICAgICAgaWYgKCFyb290KQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAg
aWYgKHJvb3QuaWQgPT0gaWQpCi0gICAgICAgICAgICByZXR1cm4gcm9vdDsKLQotICAgICAgICAv
LyBXZSBkb24ndCBjb2xsZWN0IGRpdiBoYXZpbmcgYSBzaGFkb3cgcm9vdCwgc2luY2Ugd2UgY2Fu
bm90IHBvaW50IGl0IGNvcnJlY3RseS4KLSAgICAgICAgLy8gU3VjaCBkaXYgc2hvdWxkIGhhdmUg
YW4gaW5uZXIgZGl2IHRvIGJlIHBvaW50ZWQgY29ycmVjdGx5LgotICAgICAgICBmb3IgKHZhciBj
aGlsZCA9IHJvb3QuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcp
IHsKLSAgICAgICAgICAgIHZhciBub2RlID0gaXRlcihjaGlsZCwgaWQpOwotICAgICAgICAgICAg
aWYgKG5vZGUgIT0gbnVsbCkKLSAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmIChyb290Lm5vZGVUeXBlICE9IDEpCi0gICAgICAgICAgICByZXR1cm4g
bnVsbDsKLQotICAgICAgICBmb3IgKHZhciBzaGFkb3dSb290ID0gaW50ZXJuYWxzLnlvdW5nZXN0
U2hhZG93Um9vdChyb290KTsgc2hhZG93Um9vdDsgc2hhZG93Um9vdCA9IGludGVybmFscy5vbGRl
clNoYWRvd1Jvb3Qoc2hhZG93Um9vdCkpIHsKLSAgICAgICAgICAgIHZhciBub2RlID0gaXRlcihz
aGFkb3dSb290LCBpZCk7Ci0gICAgICAgICAgICBpZiAobm9kZSAhPSBudWxsKQotICAgICAgICAg
ICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0g
ICAgfTsKLQotICAgIGlmICghd2luZG93LmludGVybmFscykKLSAgICAgICAgcmV0dXJuIG51bGw7
Ci0gICAgcmV0dXJuIGl0ZXIocm9vdCwgaWQpOwotfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qcwkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9t
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3MSArMCwwIEBACi1mdW5jdGlvbiBjcmVhdGVTaGFk
b3dSb290KCkKLXsKLSAgICByZXR1cm4geydpc1NoYWRvd1Jvb3QnOiB0cnVlLAotICAgICAgICAg
ICAgJ2NoaWxkcmVuJzogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKX07Ci19
Ci0KLWZ1bmN0aW9uIGNyZWF0ZVNoYWRvd1Jvb3RXaXRoQXR0cmlidXRlcyhhdHRyaWJ1dGVzLCBj
aGlsZHJlbikKLXsKLSAgICByZXR1cm4geydpc1NoYWRvd1Jvb3QnOiB0cnVlLAotICAgICAgICAg
ICAgJ2F0dHJpYnV0ZXMnOiBhdHRyaWJ1dGVzLAotICAgICAgICAgICAgJ2NoaWxkcmVuJzogY2hp
bGRyZW59OwotfQotCi0vLyBUaGlzIGZ1bmN0aW9uIGNhbiB0YWtlIG9wdGlvbmFsIGNoaWxkIGVs
ZW1lbnRzLCB3aGljaCBtaWdodCBiZSBhIHJlc3VsdCBvZiBjcmVhdGVTaGFkb3dSb290KCksIGFz
IGFyZ3VtZW50c1syOl0uCi0vLyBZb3UgbXVzdCBlbmFibGUgU0hBRE9XX0RPTSBmbGFnIGlmIHlv
dSB1c2UgdGhpcyBmdWNudGlvbiB0byBob3N0IG11bHRpcGxlIFNoYWRvd1Jvb3RzCi0vLyBzaW5j
ZSB3aW5kb3cuaW50ZXJuYWxzIGRvZXMgbm90IGhhdmUgYSBmdW5jdGlvbiB3aGljaCBjYW4gYmUg
dXNlZCB0byBob3N0IG11bHRpcGxlIHNoYWRvdyByb290cy4KLS8vIEZJWE1FOiB3aW5kb3cuaW50
ZXJuYWxzIHNob3VsZCBoYXZlIHN1Y2ggZnVuY3Rpb24gYW5kIHJlbW92ZSB0aGUgcmVzdHJpY3Rp
b24uCi1mdW5jdGlvbiBjcmVhdGVET00odGFnTmFtZSwgYXR0cmlidXRlcykKLXsKLSAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7Ci0gICAgZm9yICh2YXIg
bmFtZSBpbiBhdHRyaWJ1dGVzKQotICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCBh
dHRyaWJ1dGVzW25hbWVdKTsKLSAgICB2YXIgY2hpbGRFbGVtZW50cyA9IEFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7Ci0gICAgdmFyIHNoYWRvd1Jvb3RDb3VudCA9IDA7
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZEVsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgIHZhciBjaGlsZCA9IGNoaWxkRWxlbWVudHNbaV07Ci0gICAgICAgIGlmIChjaGlsZC5p
c1NoYWRvd1Jvb3QpIHsKLSAgICAgICAgICAgICsrc2hhZG93Um9vdENvdW50OwotICAgICAgICAg
ICAgdmFyIHNoYWRvd1Jvb3Q7Ci0gICAgICAgICAgICBpZiAoZWxlbWVudC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KQotICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QgPSBlbGVtZW50LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoZWxlbWVudCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgc2hhZG93Um9vdCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dSb290KGVsZW1lbnQpOwotICAg
ICAgICAgICAgaWYgKGNoaWxkLmF0dHJpYnV0ZXMpIHsKLSAgICAgICAgICAgICAgICBmb3IgKHZh
ciBhdHRyaWJ1dGUgaW4gY2hpbGQuYXR0cmlidXRlcykgewotICAgICAgICAgICAgICAgICAgICAv
LyBTaGFkb3cgUm9vdCBkb2VzIG5vdCBoYXZlIHNldEF0dHJpYnV0ZS4KLSAgICAgICAgICAgICAg
ICAgICAgc2hhZG93Um9vdFthdHRyaWJ1dGVdID0gY2hpbGQuYXR0cmlidXRlc1thdHRyaWJ1dGVd
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAodmFy
IGogPSAwOyBqIDwgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoOyArK2opCi0gICAgICAgICAgICAgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZC5jaGlsZHJlbltqXSk7Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7Ci0gICAgfQotICAgIHJl
dHVybiBlbGVtZW50OwotfQotCi1mdW5jdGlvbiBpc1NoYWRvd0hvc3Qobm9kZSkKLXsKLSAgICBy
ZXR1cm4gd2luZG93LmludGVybmFscy5vbGRlc3RTaGFkb3dSb290KG5vZGUpOwotfQotCi1mdW5j
dGlvbiBpc1NoYWRvd1Jvb3Qobm9kZSkKLXsKLSAgICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIHdp
bmRvdy5XZWJLaXRTaGFkb3dSb290OwotfQotCi1mdW5jdGlvbiBpc0lmcmFtZUVsZW1lbnQoZWxl
bWVudCkKLXsKLSAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVOYW1lID09ICdJRlJB
TUUnOwotfQotCi0vLyBZb3UgY2FuIHNwZWZpZnkgeW91bmdlclNoYWRvd1Jvb3QgYnkgY29uc2Vj
dXRpdmUgc2xhc2hlcy4KLS8vIFNlZSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVs
ZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QuaHRtbCBmb3IgYWN0dWFsIHVzYWdlcy4KLWZ1bmN0
aW9uIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhwYXRoKQotewotICAgIHZhciBpZHMgPSBwYXRo
LnNwbGl0KCcvJyk7Ci0gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZHNb
MF0pOwotICAgIGZvciAodmFyIGkgPSAxOyBub2RlICE9IG51bGwgJiYgaSA8IGlkcy5sZW5ndGg7
ICsraSkgewotICAgICAgICBpZiAoaXNJZnJhbWVFbGVtZW50KG5vZGUpKSB7Ci0gICAgICAgICAg
ICBub2RlID0gbm9kZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRzW2ldKTsKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpc1NoYWRvd1Jvb3Qo
bm9kZSkpCi0gICAgICAgICAgICBub2RlID0gaW50ZXJuYWxzLnlvdW5nZXJTaGFkb3dSb290KG5v
ZGUpOwotICAgICAgICBlbHNlIGlmIChpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChub2RlKSkK
LSAgICAgICAgICAgIG5vZGUgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChub2RlKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIGlmIChpZHNbaV0g
IT0gJycpCi0gICAgICAgICAgICBub2RlID0gbm9kZS5nZXRFbGVtZW50QnlJZChpZHNbaV0pOwot
ICAgIH0KLSAgICByZXR1cm4gbm9kZTsKLX0KLQotZnVuY3Rpb24gZHVtcE5vZGUobm9kZSkKLXsK
LSAgICBpZiAoIW5vZGUpCi0gICAgICByZXR1cm4gJ251bGwnOwotICAgIHZhciBvdXRwdXQgPSAn
JyArIG5vZGU7Ci0gICAgaWYgKG5vZGUuaWQpCi0gICAgICAgIG91dHB1dCArPSAnIGlkPScgKyBu
b2RlLmlkOwotICAgIHJldHVybiBvdXRwdXQ7Ci19Ci0KLWZ1bmN0aW9uIGlubmVybW9zdEFjdGl2
ZUVsZW1lbnQoZWxlbWVudCkKLXsKLSAgICBlbGVtZW50ID0gZWxlbWVudCB8fCBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50OwotICAgIGlmIChpc0lmcmFtZUVsZW1lbnQoZWxlbWVudCkpIHsKLSAgICAg
ICAgaWYgKGVsZW1lbnQuY29udGVudERvY3VtZW50LmFjdGl2ZUVsZW1lbnQpCi0gICAgICAgICAg
ICByZXR1cm4gaW5uZXJtb3N0QWN0aXZlRWxlbWVudChlbGVtZW50LmNvbnRlbnREb2N1bWVudC5h
Y3RpdmVFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGVsZW1lbnQ7Ci0gICAgfQotICAgIGlmIChp
c1NoYWRvd0hvc3QoZWxlbWVudCkpIHsKLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSB3aW5kb3cu
aW50ZXJuYWxzLm9sZGVzdFNoYWRvd1Jvb3QoZWxlbWVudCk7Ci0gICAgICAgIHdoaWxlIChzaGFk
b3dSb290KSB7Ci0gICAgICAgICAgICBpZiAoc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KQotICAg
ICAgICAgICAgICAgIHJldHVybiBpbm5lcm1vc3RBY3RpdmVFbGVtZW50KHNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCk7Ci0gICAgICAgICAgICBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy55
b3VuZ2VyU2hhZG93Um9vdChzaGFkb3dSb290KTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1
cm4gZWxlbWVudDsKLX0KLQotZnVuY3Rpb24gaXNJbm5lcm1vc3RBY3RpdmVFbGVtZW50KGlkKQot
ewotICAgIHZhciBlbGVtZW50ID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKGlkKTsKLSAgICBp
ZiAoIWVsZW1lbnQpIHsKLSAgICAgICAgZGVidWcoJ0ZBSUw6IFRoZXJlIGlzIG5vIHN1Y2ggZWxl
bWVudCB3aXRoIGlkOiAnKyBmcm9tKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAg
ICBpZiAoZWxlbWVudCA9PSBpbm5lcm1vc3RBY3RpdmVFbGVtZW50KCkpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGRlYnVnKCdFeHBlY3RlZCBpbm5lcm1vc3QgYWN0aXZlRWxlbWVudCBpcyAn
ICsgaWQgKyAnLCBidXQgYWN0dWFsIGlubmVybW9zdCBhY3RpdmVFbGVtZW50IGlzICcgKyBkdW1w
Tm9kZShpbm5lcm1vc3RBY3RpdmVFbGVtZW50KCkpKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LWZ1bmN0aW9uIHNob3VsZE5hdmlnYXRlRm9jdXMoZnJvbSwgdG8sIGRpcmVjdGlvbikKLXsKLSAg
ICBkZWJ1ZygnU2hvdWxkIG1vdmUgZnJvbSAnICsgZnJvbSArICcgdG8gJyArIHRvICsgJyBpbiAn
ICsgZGlyZWN0aW9uKTsKLSAgICB2YXIgZnJvbUVsZW1lbnQgPSBnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soZnJvbSk7Ci0gICAgaWYgKCFmcm9tRWxlbWVudCkgewotICAgICAgZGVidWcoJ0ZBSUw6
IFRoZXJlIGlzIG5vIHN1Y2ggZWxlbWVudCB3aXRoIGlkOiAnKyBmcm9tKTsKLSAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgZnJvbUVsZW1lbnQuZm9jdXMoKTsKLSAgICBpZiAoIWlzSW5uZXJtb3N0
QWN0aXZlRWxlbWVudChmcm9tKSkgewotICAgICAgICBkZWJ1ZygnRkFJTDogQ2FuIG5vdCBiZSBm
b2N1c2VkOiAnKyBmcm9tKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoZGlyZWN0
aW9uID09ICdmb3J3YXJkJykKLSAgICAgICAgbmF2aWdhdGVGb2N1c0ZvcndhcmQoKTsKLSAgICBl
bHNlCi0gICAgICAgIG5hdmlnYXRlRm9jdXNCYWNrd2FyZCgpOwotICAgIGlmIChpc0lubmVybW9z
dEFjdGl2ZUVsZW1lbnQodG8pKQotICAgICAgICBkZWJ1ZygnUEFTUycpOwotICAgIGVsc2UKLSAg
ICAgICAgZGVidWcoJ0ZBSUwnKTsKLX0KLQotZnVuY3Rpb24gbmF2aWdhdGVGb2N1c0ZvcndhcmQo
KQotewotICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ1x0Jyk7Ci19Ci0KLWZ1bmN0aW9uIG5hdmln
YXRlRm9jdXNCYWNrd2FyZCgpCi17Ci0gICAgZXZlbnRTZW5kZXIua2V5RG93bignXHQnLCBbJ3No
aWZ0S2V5J10pOwotfQotCi1mdW5jdGlvbiB0ZXN0Rm9jdXNOYXZpZ2F0aW9uRm93cmFkKGVsZW1l
bnRzKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpICsgMSA8IGVsZW1lbnRzLmxlbmd0aDsgKytp
KQotICAgICAgICBzaG91bGROYXZpZ2F0ZUZvY3VzKGVsZW1lbnRzW2ldLCBlbGVtZW50c1tpICsg
MV0sICdmb3J3YXJkJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGb2N1c05hdmlnYXRpb25CYWNrd2Fy
ZChlbGVtZW50cykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSArIDEgPCBlbGVtZW50cy5sZW5n
dGg7ICsraSkKLSAgICAgICAgc2hvdWxkTmF2aWdhdGVGb2N1cyhlbGVtZW50c1tpXSwgZWxlbWVu
dHNbaSArIDFdLCAnYmFja3dhcmQnKTsKLX0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9yZXNvdXJjZXMvc2hhZG93LXRyZWUtbGlzdGVuZXItY2xlYXJhbmNlLWZyYW1lLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFk
b3ctdHJlZS1saXN0ZW5lci1jbGVhcmFuY2UtZnJhbWUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctdHJlZS1saXN0
ZW5lci1jbGVhcmFuY2UtZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJob3N0Ij48L2Rpdj4K
LTxzY3JpcHQ+Ci0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJob3N0Iikud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvdy5p
bm5lckhUTUwgPSAiPGFydGljbGUgaWQ9J3RhcmdldCc+PC9hcnRpY2xlPiI7Ci0gICAgZG9jdW1l
bnQudGFyZ2V0SW5TaGFkb3cgPSBzaGFkb3cuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwotfSko
KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3Njcm9sbGJhci1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zY3JvbGxiYXItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Njcm9sbGJhci1leHBlY3RlZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+PGJvZHk+Ci0KLTxzdHlsZT4KLSNob3N0IHsKLSAgICB3aWR0aDogMjAwcHg7Ci0gICAgaGVp
Z2h0OiAxMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwotfQotCi0jaG9zdDo6LXdl
YmtpdC1zY3JvbGxiYXIgewotICAgd2lkdGg6IDIwcHg7Ci19Ci0KLSNkaXYxIHsKLSAgIHBvc2l0
aW9uOiBmaXhlZDsKLSAgIG92ZXJmbG93OiBzY3JvbGw7Ci0gICB3aWR0aDogODBweDsKLSAgIGhl
aWdodDogODBweDsKLSAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKLX0KLQotI2RpdjE6Oi13ZWJr
aXQtc2Nyb2xsYmFyIHsKLSAgIHdpZHRoOiAyMHB4OwotfQotPC9zdHlsZT4KLQotPGRpdiBpZD0i
aG9zdCI+PGRpdiBpZD0iZGl2MSI+c29tZSBsb25nIHRleHQgc2hvd2luZyBzY3JvbGxiYXI8L2Rp
dj48L2Rpdj4KLQotPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zY3JvbGxiYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2Nyb2xsYmFyLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zY3JvbGxiYXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPjxib2R5PgotCi08c3R5bGU+Ci0jaG9zdCB7Ci0g
ICAgd2lkdGg6IDIwMHB4OwotICAgIGhlaWdodDogMTAwcHg7Ci0gICAgYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKLX0KLQotI2hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKLSAgIHdpZHRoOiA1MHB4
OwotfQotCi0jZGl2MSB7Ci0gICBwb3NpdGlvbjogZml4ZWQ7Ci0gICBvdmVyZmxvdzogc2Nyb2xs
OwotICAgd2lkdGg6IDgwcHg7Ci0gICBoZWlnaHQ6IDgwcHg7Ci0gICBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7Ci19Ci0KLSNkaXYxOjotd2Via2l0LXNjcm9sbGJhciB7Ci0gICB3aWR0aDogMjBweDsK
LX0KLTwvc3R5bGU+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotCi08c2NyaXB0PgotdmFyIHNo
YWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuYXBw
bHlBdXRob3JTdHlsZXMgPSB0cnVlOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBpZD0i
ZGl2MSI+c29tZSBsb25nIHRleHQgc2hvd2luZyBzY3JvbGxiYXI8L2Rpdj4nOwotPC9zY3JpcHQ+
Ci0KLTwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2Vs
ZWN0LWluLXNoYWRvd2RvbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NlbGVjdC1pbi1zaGFkb3dkb20tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0LWluLXNoYWRv
d2RvbS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzAsMCBAQAotV2hlbiBz
ZWxlY3RpbmcgZnJvbSBub24tYW5jaG9yIE5vZGUgdG8gYW5jaG9yIG5vZGUgaW4gU2hhZG93RE9N
LCBjbGllbnQgc2hvdWxkIG5vdCBjYXVzZSBwYWdlIGp1bXAuCi0KLVNlbGVjdGluZyBmcm9tIGEg
bm9kZSB0byBhbm90aGVyIG5vZGUgaW4gU2hhZG93RE9NLiBUaGlzIHNob3VsZCBub3QgZmlyZSBj
bGljayBldmVudAotCi1DbGlja2luZyBhIG5vZGUgaW4gU2hhZG93RE9NLgotUEFTUyBjbGljayBz
aG91bGQgYmUgZmlyZWQuCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0LWlu
LXNoYWRvd2RvbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zZWxlY3QtaW4tc2hhZG93ZG9tLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3QtaW4tc2hhZG93ZG9tLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD48Ym9keT4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08
cD5XaGVuIHNlbGVjdGluZyBmcm9tIG5vbi1hbmNob3IgTm9kZSB0byBhbmNob3Igbm9kZSBpbiBT
aGFkb3dET00sIGNsaWVudCBzaG91bGQgbm90IGNhdXNlIHBhZ2UganVtcC48L3A+Ci0KLTxkaXYg
aWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiBtb3VzZU1vdmVUbyhlbGVtZW50KQotewotICAgIHZhciB4ID0gZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFyIHkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyh4LCB5KTsKLX0KLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzcGFuPnNlbGVjdCBmb3JtIGhl
cmU8L3NwYW4+PHNwYW4+c2VsZWN0IHRvIGhlcmU8L3NwYW4+JzsKLQotdmFyIGNsaWNrRXZlbnRT
aG91bGROb3RCZUZpcmVkID0gdHJ1ZTsKLQotaG9zdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZ1bmN0aW9uKGUpIHsKLSAgICBpZiAoY2xpY2tFdmVudFNob3VsZE5vdEJlRmlyZWQpCi0gICAg
ICAgIGRlYnVnKCdGQUlMIGNsaWNrIHNob3VsZCBub3QgYmUgZmlyZWQuJyk7Ci0gICAgZWxzZQot
ICAgICAgICBkZWJ1ZygnUEFTUyBjbGljayBzaG91bGQgYmUgZmlyZWQuJyk7Ci19KTsKLQotZGVi
dWcoJ1NlbGVjdGluZyBmcm9tIGEgbm9kZSB0byBhbm90aGVyIG5vZGUgaW4gU2hhZG93RE9NLiBU
aGlzIHNob3VsZCBub3QgZmlyZSBjbGljayBldmVudCcpOwotbW91c2VNb3ZlVG8oc2hhZG93Um9v
dC5maXJzdENoaWxkKTsKLWV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotbW91c2VNb3ZlVG8oc2hh
ZG93Um9vdC5maXJzdENoaWxkLm5leHRTaWJsaW5nKTsKLWV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
LWRlYnVnKCcnKTsKLQotZGVidWcoJ0NsaWNraW5nIGEgbm9kZSBpbiBTaGFkb3dET00uJyk7Ci1j
bGlja0V2ZW50U2hvdWxkTm90QmVGaXJlZCA9IGZhbHNlOwotbW91c2VNb3ZlVG8oc2hhZG93Um9v
dC5maXJzdENoaWxkKTsKLWV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotZGVidWcoJycpOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PjwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb24taW4tbmVzdGVkLXNoYWRv
dy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NlbGVjdGlvbi1pbi1uZXN0ZWQtc2hhZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbi1pbi1uZXN0ZWQtc2hh
ZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi1TZWxlY3Qg
dGV4dCBpbiBub24tbmVzdGVkIFNoYWRvd0RPTSBhbmQgcmVtb3ZlIGFuIGVsZW1lbnQgY29udGFp
bmluZyBzaGFkb3cgaG9zdC4KLVRoZW4gdGhlIGFuY2hvciBub2RlIG9mIHRoZSBzZWxlY3Rpb24g
c2hvdWxkIGJlY29tZSBiZSB0aGUgcGFyZW50IGVsZW1lbnQgb2YgdGhlIHJlbW92ZWQgZWxlbWVu
dCAoY29udGFpbmVyKS4KLVBBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUgaXMg
Y29udGFpbmVyCi0KLVNlbGVjdCB0ZXh0IGluIG5lc3RlZCBTaGFkb3dET00gYW5kIHJlbW92ZSBh
biBlbGVtZW50IGNvbnRhaW5pbmcgc2hhZG93IGhvc3QuCi1JbiB0aGlzIGNhc2UsIHRoZSBhbmNo
b3Igbm9kZSBvZiB0aGUgc2VsZWN0aW9uIHNob3VsZCBhbHNvIGJlY29tZSBiZSB0aGUgcGFyZW50
IGVsZW1lbnQgb2YgdGhlIHJlbW92ZWQgZWxlbWVudCAoY29udGFpbmVyKS4KLVBBU1Mgd2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUgaXMgY29udGFpbmVyCi0KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9uLWluLW5lc3RlZC1zaGFkb3cuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9uLWluLW5lc3RlZC1zaGFk
b3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NlbGVjdGlvbi1pbi1uZXN0ZWQtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTQg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9ImNvbnRh
aW5lciI+Ci0gICAgPGRpdiBpZD0iY29udGFpbmVyMSI+PGRpdiBpZD0iaG9zdDEiPjwvZGl2Pjwv
ZGl2PgotICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjIiPjxkaXYgaWQ9Imhvc3QyIj48L2Rpdj48L2Rp
dj4KLTwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12YXIgc2hh
ZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5p
bm5lckhUTUwgPSAnPGRpdiBpZD0idGFyZ2V0MSI+RWxlbWVudCBpbiBTaGFkb3cgRE9NPC9kaXY+
JzsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
dmFyIGhvc3QzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93Um9v
dDMgPSBob3N0My53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5hcHBlbmRD
aGlsZChob3N0Myk7Ci1zaGFkb3dSb290My5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGFyZ2V0MiI+
RWxlbWVudCBpbiBuZXN0ZWQgU2hhZG93IERPTTwvZGl2Pic7Ci0KLXZhciB0YXJnZXQxID0gc2hh
ZG93Um9vdDEuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldDEnKTsKLXZhciB0YXJnZXQyID0gc2hhZG93
Um9vdDMuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldDInKTsKLQotLy8gbm9uLW5lc3RlZCBTaGFkb3dE
T00gY2FzZS4KLWRlYnVnKCdTZWxlY3QgdGV4dCBpbiBub24tbmVzdGVkIFNoYWRvd0RPTSBhbmQg
cmVtb3ZlIGFuIGVsZW1lbnQgY29udGFpbmluZyBzaGFkb3cgaG9zdC4nKTsKLWRlYnVnKCdUaGVu
IHRoZSBhbmNob3Igbm9kZSBvZiB0aGUgc2VsZWN0aW9uIHNob3VsZCBiZWNvbWUgYmUgdGhlIHBh
cmVudCBlbGVtZW50IG9mIHRoZSByZW1vdmVkIGVsZW1lbnQgKGNvbnRhaW5lcikuJyk7Ci1ldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQxLm9mZnNldExlZnQgKyAyLCB0YXJnZXQxLm9mZnNl
dFRvcCArIHRhcmdldDEub2Zmc2V0SGVpZ2h0IC8gMik7Ci1ldmVudFNlbmRlci5tb3VzZURvd24o
KTsKLWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldDEub2Zmc2V0TGVmdCArIHRhcmdldDEu
b2Zmc2V0V2lkdGggLSAyLCB0YXJnZXQxLm9mZnNldFRvcCArIHRhcmdldDEub2Zmc2V0SGVpZ2h0
IC8gMik7Ci1ldmVudFNlbmRlci5tb3VzZVVwKCk7Ci1jb250YWluZXIucmVtb3ZlQ2hpbGQoY29u
dGFpbmVyMSk7Ci1zaG91bGRCZSgnd2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUnLCAn
Y29udGFpbmVyJyk7Ci1kZWJ1ZygnJyk7Ci0KLS8vIG5lc3RlZCBTaGFkb3dET00gY2FzZS4KLWRl
YnVnKCdTZWxlY3QgdGV4dCBpbiBuZXN0ZWQgU2hhZG93RE9NIGFuZCByZW1vdmUgYW4gZWxlbWVu
dCBjb250YWluaW5nIHNoYWRvdyBob3N0LicpOwotZGVidWcoJ0luIHRoaXMgY2FzZSwgdGhlIGFu
Y2hvciBub2RlIG9mIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGFsc28gYmVjb21lIGJlIHRoZSBwYXJl
bnQgZWxlbWVudCBvZiB0aGUgcmVtb3ZlZCBlbGVtZW50IChjb250YWluZXIpLicpOwotZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0Mi5vZmZzZXRMZWZ0ICsgMiwgdGFyZ2V0Mi5vZmZzZXRU
b3AgKyB0YXJnZXQyLm9mZnNldEhlaWdodCAvIDIpOwotZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
Ci1ldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQyLm9mZnNldExlZnQgKyB0YXJnZXQyLm9m
ZnNldFdpZHRoIC0gMiwgdGFyZ2V0Mi5vZmZzZXRUb3AgKyB0YXJnZXQyLm9mZnNldEhlaWdodCAv
IDIpOwotZXZlbnRTZW5kZXIubW91c2VVcCgpOwotY29udGFpbmVyLnJlbW92ZUNoaWxkKGNvbnRh
aW5lcjIpOwotc2hvdWxkQmUoJ3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlJywgJ2Nv
bnRhaW5lcicpOwotZGVidWcoJycpOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLQotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbi1zaG91bGRudC1l
eHBvc2Utc2hhZG93LWRvbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbi1zaG91bGRudC1leHBvc2Utc2hhZG93LWRvbS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zZWxlY3Rpb24tc2hvdWxkbnQtZXhwb3NlLXNoYWRvdy1kb20tZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYgKzAsMCBAQAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5v
ZGUoc2VsZWN0aW9uLmFuY2hvck5vZGUpIGlzIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZShzZWxlY3Rpb24uZm9jdXNOb2RlKSBpcyBkb2N1bWVudAotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb24tc2hvdWxkbnQtZXhwb3NlLXNoYWRvdy1kb20u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9u
LXNob3VsZG50LWV4cG9zZS1zaGFkb3ctZG9tLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb24tc2hvdWxkbnQtZXhwb3NlLXNoYWRv
dy1kb20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlv
biBtb3ZlVG8oZWxlbWVudCkgewotICAgIHZhciB4ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxl
bWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFyIHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKLX0KLQotZnVuY3Rpb24gZHJhZ0Zyb21UbyhlbGVtZW50RnJvbSwgZWxlbWVudFRvKSB7Ci0g
ICAgbW92ZVRvKGVsZW1lbnRGcm9tKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAg
ICBtb3ZlVG8oZWxlbWVudFRvKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLXZh
ciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci0KLXZh
ciBzaGFkb3dSb290MSA9IGNvbnRhaW5lci53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFk
b3dSb290MS5pbm5lckhUTUwgPQotICAgICc8ZGl2IGlkPSJkaXYxIiB0aXRsZT0iZGl2MSI+WW91
IFNhdG9oPC9kaXY+JyArCi0gICAgJzxkaXYgaWQ9ImRpdjIiIHRpdGxlPSJkaXYyIj5TZW4gWWFy
aXp1aTwvZGl2PicgKwotICAgICc8ZGl2IGlkPSJkaXYzIiB0aXRsZT0iZGl2MyI+QXlhbWUgU2hh
Z2E8L2Rpdj4nOwotdmFyIGRpdjEgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnZGl2MScp
OwotdmFyIGRpdjIgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnZGl2MicpOwotdmFyIGRp
djMgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnZGl2MycpOwotCi12YXIgc2hhZG93Um9v
dDIgPSBkaXYyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QyLmlubmVySFRN
TCA9Ci0gICAgJzxkaXYgaWQ9ImRpdjQiIHRpdGxlPSJkaXY0Ij5IYW5hIE9zaGlyb2k8L2Rpdj4n
ICsKLSAgICAnPGRpdiBpZD0iZGl2NSIgdGl0bGU9ImRpdjUiPlVtZSBTaGlyYXVtZTwvZGl2Picg
KwotICAgICc8ZGl2IGlkPSJkaXY2IiB0aXRsZT0iZGl2NiI+TWlrb3RvIFV6dTwvZGl2Pic7Ci12
YXIgZGl2NCA9IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRCeUlkKCdkaXY0Jyk7Ci12YXIgZGl2NSA9
IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRCeUlkKCdkaXY1Jyk7Ci12YXIgZGl2NiA9IHNoYWRvd1Jv
b3QyLmdldEVsZW1lbnRCeUlkKCdkaXY2Jyk7Ci0KLWRyYWdGcm9tVG8oZGl2NCwgZGl2Nik7Ci12
YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotCi0vLyBJZiBhbmNob2RlTm9k
ZSBhbmQgZm9jdXNOb2RlIGFyZSBub3QgaW4gU2hhZG93IHRyZWUsIGRvY3VtZW50IGlzIHJldHVy
bmVkCi0vLyBieSBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUoKS4KLXNob3VsZEJlKCdpbnRl
cm5hbHMudHJlZVNjb3BlUm9vdE5vZGUoc2VsZWN0aW9uLmFuY2hvck5vZGUpJywgJ2RvY3VtZW50
Jyk7Ci1zaG91bGRCZSgnaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHNlbGVjdGlvbi5mb2N1
c05vZGUpJywgJ2RvY3VtZW50Jyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2VsZWN0aW9ucy1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb25zLWluLXNoYWRvdy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
ZWxlY3Rpb25zLWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjc1
ICswLDAgQEAKLQotCi1DT05UQUlORVIxIC0tPiBDT05UQUlORVIxCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUp
Ci1DT05UQUlORVIxIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIx
IC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBTUEFOIElOIE5F
U1RFRCBJTiBTSEFET1cgT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUNPTlRBSU5FUjEgLS0+IFNQ
QU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBTUEFOIDIgSU5P
TERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotQ09OVEFJTkVSMSAtLT4gU1BBTiAzIElOT0xERVIKLVBB
U1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNo
b3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmZvY3VzTm9kZSkKLUNPTlRBSU5FUjEgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZ
T1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBTUEFOIDEgSU5ZT1VOR0VS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBTUEFOIDIgSU5ZT1VOR0VSCi1QQVNT
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9y
Tm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBTUEFOIDMgSU5ZT1VOR0VSCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1DT05UQUlORVIyIC0tPiBDT05UQUlORVIxCi1QQVNTIGludGVybmFscy50cmVlU2Nv
cGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxz
LnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05U
QUlORVIyIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBJ
TiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIElOIE5FU1RFRCBJ
TiBTSEFET1cgT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUo
d2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUNPTlRBSU5FUjIgLS0+IFNQQU4gMSBJ
Tk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIDIgSU5PTERFUgot
UEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFu
Y2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuZm9jdXNOb2RlKQotQ09OVEFJTkVSMiAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1MgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
KSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZv
Y3VzTm9kZSkKLUNPTlRBSU5FUjIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIDEgSU5ZT1VOR0VSCi1QQVNT
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9y
Tm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIDIgSU5ZT1VOR0VSCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIDMgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUp
Ci1JTiBIT1NUIC0tPiBDT05UQUlORVIxCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBD
T05UQUlORVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBJTiBIT1NUCi1QQVNTIGlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9k
ZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5m
b2N1c05vZGUpCi1JTiBIT1NUIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIKLVBB
U1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNo
b3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmZvY3VzTm9kZSkKLUlOIEhPU1QgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05v
ZGUpCi1JTiBIT1NUIC0tPiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotSU4gSE9T
VCAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUlOIEhPU1QgLS0+IFNQQU4g
SU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0t
PiBTUEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBTUEFOIDIg
SU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBTUEFOIDMgSU5ZT1VOR0VS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIgLS0+IENP
TlRBSU5FUjEKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBPTERF
UiAtLT4gQ09OVEFJTkVSMgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hB
RE9XIE9MREVSIC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJ
TiBTSEFET1cgT0xERVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBPTERFUgotUEFTUyBp
bnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5v
ZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
Zm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIE9MREVSIC0tPiBTUEFOIDEgSU5P
TERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIE9MREVSIC0t
PiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hB
RE9XIE9MREVSIC0tPiBTUEFOIDMgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBO
RVNURUQgSU4gU0hBRE9XIE9MREVSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgWU9VTkdF
UgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIE9MREVSIC0tPiBT
UEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBTSEFE
T1cgT0xERVIgLS0+IFNQQU4gMiBJTllPVU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJl
ZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gSU4g
TkVTVEVEIElOIFNIQURPVyBPTERFUiAtLT4gU1BBTiAzIElOWU9VTkdFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiAxIElOT0xERVIgLS0+IENPTlRBSU5FUjEKLVBBU1MgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQ
QU4gMSBJTk9MREVSIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5P
TERFUiAtLT4gSU4gSE9TVAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElOT0xERVIgLS0+IFNQ
QU4gSU4gTkVTVEVEIElOIFNIQURPVyBPTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElO
T0xERVIgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5PTERF
UiAtLT4gU1BBTiAyIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMSBJTk9MREVSIC0t
PiBTUEFOIDMgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElOT0xERVIgLS0+IFNQ
QU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVS
b290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEg
SU5PTERFUiAtLT4gU1BBTiAxIElOWU9VTkdFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElO
T0xERVIgLS0+IFNQQU4gMiBJTllPVU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNj
b3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMSBJTk9M
REVSIC0tPiBTUEFOIDMgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERF
UiAtLT4gQ09OVEFJTkVSMQotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAyIElOT0xERVIgLS0+IENP
TlRBSU5FUjIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTk9MREVSIC0tPiBJTiBIT1NUCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERFUiAtLT4gU1BBTiBJTiBORVNURUQgSU4gU0hB
RE9XIE9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERFUiAtLT4gU1BBTiAxIElO
T0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTk9MREVSIC0tPiBTUEFOIDIgSU5PTERF
UgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAyIElOT0xERVIgLS0+IFNQQU4gMyBJTk9MREVSCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERFUiAtLT4gU1BBTiBJTiBORVNURUQgSU4gU0hB
RE9XIFlPVU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2lu
ZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTk9MREVSIC0tPiBTUEFOIDEg
SU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERFUiAtLT4gU1BBTiAyIElO
WU9VTkdFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVj
dGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAyIElOT0xERVIgLS0+IFNQQU4gMyBJTllP
VU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0tPiBDT05UQUlORVIxCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5PTERFUiAtLT4gQ09OVEFJTkVSMgotUEFTUyBpbnRl
cm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUp
IGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9j
dXNOb2RlKQotU1BBTiAzIElOT0xERVIgLS0+IElOIEhPU1QKLVBBU1MgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQ
QU4gMyBJTk9MREVSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIKLVBBU1MgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
KSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZv
Y3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0tPiBTUEFOIDEgSU5PTERFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiAzIElOT0xERVIgLS0+IFNQQU4gMiBJTk9MREVSCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUp
Ci1TUEFOIDMgSU5PTERFUiAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQ
QU4gMyBJTk9MREVSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgWU9VTkdFUgotUEFTUyBp
bnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5v
ZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
Zm9jdXNOb2RlKQotU1BBTiAzIElOT0xERVIgLS0+IFNQQU4gMSBJTllPVU5HRVIKLVBBU1MgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
KSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZv
Y3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0tPiBTUEFOIDIgSU5ZT1VOR0VSCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1TUEFOIDMgSU5PTERFUiAtLT4gU1BBTiAzIElOWU9VTkdFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+IENPTlRBSU5FUjEKLVBB
U1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNo
b3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmZvY3VzTm9kZSkKLVNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSIC0tPiBDT05U
QUlORVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgWU9VTkdF
UiAtLT4gSU4gSE9TVAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9X
IFlPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBPTERFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+IFNQQU4gMSBJTk9MREVS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgWU9VTkdFUiAtLT4g
U1BBTiAyIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUo
d2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gSU4gTkVTVEVEIElOIFNIQURP
VyBZT1VOR0VSIC0tPiBTUEFOIDMgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBO
RVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgWU9VTkdFUiAt
LT4gU1BBTiAxIElOWU9VTkdFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2lu
ZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4g
U0hBRE9XIFlPVU5HRVIgLS0+IFNQQU4gMiBJTllPVU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQ
QU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSIC0tPiBTUEFOIDMgSU5ZT1VOR0VSCi1QQVNT
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9y
Tm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIxCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUp
Ci1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVS
b290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEg
SU5ZT1VOR0VSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIKLVBBU1MgaW50ZXJu
YWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBp
cyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3Vz
Tm9kZSkKLVNQQU4gMSBJTllPVU5HRVIgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05v
ZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMu
dHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2Rl
KQotU1BBTiAxIElOWU9VTkdFUiAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRl
cm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkK
LVNQQU4gMSBJTllPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFOIDEgSU5ZT1VOR0VSCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5ZT1VOR0VSCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFOIDMgSU5ZT1VOR0VSCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIxCi1QQVNTIGlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9k
ZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5m
b2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05v
ZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2Nv
cGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxz
LnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFO
IDIgSU5ZT1VOR0VSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIKLVBBU1MgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
KSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZv
Y3VzTm9kZSkKLVNQQU4gMiBJTllPVU5HRVIgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiAyIElOWU9VTkdFUiAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1MgaW50ZXJuYWxz
LnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBp
bnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9k
ZSkKLVNQQU4gMiBJTllPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBTUEFOIDEgSU5ZT1VOR0VS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5ZT1VOR0VS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBTUEFOIDMgSU5ZT1VOR0VS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIxCi1QQVNT
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9y
Tm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJu
YWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1T
UEFOIDMgSU5ZT1VOR0VSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIKLVBBU1Mg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JO
b2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmZvY3VzTm9kZSkKLVNQQU4gMyBJTllPVU5HRVIgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9k
ZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5m
b2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRl
cm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUp
IGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9j
dXNOb2RlKQotU1BBTiAzIElOWU9VTkdFUiAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1MgaW50ZXJu
YWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBp
cyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3Vz
Tm9kZSkKLVNQQU4gMyBJTllPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBTUEFOIDEgSU5ZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5ZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBTUEFOIDMgSU5ZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxOiBkb3VibGUgY2xpY2sKLVBBU1MgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
KSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZv
Y3VzTm9kZSkKLUNPTlRBSU5FUjI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNj
b3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotSU4g
SE9TVDogZG91YmxlIGNsaWNrCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBT
SEFET1cgT0xERVI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5v
ZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2Nv
cGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElOT0xE
RVI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAyIElOT0xERVI6IGRvdWJs
ZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVj
dGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAzIElOT0xERVI6IGRvdWJsZSBjbGljawot
UEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFu
Y2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVI6IGRvdWJs
ZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVj
dGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElOWU9VTkdFUjogZG91YmxlIGNsaWNr
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSOiBkb3VibGUgY2xpY2sKLVBBU1Mg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JO
b2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmZvY3VzTm9kZSkKLVNQQU4gMyBJTllPVU5HRVI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQotCi0KLQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9ucy1p
bi1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2VsZWN0aW9ucy1pbi1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbnMtaW4tc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTAyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L2Rpdj4K
LQotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZVNoYWRvd0RPTShzaGFkb3dSb290LCBuYW1lKSB7
Ci0gICAgdmFyIGhvc3RJblNoYWRvd1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFu
Jyk7Ci0gICAgdmFyIG5lc3RlZFNoYWRvd1Jvb3QgPSBob3N0SW5TaGFkb3dSb290LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgc3BhbkluU2hhZG93ID0gY3JlYXRlU3BhbldpdGhU
ZXh0KCdTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgJyArIG5hbWUpOwotICAgIG5lc3RlZFNoYWRv
d1Jvb3QuYXBwZW5kQ2hpbGQoc3BhbkluU2hhZG93KTsKLQotICAgIHZhciBzcGFuMSA9IGNyZWF0
ZVNwYW5XaXRoVGV4dCgnU1BBTiAxIElOJyArIG5hbWUpOwotICAgIHZhciBzcGFuMiA9IGNyZWF0
ZVNwYW5XaXRoVGV4dCgnU1BBTiAyIElOJyArIG5hbWUpOwotICAgIHZhciBzcGFuMyA9IGNyZWF0
ZVNwYW5XaXRoVGV4dCgnU1BBTiAzIElOJyArIG5hbWUpOwotCi0gICAgc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChzcGFuMSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChob3N0SW5TaGFkb3dS
b290KTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4yKTsKLSAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBzaGFk
b3dSb290LmFwcGVuZENoaWxkKHNwYW4zKTsKLQotICAgIHJldHVybiBuZXcgQXJyYXkoc3Bhbklu
U2hhZG93LCBzcGFuMSwgc3BhbjIsIHNwYW4zKTsKLX0KLQotdmFyIHNwYW5JbkNvbnRhaW5lcjEg
PSBjcmVhdGVTcGFuV2l0aFRleHQoJ0NPTlRBSU5FUjEnKTsKLXZhciBzcGFuSW5Db250YWluZXIy
ID0gY3JlYXRlU3BhbldpdGhUZXh0KCdDT05UQUlORVIyJyk7Ci0KLXZhciBob3N0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc3BhbkluSG9zdCA9IGNyZWF0ZVNwYW5XaXRo
VGV4dCgnSU4gSE9TVCcpOwotaG9zdC5hcHBlbmRDaGlsZChzcGFuSW5Ib3N0KTsKLQotdmFyIG9s
ZGVyU2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIHNwYW5z
MSA9IGNyZWF0ZVNoYWRvd0RPTShvbGRlclNoYWRvd1Jvb3QsICdPTERFUicpOwotCi12YXIgeW91
bmdlclNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBzcGFu
czIgPSBjcmVhdGVTaGFkb3dET00oeW91bmdlclNoYWRvd1Jvb3QsICdZT1VOR0VSJyk7Ci0KLXZh
ciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci1jb250
YWluZXIuYXBwZW5kQ2hpbGQoc3BhbkluQ29udGFpbmVyMSk7Ci1jb250YWluZXIuYXBwZW5kQ2hp
bGQoaG9zdCk7Ci1jb250YWluZXIuYXBwZW5kQ2hpbGQoc3BhbkluQ29udGFpbmVyMik7Ci0KLXZh
ciBhbGxTcGFucyA9IG5ldyBBcnJheShzcGFuSW5Db250YWluZXIxLCBzcGFuSW5Db250YWluZXIy
LCBzcGFuSW5Ib3N0KTsKLWFsbFNwYW5zID0gYWxsU3BhbnMuY29uY2F0KHNwYW5zMSk7Ci1hbGxT
cGFucyA9IGFsbFNwYW5zLmNvbmNhdChzcGFuczIpOwotCi0vLyBEbyBMYXlvdXQKLWNvbnRhaW5l
ci5vZmZzZXRMZWZ0OwotCi0vLyBTZWxlY3RzIGFsbCBjb21iaW5hdGlvbnMgb2Ygc3BhbnMuCi1m
b3IgKHZhciBpID0gMDsgaSA8IGFsbFNwYW5zLmxlbmd0aDsgKytpKSB7Ci0gICAgZm9yICh2YXIg
aiA9IDA7IGogPCBhbGxTcGFucy5sZW5ndGg7ICsraikgewotICAgICAgICBtb3VzZU1vdmVUb0Vs
ZW0oYWxsU3BhbnNbaV0pOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAg
ICAgbW91c2VNb3ZlVG9FbGVtKGFsbFNwYW5zW2pdKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotCi0gICAgICAgIC8vIENoZWNrcyBoYXZpbmdzIHRoZSBzYW1lIHNlbGVjdGlvbi4K
LSAgICAgICAgZGVidWcoYWxsU3BhbnNbaV0udGV4dENvbnRlbnQgKyAnIC0tPiAnICsgYWxsU3Bh
bnNbal0udGV4dENvbnRlbnQpOwotICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSIsIAotICAgICAgICAg
ICAgICAgICAiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5mb2N1c05vZGUpIik7IAotCi0gICAgICAgIC8vIGNsZWFyIHNlbGVjaXRvbi4KLSAgICAgICAg
d2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOwotICAgIH0KLX0KLQotLy8g
RG8gZG91YmxlIGNsaWNrIGZvciBhbGwgc3BhbnMuCi1mb3IgKHZhciBpID0gMDsgaSA8IGFsbFNw
YW5zLmxlbmd0aDsgKytpKSB7Ci0gICAgbW91c2VNb3ZlVG9FbGVtKGFsbFNwYW5zW2ldKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwot
Ci0gICAgLy8gQ2hlY2tzIGhhdmluZ3MgdGhlIHNhbWUgc2VsZWN0aW9uLgotICAgIGRlYnVnKGFs
bFNwYW5zW2ldLnRleHRDb250ZW50ICsgIjogZG91YmxlIGNsaWNrIik7Ci0gICAgc2hvdWxkQmUo
ImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9y
Tm9kZSkiLCAKLSAgICAgICAgICAgICAiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpIik7IAotCi0gICAgd2luZG93LmdldFNlbGVjdGlv
bigpLnJlbW92ZUFsbFJhbmdlcygpOwotfQotCi0vLyBSZW1vdmVzCi13aGlsZSAoY29udGFpbmVy
LmZpcnN0Q2hpbGQpCi0gICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGNvbnRhaW5lci5maXJzdENo
aWxkKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1hbmQtbGlzdC1lbGVtZW50cy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYW5kLWxpc3QtZWxlbWVudHMtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1hbmQtbGlzdC1lbGVtZW50cy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxkaXY+Ci0gIDxvbD4K
LSAgICA8bGk+QTwvbGk+Ci0gICAgPGxpIGlkPSJob3N0RXF1aXZhbGVudCI+PC9saT4KLSAgICA8
bGk+QzwvbGk+Ci0gIDwvb2w+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci0vLyBXZSBjYW5ub3QgdXNlIGhv
c3RFcXVpdmFsZW50LmlubmVySFRNTCBpbnN0ZWFkIG9mIGFwcGVuZENoaWxkKClzIGJlY3Vhc2UK
LS8vIHRoZSBwYXJzZXIgcHJldmVudHMgdG8gY3JlYXRlIGV4cGVjdGVkIHRyZWU6Ci0vLwotLy8g
PG9sPgotLy8gICA8bGk+QTwvbGk+Ci0vLyAgIDxsaT4KLS8vICAgICAgPGxpPlg8L2xpPgotLy8g
ICAgICA8dWw+QjwvdWw+Ci0vLyAgICAgIDxsaT5ZPC9saT4KLS8vICAgPC9saT4KLS8vICAgPGxp
PkM8L2xpPgotLy8gPC9vbD4gICAKLXZhciBob3N0RXF1aXZhbGVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJob3N0RXF1aXZhbGVudCIpOwotdmFyIHNoYWRvd0xpc3RSb290ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgib2wiKTsKLXNoYWRvd0xpc3RSb290LnN0eWxlLnBhZGRpbmdMZWZ0
ID0gIjBweCI7Ci1ob3N0RXF1aXZhbGVudC5hcHBlbmRDaGlsZChzaGFkb3dMaXN0Um9vdCk7Ci0K
LXZhciBjaGlsZFggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwotY2hpbGRYLmlubmVy
SFRNTCA9ICJYIjsKLWNoaWxkWC5zdHlsZS5saXN0U3R5bGVQb3NpdGlvbiA9ICJpbnNpZGUiOwot
c2hhZG93TGlzdFJvb3QuYXBwZW5kQ2hpbGQoY2hpbGRYKTsKLQotdmFyIGNoaWxkVWwgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpOwotY2hpbGRVbC5pbm5lckhUTUwgPSAiQiI7Ci1zaGFk
b3dMaXN0Um9vdC5hcHBlbmRDaGlsZChjaGlsZFVsKTsKLQotdmFyIGNoaWxkWSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci1jaGlsZFkuaW5uZXJIVE1MID0gIlkiOwotY2hpbGRZLnN0
eWxlLmxpc3RTdHlsZVBvc2l0aW9uID0gImluc2lkZSI7Ci1zaGFkb3dMaXN0Um9vdC5hcHBlbmRD
aGlsZChjaGlsZFkpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWFuZC1saXN0LWVsZW1lbnRzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hbmQtbGlzdC1lbGVt
ZW50cy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWFuZC1saXN0LWVsZW1lbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDMg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogCi0g
KiBUbyBmaWxsIG1pc3NpbmcgVUEgc3R5bGVzIHdoaWNoIGFwcGVhcnMgaW4gdGhlIGV4cGVjdGVk
Lmh0bWwgdGhyb3VnaCB0aGUgImxpIHVsIiBzZWxlY3RvciBpbiBodG1sLmNzcy4KLSAqIEZvbGxv
d2luZyA8dWw+IGNyb3NzZXMgc2hhZG93IGJvdW5kYXJ5IGFuZCBkb2Vzbid0IG1hdGNoIGl0Lgot
ICogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMTkyCi0gKi8KLXVs
IHsKLSAgIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogMHB4OwotICAgLXdlYmtpdC1tYXJnaW4tYWZ0
ZXI6IDBweDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXY+Ci0gIDxvbD4KLSAg
ICA8bGk+QTwvbGk+Ci0gICAgPGxpIGlkPSJob3N0Ij5CPC9saT4KLSAgICA8bGk+QzwvbGk+Ci0g
IDwvb2w+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci0vLyBUaGUgdHJlZSB0byBiZSBjcmVhdGVkOgotLy8K
LS8vIDxvbD4KLS8vICAgPGxpPkE8L2xpPgotLy8gICA8bGk+QgotLy8gICAgICAjZG9jdW1lbnQt
ZnJhZ21lbnQKLS8vICAgICAgICA8bGk+WDwvbGk+Ci0vLyAgICAgICAgPHVsPjxzaGFkb3c+PC9z
aGFkb3c+PC91bD4KLS8vICAgICAgICA8bGk+WTwvbGk+Ci0vLyAgIDwvbGk+Ci0vLyAgIDxsaT5D
PC9saT4KLS8vIDwvb2w+ICAgCi12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJo
b3N0Iik7Ci12YXIgc2hhZG93ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFk
b3cuYXBwbHlBdXRob3JTdHlsZXMgPSB0cnVlOwotc2hhZG93LmlubmVySFRNTCA9ICI8bGk+WDwv
bGk+PHVsPjxzaGFkb3c+PC9zaGFkb3c+PC91bD48bGk+WTwvbGk+IjsKLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1h
d2FyZS1jcmVhdGUtc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYXdhcmUtY3JlYXRlLXNoYWRvdy1yb290LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1hd2FyZS1jcmVhdGUtc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIGZvciBTaGFkb3dBd2FyZSBKUyBBUElzLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyByb290MSBpcyBub3Qgcm9vdDIK
LVBBU1Mgcm9vdDEgaXMgd2luZG93LmludGVybmFscy5vbGRlc3RTaGFkb3dSb290KGhvc3QpCi1Q
QVNTIHJvb3QyIGlzIHdpbmRvdy5pbnRlcm5hbHMueW91bmdlc3RTaGFkb3dSb290KGhvc3QpCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hd2FyZS1jcmVhdGUtc2hhZG93LXJv
b3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWF3YXJlLWNyZWF0ZS1zaGFkb3ctcm9vdC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWF3YXJlLWNyZWF0ZS1zaGFkb3ctcm9vdC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRl
c3RzIGZvciBTaGFkb3dBd2FyZSBKUyBBUElzLiIpOwotRWxlbWVudC5wcm90b3R5cGUuY3JlYXRl
U2hhZG93Um9vdCA9IEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNoYWRvd1Jvb3QgfHwgRWxlbWVu
dC5wcm90b3R5cGUud2Via2l0Q3JlYXRlU2hhZG93Um9vdDsKLQotLy8gU2hhZG93QXdhcmUuY3Jl
YXRlU2hhZG93Um9vdCgpCi12YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotdmFyIHJvb3QxID0gaG9zdC5jcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgcm9vdDIgPSBob3N0
LmNyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNob3VsZE5vdEJlKCJyb290MSIsICJyb290MiIpOwotc2hv
dWxkQmUoInJvb3QxIiwgIndpbmRvdy5pbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChob3N0KSIp
Owotc2hvdWxkQmUoInJvb3QyIiwgIndpbmRvdy5pbnRlcm5hbHMueW91bmdlc3RTaGFkb3dSb290
KGhvc3QpIik7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hd2FyZS1zaGFkb3ctcm9vdC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hd2Fy
ZS1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYXdhcmUtc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLVRlc3RzIGZvciBTaGFkb3dBd2FyZS5z
aGFkb3dSb290IHByb3BlcnR5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBob3N0LndlYmtpdFNoYWRvd1Jvb3QgaXMgbnVsbAotUEFTUyByb290MSBpcyBob3N0LndlYmtp
dFNoYWRvd1Jvb3QKLVBBU1Mgcm9vdDIgaXMgaG9zdC53ZWJraXRTaGFkb3dSb290Ci1QQVNTIGhv
c3RXaXRoVUFTaGFkb3cud2Via2l0U2hhZG93Um9vdCBpcyBudWxsCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1hd2FyZS1zaGFkb3ctcm9vdC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYXdhcmUtc2hhZG93LXJvb3QuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1hd2FyZS1zaGFkb3ctcm9vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIGZvciBTaGFkb3dBd2FyZS5zaGFkb3dSb290IHByb3Bl
cnR5LiIpOwotCi12YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotc2hv
dWxkQmVOdWxsKCJob3N0LndlYmtpdFNoYWRvd1Jvb3QiKTsKLXZhciByb290MSA9IGhvc3Qud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hvdWxkQmUoInJvb3QxIiwgImhvc3Qud2Via2l0U2hh
ZG93Um9vdCIpOwotdmFyIHJvb3QyID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1z
aG91bGRCZSgicm9vdDIiLCAiaG9zdC53ZWJraXRTaGFkb3dSb290Iik7Ci0KLXZhciBob3N0V2l0
aFVBU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKLXNob3VsZEJlTnVs
bCgiaG9zdFdpdGhVQVNoYWRvdy53ZWJraXRTaGFkb3dSb290Iik7Ci0KLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1ib3VuZGFyeS1jcm9zc2luZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1jcm9zc2luZy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Ym91bmRhcnktY3Jvc3NpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1ICsw
LDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IHNoYWRvdyBET00gYm91bmRhcnkgaXMgbm90IGNy
b3NzZWQgZHVyaW5nIGV2ZW50IHByb3BhZ2F0aW9uLiBDYW4gb25seSBydW4gd2l0aGluIERSVC4K
LQotU2VlIGJ1ZyA0NjAxNSBmb3IgZGV0YWlscy4KLQotTXV0YXRpb24gZXZlbnRzIHNob3VsZCBu
b3QgcHJvcGFnYXRlIG91dCBvZiB0aGUgc2hhZG93IERPTTogUEFTUwotVGhlIHNlbGVjdHN0YXJ0
IGV2ZW50IHNob3VsZCBub3QgcHJvcGFnYXRlIG91dCBvZiB0aGUgc2hhZG93IERPTTogUEFTUwot
VGhlIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudCBiZXR3ZWVuIHR3byBlbGVtZW50cyBpbnNpZGUg
dGhlIHNhbWUgc2hhZG93IHN1YnRyZWUgc2hvdWxkIG5vdCBwcm9wYWdhdGUgb3V0IG9mIHRoZSBz
aGFkb3cgRE9NOiBQQVNTCi1UaGUgbW91c2VvdmVyIGV2ZW50IGluIGEgc2hhZG93IHN1YnRyZWUs
IHdoZXJlIHJlbGF0ZWQgdGFyZ2V0IGlzIHRoZSB0cmVlIGhvc3Qgc2hvdWxkIG5vdCBlc2NhcGUg
b3V0IG9mIHNoYWRvdyBET006IFBBU1MKLUV2ZW50cyB3aXRoIHJlbGF0ZWRUYXJnZXQgc2hvdWxk
IG5vdCBlc2NhcGUgb3V0IG9mIHNoYWRvdyBzdWJ0cmVlIHdoZW4gaXRzIGhvc3QgaXMgdGhlIHRh
cmdldDogUEFTUwotVGhlIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudCBvbiBhIHNoYWRvdyBzdWJ0
cmVlIGhvc3Qgc2hvdWxkIHByb3BhZ2F0ZSBvdXQgb2YgdGhlIHNoYWRvdyBET006IFBBU1MKLUxh
YmVsIHNob3VsZCBsb29rIGJleW9uZCBzaGFkb3cgYm91bmRhcnkgdG8gZGV0ZWN0IGlmIGl0IGVu
Y2xvc2VzIGl0cyBhc3NvY2lhdGVkIGVsZW1lbnQ6IFBBU1MKLUV2ZW50J3MgcmVsYXRlZFRhcmdl
dCBzaG91bGQgYmUgcmV0YXJnZXRlZDogUEFTUwotT3RoZXIgZXZlbnRzIHNob3VsZCBiZSByZXRh
cmdldGVkOiBQQVNTCi1BZnRlciBldmVudCBkaXNwYXRjaCwgdGhlIGV2ZW50IG9iamVjdCBzaG91
bGQgbm90IHJldmVhbCBzaGFkb3cgRE9NOiBQQVNTCi1Gb2N1c2luZyBzYW1lIHNoYWRvdyBET00g
ZWxlbWVudCByZXBlYXRlZGx5IHNob3VsZCBub3QgdHJpZ2dlciBtdWx0aXBsZSBmb2N1cy9ibHVy
IGV2ZW50czogUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1i
b3VuZGFyeS1jcm9zc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctYm91bmRhcnktY3Jvc3NpbmcuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1jcm9zc2luZy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI4NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdD4KLQotdmFyIGxvZ0RpdjsKLQotZnVuY3Rpb24gbG9nKG1zZywgc3VjY2VzcykKLXsKLSAg
ICBsb2dEaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpLnRleHRD
b250ZW50ID0gbXNnICsgJzogJyArIChzdWNjZXNzID8gJ1BBU1MnIDogJ0ZBSUwnKTsKLX0KLQot
ZnVuY3Rpb24gbW92ZU92ZXIoZWxlbWVudCkKLXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmFyIHggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICB2YXIgeSA9IGVsZW1lbnQub2Zmc2V0VG9wICsg
ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgs
IHkpOwotfQotCi1mdW5jdGlvbiBtb3ZlT3ZlckxlZnRRdWFydGVyT2YoZWxlbWVudCkKLXsKLSAg
ICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmFyIHgg
PSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gNDsKLSAgICB2YXIg
eSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotfQotCi1mdW5jdGlvbiBtb3ZlT3ZlclJpZ2h0
UXVhcnRlck9mKGVsZW1lbnQpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIHZhciB4ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5v
ZmZzZXRXaWR0aCAqIDMgLyA0OwotICAgIHZhciB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVt
ZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7
Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT24oZWxlbWVudCkKLXsKLSAgICBtb3ZlT3ZlcihlbGVtZW50
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25MZWZ0UXVhcnRlck9mKGVsZW1lbnQpCi17Ci0gICAg
aWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1vdmVPdmVy
TGVmdFF1YXJ0ZXJPZihlbGVtZW50KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGxlYXBGb3J3YXJkKCkKLXsK
LSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZXZl
bnRTZW5kZXIubGVhcEZvcndhcmQoMTAwMCk7Ci19Ci0KLXZhciB0ZXN0cyA9IHsKLSAgICBtdXRh
dGlvbkV2ZW50UHJvcGFnYXRpb246IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0
YXJlYSA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dGV4dGFyZWEnKSk7Ci0gICAgICAgIHZhciBtdXRhdGlvbkV2ZW50RmlyZWQ7Ci0gICAgICAgIHRl
eHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoJ0RPTVN1YnRyZWVNb2RpZmllZCcsIGZ1bmN0aW9uKGUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIG11dGF0aW9uRXZlbnRGaXJlZCA9IHRydWU7Ci0gICAg
ICAgIH0sIGZhbHNlKTsKLSAgICAgICAgdGV4dGFyZWEudmFsdWUgPSAndGVzdCc7Ci0gICAgICAg
IC8vIFRyaWdnZXIgc3R5bGUgcmVjYWxjIGFuZCBzYWRseSwgdGhlIGFjdHVhbCBtdXRhdGlvbiBv
ZiB0aGUgdGV4dGFyZWEgc2hhZG93IERPTS4KLSAgICAgICAgdGV4dGFyZWEub2Zmc2V0SGVpZ2h0
OwotICAgICAgICBsb2coJ011dGF0aW9uIGV2ZW50cyBzaG91bGQgbm90IHByb3BhZ2F0ZSBvdXQg
b2YgdGhlIHNoYWRvdyBET00nLCAhbXV0YXRpb25FdmVudEZpcmVkKTsKLSAgICAgICAgdGV4dGFy
ZWEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZXh0YXJlYSk7Ci0gICAgfSwKLSAgICBzZWxlY3Rz
dGFydEV2ZW50UHJvcGFnYXRpb246IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0
SW5wdXQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lucHV0JykpOwotICAgICAgICB2YXIgc2VsZWN0c3RhcnRFdmVudEZpcmVkID0gZmFsc2U7Ci0g
ICAgICAgIGRvY3VtZW50LnNlbGVjdHN0YXJ0ID0gZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBzZWxlY3RzdGFydEV2ZW50RmlyZWQgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAg
IGNsaWNrT24odGV4dElucHV0KTsKLSAgICAgICAgbG9nKCdUaGUgc2VsZWN0c3RhcnQgZXZlbnQg
c2hvdWxkIG5vdCBwcm9wYWdhdGUgb3V0IG9mIHRoZSBzaGFkb3cgRE9NJywgIXNlbGVjdHN0YXJ0
RXZlbnRGaXJlZCk7Ci0gICAgICAgIHRleHRJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRl
eHRJbnB1dCk7Ci0gICAgICAgIGRvY3VtZW50LnNlbGVjdHN0YXJ0ID0gbnVsbDsKLSAgICB9LAot
ICAgIG1vdXNlT3ZlckFuZE91dFByb3BhZ2F0aW9uOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICB2YXIgY291bnQgPSAwOwotICAgICAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKLSAgICAgICAgZmls
ZUlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7Ci0gICAgICAgIHZhciBjb3VudEV2
ZW50RGlzcGF0Y2ggPSBmdW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNvdW50Kys7
Ci0gICAgICAgIH0KLSAgICAgICAgbW92ZU92ZXJMZWZ0UXVhcnRlck9mKGZpbGVJbnB1dCk7Ci0K
LSAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBjb3Vu
dEV2ZW50RGlzcGF0Y2gsIGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZW91dCcsIGNvdW50RXZlbnREaXNwYXRjaCwgZmFsc2UpOwotCi0gICAgICAg
IG1vdmVPdmVyUmlnaHRRdWFydGVyT2YoZmlsZUlucHV0KTsKLQotICAgICAgICBsb2coIlRoZSBt
b3VzZW92ZXIvbW91c2VvdXQgZXZlbnQgYmV0d2VlbiB0d28gZWxlbWVudHMgaW5zaWRlIHRoZSBz
YW1lIHNoYWRvdyBzdWJ0cmVlIHNob3VsZCBub3QgcHJvcGFnYXRlIG91dCBvZiB0aGUgc2hhZG93
IERPTSIsIGNvdW50ID09IDApOwotCi0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRM
aXN0ZW5lcignbW91c2VvdmVyJywgY291bnRFdmVudERpc3BhdGNoLCBmYWxzZSk7Ci0gICAgICAg
IGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBjb3VudEV2ZW50
RGlzcGF0Y2gsIGZhbHNlKTsKLSAgICAgICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQoZmlsZUlucHV0KTsKLSAgICB9LAotICAgIHJlbGF0ZWRUYXJnZXRBc0hvc3Q6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgIHZhciByZWxhdGVkVGFy
Z2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIHJlbGF0ZWRUYXJn
ZXQuc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBwYWRkaW5nLWxl
ZnQ6IDUwcHg7JzsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZWxhdGVkVGFy
Z2V0KTsKLSAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDogNTBweDsgaGVpZ2h0OiA1
MHB4JzsKLSAgICAgICAgaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QocmVsYXRlZFRhcmdldCku
YXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICAgICAgbW92ZU92ZXJMZWZ0UXVhcnRlck9mKHJlbGF0
ZWRUYXJnZXQpOwotICAgICAgICB2YXIgY291bnRFdmVudERpc3BhdGNoID0gZnVuY3Rpb24oKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9Ci0gICAgICAgIHJlbGF0
ZWRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgY291bnRFdmVudERpc3BhdGNo
LCBmYWxzZSkKLSAgICAgICAgbW92ZU92ZXJSaWdodFF1YXJ0ZXJPZihyZWxhdGVkVGFyZ2V0KTsK
LQotICAgICAgICBsb2coIlRoZSBtb3VzZW92ZXIgZXZlbnQgaW4gYSBzaGFkb3cgc3VidHJlZSwg
d2hlcmUgcmVsYXRlZCB0YXJnZXQgaXMgdGhlIHRyZWUgaG9zdCBzaG91bGQgbm90IGVzY2FwZSBv
dXQgb2Ygc2hhZG93IERPTSIsIGNvdW50ID09IDApOwotCi0gICAgICAgIHJlbGF0ZWRUYXJnZXQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgY291bnRFdmVudERpc3BhdGNoLCBmYWxz
ZSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocmVsYXRlZFRhcmdldCk7Ci0g
ICAgfSwKLSAgICB0YXJnZXRBc0hvc3Q6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBj
b3VudCA9IDA7Ci0gICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSAnd2lkdGg6IDUwcHg7IGhlaWdo
dDogNTBweDsgcGFkZGluZy1sZWZ0OiA1MHB4Oyc7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgcmVsYXRlZFRhcmdldC5zdHlsZS5jc3NUZXh0
ID0gJ3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHgnOwotICAgICAgICBpbnRlcm5hbHMuZW5zdXJl
U2hhZG93Um9vdCh0YXJnZXQpLmFwcGVuZENoaWxkKHJlbGF0ZWRUYXJnZXQpOwotICAgICAgICBt
b3ZlT3ZlclJpZ2h0UXVhcnRlck9mKHRhcmdldCk7Ci0gICAgICAgIHZhciBjb3VudEV2ZW50RGlz
cGF0Y2ggPSBmdW5jdGlvbihldnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0g
ICAgICAgIH0KLSAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGNv
dW50RXZlbnREaXNwYXRjaCwgZmFsc2UpCi0gICAgICAgIG1vdmVPdmVyTGVmdFF1YXJ0ZXJPZih0
YXJnZXQpOwotCi0gICAgICAgIGxvZygiRXZlbnRzIHdpdGggcmVsYXRlZFRhcmdldCBzaG91bGQg
bm90IGVzY2FwZSBvdXQgb2Ygc2hhZG93IHN1YnRyZWUgd2hlbiBpdHMgaG9zdCBpcyB0aGUgdGFy
Z2V0IiwgY291bnQgPT0gMCk7Ci0KLSAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIo
J21vdXNlb3V0JywgY291bnRFdmVudERpc3BhdGNoLCBmYWxzZSk7Ci0gICAgICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQodGFyZ2V0KTsKLSAgICB9LAotICAgIG1vdXNlT3Zlck9uSG9zdDog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgdmFyIGlu
cHV0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
bnB1dCcpKTsKLSAgICAgICAgdmFyIGNvdW50RXZlbnREaXNwYXRjaCA9IGZ1bmN0aW9uKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfQotCi0gICAgICAgIG1vdmVP
dmVyKGRvY3VtZW50LmJvZHkpOwotICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdtb3Vz
ZW92ZXInLCBjb3VudEV2ZW50RGlzcGF0Y2gsIGZhbHNlKTsKLSAgICAgICAgbW92ZU92ZXIoaW5w
dXQpOwotCi0gICAgICAgIGxvZygiVGhlIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudCBvbiBhIHNo
YWRvdyBzdWJ0cmVlIGhvc3Qgc2hvdWxkIHByb3BhZ2F0ZSBvdXQgb2YgdGhlIHNoYWRvdyBET00i
LCBjb3VudCA9PSAxKTsKLQotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoJ21vdXNlb3ZlcicsIGNvdW50RXZlbnREaXNwYXRjaCwgZmFsc2UpOwotICAgICAgICBpbnB1
dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGlucHV0KTsKLSAgICB9LAotICAgIGxhYmVsU3ludGhl
dGljQ2xpY2s6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAg
ICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnbGFiZWwnKSk7Ci0gICAgICAgIHZhciBzZWFyY2hJbnB1dCA9IGxhYmVsLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykpOwotICAgICAgICBzZWFyY2hJ
bnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnc2VhcmNoJyk7Ci0gICAgICAgIHNlYXJjaElucHV0
LnNldEF0dHJpYnV0ZSgnaWQnLCAnYmF6Jyk7Ci0gICAgICAgIGxhYmVsLnNldEF0dHJpYnV0ZSgn
Zm9yJywgJ2JheicpOwotICAgICAgICBzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIGZ1bmN0aW9uKGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAg
IH0sIGZhbHNlKTsKLSAgICAgICAgY2xpY2tPbihzZWFyY2hJbnB1dCk7Ci0gICAgICAgIGxvZygi
TGFiZWwgc2hvdWxkIGxvb2sgYmV5b25kIHNoYWRvdyBib3VuZGFyeSB0byBkZXRlY3QgaWYgaXQg
ZW5jbG9zZXMgaXRzIGFzc29jaWF0ZWQgZWxlbWVudCIsIGNvdW50ID09IDEpOwotICAgICAgICBs
YWJlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxhYmVsKTsKLSAgICB9LAotICAgIC8qIFRoaXMg
c3VidGVzdCBzdGFydGVkIGNyYXNoaW5nIGFmdGVyIHI4OTAwNzoKLSAgICAgKiAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc4OAotICAgICAqIEknbSBkaXNhYmxp
bmcgdGhpcyB0ZXN0IGZvciBub3cgd2hpbGUgSSBhc2sgZm9yIGhlbHAgdW5kZXJzdGFuZGluZyB0
aGUgcHJvYmxlbS4KLSAgICBkZWZhdWx0RXZlbnRSZXRhcmdldGluZzogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgdmFyIGZpbGVJbnB1dCA9IGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7Ci0g
ICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpOwotICAgICAgICB2
YXIgY291bnRlciA9IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgY291bnQrKzsK
LSAgICAgICAgfQotICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUFj
dGl2YXRlJywgY291bnRlciwgZmFsc2UpOwotICAgICAgICBjbGlja09uTGVmdFF1YXJ0ZXJPZihm
aWxlSW5wdXQpOwotICAgICAgICBsb2coIkV2ZW50cyBmb3IgZGVmYXVsdCBldmVudCBoYW5kbGVy
IHNob3VsZCBub3QgYmUgcmV0YXJnZXRlZCIsIGNvdW50ID09IDEpOwotICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0RPTUFjdGl2YXRlJywgY291bnRlciwgZmFsc2Up
OwotICAgICAgICBmaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmaWxlSW5wdXQpOwot
ICAgIH0sCi0gICAgKi8KLSAgICByZWxhdGVkVGFyZ2V0UmV0YXJnZXRpbmc6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgIHZhciB0ZXh0SW5wdXQgPSBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jykp
OwotICAgICAgICB2YXIgY291bnRlciA9IGZ1bmN0aW9uKGV2dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKGV2dC5yZWxhdGVkVGFyZ2V0ICYmICFldnQucmVsYXRlZFRhcmdldC5wYXJlbnRO
b2RlKQotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0KLSAgICAgICAgbW92ZU92
ZXIodGV4dElucHV0KTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZW92ZXIiLCBjb3VudGVyLCBmYWxzZSk7Ci0gICAgICAgIG1vdmVPdmVyKGRvY3VtZW50LmJv
ZHkpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3Zl
ciIsIGNvdW50ZXIsIGZhbHNlKTsKLSAgICAgICAgbG9nKCJFdmVudCdzIHJlbGF0ZWRUYXJnZXQg
c2hvdWxkIGJlIHJldGFyZ2V0ZWQiLCBjb3VudCA9PSAwKTsKLSAgICAgICAgdGV4dElucHV0LnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQodGV4dElucHV0KTsKLSAgICB9LAotICAgIGV2ZW50SW5Qcm9n
cmVzczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHRleHRJbnB1dCA9IGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7Ci0gICAg
ICAgIHRleHRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGxvZygnT3RoZXIgZXZlbnRzIHNob3VsZCBiZSByZXRhcmdldGVk
JywgZS50YXJnZXQgPT0gdGV4dElucHV0KTsKLSAgICAgICAgfSwgZmFsc2UpOwotICAgICAgICBj
bGlja09uKHRleHRJbnB1dCk7Ci0gICAgICAgIHRleHRJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKHRleHRJbnB1dCk7Ci0gICAgfSwKLSAgICBmaW5hbEV2ZW50T2JqZWN0OiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB2YXIgdGV4dElucHV0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKLSAgICAgICAgdmFyIHN0b3JlZEV2
ZW50OwotICAgICAgICB0ZXh0SW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlv
bihlKQotICAgICAgICB7Ci0gICAgICAgICAgICBzdG9yZWRFdmVudCA9IGU7Ci0gICAgICAgIH0s
IGZhbHNlKTsKLSAgICAgICAgY2xpY2tPbih0ZXh0SW5wdXQpOwotICAgICAgICBsb2coJ0FmdGVy
IGV2ZW50IGRpc3BhdGNoLCB0aGUgZXZlbnQgb2JqZWN0IHNob3VsZCBub3QgcmV2ZWFsIHNoYWRv
dyBET00nLCBzdG9yZWRFdmVudCAmJiBzdG9yZWRFdmVudC50YXJnZXQgPT0gdGV4dElucHV0KTsK
LSAgICAgICAgdGV4dElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGV4dElucHV0KTsKLSAg
ICB9LAotICAgIGZvY3VzRXZlbnRQcm9wYWdhdGlvbjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAg
ICAgdmFyIHNlYXJjaElucHV0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKLSAgICAgICAgc2VhcmNoSW5wdXQuc2V0QXR0cmlidXRl
KCd0eXBlJywgJ3NlYXJjaCcpOwotICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICBzZWFy
Y2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKGV2dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfSk7Ci0gICAgICAgIGNsaWNrT24oc2Vh
cmNoSW5wdXQpOwotICAgICAgICBsZWFwRm9yd2FyZCgpOwotICAgICAgICBjbGlja09uKHNlYXJj
aElucHV0KTsKLSAgICAgICAgbG9nKCdGb2N1c2luZyBzYW1lIHNoYWRvdyBET00gZWxlbWVudCBy
ZXBlYXRlZGx5IHNob3VsZCBub3QgdHJpZ2dlciBtdWx0aXBsZSBmb2N1cy9ibHVyIGV2ZW50cycs
IGNvdW50ID09IDEpOwotICAgICAgICBzZWFyY2hJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KHNlYXJjaElucHV0KTsKLSAgICB9Ci19OwotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
Ci0gICAgbG9nRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotICAgIGZvcih2
YXIgdGVzdE5hbWUgaW4gdGVzdHMpIHsKLSAgICAgICAgdGVzdHNbdGVzdE5hbWVdKCk7Ci0gICAg
fQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAg
ICA8cD5UZXN0cyB0byBlbnN1cmUgdGhhdCBzaGFkb3cgRE9NIGJvdW5kYXJ5IGlzIG5vdCBjcm9z
c2VkIGR1cmluZyBldmVudCBwcm9wYWdhdGlvbi4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQuCi0g
ICAgPHA+U2VlIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NjAxNSI+YnVnIDQ2MDE1PC9hPiBmb3IgZGV0YWlscy4KLSAgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDg0ICsw
LDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IHNoYWRvdyBET00gYm91bmRhcnkgaXMgbm90IGNy
b3NzZWQgZHVyaW5nIGV2ZW50IHByb3BhZ2F0aW9uLiBDYW4gb25seSBydW4gd2l0aGluIERSVC4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotTW92ZSBtb3VzZSBmcm9tIGEgbm9k
ZSB0byBpdHMgc2libGluZyBub2RlLiBBbGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJv
dW5kYXJ5LgotTW92aW5nIG1vdXNlIGZyb20gZGl2QiB0byBkaXZDCi1QQVNTIGRpc3BhdGNoZWRF
dmVudCgibW91c2VvdmVyIikgaXMgWyJkaXZDKDwtZGl2QikoQGRpdkMpIiwgImRpdkMoPC1kaXZC
KShAZGl2QSkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJkaXZCKDwt
ZGl2QykoQGRpdkIpIiwgImRpdkIoPC1kaXZDKShAZGl2QSkiXQotCi1UYXJnZXQgaXMgYW4gYW5j
ZXN0b3Igb2YgcmVsYXRlZFRhcmdldC4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNoYWRvdyBi
b3VuZGFyeS4KLU1vdmluZyBtb3VzZSBmcm9tIGRpdkIgdG8gZGl2QQotUEFTUyBkaXNwYXRjaGVk
RXZlbnQoIm1vdXNlb3ZlciIpIGlzIFsiZGl2QSg8LWRpdkIpKEBkaXZBKSJdCi1QQVNTIGRpc3Bh
dGNoZWRFdmVudCgibW91c2VvdXQiKSBpcyBbImRpdkIoPC1kaXZBKShAZGl2QikiLCAiZGl2Qig8
LWRpdkEpKEBkaXZBKSJdCi0KLVJlbGF0ZWRUYXJnZXQgaXMgYW4gYW5jZXN0b3Igb2YgdGFyZ2V0
LiBBbGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LgotTW92aW5nIG1vdXNl
IGZyb20gZGl2QSB0byBkaXZCCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIikgaXMg
WyJkaXZCKDwtZGl2QSkoQGRpdkIpIiwgImRpdkIoPC1kaXZBKShAZGl2QSkiXQotUEFTUyBkaXNw
YXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJkaXZBKDwtZGl2QikoQGRpdkEpIl0KLQotQm90
aCB0YXJnZXQgYW5kIHJlbGF0ZWRUYXJnZXQgYXJlIGltbWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUg
c2FtZSBzaGFkb3cgcm9vdC4KLU1vdmluZyBtb3VzZSBmcm9tIHNoYWRvd0Qvc2hhZG93Ri9zaGFk
b3dHL2RpdkggdG8gc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SQotUEFTUyBkaXNwYXRjaGVk
RXZlbnQoIm1vdXNlb3ZlciIpIGlzIFsiZGl2SSg8LWRpdkgpKEBkaXZJKSJdCi1QQVNTIGRpc3Bh
dGNoZWRFdmVudCgibW91c2VvdXQiKSBpcyBbImRpdkgoPC1kaXZJKShAZGl2SCkiXQotCi1UYXJn
ZXQgaXMgYW4gYW5jZXN0b3Igb2YgcmVsYXRlZFRhcmdldC4KLU1vdmluZyBtb3VzZSBmcm9tIHNo
YWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkkgdG8gc2hhZG93RC9kaXZFCi1QQVNTIGRpc3BhdGNo
ZWRFdmVudCgibW91c2VvdmVyIikgaXMgWyJkaXZFKDwtc2hhZG93RikoQGRpdkUpIl0KLVBBU1Mg
ZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91dCIpIGlzIFsiZGl2SSg8LWRpdkUpKEBkaXZJKSIsICJz
aGFkb3dHKDwtZGl2RSkoQHNoYWRvd0cpIiwgInNoYWRvd0YoPC1kaXZFKShAc2hhZG93RikiLCAi
c2hhZG93Rig8LWRpdkUpKEBkaXZFKSJdCi0KLVRhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFuIGFu
Y2VzdG9yIG9mIHJlbGF0ZWRUYXJnZXQuCi1Nb3ZpbmcgbW91c2UgZnJvbSBzaGFkb3dEL3NoYWRv
d0Yvc2hhZG93Ry9kaXZJIHRvIHNoYWRvd0Qvc2hhZG93RgotUEFTUyBkaXNwYXRjaGVkRXZlbnQo
Im1vdXNlb3ZlciIpIGlzIFtdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKSBpcyBb
ImRpdkkoPC1zaGFkb3dGKShAZGl2SSkiLCAic2hhZG93Ryg8LXNoYWRvd0YpKEBzaGFkb3dHKSJd
Ci0KLVRhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFuIGFuY2VzdG9yIG9mIHJlbGF0ZWRUYXJnZXQg
KHNoYWRvdyBob3N0KS4KLU1vdmluZyBtb3VzZSBmcm9tIHNoYWRvd0Qvc2hhZG93Ri9zaGFkb3dH
IHRvIHNoYWRvd0QKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKSBpcyBbXQotUEFT
UyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJzaGFkb3dHKDwtc2hhZG93RCkoQHNo
YWRvd0cpIiwgInNoYWRvd0YoPC1zaGFkb3dEKShAc2hhZG93RikiLCAic2hhZG93Rig8LXNoYWRv
d0QpKEBkaXZFKSJdCi0KLVJlbGF0ZWRUYXJnZXQgaXMgYW5jZXN0b3Igb2YgdGFyZ2V0LgotTW92
aW5nIG1vdXNlIGZyb20gc2hhZG93RC9kaXZFIHRvIHNoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2Rp
dkkKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKSBpcyBbImRpdkkoPC1kaXZFKShA
ZGl2SSkiLCAic2hhZG93Ryg8LWRpdkUpKEBzaGFkb3dHKSIsICJzaGFkb3dGKDwtZGl2RSkoQHNo
YWRvd0YpIiwgInNoYWRvd0YoPC1kaXZFKShAZGl2RSkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQo
Im1vdXNlb3V0IikgaXMgWyJkaXZFKDwtc2hhZG93RikoQGRpdkUpIl0KLQotUmVsYXRlZFRhcmdl
dCAoc2hhZG93IGhvc3QpIGlzIGFuY2VzdG9yIG9mIHRhcmdldC4KLU1vdmluZyBtb3VzZSBmcm9t
IHNoYWRvd0Qvc2hhZG93RiB0byBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZJCi1QQVNTIGRp
c3BhdGNoZWRFdmVudCgibW91c2VvdmVyIikgaXMgWyJkaXZJKDwtc2hhZG93RikoQGRpdkkpIiwg
InNoYWRvd0coPC1zaGFkb3dGKShAc2hhZG93RykiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1v
dXNlb3V0IikgaXMgW10KLQotUmVsYXRlZFRhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFuIGFuY2Vz
dG9yIG9mIHRhcmdldCAoc2hhZG93IGhvc3QpLgotTW92aW5nIG1vdXNlIGZyb20gc2hhZG93RCB0
byBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93RwotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3Zl
ciIpIGlzIFsic2hhZG93Ryg8LXNoYWRvd0QpKEBzaGFkb3dHKSIsICJzaGFkb3dGKDwtc2hhZG93
RCkoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1zaGFkb3dEKShAZGl2RSkiXQotUEFTUyBkaXNwYXRj
aGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgW10KLQotVGFyZ2V0IGFuZCByZWxhdGVkVGFyZ2V0IGV4
aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFr
aW5nIHN1cmUgdGhhdCBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2VzdCBj
b21tb24gYm91bmRhcnkuCi1Nb3ZpbmcgbW91c2UgZnJvbSBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93
Ry9kaXZIIHRvIHNoYWRvd0Qvc2hhZG93Sy9kaXZMCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91
c2VvdmVyIikgaXMgWyJkaXZMKDwtc2hhZG93RikoQGRpdkwpIiwgInNoYWRvd0soPC1zaGFkb3dG
KShAc2hhZG93SykiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBkaXZKKSJdCi1QQVNTIGRpc3BhdGNo
ZWRFdmVudCgibW91c2VvdXQiKSBpcyBbImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiLCAic2hhZG93
Ryg8LXNoYWRvd0spKEBzaGFkb3dHKSIsICJzaGFkb3dGKDwtc2hhZG93SykoQHNoYWRvd0YpIiwg
InNoYWRvd0YoPC1zaGFkb3dLKShAZGl2RSkiXQotCi1Nb3ZlIGZvY3VzIGZyb20gYSBub2RlIHRv
IGl0cyBzaWJsaW5nIG5vZGUuIEFsbCBub2RlcyBhcmUgb3V0c2lkZSBvZiBzaGFkb3cgYm91bmRh
cnkuCi1Nb3ZpbmcgZm9jdXMgZnJvbSBkaXZCIHRvIGRpdkMKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50
KCJmb2N1c2luIikgaXMgWyJkaXZDKDwtZGl2QikoQGRpdkMpIiwgImRpdkMoPC1kaXZCKShAZGl2
QSkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3Vzb3V0IikgaXMgWyJkaXZCKDwtZGl2Qyko
QGRpdkIpIiwgImRpdkIoPC1kaXZDKShAZGl2QSkiXQotCi1PbGQgZm9jdXNlZCBub2RlIGFuZCBu
ZXcgZm9jdXNlZCBub2RlIGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlcywgY3Jvc3Npbmcgc2hh
ZG93IGJvdW5kYXJpZXMuIE1ha2luZyBzdXJlIHRoYXQgYW4gZXZlbnQgaXMgbm90IGRpc3BhdGNo
ZWQgYmV5b25kIHRoZSBsb3dlc3QgY29tbW9uIGJvdW5kYXJ5LgotTW92aW5nIGZvY3VzIGZyb20g
c2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SCB0byBzaGFkb3dEL3NoYWRvd0svZGl2TAotUEFT
UyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzaW4iKSBpcyBbImRpdkwoPC1zaGFkb3dGKShAZGl2TCki
LCAic2hhZG93Syg8LXNoYWRvd0YpKEBzaGFkb3dLKSIsICJzaGFkb3dLKDwtc2hhZG93RikoQGRp
dkopIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1c291dCIpIGlzIFsiZGl2SCg8LXNoYWRv
d0spKEBkaXZIKSIsICJzaGFkb3dHKDwtc2hhZG93SykoQHNoYWRvd0cpIiwgInNoYWRvd0YoPC1z
aGFkb3dLKShAc2hhZG93RikiLCAic2hhZG93Rig8LXNoYWRvd0spKEBkaXZFKSJdCi0KLU1vdmUg
Zm9jdXMgZnJvbSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxsIG5vZGVzIGFyZSBvdXRz
aWRlIG9mIHNoYWRvdyBib3VuZGFyeS4KLU1vdmluZyBmb2N1cyBmcm9tIGRpdkIgdG8gZGl2Qwot
UEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJkaXZDKDwtZGl2QikoQGRpdkEpKGNh
cHR1cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZDKSJdCi1QQVNTIGRpc3BhdGNoZWRF
dmVudCgiYmx1ciIpIGlzIFsiZGl2Qig8LWRpdkMpKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkIoPC1kaXZDKShAZGl2QikiXQotCi1PbGQgZm9jdXNlZCBub2RlIGFuZCBuZXcgZm9jdXNl
ZCBub2RlIGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlcywgY3Jvc3Npbmcgc2hhZG93IGJvdW5k
YXJpZXMuIE1ha2luZyBzdXJlIHRoYXQgYW4gZXZlbnQgaXMgbm90IGRpc3BhdGNoZWQgYmV5b25k
IHRoZSBsb3dlc3QgY29tbW9uIGJvdW5kYXJ5LgotTW92aW5nIGZvY3VzIGZyb20gc2hhZG93RC9z
aGFkb3dGL3NoYWRvd0cvZGl2SCB0byBzaGFkb3dEL3NoYWRvd0svZGl2TAotUEFTUyBkaXNwYXRj
aGVkRXZlbnQoImZvY3VzIikgaXMgWyJzaGFkb3dLKDwtc2hhZG93RikoQGRpdkopKGNhcHR1cmlu
ZyBwaGFzZSkiLCAiZGl2TCg8LXNoYWRvd0YpKEBkaXZMKSIsICJzaGFkb3dLKDwtc2hhZG93Riko
QHNoYWRvd0spIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJzaGFkb3dGKDwt
c2hhZG93SykoQGRpdkUpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2SCg8LXNoYWRvd0spKEBkaXZI
KSIsICJzaGFkb3dHKDwtc2hhZG93SykoQHNoYWRvd0cpIiwgInNoYWRvd0YoPC1zaGFkb3dLKShA
c2hhZG93RikiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnkt
ZXZlbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwyMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9InNhbmRib3giPjwv
ZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRl
c3RzIHRvIGVuc3VyZSB0aGF0IHNoYWRvdyBET00gYm91bmRhcnkgaXMgbm90IGNyb3NzZWQgZHVy
aW5nIGV2ZW50IHByb3BhZ2F0aW9uLiBDYW4gb25seSBydW4gd2l0aGluIERSVC4iKTsKLQotZnVu
Y3Rpb24gbW92ZU1vdXNlT3ZlcihlbGVtZW50KQotewotICAgIGlmICghd2luZG93LmV2ZW50U2Vu
ZGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2YXIgZGVm
YXVsdFBhZGRpbmdTaXplID0gMjA7Ci0gICAgdmFyIHggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICB2YXIgeTsKLSAgICBpZiAoZWxlbWVudC5oYXND
aGlsZE5vZGVzKCkgfHwgd2luZG93LmludGVybmFscy5zaGFkb3dSb290KGVsZW1lbnQpKQotICAg
ICAgICB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBkZWZhdWx0UGFkZGluZ1NpemU7Ci0gICAgZWxz
ZQotICAgICAgICB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAv
IDI7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci19Ci0KLXZhciBldmVudFJl
Y29yZHMgPSB7fTsKLQotZnVuY3Rpb24gY2xlYXJFdmVudFJlY29yZHMoKQotewotICAgIGV2ZW50
UmVjb3JkcyA9IHt9OwotfQotCi1mdW5jdGlvbiBkaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQot
ewotICAgIHZhciBldmVudHMgPSBldmVudFJlY29yZHNbZXZlbnRUeXBlXTsKLSAgICBpZiAoIWV2
ZW50cykKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIHJldHVybiBldmVudHM7Ci19Ci0KLWZ1bmN0
aW9uIHJlY29yZEV2ZW50KGV2ZW50KQotewotICAgIHZhciBldmVudFR5cGUgPSBldmVudC50eXBl
Ci0gICAgaWYgKCFldmVudFJlY29yZHNbZXZlbnRUeXBlXSkgewotICAgICAgICBldmVudFJlY29y
ZHNbZXZlbnRUeXBlXSA9IFtdCi0gICAgfQotICAgIC8vIFJlY29yZHMgZWFjaCBldmVudCBpbiB0
aGUgZm9sbG93aW5nIGZvcm1hdCBwZXIgZXZlbnQgdHlwZToKLSAgICAvLyAgIGV2ZW50UmVjb3Jk
c1tldmVudFR5cGVdID0gWyd0YXJnZXQuaWQoPC1yZWxhdGVkVGFyZ2V0LmlkKShAY3VycmVudFRh
cmdldC5pZCknLCwsXQotICAgIC8vICAgKiBSZWxhdGVkVGFyZ2V0IGFuZCBjdXJyZW50VGFyZ2V0
IG1heSBiZSBvbWl0dGVkIGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkLgotICAgIC8vIEEgbmV3IGV2
ZW50IGlzIHB1c2hlZCBiYWNrIHRvIHRoZSBhcnJheSBvZiBpdHMgZXZlbnQgdHlwZS4KLSAgICB2
YXIgZXZlbnRTdHJpbmcgPSAnJzsKLSAgICBldmVudFN0cmluZyArPSBldmVudC50YXJnZXQuaWQ7
Ci0gICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQpCi0gICAgICAgIGV2ZW50U3RyaW5nICs9ICco
PC0nICsgZXZlbnQucmVsYXRlZFRhcmdldC5pZCArICcpJzsKLSAgICBpZiAoZXZlbnQuY3VycmVu
dFRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyhAJyArIGV2ZW50LmN1cnJlbnRUYXJn
ZXQuaWQgKyAnKSc7Ci0gICAgaWYgKGV2ZW50LmV2ZW50UGhhc2UgPT0gMSkKLSAgICAgICAgZXZl
bnRTdHJpbmcgKz0gJyhjYXB0dXJpbmcgcGhhc2UpJzsKLSAgICBpZiAoZXZlbnQudGFyZ2V0ICYm
IGV2ZW50LmN1cnJlbnRUYXJnZXQgJiYgZXZlbnQudGFyZ2V0LmlkID09IGV2ZW50LmN1cnJlbnRU
YXJnZXQuaWQpCi0gICAgICAgIHNob3VsZEJlKCJldmVudC5ldmVudFBoYXNlIiwgIjIiLCB0cnVl
KTsKLSAgICBldmVudFJlY29yZHNbZXZlbnRUeXBlXS5wdXNoKGV2ZW50U3RyaW5nKTsKLX0KLQot
ZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQotewotICAgIHBhcmVudC5hcHBlbmRDaGls
ZCgKLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdkEnLCAnc3R5bGUnOiAncGFk
ZGluZy10b3A6IDQwcHgnfSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdkaXZCJywgJ3N0eWxlJzogJ3dpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHgnLCAndGFiaW5k
ZXgnOiAwfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2
QycsICdzdHlsZSc6ICd3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4JywgJ3RhYmluZGV4JzogMH0p
LAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3NoYWRvd0QnLCAn
c3R5bGUnOiAncGFkZGluZy10b3A6IDQwcHgnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnZGl2RScsICdzdHlsZSc6ICdwYWRkaW5nLXRvcDogNDBweCd9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ3NoYWRvd0YnLCAnc3R5bGUnOiAncGFkZGluZy10b3A6IDQwcHgnfSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVT
aGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93RycsICdzdHlsZSc6ICdw
YWRkaW5nLXRvcDogNDBweCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2SCcsICdzdHlsZSc6ICd3aWR0aDogNDBw
eDsgaGVpZ2h0OiA0MHB4JywgJ3RhYmluZGV4JzogMH0pLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdkaXZJJywgJ3N0eWxlJzogJ3dpZHRoOiA0MHB4OyBoZWlnaHQ6IDQw
cHgnLCAndGFiaW5kZXgnOiAwfSkpKSkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdkonLCAnc3R5bGUnOiAncGFkZGluZy10b3A6
IDQwcHgnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdzaGFkb3dLJywgJ3N0eWxlJzogJ3BhZGRpbmctdG9wOiA0MHB4
J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdkwnLCAnc3R5bGUn
OiAnd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweCcsICd0YWJpbmRleCc6IDB9KSkpKSkpKSk7Ci0K
LSAgICB2YXIgaWRzID0gWydkaXZBJywgJ2RpdkInLCAnZGl2QycsCi0gICAgICAgICAgICAgICAn
c2hhZG93RCcsICdzaGFkb3dEL2RpdkUnLCAnc2hhZG93RC9zaGFkb3dGJywgJ3NoYWRvd0Qvc2hh
ZG93Ri9zaGFkb3dHJywKLSAgICAgICAgICAgICAgICdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9k
aXZIJywgJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLAotICAgICAgICAgICAgICAgJ3No
YWRvd0QvZGl2SicsICdzaGFkb3dEL3NoYWRvd0snLCAnc2hhZG93RC9zaGFkb3dLL2RpdkwnXTsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIg
ZWxlbWVudCA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhpZHNbaV0pOwotICAgICAgICBlbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0g
ICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCByZWNvcmRFdmVudCwg
ZmFsc2UpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCByZWNv
cmRFdmVudCwgZmFsc2UpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vz
b3V0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKLSAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCdmb2N1cycsIHJlY29yZEV2ZW50LCB0cnVlKTsgIC8vIGNhcHR1cmluZyBwaGFzZQotICAg
ICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCByZWNvcmRFdmVudCwgdHJ1ZSk7
ICAvLyBjYXB0dXJpbmcgcGhhc2UKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIG1vdmVNb3VzZShvbGRF
bGVtZW50SWQsIG5ld0VsZW1lbnRJZCwgbWVzc2FnZSkKLXsKLSAgICBkZWJ1ZygnXG4nICsgbWVz
c2FnZSArICdcbicgKyAnTW92aW5nIG1vdXNlIGZyb20gJyArIG9sZEVsZW1lbnRJZCArICcgdG8g
JyArIG5ld0VsZW1lbnRJZCk7Ci0gICAgbW92ZU1vdXNlT3ZlcihnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2sob2xkRWxlbWVudElkKSk7Ci0gICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBtb3Zl
TW91c2VPdmVyKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhuZXdFbGVtZW50SWQpKTsKLX0KLQot
ZnVuY3Rpb24gbW92ZUZvY3VzKG9sZEVsZW1lbnRJZCwgbmV3RWxlbWVudElkLCBtZXNzYWdlKQot
ewotICAgIGRlYnVnKCdcbicgKyBtZXNzYWdlICsgJ1xuJyArICdNb3ZpbmcgZm9jdXMgZnJvbSAn
ICsgb2xkRWxlbWVudElkICsgJyB0byAnICsgbmV3RWxlbWVudElkKTsKLSAgICBnZXROb2RlSW5T
aGFkb3dUcmVlU3RhY2sob2xkRWxlbWVudElkKS5mb2N1cygpOwotICAgIGNsZWFyRXZlbnRSZWNv
cmRzKCk7Ci0gICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKG5ld0VsZW1lbnRJZCkuZm9jdXMo
KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBwcmVwYXJlRE9NVHJlZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpKTsKLQotICAgIC8vIFRlc3QgZm9yIG1vdXNl
b3Zlci9tb3VzZW91dCBldmVudHMuCi0gICAgbW92ZU1vdXNlKCdkaXZCJywgJ2RpdkMnLAotICAg
ICAgICAgICAgICAnTW92ZSBtb3VzZSBmcm9tIGEgbm9kZSB0byBpdHMgc2libGluZyBub2RlLiBB
bGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJl
KCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpJywgJ1siZGl2Qyg8LWRpdkIpKEBkaXZDKSIs
ICJkaXZDKDwtZGl2QikoQGRpdkEpIl0nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50
KCJtb3VzZW91dCIpJywgJ1siZGl2Qig8LWRpdkMpKEBkaXZCKSIsICJkaXZCKDwtZGl2QykoQGRp
dkEpIl0nKTsKLQotICAgIG1vdmVNb3VzZSgnZGl2QicsICdkaXZBJywKLSAgICAgICAgICAgICAg
J1RhcmdldCBpcyBhbiBhbmNlc3RvciBvZiByZWxhdGVkVGFyZ2V0LiBBbGwgbm9kZXMgYXJlIG91
dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZl
bnQoIm1vdXNlb3ZlciIpJywgJ1siZGl2QSg8LWRpdkIpKEBkaXZBKSJdJyk7Ci0gICAgc2hvdWxk
QmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKScsICdbImRpdkIoPC1kaXZBKShAZGl2Qiki
LCAiZGl2Qig8LWRpdkEpKEBkaXZBKSJdJyk7Ci0KLSAgICBtb3ZlTW91c2UoJ2RpdkEnLCAnZGl2
QicsCi0gICAgICAgICAgICAgICdSZWxhdGVkVGFyZ2V0IGlzIGFuIGFuY2VzdG9yIG9mIHRhcmdl
dC4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNoYWRvdyBib3VuZGFyeS4nKTsKLSAgICBzaG91
bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScsICdbImRpdkIoPC1kaXZBKShAZGl2
QikiLCAiZGl2Qig8LWRpdkEpKEBkaXZBKSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRF
dmVudCgibW91c2VvdXQiKScsICdbImRpdkEoPC1kaXZCKShAZGl2QSkiXScpOwotCi0gICAgbW92
ZU1vdXNlKCdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRvd0Qvc2hhZG93Ri9z
aGFkb3dHL2RpdkknLAotICAgICAgICAgICAgICAnQm90aCB0YXJnZXQgYW5kIHJlbGF0ZWRUYXJn
ZXQgYXJlIGltbWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUgc2FtZSBzaGFkb3cgcm9vdC4nKTsKLSAg
ICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScsICdbImRpdkkoPC1kaXZI
KShAZGl2SSkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0Iikn
LCAnWyJkaXZIKDwtZGl2SSkoQGRpdkgpIl0nKTsKLQotICAgIG1vdmVNb3VzZSgnc2hhZG93RC9z
aGFkb3dGL3NoYWRvd0cvZGl2SScsICdzaGFkb3dEL2RpdkUnLAotICAgICAgICAgICAgICAnVGFy
Z2V0IGlzIGFuIGFuY2VzdG9yIG9mIHJlbGF0ZWRUYXJnZXQuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rp
c3BhdGNoZWRFdmVudCgibW91c2VvdmVyIiknLCAnWyJkaXZFKDwtc2hhZG93RikoQGRpdkUpIl0n
KTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91dCIpJywgJ1siZGl2SSg8
LWRpdkUpKEBkaXZJKSIsICJzaGFkb3dHKDwtZGl2RSkoQHNoYWRvd0cpIiwgInNoYWRvd0YoPC1k
aXZFKShAc2hhZG93RikiLCAic2hhZG93Rig8LWRpdkUpKEBkaXZFKSJdJyk7Ci0KLSAgICBtb3Zl
TW91c2UoJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLCAnc2hhZG93RC9zaGFkb3dGJywK
LSAgICAgICAgICAgICAgJ1RhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFuIGFuY2VzdG9yIG9mIHJl
bGF0ZWRUYXJnZXQuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdmVy
IiknLCAnW10nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91dCIpJywg
J1siZGl2SSg8LXNoYWRvd0YpKEBkaXZJKSIsICJzaGFkb3dHKDwtc2hhZG93RikoQHNoYWRvd0cp
Il0nKTsKLQotICAgIG1vdmVNb3VzZSgnc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cnLCAnc2hhZG93
RCcsCi0gICAgICAgICAgICAgICdUYXJnZXQgKHNoYWRvdyBob3N0KSBpcyBhbiBhbmNlc3RvciBv
ZiByZWxhdGVkVGFyZ2V0IChzaGFkb3cgaG9zdCkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNo
ZWRFdmVudCgibW91c2VvdmVyIiknLCAnW10nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2
ZW50KCJtb3VzZW91dCIpJywgJ1sic2hhZG93Ryg8LXNoYWRvd0QpKEBzaGFkb3dHKSIsICJzaGFk
b3dGKDwtc2hhZG93RCkoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1zaGFkb3dEKShAZGl2RSkiXScp
OwotCi0gICAgbW92ZU1vdXNlKCdzaGFkb3dEL2RpdkUnLCAnc2hhZG93RC9zaGFkb3dGL3NoYWRv
d0cvZGl2SScsCi0gICAgICAgICAgICAgICdSZWxhdGVkVGFyZ2V0IGlzIGFuY2VzdG9yIG9mIHRh
cmdldC4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScsICdb
ImRpdkkoPC1kaXZFKShAZGl2SSkiLCAic2hhZG93Ryg8LWRpdkUpKEBzaGFkb3dHKSIsICJzaGFk
b3dGKDwtZGl2RSkoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1kaXZFKShAZGl2RSkiXScpOwotICAg
IHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IiknLCAnWyJkaXZFKDwtc2hhZG93
RikoQGRpdkUpIl0nKTsKLQotICAgIG1vdmVNb3VzZSgnc2hhZG93RC9zaGFkb3dGJywgJ3NoYWRv
d0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLAotICAgICAgICAgICAgICAnUmVsYXRlZFRhcmdldCAo
c2hhZG93IGhvc3QpIGlzIGFuY2VzdG9yIG9mIHRhcmdldC4nKTsKLSAgICBzaG91bGRCZSgnZGlz
cGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScsICdbImRpdkkoPC1zaGFkb3dGKShAZGl2SSkiLCAi
c2hhZG93Ryg8LXNoYWRvd0YpKEBzaGFkb3dHKSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNo
ZWRFdmVudCgibW91c2VvdXQiKScsICdbXScpOwotCi0gICAgbW92ZU1vdXNlKCdzaGFkb3dEJywg
J3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHJywKLSAgICAgICAgICAgICAgJ1JlbGF0ZWRUYXJnZXQg
KHNoYWRvdyBob3N0KSBpcyBhbiBhbmNlc3RvciBvZiB0YXJnZXQgKHNoYWRvdyBob3N0KS4nKTsK
LSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScsICdbInNoYWRvd0co
PC1zaGFkb3dEKShAc2hhZG93RykiLCAic2hhZG93Rig8LXNoYWRvd0QpKEBzaGFkb3dGKSIsICJz
aGFkb3dGKDwtc2hhZG93RCkoQGRpdkUpIl0nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2
ZW50KCJtb3VzZW91dCIpJywgJ1tdJyk7Ci0KLSAgICBtb3ZlTW91c2UoJ3NoYWRvd0Qvc2hhZG93
Ri9zaGFkb3dHL2RpdkgnLCAnc2hhZG93RC9zaGFkb3dLL2RpdkwnLAotICAgICAgICAgICAgICAn
VGFyZ2V0IGFuZCByZWxhdGVkVGFyZ2V0IGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlLCBjcm9z
c2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFraW5nIHN1cmUgdGhhdCBldmVudCBpcyBub3QgZGlz
cGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2VzdCBjb21tb24gYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxk
QmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIiknLCAnWyJkaXZMKDwtc2hhZG93RikoQGRp
dkwpIiwgInNoYWRvd0soPC1zaGFkb3dGKShAc2hhZG93SykiLCAic2hhZG93Syg8LXNoYWRvd0Yp
KEBkaXZKKSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKScs
ICdbImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiLCAic2hhZG93Ryg8LXNoYWRvd0spKEBzaGFkb3dH
KSIsICJzaGFkb3dGKDwtc2hhZG93SykoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1zaGFkb3dLKShA
ZGl2RSkiXScpOwotCi0gICAgLy8gVGVzdCBmb3IgZm9jdXNpbi9mb2N1c291dCBldmVudHMuCi0g
ICAgbW92ZUZvY3VzKCdkaXZCJywgJ2RpdkMnLAotICAgICAgICAgICAgICAnTW92ZSBmb2N1cyBm
cm9tIGEgbm9kZSB0byBpdHMgc2libGluZyBub2RlLiBBbGwgbm9kZXMgYXJlIG91dHNpZGUgb2Yg
c2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3Vz
aW4iKScsICdbImRpdkMoPC1kaXZCKShAZGl2QykiLCAiZGl2Qyg8LWRpdkIpKEBkaXZBKSJdJyk7
Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXNvdXQiKScsICdbImRpdkIoPC1k
aXZDKShAZGl2QikiLCAiZGl2Qig8LWRpdkMpKEBkaXZBKSJdJyk7Ci0KLSAgICBtb3ZlRm9jdXMo
J3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkgnLCAnc2hhZG93RC9zaGFkb3dLL2RpdkwnLAot
ICAgICAgICAgICAgICAnT2xkIGZvY3VzZWQgbm9kZSBhbmQgbmV3IGZvY3VzZWQgbm9kZSBleGlz
dCBpbiBzZXBhcmF0ZWQgc3VidHJlZXMsIGNyb3NzaW5nIHNoYWRvdyBib3VuZGFyaWVzLiBNYWtp
bmcgc3VyZSB0aGF0IGFuIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIGJleW9uZCB0aGUgbG93ZXN0
IGNvbW1vbiBib3VuZGFyeS4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1
c2luIiknLCAnWyJkaXZMKDwtc2hhZG93RikoQGRpdkwpIiwgInNoYWRvd0soPC1zaGFkb3dGKShA
c2hhZG93SykiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBkaXZKKSJdJyk7Ci0gICAgc2hvdWxkQmUo
J2Rpc3BhdGNoZWRFdmVudCgiZm9jdXNvdXQiKScsICdbImRpdkgoPC1zaGFkb3dLKShAZGl2SCki
LCAic2hhZG93Ryg8LXNoYWRvd0spKEBzaGFkb3dHKSIsICJzaGFkb3dGKDwtc2hhZG93SykoQHNo
YWRvd0YpIiwgInNoYWRvd0YoPC1zaGFkb3dLKShAZGl2RSkiXScpOwotCi0gICAgLy8gT21pdHRl
ZCB0ZXN0IGNhc2VzIHdoZXJlIGVpdGhlciBhIG9sZEZvY3VzZWROb2RlIG9yIG5ld0ZvY3VzZWRO
b2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBvdGhlci4KLSAgICAvLyBEdWUgdG8gYSBmb2N1cyB0
cmFuc2ZlciBtZWNoYW5pc20gb24gc2hhZG93IGhvc3RzLCBhIGZvY3VzZWQgbm9kZSBzaG91bGQg
YmUgYSBsZWFmIG5vZGUgaW4gZ2VuZXJhbC4KLQotICAgIC8vIFRlc3QgZm9yIGZvY3VzL2JsdXIg
ZXZlbnRzLiBFdmVudCBsaXN0bmVycyBzaG91bGQgYmUgcmVnaXN0ZXJkIG9uIGNhcHR1cmVpbmcg
cGhhc2UuCi0gICAgbW92ZUZvY3VzKCdkaXZCJywgJ2RpdkMnLAotICAgICAgICAgICAgICAnTW92
ZSBmb2N1cyBmcm9tIGEgbm9kZSB0byBpdHMgc2libGluZyBub2RlLiBBbGwgbm9kZXMgYXJlIG91
dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZl
bnQoImZvY3VzIiknLCAnWyJkaXZDKDwtZGl2QikoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAi
ZGl2Qyg8LWRpdkIpKEBkaXZDKSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgi
Ymx1ciIpJywgJ1siZGl2Qig8LWRpdkMpKEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIo
PC1kaXZDKShAZGl2QikiXScpOwotCi0gICAgbW92ZUZvY3VzKCdzaGFkb3dEL3NoYWRvd0Yvc2hh
ZG93Ry9kaXZIJywgJ3NoYWRvd0Qvc2hhZG93Sy9kaXZMJywKLSAgICAgICAgICAgICAgJ09sZCBm
b2N1c2VkIG5vZGUgYW5kIG5ldyBmb2N1c2VkIG5vZGUgZXhpc3QgaW4gc2VwYXJhdGVkIHN1YnRy
ZWVzLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFraW5nIHN1cmUgdGhhdCBhbiBldmVu
dCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2VzdCBjb21tb24gYm91bmRhcnkuJyk7
Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXMiKScsICdbInNoYWRvd0soPC1z
aGFkb3dGKShAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZMKDwtc2hhZG93RikoQGRpdkwp
IiwgInNoYWRvd0soPC1zaGFkb3dGKShAc2hhZG93SykiXScpOwotICAgIHNob3VsZEJlKCdkaXNw
YXRjaGVkRXZlbnQoImJsdXIiKScsICdbInNoYWRvd0YoPC1zaGFkb3dLKShAZGl2RSkoY2FwdHVy
aW5nIHBoYXNlKSIsICJkaXZIKDwtc2hhZG93SykoQGRpdkgpIiwgInNoYWRvd0coPC1zaGFkb3dL
KShAc2hhZG93RykiLCAic2hhZG93Rig8LXNoYWRvd0spKEBzaGFkb3dGKSJdJyk7Ci19Ci0KLXRl
c3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNo
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8
dGl0bGU+U2hhZG93IENvbnRlbnQgRWxlbWVudCBDcmFzaDwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwPlRoaXMgdGVzdCBjb25maXJtcyBhZGRpbmcgYSBjb250ZW50IGVsZW1lbnQgaW50byBh
IHNoYWRvdyByb290IGRvZXMgbm90IGNhdXNlIGNyYXNoLjwvcD4KLQotPGRpdj5QQVNTPGRpdj4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQtY3Jhc2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci0gICAgPHRpdGxlPlNoYWRvdyBDb250ZW50IEVsZW1lbnQgQ3Jhc2g8L3RpdGxlPgotPC9o
ZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgY29uZmlybXMgYWRkaW5nIGEgY29udGVudCBlbGVt
ZW50IGludG8gYSBzaGFkb3cgcm9vdCBkb2VzIG5vdCBjYXVzZSBjcmFzaC48L3A+Ci0KLTxkaXYg
aWQ9J2NvbnRhaW5lcic+RkFJTDwvZGl2PgotCi08c2NyaXB0PgotdmFyIGRpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKLXZhciByb290ID0gZGl2LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLXJvb3QuaW5uZXJIVE1MID0gIjxjb250ZW50IHNlbGVjdD0nc3Bhbic+
UEFTUzwvY29udGVudD4iOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZXZlbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29u
dGVudHMtZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWV2ZW50LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBtb3Zpbmcg
bW91c2UgZnJvbSAnc3VtbWFyeScgdG8gJ2RldGFpbHMnIHNob3VsZCBkaXNwYXRjaCBldmVudHMg
Y29ycmVjdGx5LiBOb3RlIHRoYXQgJ2RldGFpbHMnIGlzIGEgc2hhZG93IGhvc3QgYW5kIGhhcyBh
ICdzdW1tYXJ5JyBlbGVtZW50IGFzIGEgaW1tZWRpYXRlIGNoaWxkIGVsZW1lbnQuIFRoZXJlIGlz
IG5vIHNoYWRvdyByb290IGJldHdlZW4gdGhlbS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLXN1bW1hcnkKLWRldGFpbHMKLQotTW92aW5nIG1vdXNlIGZyb20gc3VtbWFyeSB0byBk
ZXRhaWxzCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIikgaXMgWyJkZXRhaWxzKDwt
c3VtbWFyeSkoQGRldGFpbHMpIiwgImRldGFpbHMoPC1zdW1tYXJ5KShAc2FuZGJveCkiXQotUEFT
UyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJzdW1tYXJ5KDwtZGV0YWlscykoQHN1
bW1hcnkpIiwgInN1bW1hcnkoPC1kZXRhaWxzKShAZGV0YWlscykiLCAic3VtbWFyeSg8LWRldGFp
bHMpKEBzYW5kYm94KSJdCi0KLU1vdmluZyBtb3VzZSBmcm9tIGRldGFpbHMgdG8gc3VtbWFyeQot
UEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpIGlzIFsic3VtbWFyeSg8LWRldGFpbHMp
KEBzdW1tYXJ5KSIsICJzdW1tYXJ5KDwtZGV0YWlscykoQGRldGFpbHMpIiwgInN1bW1hcnkoPC1k
ZXRhaWxzKShAc2FuZGJveCkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMg
WyJkZXRhaWxzKDwtc3VtbWFyeSkoQGRldGFpbHMpIiwgImRldGFpbHMoPC1zdW1tYXJ5KShAc2Fu
ZGJveCkiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZXZl
bnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWNvbnRlbnRzLWV2ZW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw5NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJzYW5kYm94Ij4K
LSAgICA8ZGV0YWlscyBvcGVuIGlkPSJkZXRhaWxzIiBzdHlsZT0iaGVpZ2h0OiAyMDBweCI+Ci0g
ICAgICA8c3VtbWFyeSBpZD0ic3VtbWFyeSI+c3VtbWFyeTwvc3VtbWFyeT4KLSAgICAgIGRldGFp
bHMKLSAgICA8L2RldGFpbHM+Ci08L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBtb3ZpbmcgbW91c2UgZnJv
bSAnc3VtbWFyeScgdG8gJ2RldGFpbHMnIHNob3VsZCBkaXNwYXRjaCBldmVudHMgY29ycmVjdGx5
LiAiCi0gICAgKyAiTm90ZSB0aGF0ICdkZXRhaWxzJyBpcyBhIHNoYWRvdyBob3N0IGFuZCBoYXMg
YSAnc3VtbWFyeScgZWxlbWVudCBhcyBhIGltbWVkaWF0ZSBjaGlsZCBlbGVtZW50LiAiCi0gICAg
KyAiVGhlcmUgaXMgbm8gc2hhZG93IHJvb3QgYmV0d2VlbiB0aGVtLiIpOwotCi1mdW5jdGlvbiBt
b3ZlTW91c2VPdmVyKGVsZW1lbnQpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCi0g
ICAgICAgIHJldHVybjsKLSAgICB2YXIgeCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQu
b2Zmc2V0V2lkdGggLyAyOwotICAgIHZhciB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci19
Ci0KLXZhciBldmVudFJlY29yZHMgPSB7fTsKLQotZnVuY3Rpb24gY2xlYXJFdmVudFJlY29yZHMo
KQotewotICAgIGV2ZW50UmVjb3JkcyA9IHt9OwotfQotCi1mdW5jdGlvbiBkaXNwYXRjaGVkRXZl
bnQoZXZlbnRUeXBlKQotewotICAgIHZhciBldmVudHMgPSBldmVudFJlY29yZHNbZXZlbnRUeXBl
XTsKLSAgICBpZiAoIWV2ZW50cykKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIHJldHVybiBldmVu
dHM7Ci19Ci0KLWZ1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KQotewotICAgIHZhciBldmVudFR5
cGUgPSBldmVudC50eXBlCi0gICAgaWYgKCFldmVudFJlY29yZHNbZXZlbnRUeXBlXSkgewotICAg
ICAgICBldmVudFJlY29yZHNbZXZlbnRUeXBlXSA9IFtdCi0gICAgfQotICAgIC8vIFJlY29yZHMg
ZWFjaCBldmVudCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdCBwZXIgZXZlbnQgdHlwZToKLSAgICAv
LyAgIGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdID0gWyd0YXJnZXQuaWQoPC1yZWxhdGVkVGFyZ2V0
LmlkKShAY3VycmVudFRhcmdldC5pZCknLCwsXQotICAgIC8vICAgKiBSZWxhdGVkVGFyZ2V0IGFu
ZCBjdXJyZW50VGFyZ2V0IG1heSBiZSBvbWl0dGVkIGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkLgot
ICAgIC8vIEEgbmV3IGV2ZW50IGlzIHB1c2hlZCBiYWNrIHRvIHRoZSBhcnJheSBvZiBpdHMgZXZl
bnQgdHlwZS4KLSAgICB2YXIgZXZlbnRTdHJpbmcgPSAnJzsKLSAgICBldmVudFN0cmluZyArPSBl
dmVudC50YXJnZXQuaWQ7Ci0gICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQpCi0gICAgICAgIGV2
ZW50U3RyaW5nICs9ICcoPC0nICsgZXZlbnQucmVsYXRlZFRhcmdldC5pZCArICcpJzsKLSAgICBp
ZiAoZXZlbnQuY3VycmVudFRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyhAJyArIGV2
ZW50LmN1cnJlbnRUYXJnZXQuaWQgKyAnKSc7Ci0gICAgZXZlbnRSZWNvcmRzW2V2ZW50VHlwZV0u
cHVzaChldmVudFN0cmluZyk7Ci19Ci0KLWZ1bmN0aW9uIG1vdmVNb3VzZShvbGRFbGVtZW50SWQs
IG5ld0VsZW1lbnRJZCkKLXsKLSAgICBkZWJ1ZygnXG4nICsgJ01vdmluZyBtb3VzZSBmcm9tICcg
KyBvbGRFbGVtZW50SWQgKyAnIHRvICcgKyBuZXdFbGVtZW50SWQpOwotICAgIG1vdmVNb3VzZU92
ZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob2xkRWxlbWVudElkKSk7Ci0gICAgY2xlYXJFdmVu
dFJlY29yZHMoKTsKLSAgICBtb3ZlTW91c2VPdmVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5l
d0VsZW1lbnRJZCkpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHZhciBpZHMg
PSBbJ3NhbmRib3gnLCAnZGV0YWlscycsICdzdW1tYXJ5J107Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZHNbaV0pOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlb3ZlcicsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcignbW91c2VvdXQnLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgIH0KLQotICAg
IG1vdmVNb3VzZSgnc3VtbWFyeScsICdkZXRhaWxzJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNo
ZWRFdmVudCgibW91c2VvdmVyIiknLCAnWyJkZXRhaWxzKDwtc3VtbWFyeSkoQGRldGFpbHMpIiwg
ImRldGFpbHMoPC1zdW1tYXJ5KShAc2FuZGJveCkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRj
aGVkRXZlbnQoIm1vdXNlb3V0IiknLCAnWyJzdW1tYXJ5KDwtZGV0YWlscykoQHN1bW1hcnkpIiwg
InN1bW1hcnkoPC1kZXRhaWxzKShAZGV0YWlscykiLCAic3VtbWFyeSg8LWRldGFpbHMpKEBzYW5k
Ym94KSJdJyk7Ci0KLSAgICBtb3ZlTW91c2UoJ2RldGFpbHMnLCAnc3VtbWFyeScpOwotICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpJywgJ1sic3VtbWFyeSg8LWRldGFp
bHMpKEBzdW1tYXJ5KSIsICJzdW1tYXJ5KDwtZGV0YWlscykoQGRldGFpbHMpIiwgInN1bW1hcnko
PC1kZXRhaWxzKShAc2FuZGJveCkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQo
Im1vdXNlb3V0IiknLCAnWyJkZXRhaWxzKDwtc3VtbWFyeSkoQGRldGFpbHMpIiwgImRldGFpbHMo
PC1zdW1tYXJ5KShAc2FuZGJveCkiXScpOwotfQotCi10ZXN0KCk7Ci08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudHMtZmFsbGJhY2stZHluYW1pYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1keW5hbWlj
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1keW5hbWljLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi10ZXN0QXBwZW5kRmFsbGJhY2sKLVBBU1MKLXRl
c3RBcHBlbmRGYWxsYmFja0RlZXAKLVBBU1MKLXRlc3RSZW1vdmVGYWxsYmFjawotUEFTUwotdGVz
dFJlbW92ZUZhbGxiYWNrRGVlcAotUEFTUwotdGVzdFJlbW92ZTEKLVBBU1MKLXRlc3RSZW1vdmUy
Ci1QQVNTCi10ZXN0UmVtb3ZlMwotUEFTUwotdGVzdFJlcGxhY2VGYWxsYmFjawotUEFTUwotdGVz
dEZhbGxiYWNrQ29udGVudENoYW5nZWQKLVBBU1MKLXRlc3RDb21wbGV4QXBwZW5kCi1QQVNTCi10
ZXN0Q29tcGxleFJlbW92ZQotUEFTUwotdGVzdENvbXBsZXhSZXBsYWNlCi1QQVNTCi10ZXN0Q29u
dGVudEluQ29udGVudAotUEFTUwotdGVzdENvbnRlbnRJbkNvbnRlbnRGYWxsYmFjawotUEFTUwot
dGVzdENvbnRlbnRJbkNvbnRlbnRGYWxsYmFja0RpcmVjdAotUEFTUwotVEVTVCBDT01QTEVURUQK
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxs
YmFjay1keW5hbWljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1keW5hbWljLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJh
Y2stZHluYW1pYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5MSArMCwwIEBACi0gPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25p
bmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBw
b3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLS5zcGFuIHsKLSAgICBkaXNwbGF5OiBib3hlZC1pbmxp
bmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0gICAgYm9yZGVyOiBzb2xpZDsKLX0KLTwvc3R5bGU+Ci08
c2NyaXB0PgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJcbiIpOwotfQotCi1mdW5j
dGlvbiByZW1vdmVBbGxDaGlsZHJlbihlbGVtKSB7Ci0gICAgd2hpbGUgKGVsZW0uZmlyc3RDaGls
ZCkKLSAgICAgICAgZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hpbGQpOwotfQotCi1mdW5j
dGlvbiBjbGVhblVwKCkgewotICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykpOwotICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwotfQotCi1mdW5jdGlvbiBy
ZW1vdmVDb250YWluZXJMaW5lcyh0ZXh0KSB7Ci0gICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgn
XG4nKTsKLSAgICBsaW5lcy5zcGxpY2UoMCwgMik7Ci0gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xu
Jyk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrKCkgewotICAgIHZhciByZWZDb250YWluZXJSZW5kZXJU
cmVlID0gaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwotICAgIHZhciByZWZSZW5kZXJUcmVlID0gcmVt
b3ZlQ29udGFpbmVyTGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7Ci0KLSAgICB2YXIgdGFy
Z2V0Q29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4
dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpKTsKLSAgICB2YXIg
dGFyZ2V0UmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRhcmdldENvbnRhaW5lclJl
bmRlclRyZWUpOwotCi0gICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0gcmVmUmVuZGVyVHJlZSkK
LSAgICAgICAgbG9nKCJQQVNTIik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGxvZygiRkFJTCIpOwot
ICAgICAgICBsb2coIkV4cGVjdGVkOiAiKTsKLSAgICAgICAgbG9nKHJlZlJlbmRlclRyZWUpOwot
ICAgICAgICBsb2coIkFjdHVhbDogIik7Ci0gICAgICAgIGxvZyh0YXJnZXRSZW5kZXJUcmVlKTsK
LSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0ZXh0KSB7Ci0gICAgdmFy
IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgc3Bhbi5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcmV0dXJuIHNwYW47Ci19
Ci0KLWZ1bmN0aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkgewotICAgIHZhciByb290
ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLQotICAgIHZhciBjb250ZW50
ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgY29udGVudC5zZXRBdHRy
aWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7Ci0gICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoIkZBTExCQUNLIikpOwotCi0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29u
dGVudCk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIp
KTsKLX0KLQotZnVuY3Rpb24gYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQsIHNlbGVjdCkgewotICAg
IHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLQotICAgIHZh
ciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICB7Ci0gICAgICAg
IHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgICAg
IGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOwotICAgICAgICBjb250ZW50
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7Ci0KLSAgICAgICAg
Y2hpbGQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntJTk5FUjogIikpOwot
ICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICAgICAgY2hpbGQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7Ci0gICAgfQotCi0gICAgcm9vdC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikpOwotICAgIHJv
b3QuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIn0iKSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBcHBlbmRGYWxsYmFjayhjYWxs
SWZEb25lKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+Y29udGVudDwvc3Bhbj4iOwotCi0gICAg
YXBwZW5kU2hhZG93KHRhcmdldCwgIiNhcHBlbmQiKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZh
ciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdhcHBl
bmQnPmFwcGVuZGVkPC9zcGFuPiI7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PntTSEFET1c6IDxzcGFuPmFw
cGVuZGVkPC9zcGFuPn08L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAg
ICB9OwotICAgIH0pKHRhcmdldCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDAp
OwotfQotCi1mdW5jdGlvbiB0ZXN0QXBwZW5kRmFsbGJhY2tEZWVwKGNhbGxJZkRvbmUpIHsKLSAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0
LmlubmVySFRNTCA9ICI8c3Bhbj5jb250ZW50PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3dE
ZWVwKHRhcmdldCwgIiNhcHBlbmQtZGVlcCIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYg
PSAoZnVuY3Rpb24odGFyZ2V0LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J2FwcGVuZC1k
ZWVwJz5hcHBlbmRlZDwvc3Bhbj4iOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj57U0hBRE9XOiA8c3Bhbj57
SU5ORVI6IDxzcGFuPmFwcGVuZGVkPC9zcGFuPn08L3NwYW4+fTwvZGl2PiI7Ci0gICAgICAgICAg
ICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkodGFyZ2V0LCBjYWxsSWZEb25lKTsK
LQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZW1vdmVGYWxsYmFj
ayhjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3JlbW92ZSc+Y29udGVu
dDwvc3Bhbj4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNyZW1vdmUiKTsKLQotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQo
dGFyZ2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgY2FsbElmRG9uZSkgewot
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0YXJnZXQuaW5uZXJIVE1M
ID0gIjxzcGFuPmNvbnRlbnQ8L3NwYW4+IgotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj57U0hBRE9XOiA8c3Bh
bj5GQUxMQkFDSzwvc3Bhbj59PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAg
ICAgICAgfTsKLSAgICB9KSh0YXJnZXQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChm
LCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZUZhbGxiYWNrRGVlcChjYWxsSWZEb25lKSB7
Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRh
cmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3JlbW92ZS1kZWVwJz5jb250ZW50PC9zcGFuPiI7
Ci0KLSAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgIiNyZW1vdmUtZGVlcCIpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0
YXJnZXQpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBjYWxsSWZEb25lKSB7Ci0g
ICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRhcmdldC5pbm5lckhUTUwg
PSAiPHNwYW4+Y29udGVudDwvc3Bhbj4iCi0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PntTSEFET1c6IDxzcGFu
PntJTk5FUjogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+fTwvc3Bhbj59PC9kaXY+IjsKLSAgICAgICAg
ICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KSh0YXJnZXQsIGNhbGxJZkRvbmUp
OwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZTEoY2Fs
bElmRG9uZSkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdyZW1vdmUxLTEnPmNvbnRlbnQg
MTwvc3Bhbj48c3BhbiBpZD0ncmVtb3ZlMS0yJz5jb250ZW50IDI8L3NwYW4+IjsKLSAgICBhcHBl
bmRTaGFkb3codGFyZ2V0LCAic3BhbiIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYgPSAo
ZnVuY3Rpb24odGFyZ2V0LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgIHRhcmdldC5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVtb3ZlMS0xJykpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4
cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj57U0hBRE9XOiA8c3Bhbj5jb250ZW50
IDI8L3NwYW4+fTwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07
Ci0gICAgfSkodGFyZ2V0LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3RSZW1vdmUyKGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8
c3BhbiBpZD0ndGVzdHJlbW92ZTItMSc+Y29udGVudCAxPC9zcGFuPjxzcGFuIGlkPSd0ZXN0cmVt
b3ZlMi0yJz5jb250ZW50IDI8L3NwYW4+IjsKLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAic3Bh
biIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5h
cHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBjYWxs
SWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRhcmdl
dC5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdHJlbW92ZTItMicpKTsK
LSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJyku
aW5uZXJIVE1MID0gIjxkaXY+e1NIQURPVzogPHNwYW4+Y29udGVudCAxPC9zcGFuPn08L2Rpdj4i
OwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHRhcmdldCwg
Y2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0
UmVtb3ZlMyhjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3Rlc3RyZW1v
dmUzLTEnPmNvbnRlbnQgMTwvc3Bhbj48c3BhbiBpZD0ndGVzdHJlbW92ZTMtMic+Y29udGVudCAy
PC9zcGFuPiI7Ci0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgInNwYW4iKTsKLQotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgY2FsbElmRG9uZSkgewotICAgICAg
ICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0YXJnZXQucmVtb3ZlQ2hpbGQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RyZW1vdmUzLTEnKSk7Ci0gICAgICAgICAgICB0YXJn
ZXQucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RyZW1vdmUzLTInKSk7
Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicp
LmlubmVySFRNTCA9ICI8ZGl2PntTSEFET1c6IDxzcGFuPkZBTExCQUNLPC9zcGFuPn08L2Rpdj4i
OwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHRhcmdldCwg
Y2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0
UmVwbGFjZUZhbGxiYWNrKGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0n
dG8tcmVwbGFjZSc+Y29udGVudDwvc3Bhbj4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwg
IiN0by1yZXBsYWNlIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNv
bnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbih0
YXJnZXQsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0ndG8tcmVwbGFjZSc+cmVwbGFjZWQ8
L3NwYW4+IjsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29u
dGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+e1NIQURPVzogPHNwYW4+cmVwbGFjZWQ8L3NwYW4+
fTwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSko
dGFyZ2V0LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RGYWxsYmFja0NvbnRlbnRDaGFuZ2VkKGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmlubmVySFRN
TCA9ICI8c3Bhbj5jb250ZW50PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAi
I25vbi1lbGVtZW50Iik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNv
bnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbih0
YXJnZXQsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnYXBwZW5kZWQgY29u
dGVudCcpKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29u
dGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+e1NIQURPVzogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+
fTwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSko
dGFyZ2V0LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RDb21wbGV4QXBwZW5kKGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgJyNj
b21wbGV4LTEnKTsKLQotICAgIHZhciBzZWxlY3RDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc3BhbicpOwotICAgIHNlbGVjdENvbnRlbnQuc2V0QXR0cmlidXRlKCdpZCcsICdjb21w
bGV4LTEnKTsKLSAgICBhcHBlbmRTaGFkb3coc2VsZWN0Q29udGVudCwgJ3NwYW4nKTsKLQotICAg
IHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNU
RURdJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChzZWxlY3RDb250ZW50KTsKLSAgICB0YXJn
ZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScp
KTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgc2VsZWN0
Q29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VM
RUNURUQnKSk7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNv
bnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICAgICAgICAgIjxkaXY+e1NIQURPVzogPHNw
YW4+e1NIQURPVzogPHNwYW4+U0VMRUNURUQ8L3NwYW4+fTwvc3Bhbj59PC9kaXY+IjsKLSAgICAg
ICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KSh0YXJnZXQsIHNlbGVjdENv
bnRlbnQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rp
b24gdGVzdENvbXBsZXhSZW1vdmUoY2FsbElmRG9uZSkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAnI2Nv
bXBsZXgtMicpOwotCi0gICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJyk7Ci0gICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2NvbXBs
ZXgtMicpOwotICAgIHsKLSAgICAgICAgc2VsZWN0Q29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoJ1NFTEVDVEVEJykpOwotICAgIH0KLSAgICBhcHBlbmRTaGFkb3coc2VsZWN0
Q29udGVudCwgJ3NwYW4nKTsKLQotICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChz
ZWxlY3RDb250ZW50KTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0g
KGZ1bmN0aW9uKHRhcmdldCwgc2VsZWN0Q29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZW1vdmVBbGxDaGlsZHJlbihzZWxlY3RD
b250ZW50KTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29u
dGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bh
bj57U0hBRE9XOiA8c3Bhbj5GQUxMQkFDSzwvc3Bhbj59PC9zcGFuPn08L2Rpdj4iOwotICAgICAg
ICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHRhcmdldCwgc2VsZWN0Q29u
dGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlv
biB0ZXN0Q29tcGxleFJlcGxhY2UoY2FsbElmRG9uZSkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAnI2Nv
bXBsZXgtMycpOwotCi0gICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzcGFuJyk7Ci0gICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2NvbXBs
ZXgtMycpOwotICAgIGFwcGVuZFNoYWRvdyhzZWxlY3RDb250ZW50LCAnc3BhbicpOwotCi0gICAg
dGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RF
RF0nKSk7Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQpOwotICAgIHRhcmdl
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykp
OwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBl
bmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBzZWxlY3RD
b250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHJlbW92ZUFsbENoaWxkcmVuKHNlbGVjdENvbnRlbnQpOwotICAgICAgICAgICAgc2Vs
ZWN0Q29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1JFUExBQ0VEJykpOwot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5p
bm5lckhUTUwgPQotICAgICAgICAgICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPntTSEFET1c6
IDxzcGFuPlJFUExBQ0VEPC9zcGFuPn08L3NwYW4+fTwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxs
SWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkodGFyZ2V0LCBzZWxlY3RDb250ZW50LCBjYWxs
SWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb250
ZW50SW5Db250ZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxj
b250ZW50PjxzcGFuPkNPTlRFTlQgMiBGQUxMQkFDSzwvc3Bhbj48L2NvbnRlbnQ+fTwvZGl2PiI7
Ci0KLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
dGFyZ2V0LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnUzEnKSk7Ci0gICAgdGFyZ2V0
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnUzInKSk7Ci0KLSAgICB2YXIgcm9vdCA9
IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7Ci0gICAgdmFyIGNvbnRlbnQxID0g
aW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgY29udGVudDEuc2V0QXR0cmli
dXRlKCdzZWxlY3QnLCAnZGl2Jyk7Ci0KLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50
MSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsK
LQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5k
Q2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgY29udGVudDEs
IGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
dmFyIGNvbnRlbnQyID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgICAg
ICAgICBjb250ZW50Mi5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJyk7Ci0gICAgICAgICAg
ICBjb250ZW50Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0NPTlRFTlQgMiBGQUxM
QkFDSycpKTsKLSAgICAgICAgICAgIGNvbnRlbnQxLmFwcGVuZENoaWxkKGNvbnRlbnQyKTsKLSAg
ICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KSh0YXJnZXQsIGNvbnRl
bnQxLCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RDb250ZW50SW5Db250ZW50RmFsbGJhY2soY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAg
IjxkaXY+e1NIQURPVzogPGNvbnRlbnQ+PHNwYW4+Q09OVEVOVCAyIEZBTExCQUNLPC9zcGFuPjwv
Y29udGVudD59PC9kaXY+IjsKLQotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdT
MScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTMicpKTsK
LQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLSAg
ICB2YXIgY29udGVudDEgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICBj
b250ZW50MS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLQotICAgIHJvb3QuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsKLSAgICByb290LmFw
cGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJ9IikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1j
b250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24o
dGFyZ2V0LCBjb250ZW50MSwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICB2YXIgY29udGVudDIgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVs
ZW1lbnQoKTsKLSAgICAgICAgICAgIGNvbnRlbnQyLnNldEF0dHJpYnV0ZSgnc2VsZWN0JywgJ2Rp
dicpOwotICAgICAgICAgICAgY29udGVudDIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCdDT05URU5UIDIgRkFMTEJBQ0snKSk7Ci0gICAgICAgICAgICBjb250ZW50MS5hcHBlbmRDaGls
ZChjb250ZW50Mik7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAg
fSkodGFyZ2V0LCBjb250ZW50MSwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDAp
OwotfQotCi1mdW5jdGlvbiB0ZXN0Q29udGVudEluQ29udGVudEZhbGxiYWNrRGlyZWN0KGNhbGxJ
ZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicp
LmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2Pjxjb250ZW50PjxzcGFuPkNPTlRFTlQgMiBGQUxM
QkFDSzwvc3Bhbj48L2NvbnRlbnQ+PC9kaXY+IjsKLQotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCdTMScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdTMicpKTsKLQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qo
dGFyZ2V0KTsKLSAgICB2YXIgY29udGVudDEgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1l
bnQoKTsKLSAgICBjb250ZW50MS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLSAgICBy
b290LmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0g
KGZ1bmN0aW9uKHRhcmdldCwgY29udGVudDEsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGNvbnRlbnQyID0gaW50ZXJuYWxzLmNyZWF0
ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgICAgICAgICBjb250ZW50Mi5zZXRBdHRyaWJ1dGUoJ3Nl
bGVjdCcsICdkaXYnKTsKLSAgICAgICAgICAgIGNvbnRlbnQyLmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgnQ09OVEVOVCAyIEZBTExCQUNLJykpOwotICAgICAgICAgICAgY29udGVudDEu
YXBwZW5kQ2hpbGQoY29udGVudDIpOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAg
ICB9OwotICAgIH0pKHRhcmdldCwgY29udGVudDEsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGlt
ZW91dChmLCAwKTsKLX0KLQotdmFyIHRlc3RGdW5jcyA9IFsKLSAgICB0ZXN0QXBwZW5kRmFsbGJh
Y2ssCi0gICAgdGVzdEFwcGVuZEZhbGxiYWNrRGVlcCwKLSAgICB0ZXN0UmVtb3ZlRmFsbGJhY2ss
Ci0gICAgdGVzdFJlbW92ZUZhbGxiYWNrRGVlcCwKLSAgICB0ZXN0UmVtb3ZlMSwKLSAgICB0ZXN0
UmVtb3ZlMiwKLSAgICB0ZXN0UmVtb3ZlMywKLSAgICB0ZXN0UmVwbGFjZUZhbGxiYWNrLAotICAg
IHRlc3RGYWxsYmFja0NvbnRlbnRDaGFuZ2VkLAotICAgIHRlc3RDb21wbGV4QXBwZW5kLAotICAg
IHRlc3RDb21wbGV4UmVtb3ZlLAotICAgIHRlc3RDb21wbGV4UmVwbGFjZSwKLSAgICB0ZXN0Q29u
dGVudEluQ29udGVudCwKLSAgICB0ZXN0Q29udGVudEluQ29udGVudEZhbGxiYWNrLAotICAgIHRl
c3RDb250ZW50SW5Db250ZW50RmFsbGJhY2tEaXJlY3QKLV07Ci0KLWZ1bmN0aW9uIGRvVGVzdElm
TGVmdCgpIHsKLSAgICB2YXIgdGVzdCA9IHRlc3RGdW5jcy5zaGlmdCgpOwotICAgIGlmICh0ZXN0
ID09IG51bGwpCi0gICAgICAgIHJldHVybiBkb25lVGVzdCgpOwotCi0gICAgdmFyIGNhbGxJZkRv
bmUgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIGNoZWNrKCk7Ci0gICAgICAgICAgICBjbGVhblVwKCk7Ci0gICAgICAgICAgICBkb1Rl
c3RJZkxlZnQoKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgfTsKLQotICAgIGxvZyh0ZXN0Lm5hbWUp
OwotICAgIHRlc3QoY2FsbElmRG9uZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvbmVUZXN0KCkgewotICAg
IGxvZygiVEVTVCBDT01QTEVURUQiKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0K
LQotZnVuY3Rpb24gZG9UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgfQotCi0gICAgY2xlYW5VcCgpOwotICAgIGRvVGVzdElmTGVmdCgpOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KLQotPGRpdiBp
ZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08ZGl2IGlkPSJl
eHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNr
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTQgKzAsMCBAQAotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwot
UEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxs
YmFjay5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzc4
ICswLDAgQEAKLSA8IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0vKiBy
ZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KLS5j
b250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLnNwYW4gewotICAgIGRp
c3BsYXk6IGJveGVkLWlubGluZTsKLSAgICBtYXJnaW46IDJweDsKLSAgICBib3JkZXI6IHNvbGlk
OwotfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9IChtZXNzYWdlICsg
IlxuIik7Ci19Ci0KLWZ1bmN0aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVsZW0pIHsKLSAgICB3aGls
ZSAoZWxlbS5maXJzdENoaWxkKQotICAgICAgICBlbGVtLnJlbW92ZUNoaWxkKGVsZW0uZmlyc3RD
aGlsZCk7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuVXAoKSB7Ci0gICAgcmVtb3ZlQWxsQ2hpbGRyZW4o
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKSk7Ci0gICAgcmVtb3Zl
QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKSk7
Ci19Ci0KLWZ1bmN0aW9uIHJlbW92ZUNvbnRhaW5lckxpbmVzKHRleHQpIHsKLSAgICB2YXIgbGlu
ZXMgPSB0ZXh0LnNwbGl0KCdcbicpOwotICAgIGxpbmVzLnNwbGljZSgwLCAyKTsKLSAgICByZXR1
cm4gbGluZXMuam9pbignXG4nKTsKLX0KLQotZnVuY3Rpb24gY2hlY2soKSB7Ci0gICAgdmFyIHJl
ZkNvbnRhaW5lclJlbmRlclRyZWUgPSBpbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKSk7Ci0gICAgdmFyIHJl
ZlJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyhyZWZDb250YWluZXJSZW5kZXJUcmVl
KTsKLQotICAgIHZhciB0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJuYWxzLmVsZW1l
bnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFp
bmVyJykpOwotICAgIHZhciB0YXJnZXRSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMo
dGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSk7Ci0KLSAgICBpZiAodGFyZ2V0UmVuZGVyVHJlZSA9
PSByZWZSZW5kZXJUcmVlKQotICAgICAgICBsb2coIlBBU1MiKTsKLSAgICBlbHNlIHsKLSAgICAg
ICAgbG9nKCJGQUlMIik7Ci0gICAgICAgIGxvZygiRXhwZWN0ZWQ6ICIpOwotICAgICAgICBsb2co
cmVmUmVuZGVyVHJlZSk7Ci0gICAgICAgIGxvZygiQWN0dWFsOiAiKTsKLSAgICAgICAgbG9nKHRh
cmdldFJlbmRlclRyZWUpOwotICAgIH0KLQotfQotCi1mdW5jdGlvbiBjcmVhdGVTcGFuV2l0aFRl
eHQodGV4dCkgewotICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bhbicp
OwotICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOwot
ICAgIHJldHVybiBzcGFuOwotfQotCi1mdW5jdGlvbiBhcHBlbmRTaGFkb3codGFyZ2V0LCBzZWxl
Y3QpIHsKLSAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7
Ci0KLSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpOwot
ICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOwotICAgIGNvbnRlbnQu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJGQUxMQkFDSyIpKTsKLQotICAgIHJvb3Qu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsKLSAgICBy
b290LmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIn0iKSk7Ci19Ci0KLWZ1bmN0aW9uIGFwcGVuZFNoYWRvd0RlZXAodGFy
Z2V0LCBzZWxlY3QpIHsKLSAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290
KHRhcmdldCk7Ci0KLSAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7Ci0gICAgewotICAgICAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50
RWxlbWVudCgpOwotICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0
KTsKLSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExC
QUNLIikpOwotCi0gICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJ7SU5ORVI6ICIpKTsKLSAgICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0g
ICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwot
ICAgIH0KLQotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntT
SEFET1c6ICIpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNoaWxkKTsKLSAgICByb290LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotfQotCi1mdW5jdGlvbiB0ZXN0
RmFsbGJhY2soKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+U0VMRUNURUQ8L3NwYW4+IjsKLQot
ICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjbm9uLWVsZW1lbnQiKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRN
TCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPkZBTExCQUNLPC9zcGFuPn08L2Rpdj4i
OwotfQotCi1mdW5jdGlvbiB0ZXN0RmFsbGJhY2tEZWVwKCkgewotICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxz
cGFuPlNFTEVDVEVEPC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgIiNu
b24tZWxlbWVudCIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250
YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+e1NIQURPVzog
PHNwYW4+e0lOTkVSOiA8c3Bhbj5GQUxMQkFDSzwvc3Bhbj59PC9zcGFuPn08L2Rpdj4iOwotfQot
Ci1mdW5jdGlvbiB0ZXN0Tm9uRmFsbGJhY2tXaXRoTGlnaHRDaGlsZHJlbigpIHsKLSAgICB2YXIg
dGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmlubmVy
SFRNTCA9ICI8c3BhbiBpZD0nc2VsZWN0ZWQtMSc+U0VMRUNURUQ8L3NwYW4+IjsKLQotICAgIGFw
cGVuZFNoYWRvdyh0YXJnZXQsICIjc2VsZWN0ZWQtMSIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAg
ICAgICAgIjxkaXY+e1NIQURPVzogPHNwYW4+U0VMRUNURUQ8L3NwYW4+fTwvZGl2PiI7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3ROb25GYWxsYmFja0RlZXBXaXRoTGlnaHRDaGlsZHJlbigpIHsKLSAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0Lmlu
bmVySFRNTCA9ICI8c3BhbiBpZD0nc2VsZWN0ZWQtMic+U0VMRUNURUQ8L3NwYW4+IjsKLQotICAg
IGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCAiI3NlbGVjdGVkLTIiKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRN
TCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPntJTk5FUjogPHNwYW4+U0VMRUNURUQ8
L3NwYW4+fTwvc3Bhbj59PC9kaXY+IjsKLX0KLQotZnVuY3Rpb24gdGVzdENvbXBsZXhGYWxsYmFj
aygpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0g
ICAgYXBwZW5kU2hhZG93KHRhcmdldCwgJyNjb21wbGV4LTEnKTsKLQotICAgIHZhciBzZWxlY3RD
b250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHNlbGVjdENvbnRl
bnQuc2V0QXR0cmlidXRlKCdpZCcsICdjb21wbGV4LTEnKTsKLSAgICB7Ci0gICAgICAgIHNlbGVj
dENvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTRUxFQ1RFRCcpKTsKLSAg
ICB9Ci0gICAgYXBwZW5kU2hhZG93KHNlbGVjdENvbnRlbnQsICdzcGFuJyk7Ci0KLSAgICB0YXJn
ZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScp
KTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoc2VsZWN0Q29udGVudCk7Ci0gICAgdGFyZ2V0LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RFRF0nKSk7Ci0K
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENo
aWxkKHRhcmdldCk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWlu
ZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj57U0hBRE9XOiA8
c3Bhbj5TRUxFQ1RFRDwvc3Bhbj59PC9zcGFuPn08L2Rpdj4iOwotfQotCi1mdW5jdGlvbiB0ZXN0
Q29tcGxleEZhbGxiYWNrRGVlcCgpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQsICcjY29tcGxleC0y
Jyk7Ci0KLSAgICB2YXIgc2VsZWN0Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKTsKLSAgICBzZWxlY3RDb250ZW50LnNldEF0dHJpYnV0ZSgnaWQnLCAnY29tcGxleC0yJyk7
Ci0gICAgewotICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnU0VMRUNURUQnKSk7Ci0gICAgfQotICAgIGFwcGVuZFNoYWRvd0RlZXAoc2VsZWN0Q29u
dGVudCwgJ3NwYW4nKTsKLQotICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChzZWxl
Y3RDb250ZW50KTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdh
Y3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2
PntTSEFET1c6IDxzcGFuPntJTk5FUjogPHNwYW4+e1NIQURPVzogPHNwYW4+e0lOTkVSOiA8c3Bh
bj5TRUxFQ1RFRDwvc3Bhbj59PC9zcGFuPn08L3NwYW4+fTwvc3Bhbj59PC9zcGFuPjwvZGl2PiI7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb21wbGV4RmFsbGJhY2tBZ2FpbigpIHsKLSAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgYXBwZW5kU2hhZG93KHRh
cmdldCwgJyNjb21wbGV4LTMnKTsKLQotICAgIHZhciBzZWxlY3RDb250ZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHNlbGVjdENvbnRlbnQuc2V0QXR0cmlidXRlKCdp
ZCcsICdjb21wbGV4LTMnKTsKLSAgICB7Ci0gICAgICAgIHNlbGVjdENvbnRlbnQuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTRUxFQ1RFRCcpKTsKLSAgICB9Ci0gICAgYXBwZW5kU2hh
ZG93KHNlbGVjdENvbnRlbnQsICcjbm9uLWVsZW1lbnQnKTsKLQotICAgIHRhcmdldC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOwotICAgIHRh
cmdldC5hcHBlbmRDaGlsZChzZWxlY3RDb250ZW50KTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKLQotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVy
SFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPntTSEFET1c6IDxzcGFuPkZBTExC
QUNLPC9zcGFuPn08L3NwYW4+fTwvc3Bhbj48L2Rpdj4iOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29t
cGxleEZhbGxiYWNrRGVlcEFnYWluKCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgJyNjb21wbGV4
LTQnKTsKLQotICAgIHZhciBzZWxlY3RDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c3BhbicpOwotICAgIHNlbGVjdENvbnRlbnQuc2V0QXR0cmlidXRlKCdpZCcsICdjb21wbGV4LTQn
KTsKLSAgICB7Ci0gICAgICAgIHNlbGVjdENvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCdTRUxFQ1RFRCcpKTsKLSAgICB9Ci0gICAgYXBwZW5kU2hhZG93RGVlcChzZWxlY3RD
b250ZW50LCAnI25vbi1lbGVtZW50Jyk7Ci0KLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKLSAgICB0YXJnZXQuYXBwZW5k
Q2hpbGQoc2VsZWN0Q29udGVudCk7Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RFRF0nKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAg
ICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj57SU5ORVI6IDxzcGFuPntTSEFET1c6IDxzcGFuPntJ
Tk5FUjogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+fTwvc3Bhbj59PC9zcGFuPn08L3NwYW4+fTwvc3Bh
bj48L2Rpdj4iOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29udGVudGtXaXRoRGlzcGxheU5vbmUoKSB7
Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAg
dmFyIHNwYW4xID0gY3JlYXRlU3BhbldpdGhUZXh0KCdOT1QgUkVOREVSRUQnKTsKLSAgICBzcGFu
MS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgIHZhciBzcGFuMiA9IGNyZWF0ZVNwYW5XaXRo
VGV4dCgnTk9UIFJFTkRFUkVEJyk7Ci0gICAgc3BhbjIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK
LSAgICB2YXIgc3BhbjMgPSBjcmVhdGVTcGFuV2l0aFRleHQoJ05PVCBSRU5ERVJFRCcpOwotICAg
IHNwYW4zLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0KLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQo
c3BhbjEpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1MxJykp
OwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChzcGFuMik7Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnUzInKSk7Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNwYW4z
KTsKLQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsK
LSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpOwotICAg
IGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnc3BhbicpOwotICAgIGNvbnRlbnQuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdGQUxMQkFDSycpKTsKLQotICAgIHZhciBzID0g
Y3JlYXRlU3BhbldpdGhUZXh0KCdOT1QgUkVOREVSRUQnKTsKLSAgICBzLnN0eWxlLmRpc3BsYXkg
PSAnbm9uZSc7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChzKTsKLSAgICByb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRD
aGlsZChjb250ZW50KTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJ9IikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWlu
ZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+e1NIQURPVzogPHNw
YW4+UzE8L3NwYW4+PHNwYW4+UzI8L3NwYW4+fTwvZGl2PiI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RD
b250ZW50SW5Db250ZW50KCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdT
MScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTMicpKTsK
LQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLSAg
ICB2YXIgY29udGVudDIgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICBj
b250ZW50Mi5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJyk7Ci0gICAgY29udGVudDIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdDT05URU5UIDIgRkFMTEJBQ0snKSk7Ci0KLSAg
ICB2YXIgY29udGVudDEgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICBj
b250ZW50MS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLSAgICBjb250ZW50MS5hcHBl
bmRDaGlsZChjb250ZW50Mik7Ci0KLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50MSk7
Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKLQot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hp
bGQodGFyZ2V0KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5l
cicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxjb250ZW50PjxzcGFuPkNP
TlRFTlQgMiBGQUxMQkFDSzwvc3Bhbj48L2NvbnRlbnQ+fTwvZGl2PiI7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RDb250ZW50SW5Db250ZW50RmFsbGJhY2soKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoJ1MxJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0
aFRleHQoJ1MyJykpOwotCi0gICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9v
dCh0YXJnZXQpOwotICAgIHZhciBjb250ZW50MiA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxl
bWVudCgpOwotICAgIGNvbnRlbnQyLnNldEF0dHJpYnV0ZSgnc2VsZWN0JywgJ2RpdicpOwotICAg
IGNvbnRlbnQyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQ09OVEVOVCAyIEZBTExC
QUNLJykpOwotCi0gICAgdmFyIGNvbnRlbnQxID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVt
ZW50KCk7Ci0gICAgY29udGVudDEuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnZGl2Jyk7Ci0gICAg
Y29udGVudDEuYXBwZW5kQ2hpbGQoY29udGVudDIpOwotCi0gICAgcm9vdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikpOwotICAgIHJvb3QuYXBwZW5kQ2hp
bGQoY29udGVudDEpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIn0iKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4
cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj57U0hBRE9XOiA8Y29u
dGVudD48c3Bhbj5DT05URU5UIDIgRkFMTEJBQ0s8L3NwYW4+PC9jb250ZW50Pn08L2Rpdj4iOwot
fQotCi1mdW5jdGlvbiB0ZXN0Q29udGVudEluQ29udGVudEZhbGxiYWNrV2l0aERpc3BsYXlOb25l
KCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTMScpKTsKLSAgICB0YXJn
ZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTMicpKTsKLQotICAgIHZhciByb290
ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLSAgICB2YXIgY29udGVudDIg
PSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICBjb250ZW50Mi5zZXRBdHRy
aWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLSAgICBjb250ZW50Mi5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoJ0NPTlRFTlQgMiBGQUxMQkFDSycpKTsKLQotICAgIHZhciBjb250ZW50MSA9
IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpOwotICAgIGNvbnRlbnQxLnNldEF0dHJp
YnV0ZSgnc2VsZWN0JywgJ2RpdicpOwotICAgIGNvbnRlbnQxLmFwcGVuZENoaWxkKGNvbnRlbnQy
KTsKLQotICAgIHZhciBzID0gY3JlYXRlU3BhbldpdGhUZXh0KCdOT1QgUkVOREVSRUQnKTsKLSAg
ICBzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChzKTsKLSAg
ICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7
Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50MSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAg
ICI8ZGl2PntTSEFET1c6IDxjb250ZW50PjxzcGFuPkNPTlRFTlQgMiBGQUxMQkFDSzwvc3Bhbj48
L2NvbnRlbnQ+fTwvZGl2PiI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb250ZW50SW5Db250ZW50RmFs
bGJhY2tEaXJlY3QoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1MxJykp
OwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1MyJykpOwotCi0g
ICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOwotICAgIHZh
ciBjb250ZW50MiA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpOwotICAgIGNvbnRl
bnQyLnNldEF0dHJpYnV0ZSgnc2VsZWN0JywgJ2RpdicpOwotICAgIGNvbnRlbnQyLmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQ09OVEVOVCAyIEZBTExCQUNLJykpOwotCi0gICAgdmFy
IGNvbnRlbnQxID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgY29udGVu
dDEuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnZGl2Jyk7Ci0gICAgY29udGVudDEuYXBwZW5kQ2hp
bGQoY29udGVudDIpOwotCi0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50MSk7Ci0KLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRh
cmdldCk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5p
bm5lckhUTUwgPQotICAgICAgICAiPGRpdj48Y29udGVudD48c3Bhbj5DT05URU5UIDIgRkFMTEJB
Q0s8L3NwYW4+PC9jb250ZW50PjwvZGl2PiI7Ci19Ci0KLXZhciB0ZXN0RnVuY3MgPSBbCi0gICAg
dGVzdEZhbGxiYWNrLAotICAgIHRlc3RGYWxsYmFja0RlZXAsCi0gICAgdGVzdE5vbkZhbGxiYWNr
V2l0aExpZ2h0Q2hpbGRyZW4sCi0gICAgdGVzdE5vbkZhbGxiYWNrRGVlcFdpdGhMaWdodENoaWxk
cmVuLAotICAgIHRlc3RDb21wbGV4RmFsbGJhY2ssCi0gICAgdGVzdENvbXBsZXhGYWxsYmFja0Rl
ZXAsCi0gICAgdGVzdENvbXBsZXhGYWxsYmFja0FnYWluLAotICAgIHRlc3RDb21wbGV4RmFsbGJh
Y2tEZWVwQWdhaW4sCi0gICAgdGVzdENvbnRlbnRrV2l0aERpc3BsYXlOb25lLAotICAgIHRlc3RD
b250ZW50SW5Db250ZW50LAotICAgIHRlc3RDb250ZW50SW5Db250ZW50RmFsbGJhY2ssCi0gICAg
dGVzdENvbnRlbnRJbkNvbnRlbnRGYWxsYmFja1dpdGhEaXNwbGF5Tm9uZSwKLSAgICB0ZXN0Q29u
dGVudEluQ29udGVudEZhbGxiYWNrRGlyZWN0Ci1dOwotCi1mdW5jdGlvbiBkb1Rlc3QoKSB7Ci0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgY2xlYW5VcCgpOwotCi0gICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB0ZXN0RnVuY3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdGVzdEZ1bmNz
W2ldKCk7Ci0gICAgICAgIGNoZWNrKCk7Ci0gICAgICAgIGNsZWFuVXAoKTsKLSAgICB9Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iZG9UZXN0KCkiPgotCi08ZGl2IGlkPSJh
Y3R1YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxkaXYgaWQ9ImV4cGVj
dC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QtZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1jb250ZW50cy1zZWxlY3QtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0v
KiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8K
LS5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLTwvc3R5bGU+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci08IS0tIHRlc3RTZWxlY3RJc051bGwg
LS0+Ci08ZGl2PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPldv
cmxkLjwvc3Bhbj48L2Rpdj4KLTwhLS0gdGVzdFNlbGVjdElzSWQgLS0+Ci08ZGl2PjxzcGFuPkhl
bGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bhbj48L2Rpdj4K
LTwhLS0gdGVzdFNlbGVjdElzSWRCdXROb3RNYXRjaGVkIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8
L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2PgotPCEtLSB0ZXN0U2VsZWN0SXNJZEJ1dE5v
dENoaWxkIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwv
ZGl2PgotPCEtLSB0ZXN0U2VsZWN0SXNNdWx0aUlkIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3Nw
YW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPldvcmxkLjwv
c3Bhbj48L2Rpdj4KLTwhLS0gdGVzdFNlbGVjdElzVHlwZSAtLT4KLTxkaXY+PHNwYW4+SGVsbG8s
PC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2PgotPCEt
LSB0ZXN0U2VsZWN0SXNUeXBlV2l0aEF0dHJpYnV0ZSAtLT4KLTxkaXY+PHNwYW4+SGVsbG8sPC9z
cGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2PgotPCEtLSB0
ZXN0U2VsZWN0SXNUeXBlV2l0aEZpcnN0T2ZUeXBlIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3Nw
YW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Ci08IS0tIHRl
c3RTZWxlY3RJc1R5cGVXaXRoRmlyc3RPZlR5cGUyIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3Nw
YW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Ci08IS0tIHRl
c3RTZWxlY3RJc1R5cGVXaXRoTGFzdE9mVHlwZSAtLT4KLTxkaXY+PHNwYW4+SGVsbG8sPC9zcGFu
PjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2PgotPCEtLSB0ZXN0
U2VsZWN0SXNEZXRhaWxzIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PGRldGFpbHM+Y29u
dGVudDwvZGV0YWlscz48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Ci08IS0tIHRlc3RTZWxlY3RJ
c0RldGFpbHMyIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PGRldGFpbHM+PHN1bW1hcnk+
Y29udGVudDwvc3VtbWFyeT48L2RldGFpbHM+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2PgotPCEt
LSB0ZXN0U2VsZWN0V2hlbkR5bmFtaWNhbGx5Q2hpbGRyZW5DaGFuZ2VkIC0tPgotPGRpdj48c3Bh
bj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9k
aXY+Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50
cy1zZWxlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNzQgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcg
ZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3Np
dGlvbjogcmVsYXRpdmU7Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGFwcGVuZFNo
YWRvdyh0YXJnZXQsIHNlbGVjdCkgewotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNo
YWRvd1Jvb3QodGFyZ2V0KTsKLQotICAgIHZhciBjaGlsZDAgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7Ci0gICAgY2hpbGQwLmlubmVySFRNTCA9ICJIZWxsbywiOwotICAgIHJvb3Qu
YXBwZW5kQ2hpbGQoY2hpbGQwKTsKLQotICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0
ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNl
bGVjdCk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKLQotICAgIHZhciBjaGlsZDEg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgY2hpbGQxLmlubmVySFRNTCA9
ICJXb3JsZC4iOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsKLX0KLQotZnVuY3Rpb24g
dGVzdFNlbGVjdElzTnVsbCgpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3Bhbj5jb250ZW50PC9zcGFu
PiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiIik7Ci0KLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQotZnVuY3Rp
b24gdGVzdFNlbGVjdElzSWQoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J2Zvbyc+Y29u
dGVudDwvc3Bhbj48c3BhbiBpZD0nYXp1bnlhbic+cGVyb3Blcm88L3NwYW4+IjsKLQotICAgIGFw
cGVuZFNoYWRvdyh0YXJnZXQsICIjZm9vIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQotZnVuY3Rpb24gdGVzdFNl
bGVjdElzSWRCdXROb3RNYXRjaGVkKCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdmb28n
PmNvbnRlbnQ8L3NwYW4+PHNwYW4gaWQ9J2F6dW55YW4nPnBlcm9wZXJvPC9zcGFuPiI7Ci0KLSAg
ICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiI2Zvb2JhciIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RTZWxlY3RJc0lkQnV0Tm90Q2hpbGQoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+PHNw
YW4gaWQ9J2Zvbyc+Y29udGVudDwvc3Bhbj48c3BhbiBpZD0nYXp1bnlhbic+cGVyb3Blcm88L3Nw
YW4+PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiI2ZvbyIpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc011bHRpSWQoKSB7Ci0gICAgdmFyIHRhcmdldCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAi
PHNwYW4gaWQ9J2Zvbyc+Y29udGVudDwvc3Bhbj48c3BhbiBpZD0nYXp1bnlhbic+cGVyb3Blcm88
L3NwYW4+PHNwYW4gaWQ9J2Zvbyc+Y29udGVudDwvc3Bhbj4iOwotCi0gICAgYXBwZW5kU2hhZG93
KHRhcmdldCwgIiNmb28iKTsKLQotICAgIC8vIEFsbCBtYXRjaGVkIGVsZW1lbnRzIHdpbGwgYmUg
c2VsZWN0ZWQuCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVu
ZENoaWxkKHRhcmdldCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc1R5cGUoKSB7Ci0gICAg
dmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5p
bm5lckhUTUwgPSAiPGRpdj5henVueWFuPC9kaXY+PHNwYW4+Y29udGVudDwvc3Bhbj48ZGl2PnBl
cm9wZXJvPC9kaXY+IjsKLQotICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICJzcGFuIik7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKLX0KLQotZnVuY3Rpb24gdGVzdFNlbGVjdElzVHlwZVdpdGhBdHRyaWJ1dGUoKSB7Ci0gICAg
dmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5p
bm5lckhUTUwgPSAiPHNwYW4+YXp1bnlhbjwvc3Bhbj48c3BhbiB0aXRsZT0nY29udGVudCc+Y29u
dGVudDwvc3Bhbj48c3Bhbj5wZXJvcGVybzwvc3Bhbj4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRh
cmdldCwgInNwYW5bdGl0bGU9J2NvbnRlbnQnXSIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RTZWxlY3RJc1R5cGVXaXRoRmlyc3RPZlR5cGUoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPGRpdj5h
enVueWFuPC9kaXY+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5wZXJvcGVybzwvc3Bhbj4iOwot
Ci0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgInNwYW46Zmlyc3Qtb2YtdHlwZSIpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc1R5cGVXaXRoRmlyc3RPZlR5cGUyKCkgewotICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQu
aW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+YXp1bnlhbjwvc3Bhbj48L2Rpdj48c3Bhbj5jb250ZW50
PC9zcGFuPjxzcGFuPnBlcm9wZXJvPC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0
LCAic3BhbjpmaXJzdC1vZi10eXBlIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQotZnVuY3Rpb24gdGVzdFNlbGVj
dElzVHlwZVdpdGhMYXN0T2ZUeXBlKCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmF6dW55YW48
L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48ZGl2PnBlcm9wZXJvPC9kaXY+IjsKLQotICAgIGFw
cGVuZFNoYWRvdyh0YXJnZXQsICJzcGFuOmxhc3Qtb2YtdHlwZSIpOwotCi0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RTZWxlY3RJc0RldGFpbHMoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPGRldGFpbHM+
Y29udGVudDwvZGV0YWlscz4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgImRldGFpbHMi
KTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGls
ZCh0YXJnZXQpOwotfQotCi1mdW5jdGlvbiB0ZXN0U2VsZWN0SXNEZXRhaWxzMigpIHsKLSAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0Lmlu
bmVySFRNTCA9ICI8ZGV0YWlscz48c3VtbWFyeT5jb250ZW50PC9zdW1tYXJ5PjwvZGV0YWlscz4i
OwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgImRldGFpbHMiKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotfQotCi1m
dW5jdGlvbiB0ZXN0U2VsZWN0V2hlbkR5bmFtaWNhbGx5Q2hpbGRyZW5DaGFuZ2VkKCkgewotICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQu
aW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4gaWQ9J3RvYmVyZW1vdmVkJz5h
bnVueWFuIHBlcm9wZXJvPC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAic3Bh
biIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENo
aWxkKHRhcmdldCk7Ci0KLSAgICB2YXIgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
b2JlcmVtb3ZlZCcpOwotICAgIGVsZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtKTsKLX0K
LQotdmFyIHRlc3RGdW5jcyA9IFsKLSAgICB0ZXN0U2VsZWN0SXNOdWxsLAotICAgIHRlc3RTZWxl
Y3RJc0lkLAotICAgIHRlc3RTZWxlY3RJc0lkQnV0Tm90TWF0Y2hlZCwKLSAgICB0ZXN0U2VsZWN0
SXNJZEJ1dE5vdENoaWxkLAotICAgIHRlc3RTZWxlY3RJc011bHRpSWQsCi0gICAgdGVzdFNlbGVj
dElzVHlwZSwKLSAgICB0ZXN0U2VsZWN0SXNUeXBlV2l0aEF0dHJpYnV0ZSwKLSAgICB0ZXN0U2Vs
ZWN0SXNUeXBlV2l0aEZpcnN0T2ZUeXBlLAotICAgIHRlc3RTZWxlY3RJc1R5cGVXaXRoRmlyc3RP
ZlR5cGUyLAotICAgIHRlc3RTZWxlY3RJc1R5cGVXaXRoTGFzdE9mVHlwZSwKLSAgICB0ZXN0U2Vs
ZWN0SXNEZXRhaWxzLAotICAgIHRlc3RTZWxlY3RJc0RldGFpbHMyLAotICAgIHRlc3RTZWxlY3RX
aGVuRHluYW1pY2FsbHlDaGlsZHJlbkNoYW5nZWQsCi1dCi0KLWZ1bmN0aW9uIGRvVGVzdCgpIHsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RGdW5jcy5sZW5ndGg7ICsraSkgewotICAgICAg
IHRlc3RGdW5jc1tpXSgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJkb1Rlc3QoKSI+Ci08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRpc2FibGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUxICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IHNoYWRvdyBlbGVtZW50
IGNhbm5vdCBiZSBjcmVhdGVkIGluIGVsZW1lbnRzIGhhdmluZyBkeW5hbWljYWxseSBjcmVhdGVk
IHNoYWRvdyByb290LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotRElWCi1QQVNT
IGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBudWxsCi1TUEFOCi1QQVNT
IGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBudWxsCi1BCi1QQVNTIGVs
ZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBudWxsCi1TRUNUSU9OCi1QQVNT
IGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBudWxsCi1JTlBVVAotUEFT
UyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotdHJlZgotUEFTUyBlbGVt
ZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJh
cmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotQVVESU8KLVBBU1MgZWxlbWVudC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlS
ZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLVZJREVPCi1QQVNTIGVsZW1lbnQud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVz
dEVycm9yOiBET00gRXhjZXB0aW9uIDMuCi1TRUxFQ1QKLVBBU1MgZWxlbWVudC53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJy
b3I6IERPTSBFeGNlcHRpb24gMy4KLUlNRwotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzLgotVEVYVEFSRUEKLVBBU1MgZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMy4KLUlGUkFNRQotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzLgotQ0FOVkFTCi1QQVNTIGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9u
IDMuCi1NRVRFUgotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgot
UFJPR1JFU1MKLVBBU1MgZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLU9C
SkVDVAotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotRU1CRUQK
LVBBU1MgZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLUtFWUdFTgotUEFT
UyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotVklERU8KLVBBU1MgZWxl
bWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLUFVRElPCi1QQVNTIGVsZW1lbnQu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCi1GSUVMRFNFVAotUEFTUyBlbGVtZW50Lndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZGlzYWJsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PHRyZWYgaWQ9InRyZWYi
IC8+PC9zdmc+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlv
bigiVGVzdHMgdG8gZW5zdXJlIHRoYXQgc2hhZG93IGVsZW1lbnQgY2Fubm90IGJlIGNyZWF0ZWQg
aW4gZWxlbWVudHMgaGF2aW5nIGR5bmFtaWNhbGx5IGNyZWF0ZWQgc2hhZG93IHJvb3QuIik7Ci0K
LWZ1bmN0aW9uIHRlc3RUb0FkZFNoYWRvd1Jvb3QoZWxlbWVudCwgc3VjY2VzcykgewotICAgIGRl
YnVnKGVsZW1lbnQubm9kZU5hbWUpOwotCi0gICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgIHNob3Vs
ZE5vdEJlKCJlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSIsICJudWxsIik7Ci0gICAg
ZWxzZQotICAgICAgICBzaG91bGRUaHJvdygiZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCkiKTsKLX0KLQotdmFyIGVsZW1lbnRzVG9TdWNjZXNzID0gWwotICAgIGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpLAotICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSwKLSAg
ICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2VjdGlvbicpLAotXTsKLQotdmFyIGVsZW1lbnRzVG9GYWlsID0gWwotICAgIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JyksCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Ry
ZWYnKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhdWRpbycpLAotICAgIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2Vs
ZWN0JyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyksCi0gICAgZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
ZnJhbWUnKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSwKLSAgICBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdtZXRlcicpLAotICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3Byb2dyZXNzJyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb2JqZWN0JyksCi0gICAg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZW1iZWQnKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdrZXlnZW4nKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpLAotICAg
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZmllbGRzZXQnKSwKLV07Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHNUb1N1
Y2Nlc3MubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRzVG9TdWNjZXNz
W2ldOwotICAgIHRlc3RUb0FkZFNoYWRvd1Jvb3QoZWxlbWVudCwgdHJ1ZSk7Ci19Ci0KLWZvciAo
dmFyIGkgPSAwOyBpIDwgZWxlbWVudHNUb0ZhaWwubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZWxl
bWVudCA9IGVsZW1lbnRzVG9GYWlsW2ldOwotICAgIHRlc3RUb0FkZFNoYWRvd1Jvb3QoZWxlbWVu
dCwgZmFsc2UpOwotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1kaXYtcmVmbG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXYtcmVmbG93LWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGl2LXJl
Zmxvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNob3N0IHsKLSAgICB3aWR0aDog
MjAwcHg7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2PgotICAgIDxkaXY+Ci0g
ICAgICAgIDxkaXY+PGRpdj5GaXJzdCBsaW5lIGxlYWRzLDwvZGl2PjwvZGl2PgotICAgICAgICA8
ZGl2PnNlY29uZCBsaW5lIGZvbGxvd3MuPC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGl2
LXJlZmxvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZGl2LXJlZmxvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpdi1yZWZsb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0j
aG9zdCB7Ci0gICAgd2lkdGg6IDIwMHB4OwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5Pgot
PGRpdiBpZD0iaG9zdCIgdGFiaW5kZXg9MD4KLSAgICA8ZGl2PgotICAgICAgICA8ZGl2PjxkaXY+
Rmlyc3QgbGluZSBsZWFkcyw8L2Rpdj48L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhv
clNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIgaG9zdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci12YXIgc2hhZG93MSA9IGhvc3Qud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotc2hhZG93MS5pbm5lckhUTUwgPSAiPGRpdj48c2hhZG93Pjwvc2hh
ZG93PjxkaXY+PC9kaXY+PC9kaXY+IjsKLXZhciBzaGFkb3cyID0gaG9zdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaGFkb3cyLmlubmVySFRNTCA9ICI8c2VjdGlvbj4iCi0gICAgICAgICAg
ICAgICAgICsgICAiPHNoYWRvdz48L3NoYWRvdz4iCi0gICAgICAgICAgICAgICAgICsgICAiPGRp
dj5zZWNvbmQgbGluZSBmb2xsb3dzLjwvZGl2PiIKLSAgICAgICAgICAgICAgICAgKyAiPC9zZWN0
aW9uPiI7Ci1ob3N0LmZvY3VzKCk7Ci1ob3N0LmJsdXIoKTsKLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZW5h
YmxlZC1mbGFnLXdoaXRlbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZW5hYmxlZC1mbGFnLXdoaXRlbGlzdC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZG9tLWVuYWJsZWQtZmxhZy13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLUVuc3VyZSB0aGF0IHNldFNoYWRvd0RPTUVuYWJsZWQo
KSBpcyBvbmx5IGFsbG93ZWQgZm9yIGEgc2V0IG9mIHRlc3RzLgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFNoYWRvd0RP
TUVuYWJsZWQoZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZEFjY2Vzc0Vycm9y
OiBET00gRXhjZXB0aW9uIDE1LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
ZG9tLWVuYWJsZWQtZmxhZy13aGl0ZWxpc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1lbmFibGVkLWZsYWctd2hpdGVsaXN0Lmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
ZG9tLWVuYWJsZWQtZmxhZy13aGl0ZWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBzZXRTaGFkb3dET01FbmFibGVk
KCkgaXMgb25seSBhbGxvd2VkIGZvciBhIHNldCBvZiB0ZXN0cy4iKQotc2hvdWxkVGhyb3coIndp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hhZG93RE9NRW5hYmxlZChmYWxzZSkiLCAiJ0Vy
cm9yOiBJbnZhbGlkQWNjZXNzRXJyb3I6IERPTSBFeGNlcHRpb24gMTUnIik7Ci08L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1jaGlsZC1vZi1pbmFjdGl2ZS1jb250ZW50LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi1UZXN0cyB0byBlbnN1
cmUgdGhhdCBldmVudCBkaXNwYXRjaGluZyBiZWhhdmVzIGFzIHRoZSBTaGFkb3cgRE9NIHNwZWMg
ZGVzY3JpYmVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi0KLUNvbXBvc2Vk
IFNoYWRvdyBUcmVlIHdpbGwgYmU6Ci1ESVYJIGlkPXNhbmRib3gKLQlESVYJIGlkPXRvcAotCQlE
SVYJIGlkPUEKLQkJRElWCSBpZD1CCi0JCQlESVYJIGlkPXBhcmVudC1vZi1pbmFjdGl2ZS1jb250
ZW50Ci0JCQkJQ09OVEVOVAkgaWQ9aW5hY3RpdmUtY29udGVudAotCQkJCQlESVYJIGlkPWNoaWxk
LW9mLWluYWN0aXZlLWNvbnRlbnQKLQotCi1Nb3ZpbmcgbW91c2UgZnJvbSBBIHRvIGNoaWxkLW9m
LWluYWN0aXZlLWNvbnRlbnQKLQotICBtb3VzZW91dAotICAgICBAQSAodGFyZ2V0OiBBKSAocmVs
YXRlZDogY2hpbGQtb2YtaW5hY3RpdmUtY29udGVudCkKLSAgICAgQHRvcCAodGFyZ2V0OiBBKSAo
cmVsYXRlZDogY2hpbGQtb2YtaW5hY3RpdmUtY29udGVudCkKLQotICBtb3VzZW92ZXIKLSAgICAg
QGNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQgKHRhcmdldDogY2hpbGQtb2YtaW5hY3RpdmUtY29u
dGVudCkgKHJlbGF0ZWQ6IEEpCi0gICAgIEBpbmFjdGl2ZS1jb250ZW50ICh0YXJnZXQ6IGNoaWxk
LW9mLWluYWN0aXZlLWNvbnRlbnQpIChyZWxhdGVkOiBBKQotICAgICBAcGFyZW50LW9mLWluYWN0
aXZlLWNvbnRlbnQgKHRhcmdldDogY2hpbGQtb2YtaW5hY3RpdmUtY29udGVudCkgKHJlbGF0ZWQ6
IEEpCi0gICAgIEBhY3RpdmUtY29udGVudCAodGFyZ2V0OiBjaGlsZC1vZi1pbmFjdGl2ZS1jb250
ZW50KSAocmVsYXRlZDogQSkKLSAgICAgQHNoYWRvdy1yb290LUIgKHRhcmdldDogY2hpbGQtb2Yt
aW5hY3RpdmUtY29udGVudCkgKHJlbGF0ZWQ6IEEpCi0gICAgIEBCICh0YXJnZXQ6IGNoaWxkLW9m
LWluYWN0aXZlLWNvbnRlbnQpIChyZWxhdGVkOiBBKQotICAgICBAdG9wICh0YXJnZXQ6IGNoaWxk
LW9mLWluYWN0aXZlLWNvbnRlbnQpIChyZWxhdGVkOiBBKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxkLW9mLWluYWN0aXZlLWNv
bnRlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1jaGlsZC1vZi1pbmFjdGl2ZS1jb250ZW50Lmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
ZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
ICAgIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3NhbmRib3gnKTsKLQotICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAotICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdBJ30pLAotICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdCJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2FjdGl2ZS1jb250ZW50JywgJ3NlbGVj
dCc6ICcjcGFyZW50LW9mLWluYWN0aXZlLWNvbnRlbnQnfSkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAncGFyZW50LW9mLWluYWN0aXZl
LWNvbnRlbnQnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnaW5hY3RpdmUtY29udGVudCd9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdjaGlsZC1vZi1pbmFjdGl2ZS1jb250ZW50J30pKSkpKSk7Ci0KLSAgICAgICAg
YWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnQScsICdCJywgJ0IvJywgJ0IvYWN0aXZlLWNvbnRl
bnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcmVudC1vZi1pbmFjdGl2ZS1jb250
ZW50JywgJ2luYWN0aXZlLWNvbnRlbnQnLCAnY2hpbGQtb2YtaW5hY3RpdmUtY29udGVudCddKTsK
LSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdCLycpLmlkID0gJ3NoYWRvdy1yb290
LUInOwotICAgICAgICBzaG93U2FuZGJveFRyZWUoKTsKLSAgICAgICAgbW92ZU1vdXNlKCdBJywg
J2NoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQnKTsKLSAgICA8L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
ZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRldGFpbHMtc3VtbWFyeS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmctZGV0YWlscy1zdW1tYXJ5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hp
bmctZGV0YWlscy1zdW1tYXJ5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0MCAr
MCwwIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBldmVudCBkaXNwYXRjaGluZyBiZWhhdmVzIGFz
IHRoZSBTaGFkb3cgRE9NIHNwZWMgZGVzY3JpYmVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCi0KLQotCi0KLUNvbXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6Ci1ESVYJIGlkPXNhbmRi
b3gKLQlESVYJIGlkPXRvcAotCQlERVRBSUxTCSBpZD1kZXRhaWxzCi0JCQlTVU1NQVJZCSBpZD1z
dW1tYXJ5Ci0JCQkJRElWCQotCi0KLU1vdmluZyBtb3VzZSBmcm9tIGRldGFpbHMgdG8gc3VtbWFy
eQotCi0gIG1vdXNlb3V0Ci0gICAgIEBkZXRhaWxzICh0YXJnZXQ6IGRldGFpbHMpIChyZWxhdGVk
OiBzdW1tYXJ5KQotICAgICBAdG9wICh0YXJnZXQ6IGRldGFpbHMpIChyZWxhdGVkOiBzdW1tYXJ5
KQotCi0gIG1vdXNlb3ZlcgotICAgICBAc3VtbWFyeSAodGFyZ2V0OiBzdW1tYXJ5KSAocmVsYXRl
ZDogZGV0YWlscykKLSAgICAgQGRldGFpbHMgKHRhcmdldDogc3VtbWFyeSkgKHJlbGF0ZWQ6IGRl
dGFpbHMpCi0gICAgIEB0b3AgKHRhcmdldDogc3VtbWFyeSkgKHJlbGF0ZWQ6IGRldGFpbHMpCi0K
LU1vdmluZyBtb3VzZSBmcm9tIHN1bW1hcnkgdG8gZGV0YWlscwotCi0gIG1vdXNlb3V0Ci0gICAg
IEBzdW1tYXJ5ICh0YXJnZXQ6IHN1bW1hcnkpIChyZWxhdGVkOiBkZXRhaWxzKQotICAgICBAZGV0
YWlscyAodGFyZ2V0OiBzdW1tYXJ5KSAocmVsYXRlZDogZGV0YWlscykKLSAgICAgQHRvcCAodGFy
Z2V0OiBzdW1tYXJ5KSAocmVsYXRlZDogZGV0YWlscykKLQotICBtb3VzZW92ZXIKLSAgICAgQGRl
dGFpbHMgKHRhcmdldDogZGV0YWlscykgKHJlbGF0ZWQ6IHN1bW1hcnkpCi0gICAgIEB0b3AgKHRh
cmdldDogZGV0YWlscykgKHJlbGF0ZWQ6IHN1bW1hcnkpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGV0YWlscy1zdW1tYXJ5Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZl
bnQtZGlzcGF0Y2hpbmctZGV0YWlscy1zdW1tYXJ5Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5n
LWRldGFpbHMtc3VtbWFyeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0gICAg
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0gICAgPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci0g
ICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFyIHNh
bmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotCi0gICAgICAgIHNh
bmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
dG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgLy8gJ2RldGFpbHMvc3VtbWFyeScgZWxlbWVu
dHMgdXNlIFNoYWRvdyBET00gaW4gaXRzIGltcGxlbWVudGF0aW9uLgotICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGV0YWlscycsIHsnaWQnOiAnZGV0YWlscycsICdvcGVuJzogdHJ1
ZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc3VtbWFyeScs
IHsnaWQnOiAnc3VtbWFyeSd9KSkpKTsKLQotICAgICAgICBhZGRFdmVudExpc3RlbmVycyhbJ3Rv
cCcsICdkZXRhaWxzJywgJ3N1bW1hcnknXSk7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwot
Ci0gICAgICAgIG1vdmVNb3VzZSgnZGV0YWlscycsICdzdW1tYXJ5Jyk7Ci0gICAgICAgIG1vdmVN
b3VzZSgnc3VtbWFyeScsICdkZXRhaWxzJyk7Ci0gICAgPC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRv
bS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC1jaGlsZC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmctZGlzdHJpYnV0ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy1kaXN0cmlidXRlZC1jaGlsZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
NjAgKzAsMCBAQAotVGVzdHMgdG8gZW5zdXJlIHRoYXQgZXZlbnQgZGlzcGF0Y2hpbmcgYmVoYXZl
cyBhcyB0aGUgU2hhZG93IERPTSBzcGVjIGRlc2NyaWJlcy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLQotCi1Db21wb3NlZCBTaGFkb3cgVHJlZSB3aWxsIGJlOgotRElWCSBpZD1z
YW5kYm94Ci0JRElWCSBpZD10b3AKLQkJRElWCSBpZD1zaGFkb3ctaG9zdAotCQkJRElWCSBpZD1k
aXN0cmlidXRlZC1saWdodC1jaGlsZAotCQkJRElWCSBpZD1zaGFkb3ctcm9vdC1jaGlsZAotCi0K
LU1vdmluZyBtb3VzZSBmcm9tIHNoYWRvdy1ob3N0IHRvIHNoYWRvdy1ob3N0L3NoYWRvdy1yb290
LWNoaWxkCi0KLSAgbW91c2VvdXQKLQotICBtb3VzZW92ZXIKLSAgICAgQHNoYWRvdy1yb290LWNo
aWxkICh0YXJnZXQ6IHNoYWRvdy1yb290LWNoaWxkKSAocmVsYXRlZDogc2hhZG93LWhvc3QpCi0g
ICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiBzaGFkb3ctcm9vdC1jaGlsZCkgKHJlbGF0ZWQ6IHNo
YWRvdy1ob3N0KQotCi1Nb3ZpbmcgbW91c2UgZnJvbSBzaGFkb3ctaG9zdC9zaGFkb3ctcm9vdC1j
aGlsZCB0byBzaGFkb3ctaG9zdAotCi0gIG1vdXNlb3V0Ci0gICAgIEBzaGFkb3ctcm9vdC1jaGls
ZCAodGFyZ2V0OiBzaGFkb3ctcm9vdC1jaGlsZCkgKHJlbGF0ZWQ6IHNoYWRvdy1ob3N0KQotICAg
ICBAc2hhZG93LXJvb3QgKHRhcmdldDogc2hhZG93LXJvb3QtY2hpbGQpIChyZWxhdGVkOiBzaGFk
b3ctaG9zdCkKLQotICBtb3VzZW92ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gc2hhZG93LWhvc3Qg
dG8gZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQKLQotICBtb3VzZW91dAotICAgICBAc2hhZG93LWhv
c3QgKHRhcmdldDogc2hhZG93LWhvc3QpCi0gICAgIEB0b3AgKHRhcmdldDogc2hhZG93LWhvc3Qp
Ci0KLSAgbW91c2VvdmVyCi0KLU1vdmluZyBtb3VzZSBmcm9tIGRpc3RyaWJ1dGVkLWxpZ2h0LWNo
aWxkIHRvIHNoYWRvdy1ob3N0Ci0KLSAgbW91c2VvdXQKLQotICBtb3VzZW92ZXIKLQotTW92aW5n
IG1vdXNlIGZyb20gc2hhZG93LWhvc3Qvc2hhZG93LXJvb3QtY2hpbGQgdG8gZGlzdHJpYnV0ZWQt
bGlnaHQtY2hpbGQKLQotICBtb3VzZW91dAotCi0gIG1vdXNlb3ZlcgotCi1Nb3ZpbmcgbW91c2Ug
ZnJvbSBkaXN0cmlidXRlZC1saWdodC1jaGlsZCB0byBzaGFkb3ctaG9zdC9zaGFkb3ctcm9vdC1j
aGlsZAotCi0gIG1vdXNlb3V0Ci0KLSAgbW91c2VvdmVyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtY2hpbGQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1l
dmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC1jaGlsZC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy1kaXN0cmlidXRlZC1jaGlsZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQxICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci0gICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0gICAgPGRpdiBpZD0ic2FuZGJveCI+PC9k
aXY+Ci0gICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAg
dmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotCi0gICAg
ICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAndG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ3NoYWRvdy1ob3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2NvbnRlbnQnLCB7J2lkJzogJ2NvbnRlbnQnLCAnc2VsZWN0JzogJyNkaXN0cmlidXRlZC1s
aWdodC1jaGlsZCcsfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93LXJvb3QtY2hpbGQnfSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGlzdHJpYnV0ZWQt
bGlnaHQtY2hpbGQnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdub24tZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQnfSkpKSk7Ci0KLSAg
ICAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnc2hhZG93LWhvc3QnLCAnc2hhZG93LWhv
c3QvJywgJ3NoYWRvdy1ob3N0L2NvbnRlbnQnLCAnc2hhZG93LWhvc3Qvc2hhZG93LXJvb3QtY2hp
bGQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3RyaWJ1dGVkLWxpZ2h0LWNoaWxk
JywgJ25vbi1kaXN0cmlidXRlZC1saWdodC1jaGlsZCddKTsKLSAgICAgICAgZ2V0Tm9kZUluU2hh
ZG93VHJlZVN0YWNrKCdzaGFkb3ctaG9zdC8nKS5pZCA9ICdzaGFkb3ctcm9vdCc7Ci0gICAgICAg
IHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAgICAgIG1vdmVNb3VzZSgnc2hhZG93LWhvc3QnLCAn
c2hhZG93LWhvc3Qvc2hhZG93LXJvb3QtY2hpbGQnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdzaGFk
b3ctaG9zdC9zaGFkb3ctcm9vdC1jaGlsZCcsICdzaGFkb3ctaG9zdCcpOwotCi0gICAgICAgIG1v
dmVNb3VzZSgnc2hhZG93LWhvc3QnLCAnZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQnKTsKLSAgICAg
ICAgbW92ZU1vdXNlKCdkaXN0cmlidXRlZC1saWdodC1jaGlsZCcsICdzaGFkb3ctaG9zdCcpOwot
Ci0gICAgICAgIG1vdmVNb3VzZSgnc2hhZG93LWhvc3Qvc2hhZG93LXJvb3QtY2hpbGQnLCAnZGlz
dHJpYnV0ZWQtbGlnaHQtY2hpbGQnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdkaXN0cmlidXRlZC1s
aWdodC1jaGlsZCcsICdzaGFkb3ctaG9zdC9zaGFkb3ctcm9vdC1jaGlsZCcpOwotICAgIDwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtdGV4dC1u
b2RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5vZGUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5vZGUtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLVRlc3RzIHRvIGVuc3Vy
ZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBk
ZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQotQ29tcG9zZWQg
U2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9dG9wCi0JCURJ
VgkgaWQ9c2hhZG93LWhvc3QKLQkJCSN0ZXh0CQotCi0KLU1vdmluZyBtb3VzZSBmcm9tIGEgZGlz
dHJpYnV0ZWQgdGV4dCBub2RlIHRvIHRvcAotCi0gIG1vdXNlb3V0Ci0gICAgIEBzaGFkb3ctaG9z
dCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkgKHJlbGF0ZWQ6IHRvcCkKLSAgICAgQHRvcCAodGFyZ2V0
OiBzaGFkb3ctaG9zdCkgKHJlbGF0ZWQ6IHRvcCkKLQotICBtb3VzZW92ZXIKLSAgICAgQHRvcCAo
dGFyZ2V0OiB0b3ApIChyZWxhdGVkOiBzaGFkb3ctaG9zdCkKLQotICBtb3VzZXdoZWVsCi0gICAg
IEBjb250ZW50ICh0YXJnZXQ6IGNvbnRlbnQpCi0gICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiBj
b250ZW50KQotICAgICBAc2hhZG93LWhvc3QgKHRhcmdldDogc2hhZG93LWhvc3QpCi0gICAgIEB0
b3AgKHRhcmdldDogc2hhZG93LWhvc3QpCi0KLSAgdG91Y2hzdGFydAotICAgICBAY29udGVudCAo
dGFyZ2V0OiBjb250ZW50KSAodG91Y2hlczogY29udGVudCkgKHRhcmdldFRvdWNoZXM6IGNvbnRl
bnQpIChjaGFuZ2VkVG91Y2hlczogY29udGVudCkKLSAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6
IGNvbnRlbnQpICh0b3VjaGVzOiBjb250ZW50KSAodGFyZ2V0VG91Y2hlczogY29udGVudCkgKGNo
YW5nZWRUb3VjaGVzOiBjb250ZW50KQotICAgICBAc2hhZG93LWhvc3QgKHRhcmdldDogc2hhZG93
LWhvc3QpICh0b3VjaGVzOiBzaGFkb3ctaG9zdCkgKHRhcmdldFRvdWNoZXM6IHNoYWRvdy1ob3N0
KSAoY2hhbmdlZFRvdWNoZXM6IHNoYWRvdy1ob3N0KQotICAgICBAdG9wICh0YXJnZXQ6IHNoYWRv
dy1ob3N0KSAodG91Y2hlczogc2hhZG93LWhvc3QpICh0YXJnZXRUb3VjaGVzOiBzaGFkb3ctaG9z
dCkgKGNoYW5nZWRUb3VjaGVzOiBzaGFkb3ctaG9zdCkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotVGV4dCBOb2RlCi0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRpc3RyaWJ1dGVk
LXRleHQtbm9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRpc3RyaWJ1dGVkLXRleHQtbm9kZS5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5vZGUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAg
IDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgot
ICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3NhbmRib3gnKTsKLQotICAgICAgICAvLyBNYWtlcyBzdXJlIGFuIGluc2VydGlvbiBwb2lu
dCBjYW4gcmVjZWl2ZSBhIGV2ZW50IHdoZW4gYSBkaXN0cmlidXRlZCB0ZXh0IG5vZGUgaXMgY2xp
Y2tlZC4KLSAgICAgICAgc2FuZGJveC5hcHBlbmRDaGlsZCgKLSAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICd0b3AnfSwKLSAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnc2hhZG93LWhvc3QnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudCd9KSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdUZXh0IE5vZGUn
KSkpKTsKLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2so
J3NoYWRvdy1ob3N0LycpLmlkID0gJ3NoYWRvdy1yb290JzsKLSAgICAgICAgYWRkRXZlbnRMaXN0
ZW5lcnMoWyd0b3AnLCAnc2hhZG93LWhvc3QnLCAnc2hhZG93LWhvc3QvJywgJ3NoYWRvdy1ob3N0
L2NvbnRlbnQnXSk7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAgICAgIC8vIENh
bGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0ZXh0IG5vZGUuCi0gICAgICAgIHZhciBob3N0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NoYWRvdy1ob3N0Jyk7Ci0gICAgICAgIHZhciB4
ID0gaG9zdC5vZmZzZXRMZWZ0ICsgNTsKLSAgICAgICAgdmFyIHkgPSBob3N0Lm9mZnNldFRvcCAr
IGRlZmF1bHRQYWRkaW5nU2l6ZSArIDU7Ci0gICAgICAgIGRlYnVnKCdcbicgKyAnTW92aW5nIG1v
dXNlIGZyb20gYSBkaXN0cmlidXRlZCB0ZXh0IG5vZGUgdG8gdG9wJyk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotICAgICAgICBjbGVhckV2ZW50UmVjb3JkcygpOwot
Ci0gICAgICAgIG1vdmVNb3VzZU92ZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpKTsK
LSAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3V0Jyk7Ci0gICAgICAgIGRlYnVn
RGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW92ZXInKTsKLQotICAgICAgICBjbGVhckV2ZW50UmVjb3Jk
cygpOwotICAgICAgICBzY3JvbGxNb3VzZVdoZWVsKGhvc3QpOwotICAgICAgICBkZWJ1Z0Rpc3Bh
dGNoZWRFdmVudCgnbW91c2V3aGVlbCcpOwotCi0gICAgICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7
Ci0gICAgICAgIHRvdWNoTG9jYXRpb24oaG9zdCk7Ci0gICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2
ZW50KCd0b3VjaHN0YXJ0Jyk7Ci0gICAgPC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmctZmFsbGJhY2stbm9kZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWZhbGxi
YWNrLW5vZGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZmFsbGJhY2stbm9k
ZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLVRlc3RzIHRv
IGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00g
c3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQotQ29t
cG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9dG9w
Ci0JCURJVgkgaWQ9QQotCQkJRElWCSBpZD11c2VkLWZhbGxiYWNrCi0JCQlESVYJIGlkPUIKLQot
Ci1Nb3ZpbmcgbW91c2UgZnJvbSBBL3VzZWQtZmFsbGJhY2sgdG8gQQotCi0gIG1vdXNlb3V0Ci0g
ICAgIEB1c2VkLWZhbGxiYWNrICh0YXJnZXQ6IHVzZWQtZmFsbGJhY2spIChyZWxhdGVkOiBBKQot
ICAgICBAY29udGVudDEgKHRhcmdldDogdXNlZC1mYWxsYmFjaykgKHJlbGF0ZWQ6IEEpCi0gICAg
IEBzaGFkb3ctcm9vdCAodGFyZ2V0OiB1c2VkLWZhbGxiYWNrKSAocmVsYXRlZDogQSkKLQotICBt
b3VzZW92ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gQSB0byBBL3VzZWQtZmFsbGJhY2sKLQotICBt
b3VzZW91dAotCi0gIG1vdXNlb3ZlcgotICAgICBAdXNlZC1mYWxsYmFjayAodGFyZ2V0OiB1c2Vk
LWZhbGxiYWNrKSAocmVsYXRlZDogQSkKLSAgICAgQGNvbnRlbnQxICh0YXJnZXQ6IHVzZWQtZmFs
bGJhY2spIChyZWxhdGVkOiBBKQotICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogdXNlZC1mYWxs
YmFjaykgKHJlbGF0ZWQ6IEEpCi0KLUNsaWNrIG5vbi11c2VkLWZhbGxiYWNrIG5vZGUKLQotICBj
bGljawotICAgICBAbm9uLXVzZWQtZmFsbGJhY2sgKHRhcmdldDogbm9uLXVzZWQtZmFsbGJhY2sp
Ci0gICAgIEBjb250ZW50MiAodGFyZ2V0OiBub24tdXNlZC1mYWxsYmFjaykKLSAgICAgQHNoYWRv
dy1yb290ICh0YXJnZXQ6IG5vbi11c2VkLWZhbGxiYWNrKQotICAgICBAQSAodGFyZ2V0OiBBKQot
ICAgICBAdG9wICh0YXJnZXQ6IEEpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZmFsbGJhY2stbm9kZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGlu
Zy1mYWxsYmFjay1ub2Rlcy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1mYWxsYmFjay1ub2Rl
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1k
b20uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnQtZGlzcGF0
Y2hpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Ci0gICAgPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci0gICAgPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFyIHNhbmRib3ggPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotCi0gICAgICAgIHNhbmRib3guYXBwZW5kQ2hp
bGQoCi0gICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAndG9wJ30sCi0gICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ0EnfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudDEn
LCAnc2VsZWN0JzogJyNub25lJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3VzZWQtZmFsbGJhY2snfSkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywg
eydpZCc6ICdjb250ZW50Mid9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdub24tdXNlZC1mYWxsYmFjayd9KSkp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnQid9KSkpKTsKLQotICAgICAgICBhZGRFdmVudExpc3RlbmVycyhbJ3RvcCcsICdBJywgJ0In
LCAnQS8nLCAnQS9jb250ZW50MScsICdBL3VzZWQtZmFsbGJhY2snLCAnQS9jb250ZW50MicsICdB
L25vbi11c2VkLWZhbGxiYWNrJ10pOwotICAgICAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2so
J0EvJykuaWQgPSAnc2hhZG93LXJvb3QnOwotICAgICAgICBzaG93U2FuZGJveFRyZWUoKTsKLQot
ICAgICAgICBtb3ZlTW91c2UoJ0EvdXNlZC1mYWxsYmFjaycsICdBJyk7Ci0gICAgICAgIG1vdmVN
b3VzZSgnQScsICdBL3VzZWQtZmFsbGJhY2snKTsKLQotICAgICAgICBjbGVhckV2ZW50UmVjb3Jk
cygpOwotICAgICAgICBkZWJ1ZygnXG5DbGljayBub24tdXNlZC1mYWxsYmFjayBub2RlJyk7Ci0g
ICAgICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnQS9ub24tdXNlZC1mYWxsYmFjaycpLmNs
aWNrKCk7Ci0gICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdjbGljaycpOwotICAgIDwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFsbHktZmlyZWQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1hbnVhbGx5LWZpcmVkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20t
ZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFsbHktZmlyZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDI0ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNo
aW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToK
LURJVgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9aG9zdAotCQkJRElWCSBp
ZD1kaXYxCi0JCQlESVYJIGlkPWRpdjIKLQotCi0gIG1vdXNlb3V0Ci0KLSAgbW91c2VvdmVyCi0g
ICAgIEBkaXYyICh0YXJnZXQ6IGRpdjIpIChyZWxhdGVkOiBkaXYxKQotICAgICBAc2hhZG93LXJv
b3QgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRpdjEpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFsbHktZmlyZWQtd2l0aC1z
YW1lLXJlbGF0ZWQtdGFyZ2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1tYW51YWxseS1m
aXJlZC13aXRoLXNhbWUtcmVsYXRlZC10YXJnZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNw
YXRjaGluZy1tYW51YWxseS1maXJlZC13aXRoLXNhbWUtcmVsYXRlZC10YXJnZXQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0
IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmli
ZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93
IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9
aG9zdAotCQkJRElWCSBpZD1kaXYxCi0KLQotICBtb3VzZW91dAotCi0gIG1vdXNlb3ZlcgotICAg
ICBAZGl2MSAodGFyZ2V0OiBkaXYxKSAocmVsYXRlZDogZGl2MSkKLSAgICAgQHNoYWRvdy1yb290
ICh0YXJnZXQ6IGRpdjEpIChyZWxhdGVkOiBkaXYxKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1hbnVhbGx5LWZpcmVkLXdpdGgtc2Ft
ZS1yZWxhdGVkLXRhcmdldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1hbnVhbGx5LWZpcmVkLXdpdGgt
c2FtZS1yZWxhdGVkLXRhcmdldC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1tYW51YWxseS1m
aXJlZC13aXRoLXNhbWUtcmVsYXRlZC10YXJnZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwz
OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNhbmRi
b3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+Ci0g
ICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsK
LQotICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ3RvcCd9LAotICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdob3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSkpKSk7Ci0KLSAgICAgICAgYWRkRXZlbnRMaXN0ZW5l
cnMoWyd0b3AnLCAnaG9zdCcsICdob3N0LycsICdob3N0L2RpdjEnXSk7Ci0gICAgICAgIGdldE5v
ZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC8nKS5pZCA9ICdzaGFkb3ctcm9vdCc7Ci0gICAgICAg
IHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAgICAgIHZhciBkaXYxID0gZ2V0Tm9kZUluU2hhZG93
VHJlZVN0YWNrKCdob3N0L2RpdjEnKTsKLQotICAgICAgICBjbGVhckV2ZW50UmVjb3JkcygpOwot
ICAgICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTsK
LSAgICAgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlb3ZlciIsIHRydWUsIGZhbHNlLCB3
aW5kb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEwLCAxMCwgMTAsIDEwLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZGl2MSk7Ci0gICAgICAgIGRpdjEuZGlzcGF0
Y2hFdmVudChldmVudCk7Ci0KLSAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3V0
Jyk7Ci0gICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW92ZXInKTsKLSAgICA8L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1hbnVhbGx5LWZpcmVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20t
ZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFsbHktZmlyZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hp
bmctbWFudWFsbHktZmlyZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAg
IDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2Pgot
ICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBz
YW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLQotICAgICAgICBz
YW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J3RvcCd9LAotICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdo
b3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3Qo
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnZGl2MSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdkaXYyJ30pKSkpKTsKLQotICAgICAgICBhZGRFdmVudExpc3Rl
bmVycyhbJ3RvcCcsICdob3N0JywgJ2hvc3QvJywgJ2hvc3QvZGl2MScsICdob3N0L2RpdjInXSk7
Ci0gICAgICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC8nKS5pZCA9ICdzaGFkb3ct
cm9vdCc7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAgICAgIHZhciBkaXYxID0g
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0L2RpdjEnKTsKLSAgICAgICAgdmFyIGRpdjIg
PSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvZGl2MicpOwotCi0gICAgICAgIGNsZWFy
RXZlbnRSZWNvcmRzKCk7Ci0gICAgICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50
KCJNb3VzZUV2ZW50cyIpOwotICAgICAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2VvdmVy
IiwgdHJ1ZSwgZmFsc2UsIHdpbmRvdywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg
MTAsIDEwLCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBkaXYxKTsKLSAg
ICAgICAgZGl2Mi5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLQotICAgICAgICBkZWJ1Z0Rpc3BhdGNo
ZWRFdmVudCgnbW91c2VvdXQnKTsKLSAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNl
b3ZlcicpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmct
bXVsdGlwbGUtc2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1tdWx0aXBs
ZS1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1tdWx0aXBs
ZS1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAg
QEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhl
IFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAot
CURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9QQotCQkJRElWCSBpZD1CCi0JCQlESVYJIGlkPUQKLQkJ
CURJVgkgaWQ9RgotCi0KLU1vdmluZyBtb3VzZSBmcm9tIEIgdG8gQQotCi0gIG1vdXNlb3V0Ci0g
ICAgIEBCICh0YXJnZXQ6IEIpIChyZWxhdGVkOiBBKQotICAgICBAQyAodGFyZ2V0OiBCKSAocmVs
YXRlZDogQSkKLSAgICAgQG9sZGVyLXNoYWRvdy1yb290ICh0YXJnZXQ6IEIpIChyZWxhdGVkOiBB
KQotICAgICBARSAodGFyZ2V0OiBCKSAocmVsYXRlZDogQSkKLSAgICAgQHlvdW5nZXItc2hhZG93
LXJvb3QgKHRhcmdldDogQikgKHJlbGF0ZWQ6IEEpCi0gICAgIEBBICh0YXJnZXQ6IEIpIChyZWxh
dGVkOiBBKQotICAgICBAdG9wICh0YXJnZXQ6IEIpIChyZWxhdGVkOiBBKQotCi0gIG1vdXNlb3Zl
cgotICAgICBAQSAodGFyZ2V0OiBBKSAocmVsYXRlZDogQikKLSAgICAgQHRvcCAodGFyZ2V0OiBB
KSAocmVsYXRlZDogQikKLQotTW92aW5nIG1vdXNlIGZyb20gQS9EIHRvIEEvL0YKLQotICBtb3Vz
ZW91dAotCi0gIG1vdXNlb3ZlcgotCi1Nb3ZpbmcgbW91c2UgZnJvbSBCIHRvIEEvL0YKLQotICBt
b3VzZW91dAotCi0gIG1vdXNlb3ZlcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW11bHRpcGxlLXNoYWRvdy1yb290cy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRp
c3BhdGNoaW5nLW11bHRpcGxlLXNoYWRvdy1yb290cy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGlu
Zy1tdWx0aXBsZS1zaGFkb3ctcm9vdHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNhbmRib3giPjwv
ZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+Ci0gICAgICAg
IHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLQotICAg
ICAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ3RvcCd9LAotICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdBJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRl
bnQnLCB7J2lkJzogJ0MnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnRCd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnRSd9KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdGJ30pKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ0InfSkp
KSk7Ci0KLSAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnQScsICdCJywgJ0EvJywg
J0EvQycsICdBL0QnLCAnQS8vJywgJ0EvL0UnLCAnQS8vRiddKTsKLSAgICAgICAgZ2V0Tm9kZUlu
U2hhZG93VHJlZVN0YWNrKCdBLycpLmlkID0gJ29sZGVyLXNoYWRvdy1yb290JzsKLSAgICAgICAg
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdBLy8nKS5pZCA9ICd5b3VuZ2VyLXNoYWRvdy1yb290
JzsKLSAgICAgICAgc2hvd1NhbmRib3hUcmVlKCk7Ci0KLSAgICAgICAgbW92ZU1vdXNlKCdCJywg
J0EnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdBL0QnLCAnQS8vRicpOwotICAgICAgICBtb3ZlTW91
c2UoJ0InLCAnQS8vRicpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmctbmVzdGVkLXNoYWRvdy1yb290cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmct
bmVzdGVkLXNoYWRvdy1yb290cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW5l
c3RlZC1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDU0ICsw
LDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMg
dGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJv
eAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9QQotCQkJRElWCSBpZD1CCi0JCQkJRElWCSBpZD1H
Ci0JCQkJCURJVgkgaWQ9SgotCQkJCQkJRElWCSBpZD1DCi0JCQkJCQkJRElWCSBpZD1ECi0JCQkJ
CURJVgkgaWQ9TAotCQkJCQkJRElWCSBpZD1FCi0JCQkJCQkJRElWCSBpZD1GCi0KLQotTW92aW5n
IG1vdXNlIGZyb20gRiB0byBECi0KLSAgbW91c2VvdXQKLQotICBtb3VzZW92ZXIKLQotTW92aW5n
IG1vdXNlIGZyb20gQi9HL0wgdG8gRAotCi0gIG1vdXNlb3V0Ci0KLSAgbW91c2VvdmVyCi0KLU1v
dmluZyBtb3VzZSBmcm9tIEIvRy9MIHRvIEIvRy9KCi0KLSAgbW91c2VvdXQKLQotICBtb3VzZW92
ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gQSB0byBECi0KLSAgbW91c2VvdXQKLQotICBtb3VzZW92
ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gRCB0byBBCi0KLSAgbW91c2VvdXQKLQotICBtb3VzZW92
ZXIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy1uZXN0ZWQtc2hhZG93LXJvb3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbmVzdGVkLXNoYWRv
dy1yb290cy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1uZXN0ZWQtc2hhZG93LXJvb3RzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudC1kaXNwYXRjaGlu
Zy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLSAgICA8ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLSAgICA8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KLSAgICA8c2NyaXB0PgotICAgICAgICB2YXIgc2FuZGJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0KLSAgICAgICAgc2FuZGJveC5hcHBlbmRDaGlsZCgK
LSAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICd0b3AnfSwKLSAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnQSd9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnQid9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnRyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ0onfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ04nLCAnc2VsZWN0JzogJyNDJ30pKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ0snLCAnc2VsZWN0JzogJyND
J30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdMJ30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywgeydp
ZCc6ICdPJywgJ3NlbGVjdCc6ICcjRSd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250
ZW50JywgeydpZCc6ICdNJywgJ3NlbGVjdCc6ICcjRSd9KSkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQn
LCB7J2lkJzogJ0gnLCAnc2VsZWN0JzogJyNDJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lk
JzogJ0knLCAnc2VsZWN0JzogJyNFJ30pKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnQyd9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdEJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdFJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ0YnfSkp
KSkpKTsKLQotICAgICAgICBhZGRFdmVudExpc3RlbmVycyhbJ3RvcCcsICdBJywgJ0InLCAnQycs
ICdEJywgJ0UnLCAnRicsICdCLycsICdCL0cnLCAnQi9IJywgJ0IvSScsICdCL0cvJywgJ0IvRy9K
JywgJ0IvRy9LJywgJ0IvRy9MJywgJ0IvRy9NJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdCL0cvSi8nLCAnQi9HL0ovTicsICdCL0cvTC8nLCAnQi9HL0wvTyddKTsKLSAgICAgICAgZ2V0
Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdCLycpLmlkID0gJ3NoYWRvdy1yb290LUInOwotICAgICAg
ICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ0IvRy8nKS5pZCA9ICdzaGFkb3ctcm9vdC1HJzsK
LSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdCL0cvSi8nKS5pZCA9ICdzaGFkb3ct
cm9vdC1KJzsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdCL0cvTC8nKS5pZCA9
ICdzaGFkb3ctcm9vdC1MJzsKLSAgICAgICAgc2hvd1NhbmRib3hUcmVlKCk7Ci0KLSAgICAgICAg
bW92ZU1vdXNlKCdGJywgJ0QnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdCL0cvTCcsICdEJyk7Ci0g
ICAgICAgIG1vdmVNb3VzZSgnQi9HL0wnLCAnQi9HL0onKTsKLSAgICAgICAgbW92ZU1vdXNlKCdB
JywgJ0QnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdEJywgJ0EnKTsKLSAgICA8L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW5vbi1kaXN0cmlidXRlZC1ub2Rlcy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbm9uLWRpc3RyaWJ1dGVkLW5vZGVzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbm9uLWRpc3RyaWJ1dGVkLW5vZGVzLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBl
dmVudCBkaXNwYXRjaGluZyBiZWhhdmVzIGFzIHRoZSBTaGFkb3cgRE9NIHNwZWMgZGVzY3JpYmVz
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi0KLUNvbXBvc2VkIFNoYWRvdyBU
cmVlIHdpbGwgYmU6Ci1ESVYJIGlkPXNhbmRib3gKLQlESVYJIGlkPXRvcAotCQlESVYJIGlkPUEK
LQkJCURJVgkgaWQ9RAotCi0KLUNsaWNrIEMKLQotICBjbGljawotICAgICBAQyAodGFyZ2V0OiBD
KQotICAgICBAQiAodGFyZ2V0OiBDKQotICAgICBAb3JwaGFuZWQtc2hhZG93LXJvb3QgKHRhcmdl
dDogQykKLSAgICAgQEEgKHRhcmdldDogQSkKLSAgICAgQHRvcCAodGFyZ2V0OiBBKQotCi1DbGlj
ayBub24tZGlzdHJpYnV0ZWQtbm9kZQotCi0gIGNsaWNrCi0gICAgIEBub24tZGlzdHJpYnV0ZWQt
bm9kZSAodGFyZ2V0OiBub24tZGlzdHJpYnV0ZWQtbm9kZSkKLSAgICAgQEEgKHRhcmdldDogbm9u
LWRpc3RyaWJ1dGVkLW5vZGUpCi0gICAgIEB0b3AgKHRhcmdldDogbm9uLWRpc3RyaWJ1dGVkLW5v
ZGUpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0
Y2hpbmctbm9uLWRpc3RyaWJ1dGVkLW5vZGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbm9uLWRpc3Ry
aWJ1dGVkLW5vZGVzLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW5vbi1kaXN0cmlidXRlZC1u
b2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRv
dy1kb20uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnQtZGlz
cGF0Y2hpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Ci0gICAgPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci0gICAgPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFyIHNhbmRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotCi0gICAgICAgIHNhbmRib3guYXBwZW5k
Q2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAndG9wJ30sCi0gICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ0EnfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdCJ30sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ0MnfSkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdEJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ25vbi1kaXN0cmlidXRlZC1ub2RlJ30pKSkpOwotCi0g
ICAgICAgIGFkZEV2ZW50TGlzdGVuZXJzKFsndG9wJywgJ0EnLCAnQS8nLCAnQS9CJywgJ0EvQycs
ICdBLy8nLCAnQS8vRCcsICdub24tZGlzdHJpYnV0ZWQtbm9kZSddKTsKLSAgICAgICAgZ2V0Tm9k
ZUluU2hhZG93VHJlZVN0YWNrKCdBLycpLmlkID0gJ29ycGhhbmVkLXNoYWRvdy1yb290JzsKLSAg
ICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdBLy8nKS5pZCA9ICd5b3VuZ2VzdC1zaGFk
b3ctcm9vdCc7Ci0gICAgICAgIHBhcmVudC5vZmZzZXRMZWZ0OwotICAgICAgICBzaG93U2FuZGJv
eFRyZWUoKTsKLQotICAgICAgICBjbGVhckV2ZW50UmVjb3JkcygpOwotICAgICAgICBkZWJ1Zygn
XG5DbGljayBDJyk7Ci0gICAgICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnQS9DJykuY2xp
Y2soKTsKLSAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ2NsaWNrJyk7Ci0KLSAgICAgICAg
Y2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICAgICAgZGVidWcoJ1xuQ2xpY2sgbm9uLWRpc3RyaWJ1
dGVkLW5vZGUnKTsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vbi1kaXN0cmli
dXRlZC1ub2RlJykuY2xpY2soKTsKLSAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ2NsaWNr
Jyk7Ci0gICAgPC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1zdmct
aW4tc2hhZG93LXN1YnRyZWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLXN2Zy1pbi1zaGFk
b3ctc3VidHJlZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLXN2Zy1pbi1zaGFk
b3ctc3VidHJlZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjQgKzAsMCBAQAot
VGVzdHMgdG8gZW5zdXJlIHRoYXQgZXZlbnQgZGlzcGF0Y2hpbmcgYmVoYXZlcyBhcyB0aGUgU2hh
ZG93IERPTSBzcGVjIGRlc2NyaWJlcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LQotCi0KLUNvbXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6Ci1ESVYJIGlkPXNhbmRib3gKLQlE
SVYJIGlkPXRvcAotCQlESVYJIGlkPXNoYWRvdy1ob3N0Ci0JCQlzdmcJIGlkPXN2Zy1pbi1zaGFk
b3ctdHJlZSBjbGFzcz1bb2JqZWN0IFNWR0FuaW1hdGVkU3RyaW5nXQotCi0KLU1vdmluZyBtb3Vz
ZSBmcm9tIHNoYWRvdy1ob3N0L3N2Zy1pbi1zaGFkb3ctdHJlZSB0byB0b3AKLQotICBtb3VzZW91
dAotCi0gIG1vdXNlb3ZlcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9t
LWV2ZW50LWRpc3BhdGNoaW5nLXN2Zy1pbi1zaGFkb3ctc3VidHJlZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLXN2Zy1pbi1zaGFkb3ctc3VidHJlZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1zdmct
aW4tc2hhZG93LXN1YnRyZWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAg
IDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2Pgot
ICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBz
YW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLQotICAgICAgICBk
ZWJ1ZygiPHN2Zz4gaW4gc2hhZG93IERPTSBzdWJ0cmVlIGlzIG5vdCBzdXBwb3J0ZWQgY3VycmVu
dGx5OiB0aGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guIik7Ci0gICAgICAgIHNh
bmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
dG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3No
YWRvdy1ob3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRv
d1Jvb3QoKSkpKTsKLSAgICAgICAgdmFyIHN2ZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygn
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnc3ZnJyk7Ci0gICAgICAgIHN2Zy5pZCA9ICdz
dmctaW4tc2hhZG93LXRyZWUnOwotICAgICAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3No
YWRvdy1ob3N0LycpLmFwcGVuZENoaWxkKHN2Zyk7Ci0KLSAgICAgICAgYWRkRXZlbnRMaXN0ZW5l
cnMoWyd0b3AnLCAnc2hhZG93LWhvc3QvJywgJ3NoYWRvdy1ob3N0L3N2Zy1pbi1zaGFkb3ctdHJl
ZSddKTsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3ctaG9zdC8nKS5p
ZCA9ICdzaGFkb3ctcm9vdCc7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAgICAg
IG1vdmVNb3VzZSgnc2hhZG93LWhvc3Qvc3ZnLWluLXNoYWRvdy10cmVlJywgJ3RvcCcpOwotICAg
IDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctdGV4dC1ub2RlLWlu
LXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hh
ZG93LXJvb3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4t
c2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAK
LVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNo
YWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAotCURJ
VgkgaWQ9dG9wCi0JCURJVgkgaWQ9c2hhZG93LWhvc3QKLQkJCSN0ZXh0CQotCi0KLU1vdmluZyBt
b3VzZSBmcm9tIGEgZGlyZWN0IGNoaWxkIHRleHQgbm9kZSBvZiB0aGUgc2hhZG93IHJvb3QgdG8g
dG9wCi0KLSAgbW91c2VvdXQKLSAgICAgQHNoYWRvdy1ob3N0ICh0YXJnZXQ6IHNoYWRvdy1ob3N0
KSAocmVsYXRlZDogdG9wKQotICAgICBAdG9wICh0YXJnZXQ6IHNoYWRvdy1ob3N0KSAocmVsYXRl
ZDogdG9wKQotCi0gIG1vdXNlb3ZlcgotICAgICBAdG9wICh0YXJnZXQ6IHRvcCkgKHJlbGF0ZWQ6
IHNoYWRvdy1ob3N0KQotCi0gIHRvdWNoc3RhcnQKLSAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6
IHNoYWRvdy1yb290KSAodG91Y2hlczogc2hhZG93LXJvb3QpICh0YXJnZXRUb3VjaGVzOiBzaGFk
b3ctcm9vdCkgKGNoYW5nZWRUb3VjaGVzOiBzaGFkb3ctcm9vdCkKLSAgICAgQHNoYWRvdy1ob3N0
ICh0YXJnZXQ6IHNoYWRvdy1ob3N0KSAodG91Y2hlczogc2hhZG93LWhvc3QpICh0YXJnZXRUb3Vj
aGVzOiBzaGFkb3ctaG9zdCkgKGNoYW5nZWRUb3VjaGVzOiBzaGFkb3ctaG9zdCkKLSAgICAgQHRv
cCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkgKHRvdWNoZXM6IHNoYWRvdy1ob3N0KSAodGFyZ2V0VG91
Y2hlczogc2hhZG93LWhvc3QpIChjaGFuZ2VkVG91Y2hlczogc2hhZG93LWhvc3QpCi0KLSAgbW91
c2V3aGVlbAotICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogc2hhZG93LXJvb3QpCi0gICAgIEBz
aGFkb3ctaG9zdCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKLSAgICAgQHRvcCAodGFyZ2V0OiBzaGFk
b3ctaG9zdCkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1k
aXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10
ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctdGV4dC1u
b2RlLWluLXNoYWRvdy1yb290Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDYgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9ldmVudC1kaXNwYXRjaGluZy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAg
ICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICA8ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4K
LSAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLSAgICA8c2NyaXB0PgotICAgICAgICB2YXIg
c2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0KLSAgICAgICAg
c2FuZGJveC5hcHBlbmRDaGlsZCgKLSAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICd0b3AnfSwKLSAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
c2hhZG93LWhvc3QnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hh
ZG93Um9vdCgpKSkpOwotICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGdldE5vZGVJblNoYWRvd1Ry
ZWVTdGFjaygnc2hhZG93LWhvc3QvJyk7Ci0gICAgICAgIHNoYWRvd1Jvb3QuaWQgPSAnc2hhZG93
LXJvb3QnOwotICAgICAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICdUZXh0IE5vZGVzJzsKLSAg
ICAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnc2hhZG93LWhvc3QnLCAnc2hhZG93LWhv
c3QvJ10pOwotICAgICAgICBzaG93U2FuZGJveFRyZWUoKTsKLQotICAgICAgICAvLyBDYWxjdWxh
dGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dCBub2RlIGluIHRoZSBzaGFkb3cgcm9vdC4KLSAg
ICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhZG93LWhvc3QnKTsK
LSAgICAgICAgdmFyIHggPSBob3N0Lm9mZnNldExlZnQgKyA1OwotICAgICAgICB2YXIgeSA9IGhv
c3Qub2Zmc2V0VG9wICsgZGVmYXVsdFBhZGRpbmdTaXplICsgNTsKLSAgICAgICAgZGVidWcoJ1xu
JyArICdNb3ZpbmcgbW91c2UgZnJvbSBhIGRpcmVjdCBjaGlsZCB0ZXh0IG5vZGUgb2YgdGhlIHNo
YWRvdyByb290IHRvIHRvcCcpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKLSAgICAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLQotICAgICAgICBtb3ZlTW91c2VPdmVy
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKSk7Ci0gICAgICAgIGRlYnVnRGlzcGF0Y2hl
ZEV2ZW50KCdtb3VzZW91dCcpOwotICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2Vv
dmVyJyk7Ci0KLSAgICAgICAgdG91Y2hMb2NhdGlvbihob3N0KTsKLSAgICAgICAgZGVidWdEaXNw
YXRjaGVkRXZlbnQoJ3RvdWNoc3RhcnQnKTsKLQotICAgICAgICBzY3JvbGxNb3VzZVdoZWVsKGhv
c3QpOwotICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2V3aGVlbCcpOwotICAgIDwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1kb20tbW91c2UtZXZlbnQtYWRqdXN0LW9mZnNldC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1k
b20tbW91c2UtZXZlbnQtYWRqdXN0LW9mZnNldC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLW1vdXNlLWV2ZW50
LWFkanVzdC1vZmZzZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1ICswLDAg
QEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IE1vdXNlRXZlbnQncyBvZmZzZXRYIGFuZCBvZmZzZXRZ
IGFyZSBhZGp1c3RlZCBpbiByZS10YXJnZXRpbmcuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIGV2ZW50UmVjb3Jkc1sncGFyZW50J11bJ29mZnNldFknXSBpcyA1Ci1QQVNT
IGV2ZW50UmVjb3Jkc1snc2hhZG93LWhvc3QnXVsnb2Zmc2V0WSddIGlzIDUgKyAyMAotUEFTUyBl
dmVudFJlY29yZHNbJ3RvcCddWydvZmZzZXRZJ10gaXMgNSArIDIwCi1QQVNTIGV2ZW50UmVjb3Jk
c1sncGFyZW50J11bJ29mZnNldFgnXSBpcyA4MCAvIDIKLVBBU1MgZXZlbnRSZWNvcmRzWydzaGFk
b3ctaG9zdCddWydvZmZzZXRYJ10gaXMgODAgLyAyICsgMTAwCi1QQVNTIGV2ZW50UmVjb3Jkc1sn
dG9wJ11bJ29mZnNldFgnXSBpcyA4MCAvIDIgKyAxMDAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWRvbS1tb3VzZS1ldmVudC1hZGp1c3Qtb2Zmc2V0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tbW91c2UtZXZlbnQt
YWRqdXN0LW9mZnNldC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1tb3VzZS1ldmVudC1hZGp1c3Qtb2Zmc2V0Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsODAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9InNhbmRi
b3giPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotZGVzY3JpcHRp
b24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IE1vdXNlRXZlbnQncyBvZmZzZXRYIGFuZCBvZmZzZXRZ
IGFyZSBhZGp1c3RlZCBpbiByZS10YXJnZXRpbmcuIik7Ci0KLWZ1bmN0aW9uIG1vdmVNb3VzZU92
ZXIoZWxlbWVudCkKLXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93Lmlu
dGVybmFscykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmFyIHggPSBlbGVtZW50Lm9mZnNldExl
ZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICB2YXIgeSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOwotfQotCi12YXIgZXZlbnRSZWNvcmRzID0ge307Ci0KLWZ1bmN0aW9uIHJlY29y
ZEV2ZW50KGV2ZW50KQotewotICAgIHZhciBldmVudFR5cGUgPSBldmVudC50eXBlCi0gICAgdmFy
IGV2ZW50UmVjb3JkID0ge30KLSAgICBldmVudFJlY29yZFsnY3VycmVudFRhcmdldCddID0gZXZl
bnQuY3VycmVudFRhcmdldC5pZAotICAgIGV2ZW50UmVjb3JkWyd0YXJnZXQnXSA9IGV2ZW50LnRh
cmdldC5pZAotICAgIGV2ZW50UmVjb3JkWydvZmZzZXRYJ10gPSBldmVudC5vZmZzZXRYOwotICAg
IGV2ZW50UmVjb3JkWydvZmZzZXRZJ10gPSBldmVudC5vZmZzZXRZOwotICAgIGV2ZW50UmVjb3Jk
c1tldmVudC5jdXJyZW50VGFyZ2V0LmlkXSA9IGV2ZW50UmVjb3JkOwotfQotCi1mdW5jdGlvbiBh
ZGRFdmVudExpc3RlbmVycyhub2RlcykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBub2RlID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0
YWNrKG5vZGVzW2ldKTsKLSAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXIn
LCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdE1vdXNlRXZl
bnRPZmZzZXQoKQotewotICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NhbmRib3gnKTsKLSAgICBzYW5kYm94LmlubmVySFRNTCA9ICcnOwotICAgIHNhbmRib3guYXBw
ZW5kQ2hpbGQoCi0gICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICd0b3AnLCAnc3R5bGUn
OiAncGFkZGluZy10b3A6IDc3cHg7J30sCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnc2hhZG93LWhvc3QnLCAnc3R5bGUnOiAncGFkZGluZy1sZWZ0OiAxMDBweDsg
cGFkZGluZy10b3A6IDIwcHgnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVT
aGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAncGFyZW50J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAndGFyZ2V0JywgJ3N0eWxlJzogJ3BhZGRp
bmctdG9wOiAxMHB4OyB3aWR0aDogODBweCd9KSkpKSkpOwotICAgIGFkZEV2ZW50TGlzdGVuZXJz
KFsndG9wJywgJ3NoYWRvdy1ob3N0JywgJ3NoYWRvdy1ob3N0L3BhcmVudCddKTsKLSAgICBzYW5k
Ym94Lm9mZnNldExlZnQ7Ci0gICAgbW92ZU1vdXNlT3ZlcihnZXROb2RlSW5TaGFkb3dUcmVlU3Rh
Y2soJ3NoYWRvdy1ob3N0L3RhcmdldCcpKTsKLQotICAgIHNob3VsZEJlKCJldmVudFJlY29yZHNb
J3BhcmVudCddWydvZmZzZXRZJ10iLCAiNSIpOwotICAgIHNob3VsZEJlKCJldmVudFJlY29yZHNb
J3NoYWRvdy1ob3N0J11bJ29mZnNldFknXSIsICI1ICsgMjAiKTsKLSAgICBzaG91bGRCZSgiZXZl
bnRSZWNvcmRzWyd0b3AnXVsnb2Zmc2V0WSddIiwgIjUgKyAyMCIpOwotCi0gICAgc2hvdWxkQmUo
ImV2ZW50UmVjb3Jkc1sncGFyZW50J11bJ29mZnNldFgnXSIsICI4MCAvIDIiKTsKLSAgICBzaG91
bGRCZSgiZXZlbnRSZWNvcmRzWydzaGFkb3ctaG9zdCddWydvZmZzZXRYJ10iLCAiODAgLyAyICsg
MTAwIik7Ci0gICAgc2hvdWxkQmUoImV2ZW50UmVjb3Jkc1sndG9wJ11bJ29mZnNldFgnXSIsICI4
MCAvIDIgKyAxMDAiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIHRlc3RN
b3VzZUV2ZW50T2Zmc2V0KCk7Ci19Ci0KLXRlc3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1keW5hbWlj
LXN0eWxlLWNoYW5nZS12aWEtbXV0YXRpb24tYW5kLXNlbGVjdG9yLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWR5bmFtaWMtc3R5
bGUtY2hhbmdlLXZpYS1tdXRhdGlvbi1hbmQtc2VsZWN0b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWR5bmFtaWMt
c3R5bGUtY2hhbmdlLXZpYS1tdXRhdGlvbi1hbmQtc2VsZWN0b3ItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1keW5hbWljLXN0eWxlLWNoYW5nZS12aWEtbXV0YXRpb24tYW5kLXNlbGVjdG9y
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1k
eW5hbWljLXN0eWxlLWNoYW5nZS12aWEtbXV0YXRpb24tYW5kLXNlbGVjdG9yLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZHluYW1p
Yy1zdHlsZS1jaGFuZ2UtdmlhLW11dGF0aW9uLWFuZC1zZWxlY3Rvci5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMyICswLDAgQEAKLTxzdHlsZT4KLS5iYXo6bnRoLWxhc3QtY2hpbGQob2RkKSB7
IGRpc3BsYXk6IGJsb2NrOyAgfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkg
ewotICAgIHZhciBmb28gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZm9vKTsKLQotICAgIHZhciBiYXIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgYmFyU2hhZG93ID0gYmFyLndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBiYXIuc2V0QXR0cmlidXRlKCdjbGFzcycsICdi
YXInKTsKLSAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoYmFyKTsKLQot
ICAgIGJheiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICBiYXouc2V0QXR0
cmlidXRlKCdjbGFzcycsICdiYXonKTsKLSAgICBiYXIuYXBwZW5kQ2hpbGQoYmF6KTsKLQotICAg
IHZhciBxdXggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBiYXIuYXBwZW5k
Q2hpbGQocXV4KTsKLQotICAgIHZhciBpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRv
dycpOwotICAgIGJhclNoYWRvdy5hcHBlbmRDaGlsZChpcCk7Ci0KLSAgICBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQub2Zmc2V0TGVmdDsKLSAgICBmb28uYXBwZW5kQ2hpbGQocXV4KTsKLSAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci10ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLXdpbmRvdy5vbmxvYWQgPSB0ZXN0OwotPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWVsZW1lbnQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTIgKzAsMCBAQAotVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCB0aGUgc2hhZG93IGVs
ZW1lbnQgaXMgYXZhaWxhYmxlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBzaGFkb3cubm9kZU5hbWUgaXMgJ1NIQURPVycKLVBBU1MgMCA8PSBzaGFkb3cuY29uc3RydWN0
b3IudG9TdHJpbmcoKS5pbmRleE9mKCdIVE1MU2hhZG93RWxlbWVudCcpIGlzIHRydWUKLVBBU1Mg
d2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctbXVsdGlwbGUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZWxlbWVudC1yZW5kZXJpbmctbXVsdGlwbGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWVsZW1lbnQtcmVuZGVy
aW5nLW11bHRpcGxlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBA
Ci1yZW5kZXJpbmdEb3VibGVTaGFkb3dSb290Ci1QQVNTCi1yZW5kZXJpbmdEb3VibGVTaGFkb3dS
b290V2l0aE9uZVNoYWRvd0VsZW1lbnQKLVBBU1MKLXJlbmRlcmluZ1RyaXBsZVNoYWRvd1Jvb3QK
LVBBU1MKLXJlbmRlcmluZ1R3b1NoYWRvd1Jvb3RzCi1QQVNTCi10ZXN0V2l0aERvdWJsZVNoYWRv
d1Jvb3RXaXRoQ29udGVudDEKLVBBU1MKLXRlc3RXaXRoRG91YmxlU2hhZG93Um9vdFdpdGhDb250
ZW50MgotUEFTUwotcmVuZGVyaW5nRG91YmxlU2hhZG93Um9vdER5bmFtaWNhbGx5QWRkZWQxCi1Q
QVNTCi1yZW5kZXJpbmdEb3VibGVTaGFkb3dSb290RHluYW1pY2FsbHlBZGRlZDIKLVBBU1MKLXJl
bmRlcmluZ0RvdWJsZVNoYWRvd1Jvb3REeW5hbWljYWxseUFkZGVkMwotUEFTUwotcmVuZGVyaW5n
RG91YmxlU2hhZG93Um9vdER5bmFtaWNhbGx5UmVtb3ZlZDEKLVBBU1MKLXJlbmRlcmluZ0RvdWJs
ZVNoYWRvd1Jvb3REeW5hbWljYWxseVJlbW92ZWQyCi1QQVNTCi1yZW5kZXJpbmdMaWdodENoaWxk
cmVuRHluYW1pY2FsbHlBZGRlZAotUEFTUwotcmVuZGVyaW5nT2xkZXJTaGFkb3dSb290Q29udGVu
dER5bmFtaWNhbGx5QWRkZWQKLVBBU1MKLXJlbmRlcmluZ0xpZ2h0Q2hpbGRyZW5EeW5hbWljYWxs
eVJlbW92ZWQKLVBBU1MKLXJlbmRlcmluZ09sZGVyU2hhZG93Um9vdENvbnRlbnREeW5hbWljYWxs
eVJlbW92ZWQKLVBBU1MKLVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctbXVsdGlwbGUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWVsZW1lbnQtcmVuZGVy
aW5nLW11bHRpcGxlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctbXVsdGlwbGUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0MzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJl
bmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0K
LS5zcGFuIHsKLSAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0g
ICAgYm9yZGVyOiBzb2xpZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3NoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIHRlc3RGdW5j
cyA9IFtdOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdEb3VibGVTaGFkb3dS
b290KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNv
bnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFu
PjxzcGFuPkJFRk9SRSAxPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5BRlRFUiAxPC9zcGFu
PjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0
aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMScp
KTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jykp
OwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDEnKSk7Ci0K
LSAgICB2YXIgc3IyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IyLmFw
cGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDInKSk7Ci0gICAgc3IyLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBzcjIuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAyJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLSAgICBj
YWxsSWZEb25lKCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gcmVuZGVyaW5nRG91
YmxlU2hhZG93Um9vdFdpdGhPbmVTaGFkb3dFbGVtZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAg
ICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9zcGFuPjxzcGFu
PkFGVEVSIDE8L3NwYW4+PHNwYW4+QUZURVIgMjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgLy8gTUlE
IHdvbid0IGJlIHJlbmRlcmVkLgotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcp
KTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBz
cjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMScpKTsKLSAgICBzcjEu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAxJykpOwotCi0gICAgdmFyIHNy
MiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0
ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgp
OwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ1RyaXBsZVNoYWRvd1Jv
b3QoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29u
dGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFIDM8L3NwYW4+
PHNwYW4+QkVGT1JFIDI8L3NwYW4+PHNwYW4+QkVGT1JFIDE8L3NwYW4+IiArCi0gICAgICAgICI8
c3Bhbj5NSUQ8L3NwYW4+IiArCi0gICAgICAgICI8c3Bhbj5BRlRFUiAxPC9zcGFuPjxzcGFuPkFG
VEVSIDI8L3NwYW4+PHNwYW4+QUZURVIgMzwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0JFRk9SRSAxJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzaGFkb3cnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZU
RVIgMScpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicpKTsKLSAg
ICBzcjIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93JykpOwotICAg
IHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDInKSk7Ci0KLSAgICB2
YXIgc3IzID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IzLmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDMnKSk7Ci0gICAgc3IzLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBzcjMuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAzJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLSAgICBjYWxsSWZE
b25lKCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gcmVuZGVyaW5nVHdvU2hhZG93
Um9vdHMoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3Qt
Y29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFIDI8L3Nw
YW4+IiArCi0gICAgICAgICAgICAiPHNwYW4+QkVGT1JFIDE8L3NwYW4+PHNwYW4+TUlEPC9zcGFu
PjxzcGFuPkFGVEVSIDE8L3NwYW4+IiArCi0gICAgICAgICAgICAiPHNwYW4+RkFMTEJBQ0sgMi0y
PC9zcGFuPiIgKwotICAgICAgICAiPHNwYW4+QUZURVIgMjwvc3Bhbj48L2Rpdj4iOwotCi0gICAg
dmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0JFRk9SRSAxJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnQUZURVIgMScpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgICB2YXIgc2hhZG93MjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFk
b3cnKTsKLSAgICBzaGFkb3cyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0ZBTExC
QUNLIDItMScpKTsKLSAgICB2YXIgc2hhZG93MjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
aGFkb3cnKTsKLSAgICBzaGFkb3cyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0ZB
TExCQUNLIDItMicpKTsKLQotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChzaGFkb3cyMSk7Ci0gICAgc3IyLmFw
cGVuZENoaWxkKHNoYWRvdzIyKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdBRlRFUiAyJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1j
b250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLSAgICBjYWxsSWZEb25lKCk7Ci19KTsKLQot
dGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gdGVzdFdpdGhEb3VibGVTaGFkb3dSb290V2l0aENvbnRl
bnQxKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNv
bnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFu
PjxzcGFuPk1JRCAyPC9zcGFuPiIgKwotICAgICAgICAiPHNwYW4+QkVGT1JFIDE8L3NwYW4+PHNw
YW4+TUlEIDE8L3NwYW4+PHNwYW4+TUlEIDM8L3NwYW4+PHNwYW4+QUZURVIgMTwvc3Bhbj4iICsK
LSAgICAgICAgIjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoJ01JRCAzJywgJ3NyMycpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnTUlEIDEnLCAnc3IxJykpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdNSUQgMicsICdzcjInKSk7Ci0KLSAgICB2YXIgc2hhZG93MSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIHNoYWRvdzEuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSEFET1cgRkFMTEJBQ0sgMScpKTsKLSAgICB2YXIgc3Ix
ID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7Ci0gICAgdmFyIGNvbnRlbnQxID0gY3JlYXRl
Q29udGVudFdpdGhTZWxlY3QoJy5zcjEnLCAnQ09OVEVOVCBGQUxMQkFDSyAxJyk7Ci0gICAgc3Ix
LmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoc2hhZG93MSk7Ci0g
ICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAg
IHZhciBzaGFkb3cyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgc2hh
ZG93Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NIQURPVyBGQUxMQkFDSyAyJykp
OwotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicpKTsKLSAgICB2YXIgY29u
dGVudDsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2Vs
ZWN0KCcuc3IyJywgJ0NPTlRFTlQgRkFMTEJBQ0sgMicpKTsKLSAgICBjb250ZW50LnRpdGxlID0g
ImRlYnVnc3RvcCI7Ci0gICAgc3IyLmFwcGVuZENoaWxkKHNoYWRvdzIpOwotICAgIHNyMi5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDInKSk7Ci0KLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotICAg
IGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiB0ZXN0V2l0aERv
dWJsZVNoYWRvd1Jvb3RXaXRoQ29udGVudDIoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxk
aXY+PHNwYW4+QkVGT1JFIDI8L3NwYW4+PHNwYW4+TUlEIDI8L3NwYW4+PHNwYW4+TUlEIDM8L3Nw
YW4+PHNwYW4+TUlEIDE8L3NwYW4+IiArCi0gICAgICAgICI8c3Bhbj5CRUZPUkUgMTwvc3Bhbj48
c3Bhbj5DT05URU5UIEZBTExCQUNLIDE8L3NwYW4+PHNwYW4+U0hBRE9XIEZBTExCQUNLIDE8L3Nw
YW4+PHNwYW4+QUZURVIgMTwvc3Bhbj4iICsKLSAgICAgICAgIjxzcGFuPkFGVEVSIDI8L3NwYW4+
PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCAzJywgJ3NyMycp
KTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEIDEnLCAnc3Ix
JykpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQgMicsICdz
cjInKSk7Ci0KLSAgICB2YXIgc2hhZG93MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRv
dycpOwotICAgIHNoYWRvdzEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSEFET1cg
RkFMTEJBQ0sgMScpKTsKLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7
Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuc3IxJywgJ0NP
TlRFTlQgRkFMTEJBQ0sgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoc2hhZG93MSk7Ci0gICAg
c3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAgIHZh
ciBzaGFkb3cyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93
Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NIQURPVyBGQUxMQkFDSyAyJykpOwot
ICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicpKTsKLSAgICBzcjIuYXBwZW5k
Q2hpbGQoY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5zcjInLCAnQ09OVEVOVCBGQUxMQkFDSyAy
JykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3Bhbics
ICdDT05URU5UIEZBTExCQUNLIDMnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKHNoYWRvdzIpOwot
ICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDInKSk7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxk
KHJvb3QpOwotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlv
biByZW5kZXJpbmdEb3VibGVTaGFkb3dSb290RHluYW1pY2FsbHlBZGRlZDEoY2FsbElmRG9uZSkg
ewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJI
VE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFIDI8L3NwYW4+PHNwYW4+QkVGT1JFIDE8
L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVSIDE8L3NwYW4+PHNwYW4+QUZURVIgMjwv
c3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwot
Ci0gICAgdmFyIHNyMSA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5h
cHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAxJykpOwotICAgIHNyMS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IxLmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAg
ICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjYWxsSWZEb25lKSB7IHJldHVybiBmdW5jdGlvbigp
IHsKLSAgICAgICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAg
ICAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicpKTsKLSAg
ICAgICAgc3IyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsK
LSAgICAgICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsK
LQotICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgfTt9KShyb290LCBjYWxsSWZEb25lKTsKLQot
ICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gcmVu
ZGVyaW5nRG91YmxlU2hhZG93Um9vdER5bmFtaWNhbGx5QWRkZWQyKGNhbGxJZkRvbmUpIHsKLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9
Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9zcGFu
PjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5BRlRFUiAxPC9zcGFuPjxzcGFuPkFGVEVSIDI8L3NwYW4+
PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAg
IHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93JykpOwotICAgIHNyMS5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDEnKSk7Ci0KLSAgICB2YXIgc3IyID0gcm9vdC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgnQkVGT1JFIDInKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnQUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwt
Y29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihz
cjIsIGNhbGxJZkRvbmUpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc2hhZG93
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgICAgIHNyMi5pbnNlcnRC
ZWZvcmUoc2hhZG93LCBzcjIubGFzdENoaWxkKTsKLQotICAgICAgICBjYWxsSWZEb25lKCkKLSAg
ICB9O30pKHNyMiwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfSk7Ci0K
LXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ0RvdWJsZVNoYWRvd1Jvb3REeW5hbWlj
YWxseUFkZGVkMyhjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4
cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkUg
Mjwvc3Bhbj48c3Bhbj5CRUZPUkUgMTwvc3Bhbj48c3Bhbj5NSUQ8L3NwYW4+PHNwYW4+QUZURVIg
MTwvc3Bhbj48c3Bhbj5BRlRFUiAyPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVG
T1JFIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIg
MScpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAg
ICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicpKTsKLSAgICBz
cjIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93JykpOwotICAgIHNy
Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDInKSk7Ci0KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3Qp
OwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24oc3IxLCBjYWxsSWZEb25lKSB7IHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3No
YWRvdycpOwotICAgICAgICBzcjEuaW5zZXJ0QmVmb3JlKHNoYWRvdywgc3IxLmxhc3RDaGlsZCk7
Ci0KLSAgICAgICAgY2FsbElmRG9uZSgpCi0gICAgfTt9KShzcjEsIGNhbGxJZkRvbmUpOwotCi0g
ICAgc2V0VGltZW91dChmLCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5k
ZXJpbmdEb3VibGVTaGFkb3dSb290RHluYW1pY2FsbHlSZW1vdmVkMShjYWxsSWZEb25lKSB7Ci0g
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwg
PQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkUgMjwvc3Bhbj48c3Bhbj5BRlRFUiAyPC9zcGFu
PjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0KLSAg
ICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBzcjEuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAxJykpOwotCi0gICAgdmFyIHNyMiA9IHJvb3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnQUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwt
Y29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihz
cjIsIGNhbGxJZkRvbmUpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBzcjIucmVtb3Zl
Q2hpbGQoc3IyLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmcpOwotICAgICAgICBjYWxsSWZEb25lKCk7
Ci0gICAgfTt9KShzcjIsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0p
OwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdEb3VibGVTaGFkb3dSb290RHlu
YW1pY2FsbHlSZW1vdmVkMihjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5C
RUZPUkUgMjwvc3Bhbj48c3Bhbj5CRUZPUkUgMTwvc3Bhbj48c3Bhbj5BRlRFUiAxPC9zcGFuPjxz
cGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ01JRCcpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMScpKTsK
LSAgICBzcjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93JykpOwot
ICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDEnKSk7Ci0KLSAg
ICB2YXIgc3IyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IyLmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDInKSk7Ci0gICAgc3IyLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBzcjIuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAyJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZh
ciBmID0gKGZ1bmN0aW9uKHNyMSwgY2FsbElmRG9uZSkgeyByZXR1cm4gZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHNyMS5yZW1vdmVDaGlsZChzcjEuZmlyc3RDaGlsZC5uZXh0U2libGluZyk7Ci0gICAg
ICAgIGNhbGxJZkRvbmUoKTsKLSAgICB9O30pKHNyMSwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRU
aW1lb3V0KGYsIDApOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ0xp
Z2h0Q2hpbGRyZW5EeW5hbWljYWxseUFkZGVkKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8
ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9zcGFuPjxzcGFuPk1JRDwv
c3Bhbj48c3Bhbj5BRlRFUiAxPC9zcGFuPjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQot
ICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICB2YXIg
c3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3Jl
YXRlU3BhbldpdGhUZXh0KCdBRlRFUiAxJykpOwotCi0gICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgn
QUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFp
bmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBj
YWxsSWZEb25lKSB7IHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgcm9vdC5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLSAgICAgICAgY2FsbElmRG9uZSgpOwotICAg
IH07fSkocm9vdCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfSk7Ci0K
LXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ09sZGVyU2hhZG93Um9vdENvbnRlbnRE
eW5hbWljYWxseUFkZGVkKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJF
Rk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5B
RlRFUiAxPC9zcGFuPjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCdCRUZPUkUgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2hhZG93JykpOwotCi0gICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAyJykp
OwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7
Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsKLQot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hp
bGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihzcjEsIGNhbGxJZkRvbmUpIHsgcmV0
dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdBRlRFUiAxJykpOwotICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgfTt9KShzcjEsIGNh
bGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVz
aChmdW5jdGlvbiByZW5kZXJpbmdMaWdodENoaWxkcmVuRHluYW1pY2FsbHlSZW1vdmVkKGNhbGxJ
ZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicp
LmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJF
Rk9SRSAxPC9zcGFuPjxzcGFuPkFGVEVSIDE8L3NwYW4+PHNwYW4+QUZURVIgMjwvc3Bhbj48L2Rp
dj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFy
IHNyMSA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAxJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdCRUZPUkUgMicpKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2hhZG93JykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0FGVEVSIDInKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRh
aW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwg
Y2FsbElmRG9uZSkgeyByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJvb3QucmVtb3ZlQ2hp
bGQocm9vdC5maXJzdENoaWxkKTsKLSAgICAgICAgY2FsbElmRG9uZSgpOwotICAgIH07fSkocm9v
dCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfSk7Ci0KLXRlc3RGdW5j
cy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ09sZGVyU2hhZG93Um9vdENvbnRlbnREeW5hbWljYWxs
eVJlbW92ZWQoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFIDI8
L3NwYW4+PHNwYW4+QkVGT1JFIDE8L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVSIDE8
L3NwYW4+PHNwYW4+QUZURVIgMjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9S
RSAxJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFk
b3cnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScp
KTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSE9VTEQgTk9UIEJF
IFJFTkRFUkVEJykpOwotCi0gICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAyJykp
OwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7
Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsKLQot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hp
bGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihzcjEsIGNhbGxJZkRvbmUpIHsgcmV0
dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBzcjEucmVtb3ZlQ2hpbGQoc3IxLmxhc3RDaGlsZCk7
Ci0gICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICB9O30pKHNyMSwgY2FsbElmRG9uZSk7Ci0KLSAg
ICBzZXRUaW1lb3V0KGYsIDApOwotfSk7Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJkb1Rlc3QodGVzdEZ1bmNzKSI+Ci0KLTxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNs
YXNzPSJjb250YWluZXIiPjwvZGl2PgotPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9
ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1lbGVtZW50
LXJlbmRlcmluZy1zaW5nbGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctc2luZ2xlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1lbGVtZW50LXJlbmRlcmluZy1zaW5nbGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDIyICswLDAgQEAKLXJlbmRlcmluZ1NpbmdsZVNoYWRvd1Jvb3QKLVBBU1MKLXJlbmRl
cmluZ05vdEZhbGxiYWNrZWQKLVBBU1MKLXJlbmRlcmluZ0ZhbGxiYWNrZWQKLVBBU1MKLXJlbmRl
cmluZ01peGVkT2ZGYWxsYmFja0FuZE5vbkZhbGxiYWNrCi1QQVNTCi1yZW5kZXJpbmdTaGFkb3dS
b290QmVmb3JlQ29udGVudAotUEFTUwotcmVuZGVyaW5nU2hhZG93Um9vdEFmdGVyQ29udGVudAot
UEFTUwotcmVuZGVyaW5nU2hhZG93RWxlbWVudER5bmFtaWNhbGx5QWRkZWQKLVBBU1MKLXJlbmRl
cmluZ1NoYWRvd0VsZW1lbnREeW5hbWljYWxseVJlbW92ZWQKLVBBU1MKLXJlbmRlcmluZ0xpZ2h0
Q2hpbGRyZW5EeW5hbWljYWxseUFkZGVkCi1QQVNTCi1yZW5kZXJpbmdMaWdodENoaWxkcmVuRHlu
YW1pY2FsbHlSZW1vdmVkCi1QQVNTCi1URVNUIENPTVBMRVRFRAotCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWVsZW1lbnQtcmVuZGVyaW5nLXNpbmdsZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1y
ZW5kZXJpbmctc2luZ2xlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctc2luZ2xlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzdHlsZT4KLS8qIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBS
ZW5kZXJMYXllciAqLwotLmNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQot
Ci0uc3BhbiB7Ci0gICAgZGlzcGxheTogYm94ZWQtaW5saW5lOwotICAgIG1hcmdpbjogMnB4Owot
ICAgIGJvcmRlcjogc29saWQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9zaGFkb3ctdGVzdC1kcml2ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB0ZXN0RnVu
Y3MgPSBbXTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gcmVuZGVyaW5nU2luZ2xlU2hhZG93
Um9vdChjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1j
b250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+
PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9v
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0KLSAgICB2YXIgc3IgPSByb290LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0JFRk9SRScpKTsKLSAgICBzci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
aGFkb3cnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUicp
KTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNo
KGZ1bmN0aW9uIHJlbmRlcmluZ05vdEZhbGxiYWNrZWQoY2FsbElmRG9uZSkgewotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAg
ICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5BRlRFUjwv
c3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwot
Ci0gICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAg
IHNoYWRvdy5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0ZBTExCQUNLJykpOwotICAg
IHZhciBzciA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyLmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFJykpOwotICAgIHNyLmFwcGVuZENoaWxkKHNo
YWRvdyk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUicpKTsK
LQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5k
Q2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1
bmN0aW9uIHJlbmRlcmluZ0ZhbGxiYWNrZWQoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxk
aXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkZBTExCQUNLPC9zcGFuPjxzcGFuPkFGVEVSPC9z
cGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwotCi0gICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycp
OwotICAgIHNoYWRvdy5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0ZBTExCQUNLJykp
OwotICAgIHZhciBzciA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyLmFw
cGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFJykpOwotICAgIHNyLmFwcGVuZENo
aWxkKHNoYWRvdyk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRF
UicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJyku
YXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5w
dXNoKGZ1bmN0aW9uIHJlbmRlcmluZ01peGVkT2ZGYWxsYmFja0FuZE5vbkZhbGxiYWNrKGNhbGxJ
ZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicp
LmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5NSUQ8
L3NwYW4+PHNwYW4+RkFMTEJBQ0sgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwot
Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNoYWRv
dzEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cxLmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnRkFMTEJBQ0sgMScpKTsKLSAgICB2YXIgc2hhZG93
MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIHNoYWRvdzIuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdGQUxMQkFDSyAyJykpOwotCi0gICAgdmFyIHNyID0g
cm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoc2hhZG93MSk7Ci0g
ICAgc3IuYXBwZW5kQ2hpbGQoc2hhZG93Mik7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCdBRlRFUicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgpOwotfSk7
Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ1NoYWRvd1Jvb3RCZWZvcmVDb250
ZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNv
bnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48
c3Bhbj5TSEFET1cgRkFMTEJBQ0s8L3NwYW4+PHNwYW4+TSAxPC9zcGFuPjxzcGFuPk1JRDwvc3Bh
bj48c3Bhbj5NIDI8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciBy
b290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBzaGFkb3cgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdTSEFET1cgRkFMTEJBQ0snKSk7Ci0gICAgdmFyIHNyID0gcm9vdC53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoc2hhZG93KTsKLSAgICBzci5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ00gMScpKTsKLSAgICBzci5hcHBlbmRDaGlsZChj
cmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdDT05URU5UIEZBTExCQUNLJykpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTSAyJykpOwotICAgIHNyLmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVInKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotICAgIGNh
bGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdTaGFk
b3dSb290QWZ0ZXJDb250ZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFu
PkJFRk9SRTwvc3Bhbj48c3Bhbj5NSUQ8L3NwYW4+PHNwYW4+TSAxPC9zcGFuPjxzcGFuPlNIQURP
VyBGQUxMQkFDSzwvc3Bhbj48c3Bhbj5NIDI8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+
IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
cm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBz
aGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSEFET1cgRkFMTEJBQ0snKSk7Ci0gICAgdmFy
IHNyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRl
Q29udGVudFdpdGhTZWxlY3QoJ3NwYW4nLCAnQ09OVEVOVCBGQUxMQkFDSycpKTsKLSAgICBzci5h
cHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ00gMScpKTsKLSAgICBzci5hcHBlbmRDaGls
ZChzaGFkb3cpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTSAyJykp
OwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVInKSk7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxk
KHJvb3QpOwotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlv
biByZW5kZXJpbmdTaGFkb3dFbGVtZW50RHluYW1pY2FsbHlBZGRlZChjYWxsSWZEb25lKSB7Ci0g
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwg
PQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFu
PkFGVEVSPC9zcGFuPjwvZGl2PiIKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FG
VEVSJykpOwotCi0gICAgdmFyIHNyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0g
ICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3Iu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0KLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0g
ICAgdmFyIGYgPSAoZnVuY3Rpb24oY2FsbElmRG9uZSwgcm9vdCwgc3IpIHsgcmV0dXJuIGZ1bmN0
aW9uKCkgewotICAgICAgICB2YXIgc2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hh
ZG93Jyk7Ci0gICAgICAgIHNyLmFwcGVuZENoaWxkKHNoYWRvdyk7Ci0gICAgICAgIGNhbGxJZkRv
bmUoKTsKLSAgICB9fSkoY2FsbElmRG9uZSwgcm9vdCwgc3IpOwotCi0gICAgc2V0VGltZW91dChm
LCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdTaGFkb3dFbGVt
ZW50RHluYW1pY2FsbHlSZW1vdmVkKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2Pjxz
cGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iCi0KLSAgICB2YXIgcm9v
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotCi0gICAgdmFy
IHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotCi0gICAgdmFyIHNy
ID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3Jl
YXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoc2hhZG93KTsK
LSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSJykpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChy
b290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKGNhbGxJZkRvbmUsIHNyLCBzaGFkb3cpIHsg
cmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBzci5yZW1vdmVDaGlsZChzaGFkb3cpOwotICAg
ICAgICBjYWxsSWZEb25lKCk7Ci0gICAgfX0pKGNhbGxJZkRvbmUsIHNyLCBzaGFkb3cpOwotCi0g
ICAgc2V0VGltZW91dChmLCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5k
ZXJpbmdMaWdodENoaWxkcmVuRHluYW1pY2FsbHlBZGRlZChjYWxsSWZEb25lKSB7Ci0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAg
ICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVS
PC9zcGFuPjwvZGl2PiIKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0KLSAgICB2YXIgc3IgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAg
ICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRScpKTsKLSAgICBzci5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUicpKTsKLQotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAg
ICB2YXIgZiA9IChmdW5jdGlvbihjYWxsSWZEb25lLCByb290KSB7IHJldHVybiBmdW5jdGlvbigp
IHsKLSAgICAgICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsK
LSAgICAgICAgY2FsbElmRG9uZSgpOwotICAgIH19KShjYWxsSWZEb25lLCByb290KTsKLQotICAg
IHNldFRpbWVvdXQoZiwgMCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gcmVuZGVy
aW5nTGlnaHRDaGlsZHJlbkR5bmFtaWNhbGx5UmVtb3ZlZChjYWxsSWZEb25lKSB7Ci0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAg
ICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVS
PC9zcGFuPjwvZGl2PiIKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NIT1VMRCBO
T1QgQkUgUkVOREVSRUQnKSk7Ci0KLSAgICB2YXIgc2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgnTUlEJykpOwotCi0gICAgdmFyIHNyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAg
c3IuYXBwZW5kQ2hpbGQoc2hhZG93KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0
aFRleHQoJ0FGVEVSJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1j
b250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKGNh
bGxJZkRvbmUsIHJvb3QpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICByb290LnJlbW92
ZUNoaWxkKHJvb3QuZmlyc3RDaGlsZCk7Ci0gICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICB9fSko
Y2FsbElmRG9uZSwgcm9vdCk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfSk7Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJkb1Rlc3QodGVzdEZ1bmNzKSI+Ci0KLTxkaXYg
aWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgotPGRpdiBpZD0i
ZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2PgotICA8c2hhZG93IGlkPSJzaGFkb3ciPjwvc2hhZG93
PgotPC9kaXY+Ci08c2NyaXB0PgotIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyB0aGF0
IHRoZSBzaGFkb3cgZWxlbWVudCBpcyBhdmFpbGFibGUuIikKLXZhciBzaGFkb3cgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2hhZG93Iik7Ci1zaG91bGRCZSgic2hhZG93Lm5vZGVOYW1lIiwg
IidTSEFET1cnIik7Ci1zaG91bGRCZVRydWUoIjAgPD0gc2hhZG93LmNvbnN0cnVjdG9yLnRvU3Ry
aW5nKCkuaW5kZXhPZignSFRNTFNoYWRvd0VsZW1lbnQnKSIpOwotc2hvdWxkQmUoIndpbmRvdy5I
VE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3IiKTsKLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWhpZXJhcmNoeS1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctaGllcmFyY2h5LWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctaGllcmFyY2h5LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAgKzAsMCBAQAotQXBwZW5kaW5nIGFuIGFuY2VzdG9yIHRvIGEgc2hhZG93IHRyZWUgc2hv
dWxkIHRocm93IGFuIGV4Y2VwdGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBzaGFkb3dEaXYuYXBwZW5kQ2hpbGQoY29udGFpbmVyKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctaGllcmFyY2h5LWV4Y2VwdGlvbi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctaGllcmFyY2h5LWV4Y2Vw
dGlvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWhpZXJhcmNoeS1leGNlcHRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwx
NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGRpdiBpZD1jb250YWluZXI+Ci0gIDxkaXY+
Ci0gICAgICA8c3Bhbj48L3NwYW4+Ci0gIDwvZGl2PgotPC9kaXY+Ci08c2NyaXB0PgotZGVzY3Jp
cHRpb24oJ0FwcGVuZGluZyBhbiBhbmNlc3RvciB0byBhIHNoYWRvdyB0cmVlIHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24nKTsKLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29udGFpbmVyJyk7Ci12YXIgc3BhbiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzcGFu
Jyk7Ci12YXIgc2hhZG93ID0gc3Bhbi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgc2hh
ZG93RGl2ID0gc2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
KTsKLXNob3VsZFRocm93KCdzaGFkb3dEaXYuYXBwZW5kQ2hpbGQoY29udGFpbmVyKScpOwotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3Rl
ZC1wc2V1ZG8taWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBz
ZXVkby1pZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotTmVz
dGVkIHBzZXVkbyBpZCBzaG91bGQgYmUgbWF0Y2hhYmxlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHR1cGxlLnNoYWRvd0NoaWxk
KS5jb2xvciBpcyAncmdiKDI1NSwgMCwgMCknCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHNoYWRvd1R1cGxlLnNoYWRvd0NoaWxkKS5jb2xvciBpcyAncmdiKDAsIDAsIDI1NSknCi1QQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNoYWRvd1R1cGxlLnNoYWRvd0NoaWxkKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgJ3JnYigwLCAxMjgsIDApJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1
ZG8taWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLQotcDo6eC1zaGFkb3ctY2hpbGQgewotICBj
b2xvcjogcmVkOwotfQotCi1hOjp4LW5lc3RlZC1zaGFkb3ctY2hpbGQgewotICBjb2xvcjogYmx1
ZTsKLX0KLQotcDo6eC1zaGFkb3ctY2hpbGQ6OngtbmVzdGVkLXNoYWRvdy1jaGlsZCB7Ci0gIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOwotfQotCi08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHAgaWQ9Imhvc3QiPjwvZGl2PgotCi08c2NyaXB0
PgotZnVuY3Rpb24gYnVpbGRTaGFkb3dXaXRoT25lQ2hpbGQoaG9zdCwgY2hpbGRUYWdOYW1lLCBj
aGlsZFBzZXVkb0lkKQotewotICAgIHZhciBzaGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgICB2YXIgc2hhZG93Q2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGNo
aWxkVGFnTmFtZSk7Ci0gICAgc2hhZG93LmFwcGVuZENoaWxkKHNoYWRvd0NoaWxkKTsKLSAgICBp
bnRlcm5hbHMuc2V0U2hhZG93UHNldWRvSWQoc2hhZG93Q2hpbGQsIGNoaWxkUHNldWRvSWQpOwot
ICAgIHJldHVybiB7IGhvc3Q6IGhvc3QsIHNoYWRvdzogc2hhZG93LCBzaGFkb3dDaGlsZDogc2hh
ZG93Q2hpbGQgfTsKLX0KLQotZGVzY3JpcHRpb24oIk5lc3RlZCBwc2V1ZG8gaWQgc2hvdWxkIGJl
IG1hdGNoYWJsZSIpOwotCi1pZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgZmFpbCgiWW91IG5l
ZWQgd2luZG93LmludGVybmFscyB0byBydW4gdGhpcyB0ZXN0Iik7Ci0gICAgCi12YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci12YXIgdHVwbGUgPSBidWlsZFNoYWRv
d1dpdGhPbmVDaGlsZChob3N0LCAiYSIsICJ4LXNoYWRvdy1jaGlsZCIpOwotc2hvdWxkQmUoIndp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHR1cGxlLnNoYWRvd0NoaWxkKS5jb2xvciIsICIncmdiKDI1
NSwgMCwgMCknIik7Ci12YXIgc2hhZG93VHVwbGUgPSBidWlsZFNoYWRvd1dpdGhPbmVDaGlsZCh0
dXBsZS5zaGFkb3dDaGlsZCwgImIiLCAieC1uZXN0ZWQtc2hhZG93LWNoaWxkIik7Ci1zaG91bGRC
ZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93VHVwbGUuc2hhZG93Q2hpbGQpLmNvbG9y
IiwgIidyZ2IoMCwgMCwgMjU1KSciKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShzaGFkb3dUdXBsZS5zaGFkb3dDaGlsZCkuYmFja2dyb3VuZENvbG9yIiwgIidyZ2IoMCwgMTI4
LCAwKSciKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctb24taW1hZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LW9uLWltYWdlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctb24taW1hZ2UtZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0ud2l0aC1pbWFnZSB7Ci0gICAgY29udGVudDogdXJs
KGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQWdBQUFBSUNB
SUFBQUJMYlNuY0FBQUFGa2xFUVZRSUhXUFVGUHpQZ0Ewd1lSTUVpUTFPQ1FENFNBRkpaYUVrS1FB
QUFBQkpSVTVFcmtKZ2dnPT0pOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBj
bGFzcz0id2l0aC1pbWFnZSI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3aXRoLWltYWdlIj48L2Rpdj4K
LTxkaXYgY2xhc3M9IndpdGgtaW1hZ2UiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1vbi1pbWFnZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctb24taW1hZ2UuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1v
bi1pbWFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFyIGltYWdlQ29udGVudFN0eWxlID0gImNvbnRlbnQ6
IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFB
QUlDQUlBQUFCTGJTbmNBQUFBRmtsRVFWUUlIV1BVRlB6UGdBMHdZUk1FaVExT0NRRDRTQUZKWmFF
a0tRQUFBQUJKUlU1RXJrSmdnZz09KTsiCi0KLWZ1bmN0aW9uIGNyZWF0ZUltYWdlRGl2V2l0aFNo
YWRvdygpIHsKLSAgdmFyIGltYWdlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gIGltYWdlRGl2LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBpbWFnZUNvbnRlbnRTdHlsZSk7Ci0g
IHZhciBzaGFkb3cgPSBpbWFnZURpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7IAotICBzaGFk
b3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwotICByZXR1cm4g
aW1hZ2VEaXY7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUltYWdlRGl2V2l0aENvbnRlbnRTaGFkb3co
KSB7Ci0gIHZhciBpbWFnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICBp
bWFnZURpdi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgaW1hZ2VDb250ZW50U3R5bGUpOwotICBpbWFn
ZURpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0gIHZhciBz
aGFkb3cgPSBpbWFnZURpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7IAotICBzaGFkb3cuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwotICBzaGFkb3cuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29udGVudCcpKTsKLSAgcmV0dXJuIGltYWdl
RGl2OwotfQotCi1mdW5jdGlvbiBjcmVhdGVJbWFnZURpdldpdGhGYWxsYmFja0NvbnRlbnRTaGFk
b3coKSB7Ci0gIHZhciBpbWFnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICBpbWFnZURpdi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgaW1hZ2VDb250ZW50U3R5bGUpOwotICB2
YXIgc2hhZG93ID0gaW1hZ2VEaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOyAKLSAgc2hhZG93
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLSAgdmFyIGNvbnRl
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7Ci0gIGNvbnRlbnQuaW5uZXJI
VE1MID0gIjxkaXY+PC9kaXY+IjsKLSAgc2hhZG93LmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICBy
ZXR1cm4gaW1hZ2VEaXY7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZURpdldpdGhTaGFkb3coKSk7Ci0gICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZURpdldpdGhDb250ZW50U2hhZG93KCkpOwotICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlSW1hZ2VEaXZXaXRoRmFsbGJhY2tDb250
ZW50U2hhZG93KCkpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1wc2V1ZG8taWQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC1l
eHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLTxib2R5PgotCi08cD5UaGlzIHRlc3QgY2hl
Y2tzIGEgY3VzdG9tIHBzZXVkbyBlbGVtZW50IHNlbGVjdG9yIGlzIHZhbGlkIG9ubHkgaWYgaXQg
c3RhcnRzIHdpdGggJ3gtJzwvcD4KLQotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08ZGl2IGlk
PSJob3N0MSI+PGRpdiBzdHlsZT0iY29sb3I6cmVkIj5wc2V1ZG8gaXMgeC1zaGFkb3c6IFRoaXMg
c2hvdWxkIGJlIHJlZC48L2Rpdj48L2Rpdj4KLTxkaXYgaWQ9Imhvc3QyIj48ZGl2PnBzZXVkbyBp
cyAtdGVzdDogVGhpcyBzaG91bGQgbm90IGJlIHJlZC48L2Rpdj48L2Rpdj4KLTxkaXYgaWQ9Imhv
c3QyIj48ZGl2PnBzZXVkbyBpcyBmb29iYXI6IFRoaXMgc2hvdWxkIG5vdCBiZSByZWQuPC9kaXY+
PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcHNldWRvLWlkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1wc2V1ZG8taWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1wc2V1ZG8taWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c3R5bGU+Ci1kaXY6Ongtc2hhZG93IHsKLSAgICBjb2xvcjogcmVkOwotfQotCi1kaXY6Oi10
ZXN0IHsKLSAgICBjb2xvcjogcmVkOwotfQotCi1kaXY6OmZvb2JhciB7Ci0gICAgY29sb3I6IHJl
ZDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+VGhpcyB0ZXN0IGNoZWNrcyBh
IGN1c3RvbSBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvciBpcyB2YWxpZCBvbmx5IGlmIGl0IHN0YXJ0
cyB3aXRoICd4LSc8L3A+Ci0KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGRpdiBpZD0iaG9z
dDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDMiPjwvZGl2
PgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLWRpdjEu
aW5uZXJIVE1MID0gInBzZXVkbyBpcyB4LXNoYWRvdzogVGhpcyBzaG91bGQgYmUgcmVkLiI7Ci1k
aXYxLndlYmtpdFBzZXVkbyA9ICJ4LXNoYWRvdyI7Ci1zaGFkb3dSb290MS5hcHBlbmRDaGlsZChk
aXYxKTsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLWRpdjIuaW5uZXJI
VE1MID0gInBzZXVkbyBpcyAtdGVzdDogVGhpcyBzaG91bGQgbm90IGJlIHJlZC4iOwotZGl2Mi53
ZWJraXRQc2V1ZG8gPSAiLXRlc3QiOwotc2hhZG93Um9vdDIuYXBwZW5kQ2hpbGQoZGl2Mik7Ci0K
LXZhciBzaGFkb3dSb290MyA9IGhvc3QzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBk
aXYzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1kaXYzLmlubmVySFRNTCA9ICJw
c2V1ZG8gaXMgZm9vYmFyOiBUaGlzIHNob3VsZCBub3QgYmUgcmVkLiI7Ci1kaXYzLndlYmtpdFBz
ZXVkbyA9ICJmb29iYXIiOwotc2hhZG93Um9vdDMuYXBwZW5kQ2hpbGQoZGl2Myk7Ci08L3Njcmlw
dD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yZW1vdmVjaGlsZC1hbmQtYmx1ci1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZW1vdmVjaGlsZC1hbmQt
Ymx1ci1ldmVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVtb3ZlY2hpbGQtYW5kLWJsdXItZXZlbnQtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLUNoZWNrIGZvY3VzZWQgc2hh
ZG93IG5vZGUgZGlzcGF0Y2hzIGJsdXIgZXZlbnQgb24gcmVtb3ZlQ2hpbGQgb2YgaG9zdC4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgbG9ncy50b1N0cmluZygpIGlzICJz
dGFydC1yZW1vdmVDaGlsZCxibHVyLGVuZC1yZW1vdmVDaGlsZCIKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJlbW92ZWNoaWxkLWFuZC1ibHVyLWV2ZW50Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZW1vdmVjaGlsZC1h
bmQtYmx1ci1ldmVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJlbW92ZWNoaWxkLWFuZC1ibHVyLWV2ZW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzcGFuIGlkPXRlc3Q+PC9zcGFuPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oJ0NoZWNrIGZvY3VzZWQgc2hhZG93
IG5vZGUgZGlzcGF0Y2hzIGJsdXIgZXZlbnQgb24gcmVtb3ZlQ2hpbGQgb2YgaG9zdC4nKTsKLXZh
ciBsb2dzID0gW107Ci12YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7
Ci12YXIgc2hhZG93ID0gdGVzdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12YXIgaW5wdXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwotc2hhZG93LmFwcGVuZENoaWxkKGlu
cHV0KTsKLWlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbiAoKSB7IGxvZ3Mu
cHVzaCgnYmx1cicpOyB9KTsKLWlucHV0LmZvY3VzKCk7Ci1sb2dzLnB1c2goJ3N0YXJ0LXJlbW92
ZUNoaWxkJyk7Ci10ZXN0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVzdCk7Ci1sb2dzLnB1c2go
J2VuZC1yZW1vdmVDaGlsZCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdsb2dzLnRvU3RyaW5n
KCknLCAnc3RhcnQtcmVtb3ZlQ2hpbGQsYmx1cixlbmQtcmVtb3ZlQ2hpbGQnKTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yZXByb2plY3Rpb24tY2xpY2stZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWNsaWNrLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yZXByb2plY3Rpb24tY2xpY2stZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzAsMCBAQAotVGhpcyB0ZXN0IGNvbmZpcm1zIHRoYXQgY2xpY2tpbmcgYSBzaGFkb3cg
cmVwcm9qZWN0ZWQgZWxlbWVudCBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLgotCi1QQVNTCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1jbGljay5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVw
cm9qZWN0aW9uLWNsaWNrLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWNsaWNrLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5UaGlzIHRlc3QgY29uZmly
bXMgdGhhdCBjbGlja2luZyBhIHNoYWRvdyByZXByb2plY3RlZCBlbGVtZW50IGRvZXMgbm90IGNh
dXNlIGEgY3Jhc2guPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgaWQ9Imhv
c3QxIj48ZGl2Pkhvc3QgQ2hpbGQ8L2Rpdj48L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi12YXIg
c2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290
MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGFyZ2V0Ij5PbGRlc3QgU2hhZG93Um9vdCBDaGlsZDwv
ZGl2Pic7Ci0KLXZhciBzaGFkb3dSb290MiA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLXNoYWRvd1Jvb3QyLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJob3N0MyI+PHNoYWRvdz48L3No
YWRvdz48Y29udGVudD48L2NvbnRlbnQ+PGRpdj5Zb3VuZ2VzdCBTaGFkb3dSb290IENoaWxkPC9k
aXY+PC9kaXY+JzsKLQotdmFyIGhvc3QzID0gc2hhZG93Um9vdDIuZ2V0RWxlbWVudEJ5SWQoJ2hv
c3QzJyk7Ci12YXIgc2hhZG93Um9vdDMgPSBob3N0My53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci1zaGFkb3dSb290My5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXYiPjwvY29udGVu
dD4nOwotCi1jb250YWluZXIub2Zmc2V0TGVmdDsKLQotdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3Qx
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKLWlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zmc2V0TGVmdCArIDEwLCB0YXJnZXQu
b2Zmc2V0VG9wICsgMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwotfQotCi1jb250YWluZXIuaW5uZXJIVE1MID0gIlBBU1MiOwotPC9z
Y3JpcHQ+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcmVwcm9qZWN0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1keW5hbWljLWV4cGVj
dGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcmVwcm9qZWN0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08ZGl2IGlkPSJo
b3N0MSI+Ci0gICAgPGRpdiBpZD0iaG9zdDMiPgotICAgICAgICA8ZGl2PlVwZGF0ZWQgT2xkZXN0
IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj4KLSAgICAgICAgPGRpdj5BZGRlZCBPbGRlc3QgU2hhZG93
Um9vdCBDaGlsZDwvZGl2PgotICAgICAgICA8ZGl2Pkhvc3QgQ2hpbGQ8L2Rpdj4KLSAgICAgICAg
PGRpdj5Zb3VuZ2VzdCBTaGFkb3dSb290IENoaWxkPC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4K
LQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXBy
b2plY3Rpb24tZHluYW1pYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWR5bmFtaWMuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24tZHlu
YW1pYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
LQotPGRpdiBpZD0iaG9zdDEiPjxkaXY+SG9zdCBDaGlsZDwvZGl2PjwvZGl2PgotCi08c2NyaXB0
PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1z
aGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0iaG9zdDIiPk9sZGVzdCBTaGFkb3dSb290
IENoaWxkPC9kaXY+JzsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDEud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QzIj48c2hh
ZG93Pjwvc2hhZG93Pjxjb250ZW50PjwvY29udGVudD48ZGl2PllvdW5nZXN0IFNoYWRvd1Jvb3Qg
Q2hpbGQ8L2Rpdj48L2Rpdj4nOwotCi12YXIgaG9zdDMgPSBzaGFkb3dSb290Mi5nZXRFbGVtZW50
QnlJZCgnaG9zdDMnKTsKLXZhciBzaGFkb3dSb290MyA9IGhvc3QzLndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLXNoYWRvd1Jvb3QzLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdiI+
PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgc2hhZG93Um9vdDEu
aW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QyIj5VcGRhdGVkIE9sZGVzdCBTaGFkb3dSb290IENo
aWxkPC9kaXY+PGRpdj5BZGRlZCBPbGRlc3QgU2hhZG93Um9vdCBDaGlsZDwvZGl2Pic7Ci0gICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
LX0sIDApOwotPC9zY3JpcHQ+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24tZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yZXByb2plY3Rpb24tZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAg
PGRpdiBpZD0iaG9zdDMiPgotICAgICAgICA8ZGl2Pk9sZGVzdCBTaGFkb3dSb290IENoaWxkPC9k
aXY+Ci0gICAgICAgIDxkaXY+SG9zdCBDaGlsZDwvZGl2PgotICAgICAgICA8ZGl2PllvdW5nZXN0
IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1mYWxs
YmFjay1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0
aW9uLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxkaXYg
aWQ9Imhvc3Q0Ij4KLSAgICAgICA8ZGl2Pk9sZGVzdCBTaGFkb3dSb290IENoaWxkPC9kaXY+Ci0g
ICAgICAgPGRpdj5Ib3N0IENoaWxkPC9kaXY+Ci0gICAgICAgPGRpdj5TaGFkb3cgRmFsbGJhY2sg
RWxlbWVudCAoMSk8L2Rpdj4KLSAgICAgICA8ZGl2PlNoYWRvdyBGYWxsYmFjayBFbGVtZW50ICgy
KTwvZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWZhbGxiYWNrLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24t
ZmFsbGJhY2suaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24tZmFsbGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48ZGl2Pkhv
c3QgQ2hpbGQ8L2Rpdj48L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3Qx
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICc8ZGl2
IGlkPSJob3N0MiI+T2xkZXN0IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj4nOwotCi12YXIgc2hhZG93
Um9vdDIgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5l
ckhUTUwgPSAnPHNoYWRvdz48L3NoYWRvdz48Y29udGVudD48L2NvbnRlbnQ+PHNoYWRvdz48ZGl2
IHRpdGxlPSJkZWJ1Z3N0b3AiPlNoYWRvdyBGYWxsYmFjayBFbGVtZW50ICgxKTwvZGl2Pjwvc2hh
ZG93Pic7Ci0KLXZhciBzaGFkb3dSb290MyA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLXNoYWRvd1Jvb3QzLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJob3N0NCI+PHNoYWRvdz48L3No
YWRvdz48c2hhZG93PjxkaXY+U2hhZG93IEZhbGxiYWNrIEVsZW1lbnQgKDIpPC9kaXY+PC9zaGFk
b3c+PHNwYW4+Tm90IHJlbmRlcmVkICgxKTwvc3Bhbj48c2hhZG93PjxzcGFuPk5vdCByZW5kZXJl
ZCAoMik8L3NwYW4+PC9zaGFkb3c+PC9kaXY+JzsKLQotdmFyIGhvc3Q0ID0gc2hhZG93Um9vdDMu
Z2V0RWxlbWVudEJ5SWQoJ2hvc3Q0Jyk7Ci12YXIgc2hhZG93Um9vdDQgPSBob3N0NC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci0KLXNoYWRvd1Jvb3Q0LmlubmVySFRNTCA9ICc8Y29udGVudCBz
ZWxlY3Q9ImRpdiI+PC9jb250ZW50Pic7Ci08L3NjcmlwdD4KLQotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJlcHJvamVjdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9zdDEiPjxkaXY+SG9zdCBDaGlsZDwvZGl2PjwvZGl2
PgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotc2hhZG93Um9vdDEuaW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QyIj5PbGRlc3Qg
U2hhZG93Um9vdCBDaGlsZDwvZGl2Pic7Ci0KLXZhciBzaGFkb3dSb290MiA9IGhvc3QxLndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QyLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJo
b3N0MyI+PHNoYWRvdz48L3NoYWRvdz48Y29udGVudD48L2NvbnRlbnQ+PGRpdj5Zb3VuZ2VzdCBT
aGFkb3dSb290IENoaWxkPC9kaXY+PC9kaXY+JzsKLQotdmFyIGhvc3QzID0gc2hhZG93Um9vdDIu
Z2V0RWxlbWVudEJ5SWQoJ2hvc3QzJyk7Ci12YXIgc2hhZG93Um9vdDMgPSBob3N0My53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290My5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2Vs
ZWN0PSJkaXYiPjwvY29udGVudD4nOwotPC9zY3JpcHQ+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uMi1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9q
ZWN0aW9uMi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbjItZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08ZGl2
IGlkPSJob3N0MSI+Ci0gICAgPGRpdiBpZD0iaG9zdDMiPgotICAgICAgICA8ZGl2PkE8L2Rpdj4K
LSAgICAgICAgPGRpdj5CPC9kaXY+Ci0gICAgICAgIDxkaXY+QzwvZGl2PgotICAgIDwvZGl2Pgot
PC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcmVwcm9qZWN0aW9uMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uMi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbjIuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imhv
c3QxIj48ZGl2PkI8L2Rpdj48L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhv
c3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICc8
c2hhZG93Pjwvc2hhZG93Pic7Ci0KLXZhciBzaGFkb3dSb290MiA9IGhvc3QxLndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QyLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJob3N0MyI+
PHNoYWRvdz48L3NoYWRvdz48L2Rpdj4nOwotCi12YXIgaG9zdDMgPSBzaGFkb3dSb290Mi5nZXRF
bGVtZW50QnlJZCgnaG9zdDMnKTsKLXZhciBzaGFkb3dSb290MyA9IGhvc3QzLndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QzLmlubmVySFRNTCA9ICc8ZGl2PkE8L2Rpdj48Y29u
dGVudCBzZWxlY3Q9ImRpdiI+PC9jb250ZW50PjxkaXY+QzwvZGl2Pic7Ci08L3NjcmlwdD4KLQot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFj
dGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFj
dGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI3ICswLDAgQEAK
LVRoaXMgdGVzdHMgdGhlIGFjdGl2ZUVsZW1lbnQgcHJvcGVydHkgb2YgYSBTaGFkb3dSb290Lgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290MS5hY3RpdmVF
bGVtZW50IGlzIGRlZmluZWQuCi1QQVNTIHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQgaXMgZGVm
aW5lZC4KLVBBU1Mgbm9kZUluRG9jdW1lbnQuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCBpcyBub2RlSW5Eb2N1bWVudAotUEFTUyBub2RlSW5Eb2N1bWVudC5mb2N1cygpOyBzaGFkb3dS
b290MS5hY3RpdmVFbGVtZW50IGlzIG51bGwKLVBBU1Mgbm9kZUluRG9jdW1lbnQuZm9jdXMoKTsg
c2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCBpcyBudWxsCi1QQVNTIGRpc3RyaWJ1dGVkTGlnaHRD
aGlsZC5mb2N1cygpOyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIGRpc3RyaWJ1dGVkTGlnaHRD
aGlsZAotUEFTUyBkaXN0cmlidXRlZExpZ2h0Q2hpbGQuZm9jdXMoKTsgc2hhZG93Um9vdDEuYWN0
aXZlRWxlbWVudCBpcyBkaXN0cmlidXRlZExpZ2h0Q2hpbGQKLVBBU1MgZGlzdHJpYnV0ZWRMaWdo
dENoaWxkLmZvY3VzKCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBj
aGlsZEluU2hhZG93Um9vdDEuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyBzaGFk
b3dIb3N0MQotUEFTUyBjaGlsZEluU2hhZG93Um9vdDEuZm9jdXMoKTsgc2hhZG93Um9vdDEuYWN0
aXZlRWxlbWVudCBpcyBjaGlsZEluU2hhZG93Um9vdDEKLVBBU1MgY2hpbGRJblNoYWRvd1Jvb3Qx
LmZvY3VzKCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBjaGlsZElu
U2hhZG93Um9vdDIuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyBzaGFkb3dIb3N0
MQotUEFTUyBjaGlsZEluU2hhZG93Um9vdDIuZm9jdXMoKTsgc2hhZG93Um9vdDEuYWN0aXZlRWxl
bWVudCBpcyBzaGFkb3dIb3N0MgotUEFTUyBjaGlsZEluU2hhZG93Um9vdDIuZm9jdXMoKTsgc2hh
ZG93Um9vdDIuYWN0aXZlRWxlbWVudCBpcyBjaGlsZEluU2hhZG93Um9vdDIKLWNoaWxkSW5TaGFk
b3dSb290Mi5ibHVyKCk7Ci1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQu
Ym9keQotUEFTUyBzaGFkb3dSb290MS5hY3RpdmVFbGVtZW50IGlzIG51bGwKLVBBU1Mgc2hhZG93
Um9vdDIuYWN0aXZlRWxlbWVudCBpcyBudWxsCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0
aXZlRWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcwICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ct
ZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLTwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoZSBhY3RpdmVFbGVtZW50IHByb3BlcnR5IG9mIGEgU2hhZG93Um9vdC4iKTsK
LQotaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQotICAgIGRlYnVnKCdUaGlzIHRlc3QgcnVucyBvbiBE
UlQgb25seScpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94JykuYXBwZW5kQ2hp
bGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ25vZGUtaW4tZG9jdW1lbnQnLCAndGFiaW5kZXgnOiAxfSksCi0gICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdzaGFkb3ctaG9zdC0xJ30sCi0gICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdzaGFkb3ctaG9zdC0yJ30sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnY2hpbGQtaW4tc2hhZG93LXJvb3QtMicsICd0YWJpbmRleCc6IDF9KSkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZC1pbi1zaGFk
b3ctcm9vdC0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNkaXN0cmlidXRlZC1saWdodC1jaGls
ZCd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
ZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQnLCAndGFiaW5kZXgnOiAxfSkpKSk7Ci0KLXZhciBzaGFk
b3dIb3N0MSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93LWhvc3QtMScpOwotdmFy
IHNoYWRvd0hvc3QyID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3ctaG9zdC0xL3No
YWRvdy1ob3N0LTInKTsKLXZhciBzaGFkb3dSb290MSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFj
aygnc2hhZG93LWhvc3QtMS8nKTsKLXZhciBzaGFkb3dSb290MiA9IGdldE5vZGVJblNoYWRvd1Ry
ZWVTdGFjaygnc2hhZG93LWhvc3QtMS9zaGFkb3ctaG9zdC0yLycpOwotCi12YXIgbm9kZUluRG9j
dW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9kZS1pbi1kb2N1bWVudCcpOwotdmFy
IGRpc3RyaWJ1dGVkTGlnaHRDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXN0cmli
dXRlZC1saWdodC1jaGlsZCcpOwotdmFyIGNoaWxkSW5TaGFkb3dSb290MSA9IGdldE5vZGVJblNo
YWRvd1RyZWVTdGFjaygnc2hhZG93LWhvc3QtMS9jaGlsZC1pbi1zaGFkb3ctcm9vdC0xJyk7Ci12
YXIgY2hpbGRJblNoYWRvd1Jvb3QyID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3ct
aG9zdC0xL3NoYWRvdy1ob3N0LTIvY2hpbGQtaW4tc2hhZG93LXJvb3QtMicpOwotCi1zaG91bGRC
ZURlZmluZWQoInNoYWRvd1Jvb3QxLmFjdGl2ZUVsZW1lbnQiKTsKLXNob3VsZEJlRGVmaW5lZCgi
c2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCIpOwotCi1zaG91bGRCZSgibm9kZUluRG9jdW1lbnQu
Zm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJub2RlSW5Eb2N1bWVudCIpOwotc2hv
dWxkQmUoIm5vZGVJbkRvY3VtZW50LmZvY3VzKCk7IHNoYWRvd1Jvb3QxLmFjdGl2ZUVsZW1lbnQi
LCAibnVsbCIpOwotc2hvdWxkQmUoIm5vZGVJbkRvY3VtZW50LmZvY3VzKCk7IHNoYWRvd1Jvb3Qy
LmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotCi1zaG91bGRCZSgiZGlzdHJpYnV0ZWRMaWdodENo
aWxkLmZvY3VzKCk7IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQiLCAiZGlzdHJpYnV0ZWRMaWdodENo
aWxkIik7Ci1zaG91bGRCZSgiZGlzdHJpYnV0ZWRMaWdodENoaWxkLmZvY3VzKCk7IHNoYWRvd1Jv
b3QxLmFjdGl2ZUVsZW1lbnQiLCAiZGlzdHJpYnV0ZWRMaWdodENoaWxkIik7Ci1zaG91bGRCZSgi
ZGlzdHJpYnV0ZWRMaWdodENoaWxkLmZvY3VzKCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQi
LCAibnVsbCIpOwotCi1zaG91bGRCZSgiY2hpbGRJblNoYWRvd1Jvb3QxLmZvY3VzKCk7IGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQiLCAic2hhZG93SG9zdDEiKTsKLXNob3VsZEJlKCJjaGlsZEluU2hh
ZG93Um9vdDEuZm9jdXMoKTsgc2hhZG93Um9vdDEuYWN0aXZlRWxlbWVudCIsICJjaGlsZEluU2hh
ZG93Um9vdDEiKTsKLXNob3VsZEJlKCJjaGlsZEluU2hhZG93Um9vdDEuZm9jdXMoKTsgc2hhZG93
Um9vdDIuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci0KLXNob3VsZEJlKCJjaGlsZEluU2hhZG93
Um9vdDIuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJzaGFkb3dIb3N0MSIpOwot
c2hvdWxkQmUoImNoaWxkSW5TaGFkb3dSb290Mi5mb2N1cygpOyBzaGFkb3dSb290MS5hY3RpdmVF
bGVtZW50IiwgInNoYWRvd0hvc3QyIik7Ci1zaG91bGRCZSgiY2hpbGRJblNoYWRvd1Jvb3QyLmZv
Y3VzKCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQiLCAiY2hpbGRJblNoYWRvd1Jvb3QyIik7
Ci0KLWV2YWxBbmRMb2coImNoaWxkSW5TaGFkb3dSb290Mi5ibHVyKCk7Iik7Ci1zaG91bGRCZSgi
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVudC5ib2R5Iik7Ci1zaG91bGRCZSgic2hh
ZG93Um9vdDEuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci1zaG91bGRCZSgic2hhZG93Um9vdDIu
YWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwZW5kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwZW5kLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWFwcGVuZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzAs
MCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGFwcGVuZGluZyBzaGFkb3cgcm9vdCBhcyBhIGNo
aWxkIGRvZXMgbm90IGNyYXNoLgotCi1QQVNTIHJvb3QuZmlyc3RDaGlsZCBpcyBudWxsCi1QQVNT
IGNvbnRhaW5lci5maXJzdENoaWxkLnRleHRDb250ZW50IGlzICJTUyIKLVBBU1Mgcm9vdC5maXJz
dENoaWxkIGlzIG51bGwKLVBBU1MgY29udGFpbmVyLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQgaXMg
IlBBIgotUEFTUyBjb250YWluZXIuZmlyc3RDaGlsZCBpcyBub3QgY29udGFpbmVyLmxhc3RDaGls
ZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi1QQVNT
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwZW5kLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LWFwcGVuZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtYXBwZW5kLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDQgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhcHBlbmRpbmcgc2hhZG93IHJvb3QgYXMgYSBjaGls
ZCBkb2VzIG5vdCBjcmFzaC48L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxkaXYgaWQ9
ImNvbnRhaW5lciI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkb1Rlc3QoKSB7Ci0gICAg
aWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIGRlYnVnKCdUaGlzIHRlc3QgcnVucyBv
biBEUlQgb25seScpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QgPSBkaXYud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ1NTJykpOwotCi0gICAgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnRhaW5lcicpOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHNob3Vs
ZEJlTnVsbCgncm9vdC5maXJzdENoaWxkJyk7Ci0gICAgc2hvdWxkQmUoJ2NvbnRhaW5lci5maXJz
dENoaWxkLnRleHRDb250ZW50JywgJyJTUyInKTsKLQotICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdQQScp
KTsKLQotICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUocm9vdCwgY29udGFpbmVyLmZpcnN0Q2hp
bGQpOwotCi0gICAgc2hvdWxkQmVOdWxsKCdyb290LmZpcnN0Q2hpbGQnKTsKLSAgICBzaG91bGRC
ZSgnY29udGFpbmVyLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQnLCAnIlBBIicpOwotICAgIHNob3Vs
ZE5vdEJlKCdjb250YWluZXIuZmlyc3RDaGlsZCcsICdjb250YWluZXIubGFzdENoaWxkJyk7Ci19
Ci0KLWRvVGVzdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxl
cy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJv
ZHk+Ci08ZGl2IGlkPSJhcHBseS1hdXRob3Itc3R5bGUiPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiNlZWY7Ym9yZGVyOnNvbGlkO2NvbG9yOiNmZWU7ZGlzcGxheTpib3hlZC1pbmxpbmU7
Zm9udC1zaXplOjI0cHg7bWFyZ2luOjJweDtvdXRsaW5lLWNvbG9yOiNmMDA7cGFkZGluZy1sZWZ0
OjVweDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Ij48L3NwYW4+
PC9kaXY+Ci08ZGl2IGlkPSJuby1hcHBseS1hdXRob3Itc3R5bGUiPjxzcGFuPjwvc3Bhbj48L2Rp
dj4KLTxkaXYgaWQ9IndpdGgtaW5saW5lLXN0eWxlLWRlY2xhcmF0aW9uIj48c3BhbiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjojZWVmO2JvcmRlcjpub25lO2NvbG9yOiNkYWE7ZGlzcGxheTpib3hl
ZC1pbmxpbmU7Zm9udC1zaXplOjE4cHg7bWFyZ2luOjJweDtvdXRsaW5lLWNvbG9yOiNmMDA7cGFk
ZGluZy1sZWZ0OjVweDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjpub25lOyI+PC9z
cGFuPjwvZGl2PgotPGRpdiBpZD0idHJ5LXRvLW92ZXJpZGUtaW1wb3J0YW50Ij48aW5wdXQgdHlw
ZT0iZmlsZSIgLz48L2Rpdj4KLTxkaXYgaWQ9ImNoYW5nZS1hcHBseS1hdXRob3Itc3R5bGUtZnJv
bS10cnVlLXRvLWZhbHNlIj48ZGl2PjxzcGFuPjwvc3Bhbj48L2Rpdj48L2Rpdj4KLTxkaXYgaWQ9
ImNoYW5nZS1hcHBseS1hdXRob3Itc3R5bGUtZnJvbS1mYWxzZS10by10cnVlIj48ZGl2PjxzcGFu
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNlZWY7Ym9yZGVyOnNvbGlkO2NvbG9yOiNmZWU7ZGlz
cGxheTpib3hlZC1pbmxpbmU7Zm9udC1zaXplOjI0cHg7bWFyZ2luOjJweDtvdXRsaW5lLWNvbG9y
OiNmMDA7cGFkZGluZy1sZWZ0OjVweDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjp1
bmRlcmxpbmU7Ij48L3NwYW4+PC9kaXY+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtYXBwbHlBdXRob3JTdHlsZXMuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9yU3R5bGVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTUxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzdHlsZT4KLXNwYW4gewotICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWY7Ci0gICAg
Ym9yZGVyOiBzb2xpZDsKLSAgICBjb2xvcjogI2ZlZTsKLSAgICBkaXNwbGF5OiBib3hlZC1pbmxp
bmU7Ci0gICAgZm9udC1zaXplOiAyNHB4OwotICAgIG1hcmdpbjogMnB4OwotICAgIG91dGxpbmUt
Y29sb3I6ICNmMDA7Ci0gICAgcGFkZGluZy1sZWZ0OiA1cHg7Ci0gICAgdGV4dC1hbGlnbjogc3Rh
cnQ7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ci19Ci1pbnB1dFt0eXBlPSJmaWxl
Il0gewotICAgIHRleHQtYWxpZ246IGVuZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0i
YXBwbHktYXV0aG9yLXN0eWxlIj48L2Rpdj4KLTxkaXYgaWQ9Im5vLWFwcGx5LWF1dGhvci1zdHls
ZSI+PC9kaXY+Ci08ZGl2IGlkPSJ3aXRoLWlubGluZS1zdHlsZS1kZWNsYXJhdGlvbiI+PC9kaXY+
Ci08ZGl2IGlkPSJ0cnktdG8tb3ZlcnJpZGUtaW1wb3J0YW50Ij48L2Rpdj4KLTxkaXYgaWQ9ImNo
YW5nZS1hcHBseS1hdXRob3Itc3R5bGUtZnJvbS10cnVlLXRvLWZhbHNlIj48L2Rpdj4KLTxkaXYg
aWQ9ImNoYW5nZS1hcHBseS1hdXRob3Itc3R5bGUtZnJvbS1mYWxzZS10by10cnVlIj48L2Rpdj4K
LQotPHNjcmlwdD4KLWZ1bmN0aW9uIHNob3VsZEJlKGEsIGIpCi17Ci0gICBpZiAoYSAhPSBiKSB7
Ci0gICAgICB0aHJvdyAiZmFpbHVyZToiICsgYSArICI6IHNob3VsZCBiZSAiICsgYjsKLSAgIH0K
LX0KLQotZnVuY3Rpb24gc2hvdWxkTm90QmUoYSwgYikKLXsKLSAgIGlmIChhID09IGIpIHsKLSAg
ICAgIHRocm93ICJmYWlsdXJlOiIgKyBhICsgIjogc2hvdWxkIG5vdCBiZSAiICsgYjsKLSAgIH0K
LX0KLQotZnVuY3Rpb24gYXNzZXJ0VHJ1ZShpZCwgYWN0dWFsKSB7Ci0gICBpZiAoIWFjdHVhbCkg
ewotICAgICAgIHRocm93ICJmYWlsdXJlOiIgKyBpZCArICAiOiBhc3NlcnRUcnVlIGZhaWxlZCI7
Ci0gICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEZhbHNlKGlkLCBhY3R1YWwpIHsKLSAgIGlmIChh
Y3R1YWwpIHsKLSAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgaWQgKyAgIjogYXNzZXJ0RmFsc2Ug
ZmFpbGVkIjsKLSAgIH0KLX0KLQotZnVuY3Rpb24gcmVuZGVyQXBwbHlBdXRob3JTdHlsZUNhc2Uo
KSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHBseS1hdXRob3Itc3R5bGUnKS5hcHBlbmRDaGlsZChk
aXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9v
dC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9
IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUn
LCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8c3Bhbj48L3NwYW4+JzsKLX0KLQotZnVuY3Rpb24gcmVuZGVyTm9BcHBseUF1dGhvclN0
eWxlQ2FzZSgpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vLWFwcGx5LWF1dGhvci1zdHlsZScpLmFw
cGVuZENoaWxkKGRpdik7Ci0KLSAgICB2YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0gICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgYXBwbHlBdXRob3JTdHlsZXMn
LCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFkb3dSb290LmFwcGx5QXV0
aG9yU3R5bGVzID0gZmFsc2U7Ci0gICAgYXNzZXJ0RmFsc2UoJ2FwcGx5QXV0aG9yU3R5bGVzIHNo
b3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMpOwotICAgIHNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gJzxzcGFuPjwvc3Bhbj4nOwotfQotCi1mdW5jdGlvbiByZW5kZXJB
cHBseUF1dGhvclN0eWxlV2l0aElubGluZVN0eWxlRGVjbGFyYXRpb25DYXNlKCkgewotICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnd2l0aC1pbmxpbmUtc3R5bGUtZGVjbGFyYXRpb24nKS5hcHBlbmRDaGlsZChk
aXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9v
dC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9
IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUn
LCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8c3BhbiBzdHlsZT0iYm9yZGVyOm5vbmU7IGNvbG9yOiNkYWE7IGZvbnQtc2l6ZToxOHB4
OyB0ZXh0LWRlY29yYXRpb246bm9uZSI+PC9zcGFuPic7Ci19Ci0KLWZ1bmN0aW9uIHJlbmRlckFw
cGx5QXV0aG9yU3R5bGVXaXRoT3ZlcnJpZGluZ0ltcG9ydGFudFByb3BlcnR5Q2FzZSgpIHsKLSAg
ICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RyeS10by1vdmVycmlkZS1pbXBvcnRhbnQnKS5hcHBlbmRDaGlsZChk
aXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9v
dC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9
IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUn
LCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8aW5wdXQgdHlwZT0iZmlsZSIgLz4nOwotfQotCi1mdW5jdGlvbiB0ZXN0Q2hhbmdpbmdB
cHBseUF1dGhvclN0eWxlRnJvbVRydWVUb0ZhbHNlKCkgewotICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hh
bmdlLWFwcGx5LWF1dGhvci1zdHlsZS1mcm9tLXRydWUtdG8tZmFsc2UnKS5hcHBlbmRDaGlsZChk
aXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5bGVzJywgc2hhZG93Um9v
dC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9
IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUn
LCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8ZGl2PjxzcGFuIGlkPSJ0ZXN0MSI+PC9zcGFuPjwvZGl2Pic7Ci0gICAgZGl2Lm9mZnNl
dExlZnQ7Ci0gICAgdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qx
Jyk7Ci0gICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9w
ZXJ0eVZhbHVlKCdmb250LXNpemUnKSwgIjI0cHgiKTsKLSAgICBzaG91bGRCZSh3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtZGVjb3JhdGlvbicp
LCAidW5kZXJsaW5lIik7Ci0KLSAgICBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gZmFs
c2U7Ci0gICAgYXNzZXJ0RmFsc2UoJ2FwcGx5QXV0aG9yU3R5bGVzIHNob3VsZCBiZSBmYWxzZScs
IHNoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMpOwotICAgIGRpdi5vZmZzZXRMZWZ0OwotICAg
IHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlW
YWx1ZSgnZm9udC1zaXplJyksICIyNHB4Iik7Ci0gICAgc2hvdWxkTm90QmUod2luZG93LmdldENv
bXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWRlY29yYXRpb24nKSwg
InVuZGVybGluZSIpOwotfQotCi1mdW5jdGlvbiB0ZXN0Q2hhbmdpbmdBcHBseUF1dGhvclN0eWxl
RnJvbUZhbHNlVG9UcnVlKCkgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbmdlLWFwcGx5LWF1dGhv
ci1zdHlsZS1mcm9tLWZhbHNlLXRvLXRydWUnKS5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgdmFy
IHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvd1Jv
b3QuYXBwbHlBdXRob3JTdHlsZXMgPSBmYWxzZTsKLSAgICBhc3NlcnRGYWxzZSgnYXBwbHlBdXRo
b3JTdHlsZXMgc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7
Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj48c3BhbiBpZD0idGVzdDIiPjwvc3Bh
bj48L2Rpdj4nOwotICAgIGRpdi5vZmZzZXRMZWZ0OwotICAgIHZhciB0YXJnZXQgPSBzaGFkb3dS
b290LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpOwotICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyksICIyNHB4
Iik7Ci0gICAgc2hvdWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWRlY29yYXRpb24nKSwgInVuZGVybGluZSIpOwotCi0gICAgc2hh
ZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlB
dXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVz
KTsKLSAgICBkaXYub2Zmc2V0TGVmdDsKLSAgICBzaG91bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScpLCAiMjRweCIpOwotICAg
IHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1kZWNvcmF0aW9uJyksICJ1bmRlcmxpbmUiKTsKLX0KLQotcmVuZGVyQXBwbHlBdXRo
b3JTdHlsZUNhc2UoKTsKLXJlbmRlck5vQXBwbHlBdXRob3JTdHlsZUNhc2UoKTsKLXJlbmRlckFw
cGx5QXV0aG9yU3R5bGVXaXRoSW5saW5lU3R5bGVEZWNsYXJhdGlvbkNhc2UoKTsKLXJlbmRlckFw
cGx5QXV0aG9yU3R5bGVXaXRoT3ZlcnJpZGluZ0ltcG9ydGFudFByb3BlcnR5Q2FzZSgpOwotdGVz
dENoYW5naW5nQXBwbHlBdXRob3JTdHlsZUZyb21UcnVlVG9GYWxzZSgpOwotdGVzdENoYW5naW5n
QXBwbHlBdXRob3JTdHlsZUZyb21GYWxzZVRvVHJ1ZSgpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0
YWNoZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNr
cyBub2RlcyBhcmUgcmVhbGx5ZWQgYXR0YWNoZWQuCi0KLVBBU1MgaW50ZXJuYWxzLmF0dGFjaGVk
KGxpZ2h0KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuYXR0YWNoZWQobGlnaHQpIGlzIHRydWUK
LVBBU1MgaW50ZXJuYWxzLmF0dGFjaGVkKGxpZ2h0KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMu
YXR0YWNoZWQobGlnaHQpIGlzIHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotTElHSFQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw0NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LXRlc3QtZHJpdmVy
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IGNoZWNrcyBub2Rl
cyBhcmUgcmVhbGx5ZWQgYXR0YWNoZWQuPC9wPgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08
ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotCi08c2NyaXB0PgotdmFyIGNvbnRhaW5lciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKLQotKGZ1bmN0aW9uIHRlc3RBdHRh
Y2hlZEluTGlnaHRDaGlsZHJlbigpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIHdpbmRvdy5saWdodCA9IGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElH
SFQnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGxpZ2h0KTsKLQotICAgIHZhciBzaGFkb3dSb290
ID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmF0dGFjaGVkKGxpZ2h0KScsICdmYWxzZScpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLSAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmF0dGFjaGVkKGxpZ2h0KScsICd0cnVlJyk7Ci19KSgpOwotCi0oZnVuY3Rpb24gdGVzdE5v
dERpc3RyaWJ1dGVkRWxlbWVudEF0dGFjaGVkKCkgewotICAgIHZhciByb290ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgd2luZG93LmxpZ2h0ID0gY3JlYXRlU3BhbldpdGhU
ZXh0KCdMSUdIVCcpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQobGlnaHQpOwotCi0gICAgdmFyIHNo
YWRvd1Jvb3QgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJykpOwotCi0gICAgc2hv
dWxkQmUoJ2ludGVybmFscy5hdHRhY2hlZChsaWdodCknLCAnZmFsc2UnKTsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgc2hv
dWxkQmUoJ2ludGVybmFscy5hdHRhY2hlZChsaWdodCknLCAndHJ1ZScpOwotfSkoKTsKLQotdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1ibHVyLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtYmx1ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1ibHVyLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi1UaGlzIHRlc3RzIHRoZSBibHVyKCkgb24gb24gc2hh
ZG93IGhvc3Qgc2hvdWxkIHdvcmsgd2hlbiBhIHNoYWRvdyBob3N0IGNvbnRhaW5zIGEgZm9jdXNl
ZCBlbGVtZW50IGluIGl0cyBzaGFkb3cgRE9NIHN1YnRyZWVzIHByb3BlcnR5IChidWcgODExMDIp
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLWdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnc2hhZG93SG9zdEEvY2hpbGRJblRyZWVPbmUnKS5mb2N1cygpCi1QQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuaWQgaXMgInNoYWRvd0hvc3RBIgotZ2V0Tm9kZUluU2hhZG93VHJlZVN0
YWNrKCdzaGFkb3dIb3N0QScpLmJsdXIoKTsKLXNoYWRvd0hvc3RBIG9uYmx1ciBjYWxsZWQhCi1Q
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQuYm9keQotUEFTUyBnZXROb2Rl
SW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAot
UEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCLycp
LmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3No
YWRvd0hvc3RDLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotZ2V0Tm9kZUluU2hhZG93VHJlZVN0
YWNrKCdzaGFkb3dIb3N0QS9zaGFkb3dIb3N0Qi9jaGlsZEluVHJlZVR3bycpLmZvY3VzKCkKLVBB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAic2hhZG93SG9zdEEiCi1nZXROb2RlSW5T
aGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCJykuYmx1cigpOwotc2hhZG93
SG9zdEIgb25ibHVyIGNhbGxlZCEKLXNoYWRvd0hvc3RBIG9uYmx1ciBjYWxsZWQhCi1QQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQuYm9keQotUEFTUyBnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBn
ZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCLycpLmFjdGl2
ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hv
c3RDLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdz
aGFkb3dIb3N0QS9zaGFkb3dIb3N0Qi9jaGlsZEluVHJlZVR3bycpLmZvY3VzKCkKLVBBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAic2hhZG93SG9zdEEiCi1nZXROb2RlSW5TaGFkb3dU
cmVlU3RhY2soJ3NoYWRvd0hvc3RBJykuYmx1cigpOwotc2hhZG93SG9zdEIgb25ibHVyIGNhbGxl
ZCEKLXNoYWRvd0hvc3RBIG9uYmx1ciBjYWxsZWQhCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQgaXMgZG9jdW1lbnQuYm9keQotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRv
d0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAot
UEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RDLycpLmFjdGl2ZUVsZW1l
bnQgaXMgbnVsbAotZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0Qy9jaGlsZElu
VHJlZVRocmVlJykuZm9jdXMoKQotUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlzICJz
aGFkb3dIb3N0QyIKLWdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEnKS5ibHVy
KCk7Ci1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgInNoYWRvd0hvc3RDIgotUEFT
UyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQg
aXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRv
d0hvc3RCLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soJ3NoYWRvd0hvc3RDLycpLmFjdGl2ZUVsZW1lbnQuaWQgaXMgImNoaWxkSW5UcmVlVGhy
ZWUiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWJsdXIuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYmx1
ci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYmx1ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc2ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29uc29s
ZSI+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgYmx1cigp
IG9uIG9uIHNoYWRvdyBob3N0IHNob3VsZCB3b3JrIHdoZW4gYSBzaGFkb3cgaG9zdCBjb250YWlu
cyBhIGZvY3VzZWQgZWxlbWVudCBpbiBpdHMgc2hhZG93IERPTSBzdWJ0cmVlcyBwcm9wZXJ0eSAo
YnVnIDgxMTAyKSIpOwotCi1pZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgZGVidWcoJ1RoaXMg
dGVzdCBydW5zIG9uIERSVCBvbmx5Jyk7Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOidzaGFkb3dIb3N0QSd9LAotICAgICAgICBjcmVhdGVT
aGFkb3dSb290KAotICAgICAgICAgICAgY3JlYXRlRE9NKCdwJywgeydpZCc6J2NoaWxkSW5UcmVl
T25lJywgJ3RhYmluZGV4JzonMSd9KSwKLSAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6J3NoYWRvd0hvc3RCJ30sCi0gICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdwJywgeydpZCc6J2NoaWxkSW5UcmVlVHdvJywg
J3RhYmluZGV4JzonMid9KSkpKSkpOwotCi1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKAotICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6J3NoYWRvd0hvc3RDJ30sCi0gICAgICAgIGNyZWF0ZVNo
YWRvd1Jvb3QoCi0gICAgICAgICAgICBjcmVhdGVET00oJ3AnLCB7J2lkJzonY2hpbGRJblRyZWVU
aHJlZScsICd0YWJpbmRleCc6JzMnfSkpKQotKTsKLQotZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNr
KCdzaGFkb3dIb3N0QScpLm9uYmx1ciA9IGZ1bmN0aW9uKCkgeyBkZWJ1Zygic2hhZG93SG9zdEEg
b25ibHVyIGNhbGxlZCEiKTsgfQotZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0
QS9zaGFkb3dIb3N0QicpLm9uYmx1ciA9IGZ1bmN0aW9uKCkgeyBkZWJ1Zygic2hhZG93SG9zdEIg
b25ibHVyIGNhbGxlZCEiKTsgfQotCi0vLyBjaGlsZEluVHJlZU9uZSBmb3Vjc2VkIC0gc2hhZG93
SG9zdEEgYmx1cnJlZAotZXZhbEFuZExvZygiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFk
b3dIb3N0QS9jaGlsZEluVHJlZU9uZScpLmZvY3VzKCkiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCIsICJzaGFkb3dIb3N0QSIpOwotZXZhbEFuZExv
ZygiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QScpLmJsdXIoKTsiKTsKLXNo
b3VsZEJlKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50IiwgImRvY3VtZW50LmJvZHkiKTsKLXNob3Vs
ZEJlKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVsZW1l
bnQiLCAibnVsbCIpOwotc2hvdWxkQmUoImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93
SG9zdEEvc2hhZG93SG9zdEIvJykuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci1zaG91bGRCZSgi
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0Qy8nKS5hY3RpdmVFbGVtZW50Iiwg
Im51bGwiKTsKLQotLy8gY2hpbGRJblRyZWVUd28gZm91Y3NlZCAtIHNoYWRvd0hvc3RCIGJsdXJy
ZWQKLWV2YWxBbmRMb2coImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEvc2hh
ZG93SG9zdEIvY2hpbGRJblRyZWVUd28nKS5mb2N1cygpIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQiLCAic2hhZG93SG9zdEEiKTsKLWV2YWxBbmRM
b2coImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEvc2hhZG93SG9zdEInKS5i
bHVyKCk7Iik7Ci1zaG91bGRCZSgiZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVudC5i
b2R5Iik7Ci1zaG91bGRCZSgiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QS8n
KS5hY3RpdmVFbGVtZW50IiwgIm51bGwiKTsKLXNob3VsZEJlKCJnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCLycpLmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIp
Owotc2hvdWxkQmUoImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEMvJykuYWN0
aXZlRWxlbWVudCIsICJudWxsIik7Ci0KLS8vIGNoaWxkSW5UcmVlVHdvIGZvdWNzZWQgLSBzaGFk
b3dIb3N0QSBibHVycmVkCi1ldmFsQW5kTG9nKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3No
YWRvd0hvc3RBL3NoYWRvd0hvc3RCL2NoaWxkSW5UcmVlVHdvJykuZm9jdXMoKSIpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIiwgInNoYWRvd0hvc3RB
Iik7Ci1ldmFsQW5kTG9nKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBJyku
Ymx1cigpOyIpOwotc2hvdWxkQmUoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQiLCAiZG9jdW1lbnQu
Ym9keSIpOwotc2hvdWxkQmUoImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEv
JykuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci1zaG91bGRCZSgiZ2V0Tm9kZUluU2hhZG93VHJl
ZVN0YWNrKCdzaGFkb3dIb3N0QS9zaGFkb3dIb3N0Qi8nKS5hY3RpdmVFbGVtZW50IiwgIm51bGwi
KTsKLXNob3VsZEJlKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RDLycpLmFj
dGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotCi0vLyBjaGlsZEluVHJlZVRocmVlIGZvdWNzZWQgLSBz
aGFkb3dIb3N0QSBibHVycmVkCi1ldmFsQW5kTG9nKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2so
J3NoYWRvd0hvc3RDL2NoaWxkSW5UcmVlVGhyZWUnKS5mb2N1cygpIik7Ci1zaG91bGRCZUVxdWFs
VG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQiLCAic2hhZG93SG9zdEMiKTsKLWV2
YWxBbmRMb2coImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEnKS5ibHVyKCk7
Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQiLCAi
c2hhZG93SG9zdEMiKTsKLXNob3VsZEJlKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRv
d0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotc2hvdWxkQmUoImdldE5vZGVJblNo
YWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEvc2hhZG93SG9zdEIvJykuYWN0aXZlRWxlbWVudCIs
ICJudWxsIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldE5vZGVJblNoYWRvd1RyZWVTdGFj
aygnc2hhZG93SG9zdEMvJykuYWN0aXZlRWxlbWVudC5pZCIsICJjaGlsZEluVHJlZVRocmVlIik7
Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
aW5uZXJIVE1MLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRN
TC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotVGhpcyB0ZXN0
cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93IHJvb3QuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi0KLVBBU1MgJ2lubmVySFRNTCcgaW4gaW50ZXJuYWxzLnNoYWRv
d1Jvb3QgaXMgZmFsc2UKLVBBU1Mgcm9vdC5pbm5lckhUTUwgaXMgZGVmaW5lZC4KLVBBU1Mgcm9v
dC5pbm5lckhUTUwgaXMgJzxkaXYgaWQ9ImRpdjEiPjwvZGl2PjxkaXYgaWQ9ImRpdjIiPjwvZGl2
PicKLVBBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJ0hlbGxvJwotUEFTUyByb290LmlubmVySFRNTCBp
cyAnPHAgaWQ9InAzIj5IZWxsb1dvcmxkPC9wPicKLVBBU1Mgcm9vdC5maXJzdENoaWxkLm5vZGVO
YW1lIGlzICdQJwotUEFTUyByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RpdicpIGlzIFtdCi1QQVNT
IHJvb3QuZ2V0RWxlbWVudEJ5SWQoJ3AzJykuaW5uZXJIVE1MIGlzICdIZWxsb1dvcmxkJwotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJI
VE1MLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PGRpdiBpZD0iY29uc29sZSI+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93IHJvb3QuIik7Ci0KLWlmICgh
d2luZG93LmludGVybmFscykKLSAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJ1bnMgb24gRFJUIG9ubHkn
KTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0KLWhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLWRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaG9zdCk7Ci1yb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0KLXZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci1kaXYxLnNl
dEF0dHJpYnV0ZSgiaWQiLCAiZGl2MSIpOwotcm9vdC5hcHBlbmRDaGlsZChkaXYxKTsKLQotdmFy
IGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLWRpdjIuc2V0QXR0cmlidXRl
KCJpZCIsICJkaXYyIik7Ci1yb290LmFwcGVuZENoaWxkKGRpdjIpOwotCi1zaG91bGRCZUZhbHNl
KCInaW5uZXJIVE1MJyBpbiBpbnRlcm5hbHMuc2hhZG93Um9vdCIpOwotc2hvdWxkQmVEZWZpbmVk
KCJyb290LmlubmVySFRNTCIpOwotc2hvdWxkQmUoInJvb3QuaW5uZXJIVE1MIiwgIic8ZGl2IGlk
PVwiZGl2MVwiPjwvZGl2PjxkaXYgaWQ9XCJkaXYyXCI+PC9kaXY+JyIpOwotCi1yb290LmlubmVy
SFRNTCA9ICJIZWxsbyI7Ci1zaG91bGRCZSgicm9vdC5pbm5lckhUTUwiLCAiJ0hlbGxvJyIpOwot
Ci1yb290LmlubmVySFRNTCA9ICI8cCBpZD1cInAzXCI+SGVsbG9Xb3JsZDwvcD4iOwotCi1zaG91
bGRCZSgicm9vdC5pbm5lckhUTUwiLCAiJzxwIGlkPVwicDNcIj5IZWxsb1dvcmxkPC9wPiciKTsK
LXNob3VsZEJlKCJyb290LmZpcnN0Q2hpbGQubm9kZU5hbWUiLCAiJ1AnIik7Ci1zaG91bGRCZSgi
cm9vdC5xdWVyeVNlbGVjdG9yQWxsKCdkaXYnKSIsICJbXSIpOwotc2hvdWxkQmUoInJvb3QuZ2V0
RWxlbWVudEJ5SWQoJ3AzJykuaW5uZXJIVE1MIiwgIidIZWxsb1dvcmxkJyIpOwotCi19Ci12YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWpzLWFwaS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGktZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDI5ICswLDAgQEAKLVRlc3RzIGZvciBTaGFkb3dSb290IEpTIEFQ
SXMuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJUCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1QQVNTIHdpbmRvdy5TaGFkb3dSb290IGlzIHVuZGVmaW5lZC4KLVBBU1Mgd2luZG93Lldl
YktpdFNoYWRvd1Jvb3QgaXMgZGVmaW5lZC4KLVBBU1MgbmV3IHdpbmRvdy5XZWJLaXRTaGFkb3dS
b290KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yLgotUEFTUyBzaGFkb3dSb290IGluc3RhbmNlb2Ygd2lu
ZG93LldlYktpdFNoYWRvd1Jvb3QgaXMgdHJ1ZQotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRC
eUlkKCdkaXYxJykgaXMgZGl2MQotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdmb28n
KSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY2xhc3My
JykgaXMgW2RpdjJdCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZm9v
JykgaXMgW10KLVBBU1Mgc2hhZG93Um9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JykgaXMg
W2RpdjEsIGRpdjJdCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvbycp
IGlzIFtdCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygnKicsICdkaXYn
KSBpcyBbZGl2MSwgZGl2Ml0KLVBBU1Mgc2hhZG93Um9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZU5T
KCcnLCAnZGl2JykgaXMgW10KLVBBU1Mgc2hhZG93Um9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZU5T
KCcqJywgJ2ZvbycpIGlzIFtdCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2RpdjEn
KSBpcyBkaXYxCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2ZvbycpIGlzIG51bGwK
LVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuY2xhc3MyJykgaXMgZGl2MgotUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5mb28nKSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvckFsbCgnZGl2JykgaXMgW2RpdjEsIGRpdjJdCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvckFsbCgnZm9vJykgaXMgW10KLVBBU1MgeW91bmdlclNoYWRvd1Jvb3QgaXMg
bm90IHNoYWRvd1Jvb3QKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
anMtYXBpLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWpzLWFwaS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPCEtLSBUaGVzZSBlbGVtZW50cyBz
aG91bGQgbm90IGJlIHNlbGVjdGVkIGluIFNoYWRvd1Jvb3QncyBxdWVyeVNlbGVjdG9yLiAtLT4K
LTxkaXYgaWQ9ImZvbyI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJmb28iPjwvZGl2PgotPGZvbz48L2Zv
bz4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgZm9yIFNoYWRvd1Jvb3QgSlMgQVBJcy4g
Q2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1zaG91bGRCZVVuZGVmaW5lZCgid2luZG93LlNo
YWRvd1Jvb3QiKTsKLXNob3VsZEJlRGVmaW5lZCgid2luZG93LldlYktpdFNoYWRvd1Jvb3QiKTsK
LXNob3VsZFRocm93KCJuZXcgd2luZG93LldlYktpdFNoYWRvd1Jvb3QoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2JykpIik7Ci0KLXZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOwotdmFy
IHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotc2hv
dWxkQmVUcnVlKCJzaGFkb3dSb290IGluc3RhbmNlb2Ygd2luZG93LldlYktpdFNoYWRvd1Jvb3Qi
KTsKLQotdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLWRpdjEuc2V0
QXR0cmlidXRlKCJpZCIsICJkaXYxIik7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdjEpOwot
Ci12YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotZGl2Mi5zZXRBdHRy
aWJ1dGUoImlkIiwgImRpdjIiKTsKLWRpdjIuY2xhc3NMaXN0LmFkZCgiY2xhc3MyIik7Ci1zaGFk
b3dSb290LmFwcGVuZENoaWxkKGRpdjIpOwotCi0vLyBUZXN0cyBmb3IgRG9jdW1lbnQgc2hvdWxk
IGNvdmVyIG1vc3QgY2FzZXMgZm9yIHRoZSBmb2xsb3dpbmcgQVBJcy4KLS8vIFdlIGhhdmUgYmFz
aWMgdGVzdHMgaGVyZS4gTW9yZSB0ZXN0cyBhcmUgd2VsY29tZSwgYnV0IHdlIHNob3VsZCBhdm9p
ZCB1bm5lY3NzYXJ5IGR1cGxpY2F0aW9ucy4KLXNob3VsZEJlKCJzaGFkb3dSb290LmdldEVsZW1l
bnRCeUlkKCdkaXYxJykiLCAiZGl2MSIpOwotc2hvdWxkQmVOdWxsKCJzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCdmb28nKSIpOwotCi1zaG91bGRCZSgic2hhZG93Um9vdC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCdjbGFzczInKSIsICJbZGl2Ml0iKTsKLXNob3VsZEJlKCJzaGFkb3dSb290Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZvbycpIiwgIltdIik7Ci0KLXNob3VsZEJlKCJzaGFkb3dS
b290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSIsICJbZGl2MSwgZGl2Ml0iKTsKLXNob3Vs
ZEJlKCJzaGFkb3dSb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmb28nKSIsICJbXSIpOwotCi0v
LyBGSVhNRTogQWRkIG1vcmUgdGVzdHMgdXNpbmcgWE1MIGRvY3VtZW50cy4KLXNob3VsZEJlKCJz
aGFkb3dSb290LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoJyonLCAnZGl2JykiLCAiW2RpdjEsIGRp
djJdIik7Ci1zaG91bGRCZSgic2hhZG93Um9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCcnLCAn
ZGl2JykiLCAiW10iKTsKLXNob3VsZEJlKCJzaGFkb3dSb290LmdldEVsZW1lbnRzQnlUYWdOYW1l
TlMoJyonLCAnZm9vJykiLCAiW10iKTsKLQotc2hvdWxkQmUoInNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignI2RpdjEnKSIsICJkaXYxIik7Ci1zaG91bGRCZU51bGwoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignI2ZvbycpIik7Ci1zaG91bGRCZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcu
Y2xhc3MyJykiLCAiZGl2MiIpOwotc2hvdWxkQmVOdWxsKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJy5mb28nKSIpOwotc2hvdWxkQmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZGl2
JykiLCAiW2RpdjEsIGRpdjJdIik7Ci1zaG91bGRCZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
QWxsKCdmb28nKSIsICJbXSIpOwotCi12YXIgeW91bmdlclNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNob3VsZE5vdEJlKCJ5b3VuZ2VyU2hhZG93Um9v
dCIsICJzaGFkb3dSb290Iik7Ci0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtbmV3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoZSBvYmplY3QgJ2hvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpJyBhbmQgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBhcmUgdGhl
IHNhbWUuCi0KLVBBU1Mgcm9vdDEgaXMgcm9vdDIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBjaGVja3MgdGhlIG9iamVjdCAnaG9zdC53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCknIGFuZCBpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIGFyZSB0
aGUgc2FtZS48L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWZ1bmN0
aW9uIGRvVGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgZGVi
dWcoJ1RoaXMgdGVzdCBydW5zIG9uIERSVCBvbmx5Jyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAvLyB3ZSBz
aG91bGQgY2FsbCB3ZWJLaXRDcmVhdGVTaGFkb3dSb290IGZpcnN0LgotICAgIHJvb3QxID0gZGl2
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICByb290MiA9IGludGVybmFscy5zaGFkb3dS
b290KGRpdik7Ci0KLSAgICBzaG91bGRCZSgncm9vdDEnLCAncm9vdDInKTsKLX0KLQotZG9UZXN0
KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LW5vZGUtbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LW5vZGUtbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1ub2RlLWxp
c3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLVBBU1MgdW5sZXNz
IGNyYXNoCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qtbm9k
ZS1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LW5vZGUtbGlzdC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qtbm9kZS1saXN0Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0U2hvdWxkTm90Q3Jhc2goKQotewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIHJldHVybjsKLSAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICB2
YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJsb2NrcXVvdGUiKTsKLSAgICB2YXIg
c2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoaG9zdCk7Ci0gICAgdmFyIGNoaWxk
cmVuID0gc2hhZG93LmNoaWxkTm9kZXM7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCho
b3N0KTsKLQotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLSAgICBkb2N1bWVudC5ib2R5
LmlubmVySFRNTCA9ICJQQVNTIHVubGVzcyBjcmFzaCI7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0idGVzdFNob3VsZE5vdENyYXNoKCkiPgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJ
bmhlcml0YW5jZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHls
ZT4KLWRpdi5yZXNldFRlc3QgewotICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmOwotICBib3JkZXI6
IHNvbGlkOwotICBtYXJnaW46IDRweDsKLSAgcGFkZGluZzogMTZweDsKLSAgY29sb3I6ICNmZWU7
Ci0gIGZvbnQtZmFtaWx5OiBTZXJpZjsKLSAgZm9udC1zaXplOiAyNHB4OwotICBmb250LXN0eWxl
OiBpdGFsaWM7Ci0gIGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsKLSAgZm9udC13ZWlnaHQ6IGJv
bGQ7Ci0gIGxldHRlci1zcGFjaW5nOiAycHg7Ci0gIGxpbmUtaGVpZ2h0OiAyMDAlOwotICB0ZXh0
LWFsaWduOiBzdGFydDsKLSAgdGV4dC1pbmRlbnQ6IDUwcHg7Ci0gIHRleHQtdHJhbnNmb3JtOiB1
cHBlcmNhc2U7Ci0gIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gIHdvcmQtc3BhY2luZzogMzBweDsK
LX0KLWRpdi5pbml0aWFsVmFsdWVzIHsKLSAgY29sb3I6IGluaXRpYWw7Ci0gIGZvbnQtZmFtaWx5
OiBpbml0aWFsOwotICBmb250LXNpemU6IGluaXRpYWw7Ci0gIGZvbnQtc3R5bGU6IGluaXRpYWw7
Ci0gIGZvbnQtdmFyaWFudDogaW5pdGlhbDsKLSAgZm9udC13ZWlnaHQ6IGluaXRpYWw7Ci0gIGxl
dHRlci1zcGFjaW5nOiBpbml0aWFsOwotICBsaW5lLWhlaWdodDogaW5pdGlhbDsKLSAgdGV4dC1h
bGlnbjogaW5pdGlhbDsKLSAgdGV4dC1pbmRlbnQ6IGluaXRpYWw7Ci0gIHRleHQtdHJhbnNmb3Jt
OiBpbml0aWFsOwotICB3aGl0ZS1zcGFjZTogaW5pdGlhbDsKLSAgd29yZC1zcGFjaW5nOiBpbml0
aWFsOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdj48ZGl2IGNsYXNzPSJyZXNl
dFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4K
LTxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4K
LTxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rpdj48L2Rpdj48L2Rpdj4K
LTxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJpbml0aWFsVmFsdWVzIj50
ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Ci08ZGl2PjxkaXYgY2xhc3M9InJlc2V0VGVzdCI+PGRpdiBj
bGFzcz0iaW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgotPGRpdj48ZGl2IGNs
YXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0
U3R5bGVJbmhlcml0YW5jZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2UuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0
U3R5bGVJbmhlcml0YW5jZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2OSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1kaXYucmVzZXRUZXN0IHsK
LSAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjsKLSAgYm9yZGVyOiBzb2xpZDsKLSAgbWFyZ2luOiA0
cHg7Ci0gIHBhZGRpbmc6IDE2cHg7Ci0gIGNvbG9yOiAjZmVlOwotICBmb250LWZhbWlseTogU2Vy
aWY7Ci0gIGZvbnQtc2l6ZTogMjRweDsKLSAgZm9udC1zdHlsZTogaXRhbGljOwotICBmb250LXZh
cmlhbnQ6IHNtYWxsLWNhcHM7Ci0gIGZvbnQtd2VpZ2h0OiBib2xkOwotICBsZXR0ZXItc3BhY2lu
ZzogMnB4OwotICBsaW5lLWhlaWdodDogMjAwJTsKLSAgdGV4dC1hbGlnbjogc3RhcnQ7Ci0gIHRl
eHQtaW5kZW50OiA1MHB4OwotICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwotICB3aGl0ZS1z
cGFjZTogbm93cmFwOwotICB3b3JkLXNwYWNpbmc6IDMwcHg7Ci19Ci08L3N0eWxlPgotPHNjcmlw
dD4KLWZ1bmN0aW9uIGFzc2VydFRydWUoaWQsIGFjdHVhbCkgewotICAgIGlmICghYWN0dWFsKQot
ICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgaWQgKyAiOiBhc3NlcnRUcnVlIGZhaWxlZCI7Ci19
Ci0KLWZ1bmN0aW9uIGFzc2VydEZhbHNlKGlkLCBhY3R1YWwpIHsKLSAgICBpZiAoYWN0dWFsKQot
ICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgaWQgKyAgIjogYXNzZXJ0RmFsc2UgZmFpbGVkIjsK
LX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYSwgYikKLXsKLSAgICBpZiAoYSAhPSBiKQotICAgICAg
ICB0aHJvdyAiZmFpbHVyZToiICsgYSArICI6IHNob3VsZCBiZSAiICsgYjsKLX0KLQotZnVuY3Rp
b24gc2hvdWxkTm90QmUoYSwgYikKLXsKLSAgICBpZiAoYSA9PSBiKQotICAgICAgICB0aHJvdyAi
ZmFpbHVyZToiICsgYSArICI6IHNob3VsZCBub3QgYmUgIiArIGI7Ci19Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Ci08ZGl2IGlkPSJu
by1yZXNldC1zdHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Ci08ZGl2IGlkPSJyZXNldC1zdHlsZS1p
bmhlcml0YW5jZS10cnVlLXRvLWZhbHNlIj48L2Rpdj4KLTxkaXYgaWQ9InJlc2V0LXN0eWxlLWlu
aGVyaXRhbmNlLWZhbHNlLXRvLXRydWUiPjwvZGl2PgotPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UtZm9yLWNvbnRlbnQiPjwvZGl2PgotPGRpdiBpZD0ibm8tcmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UtZm9yLWNvbnRlbnQiPjwvZGl2PgotCi08c2NyaXB0PgotZnVuY3Rpb24gcmVuZGVy
V2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXYuY2xhc3NOYW1lID0gJ3Jlc2V0VGVzdCc7Ci0K
LSAgICB2YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAg
YXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxz
ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKLSAgICBzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOwotICAgIAotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpLmFwcGVuZENoaWxkKGRpdik7Ci19
Ci0KLWZ1bmN0aW9uIHJlbmRlcldpdGhSZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7Ci0gICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5jbGFzc05hbWUg
PSAncmVzZXRUZXN0JzsKLQotICAgIHZhciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLSAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFu
Y2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOwot
ICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKLSAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOwotICAgIGFzc2VydFRydWUoJ3Jlc2V0
U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZSBhcyBleHBsaWNpdGx5IHNldCcsIHNoYWRv
d1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKLSAgICAKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRDaGlsZChkaXYpOwotfQot
Ci1mdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tVHJ1
ZVRvRmFsc2UoKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKLQotICAgIHZhciBzaGFkb3dSb290
ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBhc3NlcnRGYWxzZSgnZGVmYXVs
dCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNl
dFN0eWxlSW5oZXJpdGFuY2UpOwotICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNl
ID0gdHJ1ZTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2IGlkPSJ0ZXN0MSI+dGV4
dDwvZGl2Pic7Ci0gICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBi
ZSB0cnVlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOwotICAgIAotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZS10cnVlLXRvLWZh
bHNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgICBkaXYub2Zmc2V0TGVmdDsKLSAgICB2YXIgdGFy
Z2V0ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgndGVzdDEnKTsKLSAgICBzaG91bGROb3RC
ZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQt
ZmFtaWx5JyksICdzZXJpZicpOwotICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQnKSwgJzQ4cHgnKTsKLQot
ICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0gICAgYXNzZXJ0
RmFsc2UoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290
LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Ci0gICAgZGl2Lm9mZnNldExlZnQ7Ci0gICAgc2hvdWxk
QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250
LWZhbWlseScpLCAnc2VyaWYnKTsKLSAgICBzaG91bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7Ci19Ci0K
LWZ1bmN0aW9uIHJlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21GYWxz
ZVRvVHJ1ZSgpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOwotCi0gICAgdmFyIHNoYWRvd1Jvb3Qg
PSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0
IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0
U3R5bGVJbmhlcml0YW5jZSk7Ci0gICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2Ug
PSBmYWxzZTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2IGlkPSJ0ZXN0MiI+dGV4
dDwvZGl2Pic7Ci0gICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNl
IHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKLSAg
ICAKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Ut
ZmFsc2UtdG8tdHJ1ZScpLmFwcGVuZENoaWxkKGRpdik7Ci0gICAgZGl2Lm9mZnNldExlZnQ7Ci0g
ICAgdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJyk7Ci0gICAg
c2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVl
KCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKLSAgICBzaG91bGRCZSh3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JyksICc0OHB4Jyk7
Ci0KLSAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7Ci0gICAgYXNz
ZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSB0cnVlJywgc2hhZG93Um9v
dC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOwotICAgIGRpdi5vZmZzZXRMZWZ0OwotICAgIHNob3Vs
ZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgn
Zm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7Ci0gICAgc2hvdWxkTm90QmUod2luZG93LmdldENvbXB1
dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAnNDhweCcp
OwotfQotCi1mdW5jdGlvbiBjcmVhdGVEaXZXaXRoVGV4dCh0ZXh0KSB7Ci0gICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcmV0dXJuIGRpdjsKLX0KLQotZnVuY3Rp
b24gcmVuZGVyUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpIHsKLSAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LmNsYXNzTmFtZSA9ICdy
ZXNldFRlc3QnOwotICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVEaXZXaXRoVGV4dCgndGV4dCcp
KTsKLQotICAgIHZhciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdiI+PC9jb250
ZW50Pic7Ci0gICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwotICAg
IGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZScsIHNoYWRv
d1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQnKS5hcHBlbmRDaGlsZChkaXYp
OwotICAgIGRpdi5vZmZzZXRMZWZ0OwotfQotCi1mdW5jdGlvbiByZW5kZXJOb1Jlc2V0U3R5bGVJ
bmhlcml0YW5jZUZvckNvbnRlbnQoKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKLSAgICBkaXYu
YXBwZW5kQ2hpbGQoY3JlYXRlRGl2V2l0aFRleHQoJ3RleHQnKSk7Ci0KLSAgICB2YXIgc2hhZG93
Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXYiPjwvY29udGVudD4nOwotICAgIHNoYWRvd1Jv
b3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0gICAgYXNzZXJ0RmFsc2UoJ3Jlc2V0
U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJ
bmhlcml0YW5jZSk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vLXJlc2V0LXN0eWxl
LWluaGVyaXRhbmNlLWZvci1jb250ZW50JykuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgICBkaXYub2Zm
c2V0TGVmdDsKLX0KLQotcmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci1yZW5k
ZXJXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci1yZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0
eWxlSW5oZXJpdGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKTsKLXJlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0
U3R5bGVJbmhlcml0YW5jZUZyb21GYWxzZVRvVHJ1ZSgpOwotcmVuZGVyUmVzZXRTdHlsZUluaGVy
aXRhbmNlRm9yQ29udGVudCgpOwotcmVuZGVyTm9SZXNldFN0eWxlSW5oZXJpdGFuY2VGb3JDb250
ZW50KCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGls
ZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSArMCwwIEBACi1QQVNTIHVubGVzcyBjcmFzaApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtdGV4dC1jaGlsZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdFNob3VsZE5vdENyYXNoKCkKLXsKLSAg
ICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICByZXR1cm47Ci0gICAgd2luZG93LnRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Ci0gICAgdmFyIHNoYWRvdyA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290
KHJvb3QpOwotICAgIHZhciBzaGFkb3dCdWlsZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gICAgc2hhZG93QnVpbGRlci5pbm5lckhUTUwgPSAiPGRpdj48L2Rpdj54IjsKLSAg
ICB3aGlsZSAoc2hhZG93QnVpbGRlci5maXJzdENoaWxkKQotICAgICAgICBzaGFkb3cuYXBwZW5k
Q2hpbGQoc2hhZG93QnVpbGRlci5maXJzdENoaWxkKTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHJvb3QpOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLSAgICBkb2N1bWVu
dC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIHVubGVzcyBjcmFzaCI7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdFNob3VsZE5vdENyYXNoKCkiPgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRvdWNo
LWxpc3RlbmVyLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdG91Y2gtbGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtdG91Y2gtbGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEwICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5n
IGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHVubGVzcyBjcmFzaAotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10b3VjaC1saXN0ZW5lci1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10b3VjaC1saXN0
ZW5lci1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXJvb3QtdG91Y2gtbGlzdGVuZXItY3Jhc2guaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9
dGFyZ2V0PjwvZGl2PgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1mdW5jdGlv
biBhZGRUb3VjaEV2ZW50TGlzdGVuZXJzKG5hbWUpCi17Ci0gICAgdmFyIG5vZGUgPSBnZXROb2Rl
SW5TaGFkb3dUcmVlU3RhY2sobmFtZSk7Ci0gICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCd0b3Vj
aHN0YXJ0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKLX0KLQotdGFyZ2V0LmFwcGVuZENoaWxkKAot
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdBJ30sCi0gICAgICAgICAgY3JlYXRlU2hhZG93
Um9vdCgpKSk7Ci1hZGRUb3VjaEV2ZW50TGlzdGVuZXJzKCdBLycpOwotCi1zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewotICAgIHRhcmdldC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhcmdldCk7Ci0g
ICAgZ2MoKTsKLSAgICBkZWJ1ZygiUEFTUyB1bmxlc3MgY3Jhc2giKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNl
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1h
dHRyaWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTM4
ICswLDAgQEAKLUlkIHNob3VsZCBiZSBjb2xsZWN0ZWQKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJob3N0IikgaXMgZmFsc2UKLQotQ2xh
c3Mgc2hvdWxkIGJlIGNvbGxlY3RlZAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFz
c0luU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImhvc3QiKSBpcyBmYWxzZQotCi1BdHRyaWJ1dGUgc2hv
dWxkIGJlIGNvbGxlY3RlZAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJ
blNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiaG9zdCIpIGlzIGZhbHNlCi0KLVNlbGVjdCBhdHRy
aWJ1dGUgbWlnaHQgaGF2ZSBzZXZlcmFsIHNlbGVjdG9ycwotUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5o
YXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCi1QQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCi1QQVNT
IGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJh
ciIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyho
b3N0LCAiYmF6IikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmli
dXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQotUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1
ZQotCi1Eb24ndCBjb3VudCBzaGFkb3cgZWxlbWVudAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQotUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxz
ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIi
KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhv
c3QsICJiYXoiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1
dGVJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZhbHNlCi1QQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxz
ZQotCi1Db21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290Ci1QQVNTIGludGVybmFscy5o
YXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCi1QQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCi1Q
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28i
KSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93
KGhvc3QsICJwaXlvIikgaXMgZmFsc2UKLQotQW5vdGhlciBjb21wbGV4IGNhc2UgZm9yIHNpbmds
ZSBTaGFkb3dSb290Ci1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9z
dCwgImZvbyIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNo
YWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JB
dHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotCi1NdWx0aXBsZSBTaGFkb3dS
b290IGNhc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAi
Zm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhv
c3QsICJiYXIiKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFk
b3coaG9zdCwgImJheiIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNs
YXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKLVBBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlz
IGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhv
c3QsICJiYXIiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1
dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQotCi1EeW5hbWljIHNlbGVjdCBhdHRyaWJ1
dGUgdXBkYXRlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImZvbyIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiYmFyIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
SWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgdHJ1ZQotCi1OZXN0ZWQgU2hhZG93RE9NIGNhc2UK
LVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMg
dHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIi
KSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImJheiIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3co
aG9zdCwgImZvbyIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
SWRJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQotCi1Qc2V1ZG9DbGFzcyBjYXNlOiA6Y2hl
Y2tlZAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhv
c3QsICJjaGVja2VkIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1
ZG9DbGFzc0luU2hhZG93KGhvc3QsICJlbmFibGVkIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZGlzYWJsZWQiKSBpcyBm
YWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhv
c3QsICJpbmRldGVybWluYXRlIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAibGluayIpIGlzIGZhbHNlCi1QQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInRhcmdldCIpIGlz
IGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3co
aG9zdCwgInZpc2l0ZWQiKSBpcyBmYWxzZQotCi1Qc2V1ZG9DbGFzcyBjYXNlOiA6ZW5hYmxlZAot
UEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJj
aGVja2VkIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xh
c3NJblNoYWRvdyhob3N0LCAiZW5hYmxlZCIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZGlzYWJsZWQiKSBpcyBmYWxzZQot
UEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJp
bmRldGVybWluYXRlIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNl
dWRvQ2xhc3NJblNoYWRvdyhob3N0LCAibGluayIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5o
YXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInRhcmdldCIpIGlzIGZhbHNl
Ci1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwg
InZpc2l0ZWQiKSBpcyBmYWxzZQotCi1Qc2V1ZG9DbGFzcyBjYXNlOiA6ZGlzYWJsZWQKLVBBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiY2hlY2tl
ZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5T
aGFkb3coaG9zdCwgImVuYWJsZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIpIGlzIHRydWUKLVBBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRl
cm1pbmF0ZSIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0Ns
YXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyBmYWxzZQotUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ2aXNp
dGVkIikgaXMgZmFsc2UKLQotUHNldWRvQ2xhc3MgY2FzZTogOmluZGV0ZXJtaW5hdGUKLVBBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiY2hlY2tl
ZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5T
aGFkb3coaG9zdCwgImVuYWJsZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIpIGlzIGZhbHNlCi1QQVNT
IGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImluZGV0
ZXJtaW5hdGUiKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0Ns
YXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyBmYWxzZQotUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ2aXNp
dGVkIikgaXMgZmFsc2UKLQotUHNldWRvQ2xhc3MgY2FzZTogOmxpbmsKLVBBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiY2hlY2tlZCIpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9z
dCwgImVuYWJsZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1
ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFs
cy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImluZGV0ZXJtaW5hdGUi
KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hh
ZG93KGhvc3QsICJsaW5rIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQ
c2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ2aXNpdGVkIikgaXMg
ZmFsc2UKLQotUHNldWRvQ2xhc3MgY2FzZTogOnRhcmdldAotUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJjaGVja2VkIikgaXMgZmFsc2UKLVBB
U1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZW5h
YmxlZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNz
SW5TaGFkb3coaG9zdCwgImRpc2FibGVkIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0ZSIpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9z
dCwgImxpbmsiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9D
bGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNT
ZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInZpc2l0ZWQiKSBpcyBmYWxzZQot
Ci1Qc2V1ZG9DbGFzcyBjYXNlOiA6dmlzaXRlZAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJjaGVja2VkIikgaXMgZmFsc2UKLVBBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZW5hYmxlZCIp
IGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFk
b3coaG9zdCwgImRpc2FibGVkIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0ZSIpIGlzIGZhbHNlCi1Q
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImxp
bmsiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0lu
U2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ2aXNpdGVkIikgaXMgdHJ1ZQotCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVz
ZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVy
ZXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI3MyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotCi08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0Q2FzZShmKQotewot
ICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpOwotICAgIHNoYWRvd1Jvb3QgPSBpbnRl
cm5hbHMuc2hhZG93Um9vdChob3N0KTsKLQotICAgIGYoKTsKLSAgICBkZWJ1ZygnJyk7Ci19Ci0K
LXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnSWQgc2hvdWxkIGJlIGNvbGxlY3Rl
ZCcpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9v
Ij48L2NvbnRlbnQ+JzsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOwotICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJob3N0Iikn
LCAnZmFsc2UnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ0Ns
YXNzIHNob3VsZCBiZSBjb2xsZWN0ZWQnKTsKLQotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0g
Jzxjb250ZW50IHNlbGVjdD0iLmZvbyI+PC9jb250ZW50Pic7Ci0gICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUnKTsK
LSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0
LCAiaG9zdCIpJywgJ2ZhbHNlJyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAg
IGRlYnVnKCdBdHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOwotCi0gICAgc2hhZG93Um9v
dC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXZbZm9vXSI+PC9jb250ZW50Pic7Ci0g
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhv
c3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3Rv
ckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJob3N0IiknLCAnZmFsc2UnKTsKLX0pOwotCi10
ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ1NlbGVjdCBhdHRyaWJ1dGUgbWlnaHQg
aGF2ZSBzZXZlcmFsIHNlbGVjdG9ycycpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAn
PGNvbnRlbnQgc2VsZWN0PSIjZm9vLC5iYXIsZGl2W2Jhel0iPjwvY29udGVudD4nOwotICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScs
ICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFk
b3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNT
ZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7Ci0KLSAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIikn
LCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJ
blNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoiKScsICdmYWxzZScpOwotCi0g
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhv
c3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKLSAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJh
eiIpJywgJ3RydWUnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWco
J0RvblwndCBjb3VudCBzaGFkb3cgZWxlbWVudCcpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPHNoYWRvdyBzZWxlY3Q9IiNmb28sLmJhcixkaXZbYmF6XSI+PC9zaGFkb3c+JzsKLSAg
ICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9v
IiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKLQotICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJm
b28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JD
bGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoiKScsICdmYWxzZScp
OwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hh
ZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKLSAg
ICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9z
dCwgImJheiIpJywgJ2ZhbHNlJyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAg
IGRlYnVnKCdDb21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290Jyk7Ci0KLSAgICBzaGFk
b3dSb290LmlubmVySFRNTCA9ICc8ZGl2PjxkaXY+PC9kaXY+PGNvbnRlbnQgc2VsZWN0PSIqIj48
L2NvbnRlbnQ+PGRpdj48Y29udGVudCBzZWxlY3Q9ImRpdltmb289cGl5b10iPjwvY29udGVudD48
L2Rpdj4nOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9v
IiknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRy
aWJ1dGVJblNoYWRvdyhob3N0LCAicGl5byIpJywgJ2ZhbHNlJyk7Ci19KTsKLQotdGVzdENhc2Uo
ZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdBbm90aGVyIGNvbXBsZXggY2FzZSBmb3Igc2luZ2xl
IFNoYWRvd1Jvb3QnKTsKLQotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNl
bGVjdD0iI2ZvbywuZm9vLGRpdltmb29dIj48L2NvbnRlbnQ+JzsKLSAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOwot
ICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3Qs
ICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
ckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci19KTsKLQotdGVzdENh
c2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdNdWx0aXBsZSBTaGFkb3dSb290IGNhc2UnKTsK
LQotICAgIHZhciBhbm90aGVyU2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9v
Ij48L2NvbnRlbnQ+JzsKLSAgICBhbm90aGVyU2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+PGNvbnRlbnQgc2VsZWN0PSJkaXZbYmF6XSwuYmFy
Ij48L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJ
ZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUnKTsKLSAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6Iikn
LCAnZmFsc2UnKTsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFz
c0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7Ci0g
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwg
ImJheiIpJywgJ2ZhbHNlJyk7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIi
KScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRy
aWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1
bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnRHluYW1pYyBzZWxlY3QgYXR0cmlidXRlIHVwZGF0ZScp
OwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vIj48
L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZElu
U2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7Ci0KLSAgICB2
YXIgY29udGVudCA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignY29udGVudCcpOwotICAgIGNv
bnRlbnQuc2VsZWN0ID0gJyNiYXInOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ3RydWUn
KTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ05lc3RlZCBTaGFk
b3dET00gY2FzZScpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2Vs
ZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKLQotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLSAgICB2YXIgbmVzdGVkU2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci0gICAgbmVzdGVkU2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+JzsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxk
KGRpdik7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNl
Jyk7Ci0KLSAgICB2YXIgY29udGVudCA9IG5lc3RlZFNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
Y29udGVudCcpOwotICAgIGNvbnRlbnQuc2VsZWN0ID0gJyNiYXonOwotCi0gICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ3RydWUn
KTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0
LCAiYmFyIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1
bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnUHNldWRvQ2xhc3MgY2FzZTogOmNoZWNrZWQnKTsKLSAg
ICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImlucHV0OmNoZWNrZWQi
PjwvY29udGVudD4nOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBz
ZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImNoZWNrZWQiKScsICd0cnVlJyk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImVu
YWJsZWQiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIpJywgJ2ZhbHNlJyk7Ci0gICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9z
dCwgImluZGV0ZXJtaW5hdGUiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJsaW5rIiknLCAnZmFsc2Un
KTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNo
YWRvdyhob3N0LCAidGFyZ2V0IiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAidmlzaXRlZCIpJywgJ2Zh
bHNlJyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdQc2V1ZG9D
bGFzcyBjYXNlOiA6ZW5hYmxlZCcpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250
ZW50IHNlbGVjdD0iaW5wdXQ6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci0KLSAgICBzaG91bGRCZSgn
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiY2hlY2tl
ZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBz
ZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImVuYWJsZWQiKScsICd0cnVlJyk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImRp
c2FibGVkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0ZSIpJywgJ2ZhbHNlJyk7
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFk
b3coaG9zdCwgImxpbmsiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKScsICdmYWxzZScp
OwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hh
ZG93KGhvc3QsICJ2aXNpdGVkIiknLCAnZmFsc2UnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlv
bigpCi17Ci0gICAgZGVidWcoJ1BzZXVkb0NsYXNzIGNhc2U6IDpkaXNhYmxlZCcpOwotICAgIHNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iaW5wdXQ6ZGlzYWJsZWQiPjwv
Y29udGVudD4nOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVk
b0NsYXNzSW5TaGFkb3coaG9zdCwgImNoZWNrZWQiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJlbmFi
bGVkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
UHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZGlzYWJsZWQiKScsICd0cnVlJyk7Ci0gICAgc2hv
dWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwg
ImluZGV0ZXJtaW5hdGUiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJsaW5rIiknLCAnZmFsc2UnKTsK
LSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRv
dyhob3N0LCAidGFyZ2V0IiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAidmlzaXRlZCIpJywgJ2ZhbHNl
Jyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdQc2V1ZG9DbGFz
cyBjYXNlOiA6aW5kZXRlcm1pbmF0ZScpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxj
b250ZW50IHNlbGVjdD0iaW5wdXQ6aW5kZXRlcm1pbmF0ZSI+PC9jb250ZW50Pic7Ci0KLSAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0
LCAiY2hlY2tlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImVuYWJsZWQiKScsICdmYWxzZScpOwot
ICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93
KGhvc3QsICJkaXNhYmxlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImluZGV0ZXJtaW5hdGUiKScs
ICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0Ns
YXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKScs
ICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9D
bGFzc0luU2hhZG93KGhvc3QsICJ2aXNpdGVkIiknLCAnZmFsc2UnKTsKLX0pOwotCi10ZXN0Q2Fz
ZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ1BzZXVkb0NsYXNzIGNhc2U6IDpsaW5rJyk7Ci0g
ICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJpbnB1dDpsaW5rIj48
L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1
ZG9DbGFzc0luU2hhZG93KGhvc3QsICJjaGVja2VkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZW5h
YmxlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
clBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImRpc2FibGVkIiknLCAnZmFsc2UnKTsKLSAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0
LCAiaW5kZXRlcm1pbmF0ZSIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKScsICd0cnVlJyk7
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFk
b3coaG9zdCwgInRhcmdldCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInZpc2l0ZWQiKScsICdmYWxz
ZScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnUHNldWRvQ2xh
c3MgY2FzZTogOnRhcmdldCcpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50
IHNlbGVjdD0iaW5wdXQ6dGFyZ2V0Ij48L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJjaGVja2VkIikn
LCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRv
Q2xhc3NJblNoYWRvdyhob3N0LCAiZW5hYmxlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImRpc2Fi
bGVkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
UHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0ZSIpJywgJ2ZhbHNlJyk7Ci0g
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3co
aG9zdCwgImxpbmsiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKScsICd0cnVlJyk7Ci0g
ICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3co
aG9zdCwgInZpc2l0ZWQiKScsICdmYWxzZScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkK
LXsKLSAgICBkZWJ1ZygnUHNldWRvQ2xhc3MgY2FzZTogOnZpc2l0ZWQnKTsKLSAgICBzaGFkb3dS
b290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImlucHV0OnZpc2l0ZWQiPjwvY29udGVu
dD4nOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNz
SW5TaGFkb3coaG9zdCwgImNoZWNrZWQiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJlbmFibGVkIikn
LCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRv
Q2xhc3NJblNoYWRvdyhob3N0LCAiZGlzYWJsZWQiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJpbmRl
dGVybWluYXRlIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAibGluayIpJywgJ2ZhbHNlJyk7Ci0gICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9z
dCwgInRhcmdldCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInZpc2l0ZWQiKScsICd0cnVlJyk7Ci19
KTsKLQotZmluaXNoSlNUZXN0KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdHJlZS1saXN0ZW5lci1jbGVh
cmFuY2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctdHJlZS1saXN0ZW5lci1jbGVhcmFuY2UtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXRyZWUtbGlz
dGVuZXItY2xlYXJhbmNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICswLDAg
QEAKLVBBU1MgZmlyZWRDb3VudCBpcyAxCi1QQVNTIGZpcmVkQ291bnQgaXMgMQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdHJlZS1saXN0ZW5lci1jbGVhcmFuY2UuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXRyZWUtbGlz
dGVuZXItY2xlYXJhbmNlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctdHJlZS1saXN0ZW5lci1jbGVhcmFuY2UuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxpZnJhbWUgaWQ9ImNoaWxkRnJhbWUiIHNyYz0iLi9yZXNvdXJjZXMvc2hhZG93LXRyZWUt
bGlzdGVuZXItY2xlYXJhbmNlLWZyYW1lLmh0bWwiPjwvaWZyYW1lPgotPHNjcmlwdD4KLQotdmFy
IGNoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkRnJhbWUiKTsKLXZhciBmaXJl
ZENvdW50ID0gMDsKLQotZnVuY3Rpb24gZ2V0Q2hpbGRUYXJnZXQoKQotewotICAgIHJldHVybiBj
aGlsZC5jb250ZW50RG9jdW1lbnQudGFyZ2V0SW5TaGFkb3c7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHZhciB0b0JlTGlzdGVuZWQgPSBnZXRDaGlsZFRhcmdldCgpOwotICAgIHRvQmVM
aXN0ZW5lZC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IiwgZnVuY3Rpb24oZXZlbnQpIHsgZmlyZWRD
b3VudCsrOyB9KTsKLQotICAgIHRvQmVMaXN0ZW5lZC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21F
dmVudCgidGVzdCIpKTsKLSAgICBzaG91bGRCZSgiZmlyZWRDb3VudCIsICIxIik7Ci0KLSAgICB3
aW5kb3cuY2hpbGQuY29udGVudERvY3VtZW50Lm9wZW4oKTsgLy8gVGhpcyBzaG91bGQgY2xlYXIg
ZXZlbnQgbGlzdGVuZXJzCi0gICAgdG9CZUxpc3RlbmVkLmRpc3BhdGNoRXZlbnQobmV3IEN1c3Rv
bUV2ZW50KCJ0ZXN0IikpOwotICAgIHNob3VsZEJlKCJmaXJlZENvdW50IiwgIjEiKTsKLQotICAg
IGZpbmlzaEpTVGVzdCgpOwotfQotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLWNoaWxkLmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCB0ZXN0KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXVsLWxpLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXVsLWxpLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy11bC1saS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEgKzAsMCBAQAotUEFTUyB1bmxlc3MgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXVsLWxpLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy11bC1saS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXVsLWxpLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7
Ci0gICAgdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAg
dmFyIHVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKLSAgICB2YXIgbGkgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwotICAgIHVsLmFwcGVuZENoaWxkKGxpKTsKLSAgICBz
aGFkb3cuYXBwZW5kQ2hpbGQodWwpOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLQot
ICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gJ1BBU1MgdW5sZXNzIGNyYXNoLic7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZHluYW1pYy1z
dHlsaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWR5bmFtaWMtc3R5bGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZHluYW1pYy1z
dHlsaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1UZXN0
IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI4OTkuIER5bmFt
aWNhbGx5IHN0eWxpbmcgU2hhZG93RG9tIGNvbnRlbnQgb24gYSBub2RlIGRpc3RyaWJ1dGVkIHRv
IGFub3RoZXIgc2hhZG93IGluc2VydGlvbiBwb2ludCBmYWlscy4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZHluYW1pYy1zdHlsaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1keW5hbWljLXN0eWxpbmcuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1k
eW5hbWljLXN0eWxpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi08IWRv
Y3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mjg5OS4g
RHluYW1pY2FsbHkgc3R5bGluZyBTaGFkb3dEb20gY29udGVudCBvbiBhIG5vZGUgZGlzdHJpYnV0
ZWQgdG8gYW5vdGhlciBzaGFkb3cgaW5zZXJ0aW9uIHBvaW50IGZhaWxzLiIpOwotCi1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdiBpZD0iYm94IiBzdHlsZT0iYm9yZGVyOiAxcHggc29s
aWQgYmxhY2s7Ij4KLSAgICA8ZGl2IGlkPSJpdGVtIj48ZGl2PkNvbnRlbnQgcmVxdWlyZWQgaGVy
ZSB0byByZXByb2R1Y2UgYnVnLjwvZGl2PjwvZGl2PgotICA8L2Rpdj4KLTxzY3JpcHQ+Ci12YXIg
Ym94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JveCIpOwotdmFyIG9sZGVzdFNoYWRvd1Jv
b3QgPSBib3gud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotb2xkZXN0U2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0gICAgCi12YXIgeW91bmdlc3RTaGFkb3dS
b290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2l0ZW0iKS53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci15b3VuZ2VzdFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzdHlsZT4iICsKLSAgICAg
ICIuc2VsZWN0ZWQge2JhY2tncm91bmQ6IHJlZDt9IiArCi0gICAgICAiPC9zdHlsZT4iICsKLSAg
ICAgICI8ZGl2IGlkPSd0YXJnZXQnPkNvbnRlbnQ8L2Rpdj4iOwotCi1kb2N1bWVudC5ib2R5Lm9m
ZnNldExlZnQ7Ci0gICAgCi10YXJnZXQgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiZGl2Iik7Ci10YXJnZXQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKLXNob3VsZEJlKCd3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmJhY2tncm91bmRDb2xvcicsICcicmdiKDI1
NSwgMCwgMCkiJyk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1jb21wbGV4LXNoYWRv
dy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1jb21wbGV4LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1idXR0b24tY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBjYXNlIG9m
IGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4KLSAgICA8
YnV0dG9uPjxzcGFuPmJ1dHRvbiAyPC9zcGFuPmJ1dHRvbiAxPC9idXR0b24+Ci08L2Zvcm0+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWJ1dHRvbi1jb21wbGV4LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1jb21wbGV4LXNoYWRv
dy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1idXR0b24tY29tcGxleC1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBjYXNl
IG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4KLSAg
ICA8YnV0dG9uIGlkPSJob3N0Ij5idXR0b24gMTxzcGFuPmJ1dHRvbiAyPC9zcGFuPjwvYnV0dG9u
PgotPC9mb3JtPgotCi08c2NyaXB0PgotdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaG9zdCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+PGNvbnRlbnQgc2VsZWN0PSJzcGFuIj48
L2NvbnRlbnQ+PHNoYWRvdz48L3NoYWRvdz48L2Rpdj4nCi08L3NjcmlwdD4KLQotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
YnV0dG9uLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItYnV0dG9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1l
eHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotCi08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gYSBidXR0b24gZWxlbWVudCBoYXMgYSBzaGFkb3cgZG9t
IGhhdmluZyBhIHNoYWRvdyBlbGVtZW50LCBpdCBzaG91bGQgZ2V0IHRoZSBjaGlsZHJlbiBvZiB0
aGUgYnV0dG9uIGVsZW1lbnQuPC9wPgotCi08YnV0dG9uPktvdG9yaSBPdG9uYXNoaTwvYnV0dG9u
PgotPGJ1dHRvbj5GT08gZm9vIEtvdG9yaSBiYXIgQkFSPC9idXR0b24+Ci0KLTwvYm9keT4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1
dHRvbi1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1vbmx5LXNoYWRvdy1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1idXR0b24tb25seS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0
aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxk
IGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAg
ICA8YnV0dG9uPmJ1dHRvbjwvYnV0dG9uPgotPC9mb3JtPgotCi08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24tb25s
eS1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1idXR0b24tb25seS1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItYnV0dG9uLW9ubHkt
c2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRv
dyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMg
YWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPGJ1dHRvbiBpZD0iaG9zdCI+YnV0dG9uPC9idXR0b24+
Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdob3N0Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
Owotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz4iCi08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWJ1dHRvbi13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi13aXRo
b3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24td2l0aG91dC1zaGFkb3ctZXhw
ZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGRvZXMgbm90IGhhdmUgYSBz
aGFkb3cgZWxlbWVudCwgdGhlIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSByZW5kZXJlZC48L3A+Ci08
Zm9ybT4KLSAgICA8YnV0dG9uPjwvYnV0dG9uPgotPC9mb3JtPgotCi08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24t
d2l0aG91dC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24td2l0aG91dC1zaGFkb3cuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItYnV0
dG9uLXdpdGhvdXQtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2Vz
IG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQsIHRoZSBjb250ZW50IHNob3VsZCBub3QgYmUgcmVu
ZGVyZWQuPC9wPgotPGZvcm0+Ci0gICAgPGJ1dHRvbiBpZD0iaG9zdCI+c29tZXRoaW5nPC9idXR0
b24+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdob3N0Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1idXR0b24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotCi08cD5XaGVuIGEgYnV0dG9uIGVsZW1lbnQgaGFzIGEgc2hhZG93IGRv
bSBoYXZpbmcgYSBzaGFkb3cgZWxlbWVudCwgaXQgc2hvdWxkIGdldCB0aGUgY2hpbGRyZW4gb2Yg
dGhlIGJ1dHRvbiBlbGVtZW50LjwvcD4KLQotPGJ1dHRvbiBpZD0iaG9zdDEiPktvdG9yaTwvYnV0
dG9uPgotPGJ1dHRvbiBpZD0iaG9zdDIiPktvdG9yaTwvYnV0dG9uPgotCi08c2NyaXB0PgotdmFy
IHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9v
dDEuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IE90b25hc2hpIjsKLQotdmFyIHNoYWRv
d1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5u
ZXJIVE1MID0gImZvbyA8c2hhZG93Pjwvc2hhZG93PiBiYXIiOwotdmFyIHNoYWRvd1Jvb3QzID0g
aG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDMuaW5uZXJIVE1MID0g
IkZPTyA8c2hhZG93Pjwvc2hhZG93PiBCQVIiOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxk
c2V0LWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZmllbGRzZXQtY29tcGxleC1zaGFkb3ct
ZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItZmllbGRzZXQtY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5BIG1peGVkIGNh
c2Ugb2YgYSBzaGFkb3cgZWxlbWVudCBhbmQgY29udGVudCBlbGVtZW50LjwvcD4KLTxmb3JtPgot
ICAgIDxsZWdlbmQ+bGVnZW5kPC9sZWdlbj4KLSAgICA8aW5wdXQgdHlwZT0idGV4dCI+PC9pbnB1
dD4KLSAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDIwcHgiPgotICAgICAgICA8ZmllbGRzZXQ+PC9m
aWVsZHNldD4KLSAgICA8L2Rpdj4gICAgCi0gICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9InN1
Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC1jb21wbGV4LXNoYWRvdy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxk
c2V0LWNvbXBsZXgtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LWNvbXBsZXgtc2hhZG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBj
YXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4K
LSAgICA8ZmllbGRzZXQgaWQ9Imhvc3QiPgotICAgICAgICA8bGVnZW5kPmxlZ2VuZDwvbGVnZW5k
PgotICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCI+PC9pbnB1dD4KLSAgICA8L2ZpZWxkc2V0Pgot
ICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9m
b3JtPgotCi08c2NyaXB0PgotdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9z
dCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxjb250ZW50PjwvY29udGVudD48ZGl2IHN0eWxlPSdtYXJn
aW46IDIwcHgnPjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC1vbmx5LXNoYWRv
dy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LW9ubHktc2hhZG93LWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWZpZWxkc2V0LW9ubHktc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlm
aWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5
IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93
IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8ZmllbGRzZXQgaWQ9Imhvc3QiPgotICAg
ICAgICA8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPgotICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCI+
PC9pbnB1dD4KLSAgICA8L2ZpZWxkc2V0PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJz
dWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZmllbGRzZXQtb25seS1zaGFkb3cuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNl
dC1vbmx5LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC1vbmx5LXNoYWRvdy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNo
YWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJl
ZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPGZpZWxkc2V0
IGlkPSJob3N0Ij4KLSAgICAgICAgPGxlZ2VuZD5sZWdlbmQ8L2xlZ2VuZD4KLSAgICAgICAgPGlu
cHV0IHR5cGU9InRleHQiPjwvaW5wdXQ+Ci0gICAgPC9maWVsZHNldD4KLSAgICA8aW5wdXQgaWQ9
InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4KLQotPHNjcmlw
dD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRo
b3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIGhvc3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9z
aGFkb3c+IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1maWVsZHNldC13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0
LXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LXdpdGhvdXQtc2hh
ZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
Ci08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gZG9lcyBub3QgaGF2ZSBhIFNoYWRvdyBET00s
IHRoZSBjb250ZW50IHdvbid0IGJlIHJlbmRlcmVkLjwvcD4KLTxmb3JtPgotICAgIDxkaXYgaWQ9
InNlbGVjdCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAzMHB4OyBtYXJnaW46IDA7IHBh
ZGRpbmc6IDA7IGJvcmRlcjogMCI+PC9kaXY+Ci0gICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9
InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC13aXRob3V0LXNoYWRvdy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZp
ZWxkc2V0LXdpdGhvdXQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LXdpdGhvdXQtc2hhZG93
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0
aGUgQXV0aG9yU2hhZG93RE9NIGRvZXMgbm90IGhhdmUgYSBTaGFkb3cgRE9NLCB0aGUgY29udGVu
dCB3b24ndCBiZSByZW5kZXJlZC48L3A+Ci08Zm9ybT4KLSAgICA8ZmllbGRzZXQgaWQ9Imhvc3Qi
IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMzBweDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAw
OyBib3JkZXI6IDAiPgotICAgICAgICA8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPgotICAgICAgICA8
aW5wdXQgdHlwZT0idGV4dCI+PC9pbnB1dD4KLSAgICA8L2ZpZWxkc2V0PgotICAgIDxpbnB1dCBp
ZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgotCi08c2Ny
aXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLXZhciBob3N0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKLXZhciBzaGFkb3dSb290ID0gaG9z
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZvcm0tYXNzb2NpYXRlZC1lbGVtZW50LXVz
ZXJhZ2VudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtdXNlcmFnZW50LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtdXNlcmFnZW50LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi1XaGVuIGEgQXV0aG9yU2hh
ZG93Um9vdCBpcyBhZGRlZCwgVXNlckFnZW50U2hhZG93Um9vdCBzaG91bGQgZXhpc3RzIGFzIHRo
ZSBvbGRlc3QgU2hhZG93IFJvb3QuCi0KLVBBU1Mgb2xkZXN0U2hhZG93Um9vdCBpcyBub3Qgc2hh
ZG93Um9vdAotUEFTUyB5b3VuZ2VyU2hhZG93Um9vdCBpcyBzaGFkb3dSb290Ci1QQVNTIG9sZGVz
dFNoYWRvd1Jvb3QgaXMgbm90IHNoYWRvd1Jvb3QKLVBBU1MgeW91bmdlclNoYWRvd1Jvb3QgaXMg
c2hhZG93Um9vdAotUEFTUyBvbGRlc3RTaGFkb3dSb290IGlzIG5vdCBzaGFkb3dSb290Ci1QQVNT
IHlvdW5nZXJTaGFkb3dSb290IGlzIHNoYWRvd1Jvb3QKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1mb3JtLWFzc29jaWF0ZWQtZWxlbWVudC11c2VyYWdlbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1mb3JtLWFzc29jaWF0ZWQtZWxlbWVudC11c2VyYWdlbnQuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZm9ybS1hc3Nv
Y2lhdGVkLWVsZW1lbnQtdXNlcmFnZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTUgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiBhIEF1dGhvclNoYWRvd1Jv
b3QgaXMgYWRkZWQsIFVzZXJBZ2VudFNoYWRvd1Jvb3Qgc2hvdWxkIGV4aXN0cyBhcyB0aGUgb2xk
ZXN0IFNoYWRvdyBSb290LjwvcD4KLTxkaXYgaWQ9J2NvbnRhaW5lcic+Ci0gICAgPGZvcm0+Ci0g
ICAgICAgIDxzZWxlY3QgaWQ9J3NlbGVjdCc+PG9wdGlvbj5ob2dlPC9vcHRpb24+PC9zZWxlY3Q+
Ci0gICAgICAgIDxvdXRwdXQgaWQ9J291dHB1dCc+PC9vdXRwdXQ+Ci0gICAgICAgIDxrZXlnZW4g
aWQ9J2tleWdlbic+PC9rZXlnZW4+Ci0gICAgICAgIDxmaWVsZHNldCBpZD0nZmllbGRzZXQnPgot
ICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiPgotICAgICAgICAgICAgPGxlZ2VuZD5ob2dl
aG9nZTwvbGVnZW5kPgotICAgICAgICA8L2ZpZWxkc2V0PgotICAgIDwvZm9ybT4KLTwvZGl2Pgot
PHByZSBpZD0nY29uc29sZSc+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12YXIgZWxlbXMgPSBbCi0gICAg
InNlbGVjdCIsICJrZXlnZW4iLCAiZmllbGRzZXQiCi1dOwotCi12YXIgc2hhZG93Um9vdDsKLXZh
ciBvbGRlc3RTaGFkb3dSb290OwotdmFyIHlvdW5nZXJTaGFkb3dSb290OwotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0
cnVlKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtc1tpXSk7Ci0gICAg
ICAgIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICAgICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz4iOwotCi0gICAgICAgIG9s
ZGVzdFNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChob3N0KTsKLSAgICAg
ICAgeW91bmdlclNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMueW91bmdlclNoYWRvd1Jvb3Qob2xkZXN0
U2hhZG93Um9vdCk7Ci0gICAgICAgIHNob3VsZE5vdEJlKCdvbGRlc3RTaGFkb3dSb290JywgJ3No
YWRvd1Jvb3QnKTsKLSAgICAgICAgc2hvdWxkQmUoJ3lvdW5nZXJTaGFkb3dSb290JywgJ3NoYWRv
d1Jvb3QnKTsKLSAgICB9Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIiI7Ci19Ci0KLXRl
c3QoKTsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1pbWFnZS1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItaW1hZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1pbWFnZS1ldmVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMCww
IEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBhbiBpbWcgZWxlbWVudCByZWNlaXZlcyBhIGxvYWQg
ZXZlbnQsIGJ1dCBhbiBpbm5lciBpbWFnZSBlbGVtZW50IGluIHNoYWRvdyBET00gc3VidHJlZSBk
b2VzIG5vdCByZWNlaXZlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBl
dmVudC5jdXJyZW50VGFyZ2V0LmlkIGlzICJob3N0IgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1pbWFnZS1ldmVudC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWltYWdlLWV2ZW50Lmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWltYWdlLWV2ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGlt
ZyBpZD0iaG9zdCI+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9NRm9yQW55RWxlbWVudEVuYWJs
ZWQodHJ1ZSk7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBhbiBpbWcgZWxl
bWVudCByZWNlaXZlcyBhIGxvYWQgZXZlbnQsIGJ1dCBhbiBpbm5lciBpbWFnZSBlbGVtZW50IGlu
IHNoYWRvdyBET00gc3VidHJlZSBkb2VzIG5vdCByZWNlaXZlLiIpOwotCi1pZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHsKLSAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmN1cnJlbnRUYXJnZXQuaWQiLCAiaG9zdCIpOwot
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Ci19Ci0KLWZ1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7Ci0gICAgdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYp
OwotICAgIGRpdi5pZCA9ICdpbm5lci1kaXYnOwotICAgIGRpdi5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgbGlzdGVuZXIsIHRydWUpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzaGFkb3cnKSk7Ci19Ci0KLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2hvc3QnKTsKLWhvc3QuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxpc3RlbmVyLCB0
cnVlKTsKLWFkZFNoYWRvd0RPTShob3N0KTsKLWhvc3Quc3JjID0gIi4uL3Jlc291cmNlcy9hcHBs
ZS5naWYiOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4tY29tcGxleC1zaGFkb3ctZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1rZXlnZW4tY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Ita2V5Z2Vu
LWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNv
bnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT48IS0tIG1hcmdpbi10b3Agd2lsbCBiZSBjYW5jZWxs
ZWQgb3V0LCBzbyB3ZSB1c2UgcGFkZGluZy10b3AgaGVyZS4gLS0+Ci0gICAgPGRpdiBzdHlsZT0i
bWFyZ2luOiAycHggMnB4IDJweDsgcGFkZGluZy10b3A6IDJweDsgZm9udDogLXdlYmtpdC1zbWFs
bC1jb250cm9sOyI+PHNwYW4gc3R5bGU9ImZvbnQ6IC13ZWJraXQtc21hbGwtY29udHJvbDsiPmZv
b2Jhcjwvc3Bhbj48ZGl2IHN0eWxlPSJtYXJnaW46IDIwcHgiPgotICAgICAgICA8a2V5Z2VuIHN0
eWxlPSJtYXJnaW46IDAiPgotICAgIDwvZGl2PjwvZGl2PgotPC9mb3JtPgotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4tY29tcGxleC1zaGFk
b3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1rZXlnZW4tY29tcGxleC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Ita2V5Z2VuLWNvbXBsZXgt
c2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+
QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+
Ci08Zm9ybT4KLSAgICA8a2V5Z2VuIGlkPSJob3N0Ij4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFk
b3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotaG9zdC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgnZm9vYmFyJykpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRl
bnQ+PC9jb250ZW50PjxkaXYgc3R5bGU9J21hcmdpbjogMjBweCc+PHNoYWRvdz48L3NoYWRvdz48
L2Rpdj4iCi08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWtleWdlbi1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi1vbmx5LXNo
YWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4tb25seS1zaGFkb3ctZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
LQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVsZW1lbnQs
IHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRlZC48L3A+
Ci08Zm9ybT4KLSAgICA8a2V5Z2VuPjwva2V5Z2VuPgotPC9mb3JtPgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Ita2V5Z2Vu
LW9ubHktc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3Ita2V5Z2VuLW9ubHktc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi1v
bmx5LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gaGFzIG9ubHkgYSBz
aGFkb3cgZWxlbWVudCwgdGhpcyBzaG91bGQgYmUgcmVuZGVyZWQgbGlrZSBubyBTaGFkb3cgRE9N
IGlzIGFkZGVkLjwvcD4KLTxmb3JtPgotICAgIDxrZXlnZW4gaWQ9Imhvc3QiPjwva2V5Z2VuPgot
PC9mb3JtPgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXZhciBzaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cn
KTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93KTsKLTwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
a2V5Z2VuLXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Ita2V5Z2VuLXdpdGhvdXQtc2hhZG93
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0
aG9yU2hhZG93RE9NIGRvZXMgbm90IGhhdmUgYSBTaGFkb3cgRE9NLCB0aGUgY29udGVudCB3b24n
dCBiZSByZW5kZXJlZC48L3A+Ci08Zm9ybT4KLSAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OjMwcHg7IG1hcmdpbjogMDsgcGFkZGluZzog
MDsgYm9yZGVyOiAwIj48L2Rpdj4KLSAgICBmb29iYXIKLTwvZm9ybT4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi13aXRob3V0LXNoYWRvdy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWtleWdlbi13aXRob3V0LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4td2l0aG91dC1zaGFk
b3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Nj
cmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGRvZXMgbm90IGhhdmUgYSBTaGFk
b3cgRE9NLCB0aGUgY29udGVudCB3b24ndCBiZSByZW5kZXJlZC48L3A+Ci08Zm9ybT4KLSAgICA8
a2V5Z2VuIGlkPSJob3N0IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6MzBweDsgbWFyZ2lu
OiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IDAiPjwva2V5Z2VuPgotICAgIGZvb2JhcgotPC9mb3Jt
PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIg
c2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1tZWRpYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWVkaWEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZWRp
YS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMCwwIEBACi0gCi1QQVNTIHNo
YWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyBpcyB5b3VuZ2VyU2hhZG93Um9vdEZvclZpZGVv
V2l0aENvbnRyb2xzCi1QQVNTIHNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyBpcyBub3Qg
b2xkZXN0U2hhZG93Um9vdEZvclZpZGVvV2l0aENvbnRyb2xzCi1QQVNTIHNoYWRvd1Jvb3RGb3JW
aWRlb1dpdGhvdXRDb250cm9scyBpcyB5b3VuZ2VyU2hhZG93Um9vdEZvclZpZGVvV2l0aG91dENv
bnRyb2xzCi1QQVNTIHNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyBpcyBub3Qgb2xk
ZXN0U2hhZG93Um9vdEZvclZpZGVvV2l0aG91dENvbnRyb2xzCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWVkaWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZWRpYS5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZWRp
YS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci08dmlkZW8gaWQ9J3ZpZGVvV2l0aENvbnRy
b2xzJyBjb250cm9scyB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KLTx2aWRlbyBp
ZD0ndmlkZW9XaXRob3V0Q29udHJvbHMnIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVv
PgotPC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWZ1bmN0aW9u
IGFkZFNoYWRvd0RPTShob3N0KSB7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2IHN0eWxl
PSdtYXJnaW46IDEwcHgnPjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+IgotICAgIHJldHVybiBzaGFk
b3dSb290OwotfQotCi1pZiAod2luZG93LmludGVybmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwot
Ci12YXIgc2hhZG93Um9vdEZvclZpZGVvV2l0aENvbnRyb2xzID0gYWRkU2hhZG93RE9NKHZpZGVv
V2l0aENvbnRyb2xzKTsKLXZhciBvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9XaXRoQ29udHJvbHMg
PSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdCh2aWRlb1dpdGhDb250cm9scyk7Ci12YXIgeW91
bmdlclNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyA9IGludGVybmFscy55b3VuZ2VyU2hh
ZG93Um9vdChvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9XaXRoQ29udHJvbHMpOwotCi12YXIgc2hh
ZG93Um9vdEZvclZpZGVvV2l0aG91dENvbnRyb2xzID0gYWRkU2hhZG93RE9NKHZpZGVvV2l0aG91
dENvbnRyb2xzKTsKLXZhciBvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9XaXRob3V0Q29udHJvbHMg
PSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdCh2aWRlb1dpdGhvdXRDb250cm9scyk7Ci12YXIg
eW91bmdlclNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyA9IGludGVybmFscy55b3Vu
Z2VyU2hhZG93Um9vdChvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9XaXRob3V0Q29udHJvbHMpOwot
Ci0KLXNob3VsZEJlKCJzaGFkb3dSb290Rm9yVmlkZW9XaXRoQ29udHJvbHMiLCAieW91bmdlclNo
YWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyIpOwotc2hvdWxkTm90QmUoInNoYWRvd1Jvb3RG
b3JWaWRlb1dpdGhDb250cm9scyIsICJvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9XaXRoQ29udHJv
bHMiKTsKLXNob3VsZEJlKCJzaGFkb3dSb290Rm9yVmlkZW9XaXRob3V0Q29udHJvbHMiLCAieW91
bmdlclNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyIpOwotc2hvdWxkTm90QmUoInNo
YWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyIsICJvbGRlc3RTaGFkb3dSb290Rm9yVmlk
ZW9XaXRob3V0Q29udHJvbHMiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItZHluYW1pYy1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVy
LWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItZHluYW1pYy1leHBlY3RlZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZXBs
YWNlZC1lbGVtZW50LXN0eWxlcy5jc3MiPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5l
ciI+Ci0gICAgPGRpdiBjbGFzcz0ibWV0ZXItbGlrZSI+PG1ldGVyIGNsYXNzPSJtZXRlci1pbm5l
ci1lbGVtZW50LWxpa2UiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSIzMCI+PC9tZXRlcj48c3Bh
bj4oYWZ0ZXIpPC9zcGFuPjwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLWR5bmFtaWMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1tZXRlci1keW5hbWljLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLWR5bmFtaWMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPGRpdiBp
ZD0iY29udGFpbmVyIj4KLSAgICA8bWV0ZXIgaWQ9Imhvc3QiIG1pbj0iMCIgbWF4PSIxMDAiIHZh
bHVlPSI1MCI+PC9tZXRlcj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1l
bnRFbmFibGVkKHRydWUpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hhZG93Pjwvc2hhZG93Pjxz
cGFuPihhZnRlcik8L3NwYW4+IjsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBob3N0
LnNldEF0dHJpYnV0ZSgndmFsdWUnLCAzMCk7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLW1ldGVyLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0
ZXItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIj4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08
ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgY2xhc3M9Im1ldGVyLWxpa2UiPjxtZXRlciBj
bGFzcz0ibWV0ZXItaW5uZXItZWxlbWVudC1saWtlIiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0i
NTAiPjwvbWV0ZXI+PHNwYW4+KGFmdGVyKTwvc3Bhbj48L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1tZXRlci1tdWx0aXBsZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLW11bHRpcGxlLWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLW1ldGVyLW11bHRpcGxlLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVz
LmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNz
PSJtZXRlci1saWtlIj4KLSAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAwIDEwcHggMCAxMHB4
OyBoZWlnaHQ6IDFlbTsgd2lkdGg6IDVlbTsiPgotICAgICAgICAgICAgPG1ldGVyIGNsYXNzPSJt
ZXRlci1pbm5lci1lbGVtZW50LWxpa2UiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9t
ZXRlcj48c3Bhbj4oYWZ0ZXIpPC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICA8L2Rpdj4KLTwv
ZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1tZXRlci1tdWx0aXBsZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLW11bHRpcGxlLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLW1ldGVyLW11bHRpcGxlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjggKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0vKiBXZSBoYXZlIHRvIHdyaXRlIHRo
aXMgZm9yIG5vdy4gUGxlYXNlIHNlZSBCdWcgOTI0NTUuICovCi1tZXRlcjo6LXdlYmtpdC1tZXRl
ci1pbm5lci1lbGVtZW50IHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1ldGVyOwotfQotPC9z
dHlsZT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8bWV0ZXIgaWQ9Imhvc3QiIG1pbj0i
MCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9tZXRlcj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRv
d0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRv
dz48L3NoYWRvdz48c3Bhbj4oYWZ0ZXIpPC9zcGFuPiI7Ci0KLXZhciB5b3VuZ2VyID0gaG9zdC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci15b3VuZ2VyLmlubmVySFRNTCA9ICI8ZGl2IHN0eWxl
PSdtYXJnaW46IDAgMTBweCAwIDEwcHg7IGhlaWdodDogMWVtOyB3aWR0aDogNWVtOyc+PHNoYWRv
dz48L3NoYWRvdz48L2Rpdj4iOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLXdpdGgtc3R5
bGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRoLXN0eWxlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1l
dGVyLXdpdGgtc3R5bGUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWRpdiN3cmFwcGVyIHsKLSAgICBk
aXNwbGF5OiBibG9jazsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLSAgICB3aWR0
aDogYXV0bzsKLSAgICBoZWlnaHQ6IDNlbTsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogMDsKLX0KLQot
bWV0ZXIgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIHdpZHRoOiAxNWVtOwotICAgIGhlaWdo
dDogM2VtOwotfQotPC9zdHlsZT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlk
PSJ3cmFwcGVyIiBjbGFzcz0ibWV0ZXItbGlrZSI+Ci0gICAgICAgIDxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0OiAxMDBweDsiPgotICAgICAgICAgICAgPG1ldGVyIGlkPSJ3aXRoLXN0eWxlIiBjbGFz
cz0ibWV0ZXItaW5uZXItZWxlbWVudC1saWtlIiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAi
PjwvbWV0ZXI+PHNwYW4+KGFmdGVyKTwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+
Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aC1zdHlsZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLXdpdGgtc3R5
bGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aC1zdHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotbWV0ZXIgewotICAg
IGRpc3BsYXk6IGJsb2NrOwotICAgIG1hcmdpbjogMDsKLSAgICBwYWRkaW5nOiAwOwotICAgIHdp
ZHRoOiBhdXRvOwotICAgIGhlaWdodDogM2VtOwotICAgIHZlcnRpY2FsLWFsaWduOiAwOwotfQot
Ci1tZXRlcjo6LXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IHsKLSAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1ldGVyOyAvKiBXZSBoYXZlIHRvIGhhdmUgdGhpcyBmb3Igbm93LiBQbGVhc2Ugc2Vl
IEJ1ZyA5MjQ1NS4gKi8KLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICB3aWR0aDogMTVlbTsKLSAg
ICBoZWlnaHQ6IDNlbTsKLX0KLTwvc3R5bGU+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAg
PG1ldGVyIGlkPSJob3N0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiPjwvbWV0ZXI+Ci08
L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQot
dmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gIjxkaXYgc3R5bGU9J21hcmdpbi1sZWZ0OiAxMDBweCc+PHNoYWRvdz48
L3NoYWRvdz48c3Bhbj4oYWZ0ZXIpPC9zcGFuPjwvZGl2PiI7Ci08L3NjcmlwdD4KLQotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItbWV0ZXItd2l0aG91dC1hcHBlYXJhbmNlLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aG91dC1h
cHBlYXJhbmNlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLXdpdGhvdXQtYXBwZWFyYW5jZS1l
eHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJl
c291cmNlcy9yZXBsYWNlZC1lbGVtZW50LXN0eWxlcy5jc3MiPgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxzdHls
ZT4KLW1ldGVyI21ldGVyIHsKLSAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKLX0KLTwvc3R5
bGU+Ci08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgY2xhc3M9Im1ldGVyLWxpa2UiPjxt
ZXRlciBpZD0ibWV0ZXIiIGNsYXNzPSJtZXRlci1pbm5lci1lbGVtZW50LWxpa2UiIG1pbj0iMCIg
bWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9tZXRlcj48c3Bhbj4oYWZ0ZXIpPHNwYW4+PC9kaXY+Ci08
L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aG91dC1hcHBlYXJhbmNlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0
aG91dC1hcHBlYXJhbmNlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLXdpdGhvdXQtYXBwZWFyYW5jZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZXBs
YWNlZC1lbGVtZW50LXN0eWxlcy5jc3MiPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxzdHlsZT4KLW1ldGVyIHsK
LSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08L3N0eWxlPgotCi08ZGl2IGlkPSJj
b250YWluZXIiPgotICAgIDxtZXRlciBpZD0iaG9zdCIgbWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9
IjUwIj48L21ldGVyPgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9NRm9yQW55RWxlbWVudEVu
YWJsZWQodHJ1ZSk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hhZG93Pjwvc2hhZG93PjxzcGFuPihh
ZnRlcik8L3NwYW4+IjsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRob3V0LXNoYWRv
dy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aG91dC1zaGFkb3ctZWxlbWVudC1leHBl
Y3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRob3V0LXNoYWRvdy1lbGVtZW50LWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3Jl
cGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFp
bmVyIj4KLSAgICA8ZGl2IGNsYXNzPSJtZXRlci1saWtlIj48c3Bhbj5ubyBwcm9ncmVzczwvc3Bh
bj48L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRob3V0LXNoYWRvdy1lbGVtZW50
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItbWV0ZXItd2l0aG91dC1zaGFkb3ctZWxlbWVudC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRo
b3V0LXNoYWRvdy1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPG1ldGVy
IGlkPSJob3N0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiPjwvbWV0ZXI+Ci08L2Rpdj4K
LQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIHNo
YWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gIjxzcGFuPm5vIHByb2dyZXNzPC9zcGFuPiIKLTwvc2NyaXB0PgotCi08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZv
ci1tZXRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLW1ldGVyLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRh
aW5lciI+Ci0gICAgPG1ldGVyIGlkPSJob3N0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAi
PjwvbWV0ZXI+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxl
ZCh0cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+PHNwYW4+KGFmdGVy
KTwvc3Bhbj4iOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC1jb21wbGV4LXNoYWRvdy1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLW9iamVjdC1jb21wbGV4LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1v
YmplY3QtY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwx
MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgotCi08cD5BIG1peGVkIGNhc2Ugb2YgYSBzaGFkb3cgZWxlbWVudCBh
bmQgY29udGVudCBlbGVtZW50LjwvcD4KLTxmb3JtPgotICAgIDxkaXYgc3R5bGU9Im1hcmdpbjog
MjBweCI+Ci0gICAgICAgIDxvYmplY3QgaWQ9Imhvc3QiIGRhdGE9Ii4uL3Jlc291cmNlcy9hcHBs
ZS5naWYiIHR5cGU9ImltYWdlL2dpZiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj48L29iamVjdD4K
LSAgICA8L2Rpdj4gICAgCi0gICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFs
dWU9IlN1Ym1pdCI+Ci08L2Zvcm0+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1vYmplY3QtY29tcGxleC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vYmplY3QtY29tcGxleC1z
aGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3Itb2JqZWN0LWNvbXBsZXgtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93
IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4KLSAgICA8b2JqZWN0IGlk
PSJob3N0IiBkYXRhPSIuLi9yZXNvdXJjZXMvYXBwbGUuZ2lmIiB0eXBlPSJpbWFnZS9naWYiIHdp
ZHRoPSIyMCIgaGVpZ2h0PSIyMCI+Ci0gICAgICAgIDxwYXJhbSBuYW1lPSJmb28iIHZhbHVlPSJi
YXIiPjwvcGFyYW0+Ci0gICAgPC9vYmplY3Q+Ci0gICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9
InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRl
bnQ+PC9jb250ZW50PjxkaXYgc3R5bGU9J21hcmdpbjogMjBweCc+PHNoYWRvdz48L3NoYWRvdz48
L2Rpdj4iCi08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLW9iamVjdC1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC1vbmx5LXNo
YWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vYmplY3Qtb25seS1zaGFkb3ctZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1
dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSBy
ZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPG9i
amVjdCBpZD0iaG9zdCIgZGF0YT0iLi4vcmVzb3VyY2VzL2FwcGxlLmdpZiIgdHlwZT0iaW1hZ2Uv
Z2lmIj48L29iamVjdD4KLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1
ZT0iU3VibWl0Ij4KLTwvZm9ybT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLW9iamVjdC1vbmx5LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC1vbmx5LXNoYWRvdy5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1vYmplY3Qtb25seS1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwx
NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gaGFzIG9ubHkg
YSBzaGFkb3cgZWxlbWVudCwgdGhpcyBzaG91bGQgYmUgcmVuZGVyZWQgbGlrZSBubyBTaGFkb3cg
RE9NIGlzIGFkZGVkLjwvcD4KLTxmb3JtPgotICAgIDxvYmplY3QgaWQ9Imhvc3QiIGRhdGE9Ii4u
L3Jlc291cmNlcy9hcHBsZS5naWYiIHR5cGU9ImltYWdlL2dpZiI+PC9vYmplY3Q+Ci0gICAgPGlu
cHV0IGlkPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+Ci0K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QXV0aG9yU2hhZG93RE9NRm9yQW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZhciBob3N0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKLXZhciBzaGFkb3dSb290ID0gaG9z
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFk
b3c+PC9zaGFkb3c+IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1vYmplY3Qtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vYmpl
Y3Qtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb2JqZWN0LXdpdGhvdXQtc2hh
ZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
Ci08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gZG9lcyBub3QgaGF2ZSBhIHNoYWRvdyBlbGVt
ZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIGRpdi48L3A+Ci08Zm9ybT4KLSAgICA8
ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIw
cHgiPjwvZGl2PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJT
dWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3Itb2JqZWN0LXdpdGhvdXQtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb2JqZWN0LXdpdGhvdXQtc2hhZG93
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLW9iamVjdC13aXRob3V0LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2Vz
IG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ug
ZGl2LjwvcD4KLTxmb3JtPgotICAgIDxvYmplY3QgaWQ9Imhvc3QiIGRhdGE9Ii4uL3Jlc291cmNl
cy9hcHBsZS5naWYiIHR5cGU9ImltYWdlL2dpZiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj48L29i
amVjdD4KLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0
Ij4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2hvc3QnKTsKLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCkKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3Itb3V0cHV0LWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LWNvbXBsZXgt
c2hhZG93LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC1jb21wbGV4LXNoYWRvdy1leHBlY3Rl
ZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPkEgbWl4
ZWQgY2FzZSBvZiBhIHNoYWRvdyBlbGVtZW50IGFuZCBjb250ZW50IGVsZW1lbnQuPC9wPgotPGZv
cm0+Ci0gICAgaG9nZTxkaXYgc3R5bGU9Im1hcmdpbjogMjBweCI+Ci0gICAgICAgIDxvdXRwdXQ+
PC9vdXRwdXQ+Ci0gICAgPC9kaXY+ICAgIAotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJz
dWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LWNvbXBsZXgtc2hhZG93Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0
LWNvbXBsZXgtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC1jb21wbGV4LXNoYWRvdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPkEgbWl4ZWQgY2FzZSBv
ZiBhIHNoYWRvdyBlbGVtZW50IGFuZCBjb250ZW50IGVsZW1lbnQuPC9wPgotPGZvcm0+Ci0gICAg
PG91dHB1dCBpZD0iaG9zdCI+aG9nZTwvb3V0cHV0PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0
eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgotCi08c2NyaXB0PgotdmFyIGhv
c3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxj
b250ZW50PjwvY29udGVudD48ZGl2IHN0eWxlPSdtYXJnaW46IDIwcHgnPjxzaGFkb3c+PC9zaGFk
b3c+PC9kaXY+IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1vdXRwdXQtb25seS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vdXRwdXQtb25s
eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LW9ubHktc2hhZG93LWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRo
ZSBBdXRob3JTaGFkb3dET00gaGFzIG9ubHkgYSBzaGFkb3cgZWxlbWVudCwgdGhpcyBzaG91bGQg
YmUgcmVuZGVyZWQgbGlrZSBubyBTaGFkb3cgRE9NIGlzIGFkZGVkLjwvcD4KLTxmb3JtPgotICAg
IDxvdXRwdXQgaWQ9Imhvc3QiPmZvb2Jhcjwvb3V0cHV0PgotICAgIDxpbnB1dCBpZD0ic3VibWl0
IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LW9ubHktc2hhZG93Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
b3V0cHV0LW9ubHktc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC1vbmx5LXNoYWRvdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhv
clNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5k
ZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPG91dHB1
dCBpZD0iaG9zdCI+Zm9vYmFyPC9vdXRwdXQ+Ci0gICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9
InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRv
dz48L3NoYWRvdz4iCi08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLW91dHB1dC13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1
dC13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vdXRwdXQtd2l0aG91dC1zaGFk
b3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0K
LTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2VzIG5vdCBoYXZlIGEgU2hhZG93IERPTSwg
dGhlIGNvbnRlbnQgd29uJ3QgYmUgcmVuZGVyZWQuPC9wPgotPGZvcm0+Ci0gICAgPGRpdiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMzBweDsiPjwv
ZGl2PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQi
PgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3Itb3V0cHV0LXdpdGhvdXQtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LXdpdGhvdXQtc2hhZG93Lmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLW91dHB1dC13aXRob3V0LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEz
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2VzIG5vdCBo
YXZlIGEgU2hhZG93IERPTSwgdGhlIGNvbnRlbnQgd29uJ3QgYmUgcmVuZGVyZWQuPC9wPgotPGZv
cm0+Ci0gICAgPG91dHB1dCBpZD0iaG9zdCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDMwcHgiPm9oeW9oeW88L291dHB1dD4KLSAgICA8aW5wdXQg
aWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4KLQotPHNj
cmlwdD4KLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKLXZhciBz
aGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci08L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLWR5
bmFtaWMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1keW5hbWljLWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LXByb2dyZXNzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIj4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Ci08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWxpa2UiPjxw
cm9ncmVzcyBjbGFzcz0icHJvZ3Jlc3MtaW5uZXItZWxlbWVudC1saWtlIiBtaW49IjAiIG1heD0i
MTAwIiB2YWx1ZT0iMzAiPjwvcHJvZ3Jlc3M+PHNwYW4+KGFmdGVyKTwvc3Bhbj48L2Rpdj4KLTwv
ZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1keW5hbWljLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3MtZHluYW1pYy5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1wcm9ncmVzcy1keW5hbWljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzAg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPHByb2dyZXNzIGlkPSJob3N0
IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiPjwvcHJvZ3Jlc3M+Ci08L2Rpdj4KLQotPHNj
cmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRB
dXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hhZG93
Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAiPHNoYWRvdz48L3NoYWRvdz48c3Bhbj4oYWZ0ZXIpPC9zcGFuPiI7Ci0KLXNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7Ci0gICAgaG9zdC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgMzApOwotICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Ci19LCAwKTsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXBy
b2dyZXNzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVs
ZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAg
ICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1saWtlIj48cHJvZ3Jlc3MgY2xhc3M9InByb2dyZXNzLWlu
bmVyLWVsZW1lbnQtbGlrZSIgbWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9IjUwIj48L3Byb2dyZXNz
PjxzcGFuPihhZnRlcik8L3NwYW4+PC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mt
bXVsdGlwbGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1tdWx0aXBsZS1leHBlY3RlZC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1wcm9ncmVzcy1tdWx0aXBsZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZXBsYWNlZC1lbGVtZW50LXN0eWxlcy5j
c3MiPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBjbGFzcz0i
cHJvZ3Jlc3MtbGlrZSI+Ci0gICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbjogMCAxMHB4IDAgMTBw
eDsgaGVpZ2h0OiAxZW07IHdpZHRoOiAxMGVtOyI+Ci0gICAgICAgICAgICA8cHJvZ3Jlc3MgY2xh
c3M9InByb2dyZXNzLWlubmVyLWVsZW1lbnQtbGlrZSIgbWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9
IjUwIj48L3Byb2dyZXNzPjxzcGFuPihhZnRlcik8L3NwYW4+Ci0gICAgICAgIDwvZGl2PgotICAg
IDwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLW11bHRpcGxlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jl
c3MtbXVsdGlwbGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3MtbXVsdGlwbGUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLS8q
IFdlIGhhdmUgdG8gd3JpdGUgdGhpcyBmb3Igbm93LiBQbGVhc2Ugc2VlIEJ1ZyA5MjQ1NS4gKi8K
LXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQgewotICAgIC13ZWJraXQt
YXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyOwotfQotPC9zdHlsZT4KLTxkaXYgaWQ9ImNvbnRhaW5l
ciI+Ci0gICAgPHByb2dyZXNzIGlkPSJob3N0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAi
PjwvcHJvZ3Jlc3M+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5h
YmxlZCh0cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+PHNwYW4+KGFm
dGVyKTwvc3Bhbj4iOwotCi12YXIgeW91bmdlciA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwoteW91bmdlci5pbm5lckhUTUwgPSAiPGRpdiBzdHlsZT0nbWFyZ2luOiAwIDEwcHggMCAx
MHB4OyBoZWlnaHQ6IDFlbTsgd2lkdGg6IDEwZW07Jz48c2hhZG93Pjwvc2hhZG93PjwvZGl2PiI7
Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aC1zdHlsZS1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LXByb2dyZXNzLXdpdGgtc3R5bGUtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aC1z
dHlsZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9InJlc291cmNlcy9yZXBsYWNlZC1lbGVtZW50LXN0eWxlcy5jc3MiPgotICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08
c3R5bGU+Ci1kaXYjd3JhcHBlciB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci0gICAgbWFyZ2luOiAw
OwotICAgIHBhZGRpbmc6IDA7Ci0gICAgd2lkdGg6IGF1dG87Ci0gICAgaGVpZ2h0OiAzZW07Ci0g
ICAgdmVydGljYWwtYWxpZ246IDA7Ci19Ci0KLXByb2dyZXNzI3dpdGgtc3R5bGUgewotICAgIGRp
c3BsYXk6IGJsb2NrOwotICAgIHdpZHRoOiAxNWVtOwotICAgIGhlaWdodDogM2VtOwotfQotPC9z
dHlsZT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJ3cmFwcGVyIiBjbGFz
cz0icHJvZ3Jlc3MtbGlrZSI+Ci0gICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAxMDBw
eDsiPgotICAgICAgICAgICAgPHByb2dyZXNzIGlkPSJ3aXRoLXN0eWxlIiBjbGFzcz0icHJvZ3Jl
c3MtaW5uZXItZWxlbWVudC1saWtlIiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiPjwvcHJv
Z3Jlc3M+PHNwYW4+KGFmdGVyKTwvc3Bhbj4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+Ci08
L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aC1zdHlsZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLXdpdGgt
c3R5bGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aC1zdHlsZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotcHJvZ3Jl
c3MgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIG1hcmdpbjogMDsKLSAgICBwYWRkaW5nOiAw
OwotICAgIHdpZHRoOiBhdXRvOwotICAgIGhlaWdodDogM2VtOwotICAgIHZlcnRpY2FsLWFsaWdu
OiAwOwotfQotCi1wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50IHsKLSAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dyZXNzLWJhcjsgLyogV2UgaGF2ZSB0byB3cml0ZSB0
aGlzIGZvciBub3cuIFBsZWFzZSBzZWUgQnVnIDkyNDU1LiAqLwotICAgIGRpc3BsYXk6IGJsb2Nr
OwotICAgIHdpZHRoOiAxNWVtOwotICAgIGhlaWdodDogM2VtOwotfQotPC9zdHlsZT4KLQotPGRp
diBpZD0iY29udGFpbmVyIj4KLSAgICA8cHJvZ3Jlc3MgaWQ9Imhvc3QiIG1pbj0iMCIgbWF4PSIx
MDAiIHZhbHVlPSI1MCI+PC9wcm9ncmVzcz4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZv
ckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGRpdiBzdHlsZT0n
bWFyZ2luLWxlZnQ6IDEwMHB4Jz48c2hhZG93Pjwvc2hhZG93PjxzcGFuPihhZnRlcik8L3NwYW4+
PC9kaXY+IjsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LWFwcGVhcmFu
Y2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LWFwcGVhcmFuY2UtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aG91dC1hcHBlYXJhbmNlLWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVs
ZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotCi08c3R5bGU+Ci1wcm9ncmVzcyNwcm9ncmVzcyB7Ci0gICAt
d2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08L3N0eWxlPgotCi08ZGl2IGlkPSJjb250YWlu
ZXIiPgotICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWxpa2UiPjxwcm9ncmVzcyBpZD0icHJvZ3Jl
c3MiIGNsYXNzPSJwcm9ncmVzcy1pbm5lci1lbGVtZW50LWxpa2UiIG1pbj0iMCIgbWF4PSIxMDAi
IHZhbHVlPSI1MCI+PC9wcm9ncmVzcz48c3Bhbj4oYWZ0ZXIpPC9zcGFuPjwvZGl2PgotPC9kaXY+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLXByb2dyZXNzLXdpdGhvdXQtYXBwZWFyYW5jZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLXdp
dGhvdXQtYXBwZWFyYW5jZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LWFwcGVhcmFuY2Uu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMv
cmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIj4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08c3R5bGU+Ci1wcm9n
cmVzcyB7Ci0gICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08L3N0eWxlPgotCi08ZGl2
IGlkPSJjb250YWluZXIiPgotICAgIDxwcm9ncmVzcyBpZD0iaG9zdCIgbWluPSIwIiBtYXg9IjEw
MCIgdmFsdWU9IjUwIj48L3Byb2dyZXNzPgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9NRm9y
QW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hhZG93Pjwvc2hh
ZG93PjxzcGFuPihhZnRlcik8L3NwYW4+IjsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVz
cy13aXRob3V0LXNoYWRvdy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aG91dC1z
aGFkb3ctZWxlbWVudC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LXNoYWRv
dy1lbGVtZW50LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1saWtl
Ij48c3Bhbj5ubyBwcm9ncmVzczwvc3Bhbj48L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9n
cmVzcy13aXRob3V0LXNoYWRvdy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aG91dC1zaGFkb3ct
ZWxlbWVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LXNoYWRvdy1lbGVtZW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxh
Y2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5
ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFpbmVy
Ij4KLSAgICA8cHJvZ3Jlc3MgaWQ9Imhvc3QiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+
PC9wcm9ncmVzcz4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFi
bGVkKHRydWUpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4+bm8gcHJvZ3Jlc3M8L3NwYW4+Igot
PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3MuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
cHJvZ3Jlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJy
ZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIj4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08ZGl2
IGlkPSJjb250YWluZXIiPgotICAgIDxwcm9ncmVzcyBpZD0iaG9zdCIgbWluPSIwIiBtYXg9IjEw
MCIgdmFsdWU9IjUwIj48L3Byb2dyZXNzPgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9NRm9y
QW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hhZG93Pjwvc2hh
ZG93PjxzcGFuPihhZnRlcik8L3NwYW4+IjsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1zZWxlY3Qt
Y29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1zZWxlY3QtY29tcGxleC1zaGFkb3ctZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3Itc2VsZWN0LWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBjYXNlIG9mIGEg
c2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4KLSAgICA8ZGl2
IHN0eWxlPSJtYXJnaW46IDIwcHgiPgotICAgICAgICA8c2VsZWN0Pjwvc2VsZWN0PgotICAgIDwv
ZGl2PiAgICAKLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3Vi
bWl0Ij4KLTwvZm9ybT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLXNlbGVjdC1jb21wbGV4LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXNlbGVjdC1jb21wbGV4LXNoYWRvdy5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1zZWxlY3QtY29tcGxleC1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5BIG1peGVkIGNhc2Ugb2YgYSBzaGFkb3cgZWxlbWVu
dCBhbmQgY29udGVudCBlbGVtZW50LjwvcD4KLTxmb3JtPgotICAgIDxzZWxlY3QgaWQ9Imhvc3Qi
PgotICAgICAgICA8b3B0aW9uIGRpc2FibGVkPlBsZWFzZSBzZWxlY3Q8L29wdGlvbj4KLSAgICAg
ICAgPG9wdGdyb3VwIGxhYmVsPSJSYW5rIDEiPjwvb3B0Z3JvdXA+Ci0gICAgICAgIDxvcHRpb24g
dmFsdWU9ImhvZ2UiIHNlbGVjdGVkPmhvZ2U8L29wdGlvbj4KLSAgICA8L3NlbGVjdD4KLSAgICA8
aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4K
LQotPHNjcmlwdD4KLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsK
LXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dS
b290LmlubmVySFRNTCA9ICI8Y29udGVudD48L2NvbnRlbnQ+PGRpdiBzdHlsZT0nbWFyZ2luOiAy
MHB4Jz48c2hhZG93Pjwvc2hhZG93PjwvZGl2PiIKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LW9ubHktc2hhZG93LWV4cGVj
dGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3Itc2VsZWN0LW9ubHktc2hhZG93LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXNlbGVjdC1v
bmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9z
Y3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBl
bGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRk
ZWQuPC9wPgotPGZvcm0+Ci0gICAgPHNlbGVjdCBpZD0iaG9zdCI+Ci0gICAgICAgIDxvcHRpb24g
ZGlzYWJsZWQ+UGxlYXNlIHNlbGVjdDwvb3B0aW9uPgotICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9
IlJhbmsgMSI+PC9vcHRncm91cD4KLSAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaG9nZSIgc2VsZWN0
ZWQ+aG9nZTwvb3B0aW9uPgotICAgIDwvc2VsZWN0PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0
eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LW9ubHktc2hhZG93Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2Vs
ZWN0LW9ubHktc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXNlbGVjdC1vbmx5LXNoYWRvdy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNo
YWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJl
ZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPHNlbGVjdCBp
ZD0iaG9zdCI+Ci0gICAgICAgIDxvcHRpb24gZGlzYWJsZWQ+UGxlYXNlIHNlbGVjdDwvb3B0aW9u
PgotICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IlJhbmsgMSI+PC9vcHRncm91cD4KLSAgICAgICAg
PG9wdGlvbiB2YWx1ZT0iaG9nZSIgc2VsZWN0ZWQ+aG9nZTwvb3B0aW9uPgotICAgIDwvc2VsZWN0
PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgot
PC9mb3JtPgotCi08c2NyaXB0PgotdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aG9zdCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IgotPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1zZWxlY3Qtd2l0
aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1zZWxlY3Qtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3Itc2VsZWN0LXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dE
T00gZG9lcyBub3QgaGF2ZSBhIFNoYWRvdyBET00sIHRoZSBjb250ZW50IHdvbid0IGJlIHJlbmRl
cmVkLjwvcD4KLTxmb3JtPgotICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsg
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDMwcHg7IG1hcmdpbiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6
IDAiPjwvZGl2PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJT
dWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3Itc2VsZWN0LXdpdGhvdXQtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LXdpdGhvdXQtc2hhZG93
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLXNlbGVjdC13aXRob3V0LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2Vz
IG5vdCBoYXZlIGEgU2hhZG93IERPTSwgdGhlIGNvbnRlbnQgd29uJ3QgYmUgcmVuZGVyZWQuPC9w
PgotPGZvcm0+Ci0gICAgPHNlbGVjdCBpZD0iaG9zdCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVp
Z2h0OiAzMHB4OyBtYXJnaW4gMDsgcGFkZGluZzogMDsgYm9yZGVyOiAwIj4KLSAgICAgICAgPG9w
dGlvbiBkaXNhYmxlZD5QbGVhc2Ugc2VsZWN0PC9vcHRpb24+Ci0gICAgICAgIDxvcHRncm91cCBs
YWJlbD0iUmFuayAxIj48L29wdGdyb3VwPgotICAgICAgICA8b3B0aW9uIHZhbHVlPSJob2dlIiBz
ZWxlY3RlZD5ob2dlPC9vcHRpb24+Ci0gICAgPC9zZWxlY3Q+Ci0gICAgPGlucHV0IGlkPSJzdWJt
aXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12
YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hhZG93Um9v
dCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS1jb21wbGV4LXNo
YWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLXRleHRhcmVhLWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0
eWxlPgotLnRleHRhcmVhLWxpa2UgewotICAgIHdpZHRoOiAyNTVweDsKLSAgICBoZWlnaHQ6IDk2
cHg7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ci0gICAgb3ZlcmZsb3cteTogc2Nyb2xs
OwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICB0b3A6IDJweDsKLSAgICBtYXJnaW46IDJw
eCAycHggMnB4IDJweDsKLSAgICBwYWRkaW5nOiAycHggMnB4IDJweCAycHg7Ci0gICAgd2hpdGUt
c3BhY2U6IHByZS13cmFwOwotICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKLSAgICBmb250OiAt
d2Via2l0LXNtYWxsLWNvbnRyb2w7Ci0gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKLX0KLTwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93IGVs
ZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4KLSAgICA8ZGl2IGNsYXNzPSJ0
ZXh0YXJlYS1saWtlIj50ZXh0YXJlYTxwPnBhcmFncmFwaDxiPmJvbGQ8L2I+cGFyYWdyYXBoPC9w
PjxkaXYgc3R5bGU9Im1hcmdpbjogMjBweCI+dGV4dGFyZWE8L2Rpdj48L2Rpdj4KLTwvZm9ybT4K
LQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItdGV4dGFyZWEtY29tcGxleC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS1jb21wbGV4
LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS1jb21wbGV4LXNoYWRvdy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzdHlsZT4KLXRleHRhcmVhIHsKLSAgIHJlc2l6ZTogbm9uZTsKLX0KLTwvc3R5bGU+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgotCi08cD5BIG1peGVkIGNhc2Ugb2YgYSBzaGFkb3cgZWxlbWVudCBhbmQgY29udGVudCBlbGVt
ZW50LjwvcD4KLTxmb3JtPgotICAgIDx0ZXh0YXJlYSBpZD0iaG9zdCIgcm93cz0iNiIgY29scz0i
MzAiPnRleHRhcmVhPC90ZXh0YXJlYT4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JB
bnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdwJyk7Ci1wLmlubmVySFRNTCA9ICJwYXJhZ3JhcGg8Yj5ib2xkPC9iPnBhcmFncmFwaCI7Ci1o
b3N0LmFwcGVuZENoaWxkKHApOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotCi0vLyA8Y29udGVudD48L2NvbnRlbnQ+PGRpdiBzdHlsZT0ibWFyZ2lu
OiAyMHB4Ij48c2hhZG93Pjwvc2hhZG93PjwvZGl2Pgotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50JykpOwotdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotZGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnbWFyZ2luOiAy
MHB4Jyk7Ci1kaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jykp
Owotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRl
eHRhcmVhLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFy
ZWEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxs
LmpzIj48L3NjcmlwdD4KLQotPGZvcm0+Ci0gICAgPHRleHRhcmVhIGlkPSJob3N0IiBjb2xzPSIy
MCIgcm93cz0iNCI+KGJlZm9yZSkKLVNvbWV0aGluZyBpbiB0aGUgYWlyCi0oYWZ0ZXIpPC90ZXh0
YXJlYT4KLTwvZm9ybT4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtb25seS1zaGFkb3ctZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci10ZXh0YXJlYS1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS1v
bmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Nj
cmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVs
ZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRl
ZC48L3A+Ci08Zm9ybT4KLSAgICA8dGV4dGFyZWE+U29tZXRoaW5nIGluIHRoZSBhaXI8L3RleHRh
cmVhPgotPC9mb3JtPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci10ZXh0YXJlYS1vbmx5LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLW9ubHktc2hhZG93Lmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLXRleHRhcmVhLW9ubHktc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlm
aWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5
IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93
IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8dGV4dGFyZWEgaWQ9Imhvc3QiPlNvbWV0
aGluZyBpbiB0aGUgYWlyPC90ZXh0YXJlYT4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBzaGFk
b3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLTwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0
aC1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLWF0dHJpYnV0ZS1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLWF0dHJpYnV0ZS1leHBlY3RlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hh
ZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVk
IGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8dGV4dGFyZWEg
cm93cz0iOCIgY29scz0iMjAiPlNvbWV0aGluZyBpbiB0aGUgYWlyPC90ZXh0YXJlYT4KLTwvZm9y
bT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRh
cmVhLXdpdGgtYXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1hdHRyaWJ1dGUuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItdGV4dGFyZWEtd2l0aC1hdHRyaWJ1dGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gaGFzIG9ubHkgYSBz
aGFkb3cgZWxlbWVudCwgdGhpcyBzaG91bGQgYmUgcmVuZGVyZWQgbGlrZSBubyBTaGFkb3cgRE9N
IGlzIGFkZGVkLjwvcD4KLTxmb3JtPgotICAgIDx0ZXh0YXJlYSBpZD0iaG9zdCIgcm93cz0iOCIg
Y29scz0iMjAiPlNvbWV0aGluZyBpbiB0aGUgYWlyPC90ZXh0YXJlYT4KLTwvZm9ybT4KLQotPHNj
cmlwdD4KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1z
aGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsK
LTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItdGV4dGFyZWEtd2l0aC1wbGFjZWhvbGRlci1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLXdpdGgt
cGxhY2Vob2xkZXItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1wbGFjZWhvbGRl
ci1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVz
b3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyIgdHlwZT0idGV4dC9jc3MiPgotPC9o
ZWFkPgotPGJvZHk+Ci0KLTxkaXY+Ci0gICAgPHRleHRhcmVhIHBsYWNlaG9sZGVyPSJUaGlzIGlz
IGEgcGxhY2Vob2xkZXIgdGV4dC4iIHJvd3M9IjQiIGNvbHM9IjMwIiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgcmVzaXplOiBub25lIj48
L3RleHRhcmVhPgotICAgIDx0ZXh0YXJlYSByb3dzPSI0IiBjb2xzPSIzMCI+YmVmb3JlCi0KLWFm
dGVyPC90ZXh0YXJlYT4KLSAgICAKLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLXBs
YWNlaG9sZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1wbGFjZWhvbGRlci5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0
YXJlYS13aXRoLXBsYWNlaG9sZGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIiB0eXBlPSJ0ZXh0
L2NzcyI+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotCi08dGV4dGFyZWEgaWQ9Imhvc3QiIHJvd3M9IjQiIGNvbHM9IjMwIiBw
bGFjZWhvbGRlcj0iVGhpcyBpcyBhIHBsYWNlaG9sZGVyIHRleHQuIj48L3RleHRhcmVhPgotCi08
c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIgc2hhZG93
Um9vdDEgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdiZWZvcmUnKSk7Ci1zaGFkb3dSb290MS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci1zaGFkb3dSb290
MS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnYWZ0ZXInKSk7Ci08L3Njcmlw
dD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1zdHlsZS1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVh
LXdpdGgtc3R5bGUtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1zdHlsZS1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLXRleHRhcmVhIHsKLSAgICBtYXJnaW46IDEwcHg7Ci0gICAgYm9y
ZGVyOiAycHggZGFzaGVkIGJsYWNrOwotICAgIHBhZGRpbmc6IDEwcHg7Ci19Ci08L2hlYWQ+Ci08
Ym9keT4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVs
ZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRl
ZC48L3A+Ci08Zm9ybT4KLSAgICA8dGV4dGFyZWE+U29tZXRoaW5nIGluIHRoZSBhaXI8L3RleHRh
cmVhPgotPC9mb3JtPgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLXN0eWxlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFy
ZWEtd2l0aC1zdHlsZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLXN0eWxlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotdGV4dGFyZWEgewotICAgIG1hcmdpbjogMTBweDsKLSAgICBib3JkZXI6IDJweCBkYXNoZWQg
YmxhY2s7Ci0gICAgcGFkZGluZzogMTBweDsKLX0KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhv
clNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5k
ZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPHRleHRh
cmVhIGlkPSJob3N0Ij5Tb21ldGhpbmcgaW4gdGhlIGFpcjwvdGV4dGFyZWE+Ci08L2Zvcm0+Ci0K
LTxzY3JpcHQ+Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
Owotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cn
KSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLXdpdGhvdXQtc2hhZG93LWV4cGVjdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItdGV4dGFyZWEtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFy
ZWEtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2VzIG5vdCBoYXZl
IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2UgZGl2LjwvcD4K
LTxmb3JtPgotICAgIDxkaXYgaWQ9Imhvc3QiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW46IDA7IHBhZGRpbmc6IDAiPjwvZGl2
PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgot
PC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
dGV4dGFyZWEtd2l0aG91dC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRob3V0LXNoYWRvdy5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci10ZXh0YXJlYS13aXRob3V0LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5
ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2VzIG5v
dCBoYXZlIGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2UgZGl2
LjwvcD4KLTxmb3JtPgotICAgIDx0ZXh0YXJlYSBpZD0iaG9zdCIgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJvcmRlcjogMDsgcmVzaXpl
OiBub25lIj5NYW1pPC90ZXh0YXJlYT4KLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3Vi
bWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlF
bGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0
YXJlYS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwv
c2NyaXB0PgotCi08Zm9ybT4KLSAgICA8dGV4dGFyZWEgaWQ9Imhvc3QiIGNvbHM9IjIwIiByb3dz
PSI0Ij5Tb21ldGhpbmcgaW4gdGhlIGFpcjwvdGV4dGFyZWE+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9y
U2hhZG93RE9NRm9yQW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZhciBzaGFkb3dSb290ID0g
aG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLXZhciBkaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLWRpdi5pbm5lckhUTUwgPSAiKGJlZm9yZSk8c2hhZG93Pjwvc2hh
ZG93PihhZnRlcikiOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotPC9zY3JpcHQ+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tcmVwcm9qZWN0aW9uLTEtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLXJlcHJvamVjdGlvbi0xLWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tcmVwcm9qZWN0aW9uLTEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwy
MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1kaXYg
ewotICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDEwcHg7Ci0gIGJvcmRlcjogc29saWQgYmxhY2s7
Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXY+Ci0gIDxkaXY+Ci0gICAgPGRp
dj5hLTE8L2Rpdj4KLSAgPC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1yZXByb2plY3Rpb24tMS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tcmVw
cm9qZWN0aW9uLTEuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1yZXByb2plY3Rpb24tMS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1kaXYgewot
ICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDEwcHg7Ci0gIGJvcmRlcjogc29saWQgYmxhY2s7Ci19
Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGV4dChjb250
ZW50cykgewotICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50cyk7Ci19
Ci0KLWZ1bmN0aW9uIHNoYWRvd1Jvb3QoKSB7Ci0gICAgcmV0dXJuIGNyZWF0ZVNoYWRvd1Jvb3RX
aXRoQXR0cmlidXRlcyh7J2FwcGx5QXV0aG9yU3R5bGVzJzogdHJ1ZX0sIEFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpOwotfQotCi1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgIHNoYWRvd1Jvb3QoCi0g
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNhLTEnfSkpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNhLTEnfSkpKSwK
LSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EtMSd9LCB0ZXh0KCdhLTEn
KSkpKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1yZXByb2plY3Rpb24tMi1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tcmVwcm9qZWN0
aW9uLTItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1yZXByb2plY3Rpb24tMi1leHBlY3RlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzdHlsZT4KLWRpdiB7Ci0gIG1hcmdpbjogMTBweCAxMHB4IDEwcHggMTBweDsKLSAgYm9y
ZGVyOiBzb2xpZCBibGFjazsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdj4K
LSAgPGRpdj4KLSAgICA8ZGl2PmItMTwvZGl2PgotICAgIDxkaXY+Yi0yPC9kaXY+Ci0gIDwvZGl2
PgotPC9kaXY+Ci0KLTxkaXY+Ci0gIDxkaXY+Yy0xPC9kaXY+Ci0gIDxkaXY+Ci0gICAgPGRpdj5j
LTI8L2Rpdj4KLSAgPC9kaXY+Ci08L2Rpdj4KLQotPGRpdj4KLSAgPGRpdj4KLSAgICA8ZGl2PmQt
Y2hpbGQtMTwvZGl2PgotICAgIDxkaXY+Ci0gICAgICAgPGRpdj5kLTI8L2Rpdj4KLSAgICAgICA8
ZGl2PmQtY2hpbGQtMjwvZGl2PgotICAgICAgIDxkaXY+ZC00PC9kaXY+Ci0gICAgICAgPGRpdj5k
LTM8L2Rpdj4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2PmQtNTwvZGl2PgotICAgIDxkaXY+ZC0xPC9k
aXY+Ci0gIDwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tcmVwcm9qZWN0aW9uLTIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLXJlcHJvamVjdGlv
bi0yLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tcmVwcm9qZWN0aW9uLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3NyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPHN0eWxlPgotZGl2IHsKLSAgbWFyZ2lu
OiAxMHB4IDEwcHggMTBweCAxMHB4OwotICBib3JkZXI6IHNvbGlkIGJsYWNrOwotfQotPC9zdHls
ZT4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRleHQoY29udGVudHMpIHsK
LSAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29udGVudHMpOwotfQotCi1mdW5j
dGlvbiBzaGFkb3dSb290KCkgewotICAgIHJldHVybiBjcmVhdGVTaGFkb3dSb290V2l0aEF0dHJp
YnV0ZXMoeydhcHBseUF1dGhvclN0eWxlcyc6IHRydWV9LCBBcnJheS5wcm90b3R5cGUuc2xpY2Uu
Y2FsbChhcmd1bWVudHMpKTsKLX0KLQotLy8gVGVzdCBmb3IgYSBjb250ZW50IGVsZW1lbnQgd2hp
Y2ggaXMgc2VsZWN0ZWQgYnkgYW5vdGhlciBjb250ZW50IGVsZW1lbnQuCi1kb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgIHNo
YWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNiLWNvbnRlbnQnfSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sIHRl
eHQoJ2ItMScpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdj
b250ZW50JywgeydzZWxlY3QnOiAnI2ItMid9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6ICdiLWNvbnRlbnQnLCAnc2VsZWN0JzogJyNi
LTInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7fSwgdGV4dCgnc2hvdWxkLW5vdC1iZS11c2VkJykpKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LCB0ZXh0KCdzaG91bGQtbm90LWJlLXVzZWQn
KSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2ItMid9LCB0ZXh0
KCdiLTInKSkpKTsKLQotLy8gZGVidWcoJ1Rlc3QgZm9yIGEgcmVwcm9qZWN0aW9uLiBDb250ZW50
IGVsZW1lbnRzIHNob3VsZCBiZSB1c2VkIGluIGRvY3VtZW50IG9yZGVyLicpOwotZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAg
ICBzaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywgeydz
ZWxlY3QnOiAnI2MtMSd9KSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93Um9vdCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnLmNoaWxk
J30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7
J3NlbGVjdCc6ICcuY2hpbGQnfSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2MtMScsICdjbGFzcyc6ICdjaGlsZCd9LCB0ZXh0KCdjLTEnKSksCi0gICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjLTInLCAnY2xhc3MnOiAnY2hpbGQnfSwgdGV4
dCgnYy0yJykpKSk7Ci0KLS8vIGRlYnVnKCdUZXN0IGZvciBjb21wbGV4IHJlLXByb2plY3Rpb25z
LicpOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHt9
LAotICAgICAgICAgICAgICBzaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dSb290KAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgI2QtY2hpbGQtMSwgZGl2LCBk
LTUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywg
eydzZWxlY3QnOiAnLmZvbyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7fSwgdGV4dCgnZC0xJykpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBTZWxlY3QgI2QtY2hpbGQtMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNkLWNoaWxkLTEnfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwgdGV4dCgnU2hv
dWxkIG5vdCBiZSB1c2VkJykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuZm9vJ30sIHRleHQoJ1Nob3VsZCBu
b3Qgc2VsZWN0IGFueSBub2Rlcy4gVGhpcyBpcyBpbmFjdGl2ZS4nKSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydjbGFzcyc6ICdmb28nfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93Um9vdCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sIHRleHQo
J2QtMicpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNl
bGVjdCAjZC1jaGlsZC0yIGFuZCAjZC00LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnLmZvbyd9KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
e30sIHRleHQoJ2QtMycpKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFNlbGVjdCAjZC1jaGlsZC0yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNkLWNoaWxkLTInfSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdkLTQnLCAnY2xhc3MnOiAnZm9vJ30sIHRleHQoJ2QtNCcpKSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwgdGV4dCgnU2hvdWxkIG5vdCBiZSBzZWxl
Y3RlZCcpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
Y2xhc3MnOiAnZm9vJ30sIHRleHQoJ2QtNScpKSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZC1jaGlsZC0xJywgJ2NsYXNzJzogJ2Zvbyd9LCB0ZXh0KCdkLWNoaWxk
LTEnKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydjbGFzcyc6ICdmb28nfSwg
dGV4dCgnc2hvdWxkLW5vdC1iZS1zZWxlY3RlZCcpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2QtY2hpbGQtMicsICdjbGFzcyc6ICdmb28nfSwgdGV4dCgnZC1jaGls
ZC0yJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dyb290LWNsb25lbm9kZS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtY2xvbmVub2Rl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd3Jvb3QtY2xvbmVub2RlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMCArMCwwIEBACi1DYWxsaW5nIFNoYWRvd1Jvb3QuY2xvbmVOb2RlKCkgc2hvdWxkIHRo
cm93IGEgREFUQV9DTE9ORV9FUlIgZXhjZXB0aW9uLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCi0KLQotUEFTUyBzaGFkb3dSb290LmNsb25lTm9kZSgpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogRGF0YUNsb25lRXJyb3I6IERPTSBFeGNlcHRpb24gMjUuCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd3Jvb3QtY2xvbmVub2RlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtY2xvbmVub2RlLmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dyb290LWNsb25l
bm9kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAKLTwhRE9DVFlQRT4KLTxo
dG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQot
PHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbignQ2FsbGlu
ZyBTaGFkb3dSb290LmNsb25lTm9kZSgpIHNob3VsZCB0aHJvdyBhIERBVEFfQ0xPTkVfRVJSIGV4
Y2VwdGlvbi4nKTsKLQotdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaG91bGRU
aHJvdygnc2hhZG93Um9vdC5jbG9uZU5vZGUoKScsICciRXJyb3I6IERhdGFDbG9uZUVycm9yOiBE
T00gRXhjZXB0aW9uIDI1IicpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93cm9vdC1vZi1pbnNlcnRpb25wb2ludC1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dy
b290LW9mLWluc2VydGlvbnBvaW50LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dyb290LW9mLWluc2VydGlvbnBvaW50
LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci0KLTxodG1sPgotCi08cD5TaGFkb3dSb290IGZvciBJbnNlcnRpb25Qb2ludCBzaG91
bGQgbm90IGJlIHJlbmRlcmVkIGlmIHRoZSBJbnNlcnRpb25Qb2ludCBpcyBhY3RpdmUsIHdoaWxl
IGl0IHNob3VsZCBiZSByZW5kZXJlZCBpZiBub3QgYWN0aXZlLjwvcD4KLQotPGRpdiBpZD0iaG9z
dCI+PGRpdj4KLSAgICA8ZGl2Pmhvc3QgY2hpbGRyZW48L2Rpdj4KLSAgICA8Y29udGVudD48ZGl2
PkZvciBJbmFjdGl2ZSBjb250ZW50PC9kaXY+PC9jb250ZW50PgotPC9kaXY+PC9kaXY+Ci0KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dyb290LW9mLWlu
c2VydGlvbnBvaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd3Jvb3Qtb2YtaW5zZXJ0aW9ucG9pbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3Qtb2YtaW5zZXJ0aW9ucG9p
bnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LQotPGh0bWw+Ci0KLTxwPlNoYWRvd1Jvb3QgZm9yIEluc2VydGlvblBvaW50IHNob3VsZCBub3Qg
YmUgcmVuZGVyZWQgaWYgdGhlIEluc2VydGlvblBvaW50IGlzIGFjdGl2ZSwgd2hpbGUgaXQgc2hv
dWxkIGJlIHJlbmRlcmVkIGlmIG5vdCBhY3RpdmUuPC9wPgotCi08ZGl2IGlkPSJob3N0Ij4KLSAg
ICA8ZGl2Pmhvc3QgY2hpbGRyZW48L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0PgotdmFyIHNoYWRv
d1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0KLSAgICAnPGRpdj4nICsgCi0gICAgICAgICc8Y29udGVudCBpZD0iYWN0aXZlLWNvbnRl
bnQiIHNlbGVjdD0iZGl2Ij48ZGl2PmZhbGxiYWNrPC9kaXY+PC9jb250ZW50PicgKwotICAgICAg
ICAnPGNvbnRlbnQgc2VsZWN0PSJzcGFuIj48Y29udGVudCBpZD0iaW5hY3RpdmUtY29udGVudCI+
PC9jb250ZW50PjwvY29udGVudD4nICsKLSAgICAnPC9kaXY+JzsKLQotdmFyIGFjdGl2ZUNvbnRl
bnQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUtY29udGVudCcpOwotdmFyIHNo
YWRvd1Jvb3RGb3JBY3RpdmVDb250ZW50ID0gYWN0aXZlQ29udGVudC53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci1zaGFkb3dSb290Rm9yQWN0aXZlQ29udGVudC5pbm5lckhUTUwgPSAnPGRpdj5G
b3IgYWN0aXZlIGNvbnRlbnQ8L2Rpdj4nOwotCi12YXIgaW5hY3RpdmVDb250ZW50ID0gc2hhZG93
Um9vdC5nZXRFbGVtZW50QnlJZCgnaW5hY3RpdmUtY29udGVudCcpOwotdmFyIHNoYWRvd1Jvb3RG
b3JJbmFjdGl2ZUNvbnRlbnQgPSBpbmFjdGl2ZUNvbnRlbnQud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotc2hhZG93Um9vdEZvckluYWN0aXZlQ29udGVudC5pbm5lckhUTUwgPSAnPGRpdj5Gb3Ig
SW5hY3RpdmUgY29udGVudDwvZGl2Pic7Ci08L3NjcmlwdD4KLQotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtdHlwZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtdHlwZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3dyb290LXR5cGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEx
ICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIFNoYWRvd1Jvb3RUeXBlIGlzIGNvcnJlY3RseSBy
ZWZsZWN0ZWQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgIkF1dGhvclNo
YWRvd1Jvb3QiIGlzIGludGVybmFscy5zaGFkb3dSb290VHlwZShzaGFkb3dSb290Rm9yRGl2KQot
UEFTUyAiVXNlckFnZW50U2hhZG93Um9vdCIgaXMgaW50ZXJuYWxzLnNoYWRvd1Jvb3RUeXBlKHNo
YWRvd1Jvb3RGb3JJbnB1dCkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93cm9v
dC10eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd3Jvb3QtdHlwZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93cm9vdC10eXBlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjcg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNv
bnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci0gICAgPGlucHV0IGlkPSJpbnB1
dCIgdHlwZT0idGV4dCI+Ci08L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFNoYWRvd1Jvb3RUeXBlIGlzIGNv
cnJlY3RseSByZWZsZWN0ZWQiKTsKLQotdmFyIHNoYWRvd1Jvb3RGb3JEaXYgPSBob3N0LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBzaGFkb3dSb290Rm9ySW5wdXQgPSBpbnRlcm5hbHMu
c2hhZG93Um9vdChpbnB1dCk7Ci0KLXNob3VsZEJlKCciQXV0aG9yU2hhZG93Um9vdCInLCAnaW50
ZXJuYWxzLnNoYWRvd1Jvb3RUeXBlKHNoYWRvd1Jvb3RGb3JEaXYpJyk7Ci1zaG91bGRCZSgnIlVz
ZXJBZ2VudFNoYWRvd1Jvb3QiJywgJ2ludGVybmFscy5zaGFkb3dSb290VHlwZShzaGFkb3dSb290
Rm9ySW5wdXQpJyk7Ci0KLWNvbnRhaW5lci5pbm5lckhUTUwgPSAiIjsKLQotZmluaXNoSlNUZXN0
KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zdHlsZS1vZi1kaXN0cmlidXRlZC1ub2RlLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5bGUtb2YtZGlzdHJpYnV0
ZWQtbm9kZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zdHlsZS1vZi1kaXN0cmlidXRlZC1ub2RlLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBzdHlsZXMg
b2YgZGlzdHJpYnV0ZWQgbm9kZXMgYXJlIGRpZmZlcmVudCBpZiB0aGVpciBwYXJlbnQgc3R5bGVz
IGFyZSBkaWZmZXJlbnQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQotUEFT
UyBnZXRDb2xvclByb3BlcnR5KCJjaGlsZC1hIikgaXMgInJnYigyNTUsIDAsIDApIgotUEFTUyBn
ZXRDb2xvclByb3BlcnR5KCJjaGlsZC1iIikgaXMgInJnYigwLCAwLCAyNTUpIgotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQotCi0KLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLW9mLWRpc3RyaWJ1dGVkLW5vZGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5bGUtb2YtZGlz
dHJpYnV0ZWQtbm9kZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc3R5bGUtb2YtZGlzdHJpYnV0ZWQtbm9kZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gZ2V0Q29sb3JQcm9wZXJ0eShpZCkgewotICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkpLmNvbG9yOwotfQotCi1mdW5jdGlv
biBsb2cobWVzc2FnZSkgewotICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKTsKLSAgICBjb25zb2xlLmlubmVySFRNTCArPSBtZXNzYWdlICsgJ1xuJzsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cHJlIGlkPSJjb25zb2xlIj48L2Rpdj4K
LTxkaXYgaWQ9InRlc3QiPgotICAgIDxkaXYgaWQ9Imhvc3QiIHN0eWxlPSJjb2xvcjogcmVkIj4K
LSAgICAgICAgPGRpdiBpZD0iY2hpbGQtYSI+PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNoaWxk
LWIiPjwvZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRl
c3RzIHRvIGVuc3VyZSB0aGF0IHN0eWxlcyBvZiBkaXN0cmlidXRlZCBub2RlcyBhcmUgZGlmZmVy
ZW50IGlmIHRoZWlyIHBhcmVudCBzdHlsZXMgYXJlIGRpZmZlcmVudC4iKTsKLQotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIHNyID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1z
ci5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjY2hpbGQtYSI+PC9jb250ZW50PjxkaXYg
c3R5bGU9ImNvbG9yOiBibHVlIj48Y29udGVudCBzZWxlY3Q9IiNjaGlsZC1iIj48L2NvbnRlbnQ+
PC9kaXY+JzsKLQotc2hvdWxkQmUoJ2dldENvbG9yUHJvcGVydHkoImNoaWxkLWEiKScsICcicmdi
KDI1NSwgMCwgMCkiJyk7Ci1zaG91bGRCZSgnZ2V0Q29sb3JQcm9wZXJ0eSgiY2hpbGQtYiIpJywg
JyJyZ2IoMCwgMCwgMjU1KSInKTsKLQotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5p
bm5lckhUTUwgPSAnJzsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLXNjb3BlZC1ub3QtZW5hYmxlZC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLXNj
b3BlZC1ub3QtZW5hYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zdHlsZS1zY29wZWQtbm90LWVuYWJsZWQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIGNv
bnRlbnQgZWxlbWVudCBmZWF0dXJlIGNhbiBiZSBkaXNhYmxlZAotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaG91bGRCZUFwcGxp
ZWQpLmNvbG9yIGlzICdyZ2IoMCwgMCwgMjU1KScKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoc2hvdWxkTm90QmVBcHBsaWVkKS5jb2xvciBpcyAncmdiKDAsIDAsIDApJwotUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShpbnNpZGVTY29wZSkuY29sb3IgaXMgJ3JnYigyNTUsIDAsIDAp
JwotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaG91bGROb3RCZVNjb3BlZCkuY29sb3Ig
aXMgJ3JnYigyNTUsIDAsIDApJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi1TaG91bGQgbm90IGJlIGJsdWUKLVNob3VsZCBiZSByZWQKLQotU2hvdWxk
IGJlIHJlZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLXNjb3BlZC1u
b3QtZW5hYmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zdHlsZS1zY29wZWQtbm90LWVuYWJsZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLXNjb3BlZC1ub3QtZW5hYmxlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U3R5bGVTY29wZWRFbmFibGVkKGZhbHNlKTsKLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLTxzcGFuIGlkPSdzaG91bGRO
b3RCZUFwcGxpZWQnPlNob3VsZCBub3QgYmUgYmx1ZTwvc3Bhbj4KLTxkaXY+Ci0gIDxzdHlsZSBz
Y29wZWQ+IHAgeyBjb2xvcjogcmVkOyB9IDwvc3R5bGU+Ci0gIDxwIGlkPSdpbnNpZGVTY29wZSc+
U2hvdWxkIGJlIHJlZDwvcD4KLTwvZGl2PgotPHAgaWQ9J3Nob3VsZE5vdEJlU2NvcGVkJz5TaG91
bGQgYmUgcmVkPC9wPgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlcyBj
b250ZW50IGVsZW1lbnQgZmVhdHVyZSBjYW4gYmUgZGlzYWJsZWQiKTsKLXZhciBob3N0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKTsKLXZhciBzaGFkb3cgPSBob3N0LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPiBzcGFuIHsgY29s
b3I6IGJsdWU7IH0gPC9zdHlsZT48c3BhbiBpZD0nc2hvdWxkQmVBcHBsaWVkJz5TaG91bGQgYmUg
Ymx1ZTwvc3Bhbj4iOwotdmFyIHNob3VsZEJlQXBwbGllZCA9IHNoYWRvdy5nZXRFbGVtZW50QnlJ
ZCgic2hvdWxkQmVBcHBsaWVkIik7Ci12YXIgc2hvdWxkTm90QmVBcHBsaWVkID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNob3VsZE5vdEJlQXBwbGllZCIpOwotdmFyIHNob3VsZE5vdEJlU2Nv
cGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNob3VsZE5vdEJlU2NvcGVkIik7Ci12YXIg
aW5zaWRlU2NvcGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5zaWRlU2NvcGUiKTsKLXNo
b3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaG91bGRCZUFwcGxpZWQpLmNvbG9yIiwg
IidyZ2IoMCwgMCwgMjU1KSciKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShz
aG91bGROb3RCZUFwcGxpZWQpLmNvbG9yIiwgIidyZ2IoMCwgMCwgMCknIik7Ci1zaG91bGRCZSgi
d2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5zaWRlU2NvcGUpLmNvbG9yIiwgIidyZ2IoMjU1LCAw
LCAwKSciKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaG91bGROb3RCZVNj
b3BlZCkuY29sb3IiLCAiJ3JnYigyNTUsIDAsIDApJyIpOwotZmluaXNoSlNUZXN0KCk7Ci08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zdHlsaW5nLXBzZXVkby1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5bGluZy1wc2V1ZG8tYXR0cmlidXRlLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zdHlsaW5nLXBzZXVkby1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPHN0eWxlPgotI3Rh
cmdldCB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLTwvc3R5bGU+Ci08ZGl2PjxkaXYgaWQ9InRhcmdl
dCI+Zm9vIGJhcjwvZGl2PjwvZGl2PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc3R5bGluZy1wc2V1ZG8tYXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxpbmctcHNldWRvLWF0dHJpYnV0ZS5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5bGlu
Zy1wc2V1ZG8tYXR0cmlidXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjAgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxzdHlsZT4KLSNob3N0MTo6eC1mb28gewotICAgIGNv
bG9yOiByZWQ7Ci19Ci08L3N0eWxlPgotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotCi08c2NyaXB0
PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotZGl2LnNldEF0dHJpYnV0ZSgn
cHNldWRvJywgJ3gtZm9vJyk7Ci1kaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ2ZvbyBiYXInKSk7Ci0KLXNoYWRvd1Jvb3QxLmFwcGVuZENoaWxkKGRpdik7Ci08L3Njcmlw
dD4KLQotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3VwcHJl
c3MtbXV0YXRpb24tZXZlbnRzLWluLXNoYWRvdy1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3VwcHJlc3MtbXV0YXRp
b24tZXZlbnRzLWluLXNoYWRvdy1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N1cHByZXNzLW11dGF0aW9u
LWV2ZW50cy1pbi1zaGFkb3ctY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTEgKzAsMCBAQAotRW5zdXJlcyB0aGF0IERPTUNoYXJhY3RlckRhdGFNb2RpZmll
ZCBpc24ndCBmaXJlZCBpbnNpZGUgc2hhZG93cy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1MgZmlyZWQgaXMgZmFsc2UKLVBBU1MgZGl2LmlubmVySFRNTCBpcyAnSGVsbG8s
IFdvcmxkIScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3VwcHJlc3MtbXV0YXRpb24t
ZXZlbnRzLWluLXNoYWRvdy1jaGFyYWN0ZXJkYXRhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3N1cHByZXNzLW11dGF0aW9uLWV2ZW50cy1pbi1zaGFkb3ct
Y2hhcmFjdGVyZGF0YS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc3VwcHJlc3MtbXV0YXRpb24tZXZlbnRzLWluLXNoYWRvdy1jaGFyYWN0ZXJk
YXRhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiRW5zdXJlcyB0aGF0IERPTUNoYXJhY3RlckRhdGFNb2RpZmllZCBpc24ndCBmaXJl
ZCBpbnNpZGUgc2hhZG93cy4iKTsKLXZhciBmaXJlZCA9IGZhbHNlOwotdmFyIGhvc3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwotZGl2LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3RlckRhdGFNb2RpZmllZCIsIGZ1bmN0
aW9uKGV2dCkgewotICAgIGZpcmVkID0gdHJ1ZTsKLX0sIGZhbHNlKTsKLQotc2hhZG93LmFwcGVu
ZENoaWxkKGRpdik7Ci1kaXYuaW5uZXJIVE1MID0gIkhlbGxvLCAiOwotZGl2LmZpcnN0Q2hpbGQu
YXBwZW5kRGF0YSgiV29ybGQhIik7Ci1zaG91bGRCZUZhbHNlKCJmaXJlZCIpOwotc2hvdWxkQmUo
ImRpdi5pbm5lckhUTUwiLCAiJ0hlbGxvLCBXb3JsZCEnIik7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zdXBwcmVzcy1t
dXRhdGlvbi1ldmVudHMtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3VwcHJlc3MtbXV0YXRpb24tZXZlbnRzLWluLXNoYWRv
dy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zdXBwcmVzcy1tdXRhdGlvbi1ldmVudHMtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1UZXN0IHRoYXQgbXV0YXRpb24gZXZlbnRz
IGFyZSBub3QgdHJpZ2dlcmVkIGluIHNoYWRvdyBET00KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVBBU1MgbXV0YXRpb25FdmVudFRyaWdnZXJlZCBpcyBmYWxzZQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zdXBwcmVzcy1tdXRhdGlvbi1ldmVudHMtaW4tc2hhZG93Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N1cHByZXNzLW11
dGF0aW9uLWV2ZW50cy1pbi1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3N1cHByZXNzLW11dGF0aW9uLWV2ZW50cy1pbi1zaGFkb3cu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxi
b2R5PgotPGlucHV0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBtdXRhdGlv
biBldmVudHMgYXJlIG5vdCB0cmlnZ2VyZWQgaW4gc2hhZG93IERPTScpOwotdmFyIG11dGF0aW9u
RXZlbnRUcmlnZ2VyZWQgPSBmYWxzZTsKLWZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICB2YXIgaW5w
dXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpOwotICAgIHZhciBzaGFkb3dSb290
ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW5wdXQpOwotICAgIHZhciBmaXJzdENoaWxkID0gc2hh
ZG93Um9vdC5maXJzdENoaWxkOwotICAgIGZpcnN0Q2hpbGQuYWRkRXZlbnRMaXN0ZW5lcignRE9N
Tm9kZUluc2VydGVkJywgZnVuY3Rpb24oZXZ0KSB7Ci0gICAgICAgIG11dGF0aW9uRXZlbnRUcmln
Z2VyZWQgPSB0cnVlOwotICAgIH0pOwotICAgIGlucHV0LnZhbHVlID0gJ2hlbGxvJzsKLSAgICBz
aG91bGRCZUZhbHNlKCdtdXRhdGlvbkV2ZW50VHJpZ2dlcmVkJyk7Ci19Ci0KLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGRvVGVzdCgpOwotZWxzZQotICAgIHRlc3RGYWlsZWQoJ1RoaXMgdGVz
dCBvbmx5IHJ1bnMgaW4gRFJUJyk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFuZC1zaGFkb3ctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90YWItb3Jk
ZXItaWZyYW1lLWFuZC1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGFiLW9yZGVyLWlmcmFtZS1hbmQtc2hhZG93LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTA0OiBVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogbG9nIGlzIG5vdCBkZWZpbmVk
Ci1UaGlzIHRlc3RzIHRoYXQgcHJlc3NpbmcgVGFiIGtleSBzaG91bGQgdHJhdmVyc2UgaW50byBp
ZnJhbWUgYW5kIHNoYWRvdyB0cmVlLCBhbmQgcHJlc3NpbmcgU2hpZnQtVGFiIHNob3VsZCByZXZl
cnNlIHRoZSBvcmRlci4KLQotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0wMSB0byBpbnB1dC0xMyBp
biBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTEzIHRvIGlucHV0LTE1IGlu
IGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtMTUgdG8gaW5wdXQtMDIgaW4g
Zm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0wMiB0byBob3N0LTAxL2lucHV0
LTAzIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC0wMS9pbnB1dC0wMyB0
byBpbnB1dC0wNCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTA0IHRv
IGlmcmFtZS9pbnB1dC0wNiBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFt
ZS9pbnB1dC0wNiB0byBpZnJhbWUvaG9zdC0wMiBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92
ZSBmcm9tIGlmcmFtZS9ob3N0LTAyIHRvIGlmcmFtZS9ob3N0LTAyL2lucHV0LTA5IGluIGZvcndh
cmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1lL2hvc3QtMDIvaW5wdXQtMDkgdG8gaWZy
YW1lL2hvc3QtMDIvaW5wdXQtMDggaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBp
ZnJhbWUvaG9zdC0wMi9pbnB1dC0wOCB0byBpZnJhbWUvaW5wdXQtMTIgaW4gZm9yd2FyZAotUEFT
UwotU2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaW5wdXQtMTIgdG8gaWZyYW1lL2lucHV0LTExIGlu
IGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1lL2lucHV0LTExIHRvIGlmcmFt
ZS9pbnB1dC0wNSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9pbnB1
dC0wNSB0byBpbnB1dC0xNCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0
LTE0IHRvIGlmcmFtZS9pbnB1dC0wNSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJv
bSBpZnJhbWUvaW5wdXQtMDUgdG8gaWZyYW1lL2lucHV0LTExIGluIGJhY2t3YXJkCi1QQVNTCi1T
aG91bGQgbW92ZSBmcm9tIGlmcmFtZS9pbnB1dC0xMSB0byBpZnJhbWUvaW5wdXQtMTIgaW4gYmFj
a3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1lL2lucHV0LTEyIHRvIGlmcmFtZS9o
b3N0LTAyL2lucHV0LTA4IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFt
ZS9ob3N0LTAyL2lucHV0LTA4IHRvIGlmcmFtZS9ob3N0LTAyL2lucHV0LTA5IGluIGJhY2t3YXJk
Ci1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9ob3N0LTAyL2lucHV0LTA5IHRvIGlmcmFt
ZS9ob3N0LTAyIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9ob3N0
LTAyIHRvIGlmcmFtZS9pbnB1dC0wNiBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJv
bSBpZnJhbWUvaW5wdXQtMDYgdG8gaW5wdXQtMDQgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBt
b3ZlIGZyb20gaW5wdXQtMDQgdG8gaG9zdC0wMS9pbnB1dC0wMyBpbiBiYWNrd2FyZAotUEFTUwot
U2hvdWxkIG1vdmUgZnJvbSBob3N0LTAxL2lucHV0LTAzIHRvIGlucHV0LTAyIGluIGJhY2t3YXJk
Ci1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTAyIHRvIGlucHV0LTE1IGluIGJhY2t3YXJk
Ci1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTE1IHRvIGlucHV0LTEzIGluIGJhY2t3YXJk
Ci1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTEzIHRvIGlucHV0LTAxIGluIGJhY2t3YXJk
Ci1QQVNTCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RhYi1vcmRlci1p
ZnJhbWUtYW5kLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFuZC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RhYi1vcmRlci1pZnJhbWUtYW5kLXNo
YWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwOCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdHMgdGhhdCBwcmVzc2lu
ZyBUYWIga2V5IHNob3VsZCB0cmF2ZXJzZSBpbnRvIGlmcmFtZSBhbmQgc2hhZG93IHRyZWUsIGFu
ZCBwcmVzc2luZyBTaGlmdC1UYWIgc2hvdWxkIHJldmVyc2UgdGhlIG9yZGVyLjwvcD4KLTxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZVRleHRJbnB1dEVs
ZW1lbnQoZG9jLCBpZCwgdGFiSW5kZXgpIHsKLSAgICB2YXIgaW5wdXQgPSBkb2MuY3JlYXRlRWxl
bWVudCgnaW5wdXQnKTsKLSAgICBpbnB1dC50eXBlID0gJ3RleHQnOwotICAgIGlucHV0LmlkID0g
aWQ7Ci0gICAgaW5wdXQudGFiSW5kZXggPSB0YWJJbmRleDsKLSAgICByZXR1cm4gaW5wdXQ7Ci19
Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIHZhciBkb2MgPSBkb2N1bWVudDsKLQotICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNy
ZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCAnaW5wdXQtMDEnLCAxKSk7Ci0gICAgZG9jLmJvZHku
YXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wMicsIDApKTsK
LQotICAgIGZ1bmN0aW9uIGFkZFNoYWRvd0hvc3QoZG9jKSB7Ci0gICAgICAgIHZhciBzaGFkb3dI
b3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgICAgICAgc2hhZG93SG9zdC5pZCA9ICdo
b3N0LTAxJzsKLSAgICAgICAgc2hhZG93SG9zdC50YWJJbmRleCA9IC0xOwotICAgICAgICB2YXIg
c2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qoc2hhZG93SG9zdCk7Ci0gICAgICAg
IGRvYy5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOwotICAgICAgICBzaGFkb3cuYXBwZW5k
Q2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wMycsIDApKTsKLSAgICB9
Ci0gICAgYWRkU2hhZG93SG9zdChkb2MpOwotCi0gICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3Jl
YXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wNCcsIDApKTsKLQotICAgIGZ1bmN0aW9u
IGFkZElmcmFtZShkb2MpIHsKLSAgICAgICAgdmFyIGlmcmFtZSA9IGRvYy5jcmVhdGVFbGVtZW50
KCdpZnJhbWUnKTsKLSAgICAgICAgaWZyYW1lLmlkID0gJ2lmcmFtZSc7Ci0gICAgICAgIGRvYy5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0gICAgICAgIGRvYyA9IGlmcmFtZS5jb250ZW50RG9j
dW1lbnQ7Ci0KLSAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxl
bWVudChkb2MsICdpbnB1dC0wNScsIDApKTsKLSAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQo
Y3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wNicsIDEpKTsKLSAgICAgICAgZG9j
LmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wNycs
IC0xKSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gYWRkU2hhZG93SG9zdChkb2MpIHsKLSAgICAgICAg
ICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgICAgICAgICAg
IHNoYWRvd0hvc3QuaWQgPSAnaG9zdC0wMic7Ci0gICAgICAgICAgICBzaGFkb3dIb3N0LnRhYklu
ZGV4ID0gMTsKLSAgICAgICAgICAgIHZhciBzaGFkb3cgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93
Um9vdChzaGFkb3dIb3N0KTsKLSAgICAgICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKHNoYWRv
d0hvc3QpOwotCi0gICAgICAgICAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0
RWxlbWVudChkb2MsICdpbnB1dC0wOCcsIDApKTsKLSAgICAgICAgICAgIHNoYWRvdy5hcHBlbmRD
aGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTA5JywgMSkpOwotICAgICAg
ICAgICAgc2hhZG93LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCAnaW5w
dXQtMTAnLCAtMSkpOwotICAgICAgICB9Ci0gICAgICAgIGFkZFNoYWRvd0hvc3QoZG9jKTsKLQot
ICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywg
J2lucHV0LTExJywgMikpOwotICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0
SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTEyJywgMSkpOwotICAgIH0KLSAgICBhZGRJZnJhbWUo
ZG9jKTsKLQotICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQo
ZG9jLCAnaW5wdXQtMTMnLCAxKSk7Ci0gICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4
dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0xNCcsIDApKTsKLSAgICBkb2MuYm9keS5hcHBlbmRD
aGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTE1JywgMikpOwotCi0gICAg
dGVzdEZvY3VzTmF2aWdhdGlvbkZvd3JhZChbCi0gICAgICAgICdpbnB1dC0wMScsCi0gICAgICAg
ICdpbnB1dC0xMycsCi0gICAgICAgICdpbnB1dC0xNScsCi0gICAgICAgICdpbnB1dC0wMicsCi0g
ICAgICAgICdob3N0LTAxL2lucHV0LTAzJywKLSAgICAgICAgJ2lucHV0LTA0JywKLSAgICAgICAg
J2lmcmFtZS9pbnB1dC0wNicsCi0gICAgICAgICdpZnJhbWUvaG9zdC0wMicsCi0gICAgICAgICdp
ZnJhbWUvaG9zdC0wMi9pbnB1dC0wOScsCi0gICAgICAgICdpZnJhbWUvaG9zdC0wMi9pbnB1dC0w
OCcsCi0gICAgICAgICdpZnJhbWUvaW5wdXQtMTInLAotICAgICAgICAnaWZyYW1lL2lucHV0LTEx
JywKLSAgICAgICAgJ2lmcmFtZS9pbnB1dC0wNScsCi0gICAgICAgICdpbnB1dC0xNCcsCi0gICAg
XSk7Ci0KLSAgICB0ZXN0Rm9jdXNOYXZpZ2F0aW9uQmFja3dhcmQoWwotICAgICAgICAnaW5wdXQt
MTQnLAotICAgICAgICAnaWZyYW1lL2lucHV0LTA1JywKLSAgICAgICAgJ2lmcmFtZS9pbnB1dC0x
MScsCi0gICAgICAgICdpZnJhbWUvaW5wdXQtMTInLAotICAgICAgICAnaWZyYW1lL2hvc3QtMDIv
aW5wdXQtMDgnLAotICAgICAgICAnaWZyYW1lL2hvc3QtMDIvaW5wdXQtMDknLAotICAgICAgICAn
aWZyYW1lL2hvc3QtMDInLAotICAgICAgICAnaWZyYW1lL2lucHV0LTA2JywKLSAgICAgICAgJ2lu
cHV0LTA0JywKLSAgICAgICAgJ2hvc3QtMDEvaW5wdXQtMDMnLAotICAgICAgICAnaW5wdXQtMDIn
LAotICAgICAgICAnaW5wdXQtMTUnLAotICAgICAgICAnaW5wdXQtMTMnLAotICAgICAgICAnaW5w
dXQtMDEnLAotICAgIF0pOwotCi0gICBsb2coJ1xuVGVzdCBmaW5pc2hlZC4nKTsKLX0KLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3RleHQtbm9kZS1kaXN0cmlidXRlZC1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1kaXN0cmlidXRlZC1jcmFzaC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy90ZXh0LW5vZGUtZGlzdHJpYnV0ZWQtY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xICswLDAgQEAKLVBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy90ZXh0LW5vZGUtZGlzdHJpYnV0ZWQtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWRpc3RyaWJ1dGVkLWNyYXNoLmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUt
ZGlzdHJpYnV0ZWQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMCArMCwwIEBACi08
IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YWRvdy1kb20uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKAotICAgICAgICBjcmVhdGVET00oJ2RpdicsICB7
J2lkJzogJ2RpdjEnfSwKLSAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoJy0xOTEwMTIwMTM0JykpLAotICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9v
dChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2Mid9LAotICAgICAgICAgICAgICAgIGNyZWF0
ZVNoYWRvd1Jvb3QoKSksCi0gICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFkb3cnLCB7fSkp
KSk7Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIGdldE5vZGVJblNoYWRvd1Ry
ZWVTdGFjaygnZGl2MS8vZGl2MicpLmFwcGVuZENoaWxkKAotICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnZGl2Myd9LAotICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFkb3cnLCB7fSkp
KTsKLSAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAgZG9jdW1lbnQuYm9keS5pbm5l
ckhUTUwgPSAnUEFTUyc7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLSAgPCEtLSBbYnVnIDExMzI3NV0gc3R5bGVGb3JUZXh0IHNob3VsZCBjb25zaWRl
ciB0aGUgY2FzZSB3aGVyZSBwYXJlbnQgLS0+Ci0gIDwhLS0gbm9kZSBoYXMgbm8gc3R5bGUuIC0t
PgotICA8IS0tIElmIHRoaXMgdGVzdCBwYXNzZXMsIHdlIGNhbiBqdXN0IHNlZSAnUEFTUycgd2l0
aG91dCBhbnkgY3Jhc2guIC0tPgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1l
eHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotICA8ZGl2IHN0
eWxlPSJmb250LXNpemU6IDVlbTsiPjxzcGFuPmZvbzwvc3Bhbj5iYXI8L2Rpdj4KLSAgPGRpdj48
c3Bhbj5mb288L3NwYW4+YmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDZlbTsiPiZu
YnNwOzwvc3Bhbj48L2Rpdj4KLSAgPGRpdj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA1ZW07Ij5G
b288c3Bhbj5CYXI8L3NwYW4+PC9zcGFuPjwvZGl2PgotICA8ZGl2PkZvbzxzcGFuPkJhcjwvc3Bh
bj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2ZW07Ij4mbmJzcDs8L3NwYW4+PC9kaXY+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2Rl
LWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNjcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0
eWxlPgotc3BhbiB7Ci0gICB0ZXh0LWFsaWduOiB0b3A7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24g
dGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpIHsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NwYW4nKQotICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKLSAgICBzaGFkb3dSb290LmFw
cGVuZENoaWxkKHNwYW4pOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoImJhciIpKTsKLSAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAg
aG9zdC5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOwotfQotCi1mdW5jdGlvbiB0ZXN0Q2hpbGRUZXh0
T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKLSAgICB2YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlIik7Ci0g
ICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2
YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQotICAgIHNwYW4udGV4dENv
bnRlbnQgPSAiZm9vIjsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOwotICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKLSAg
ICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7Ci0gICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRMZWZ0OwotICAgIGhvc3Quc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKLX0KLQot
ZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dCgpIHsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3N0V2l0aERpc3RyaWJ1dGlvbiIpOwotICAgIHZhciBzaGFkb3dS
b290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4xJz48Y29udGVudD48L2NvbnRlbnQ+PC9zcGFuPiIKLSAg
ICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJ
ZCgic3BhbjEiKS5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOwotfQotCi1mdW5jdGlvbiB0ZXN0RGlz
dHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsKLSAgICB2YXIgaG9zdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERp
c3RyaWJ1dGlvbiIpOwotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4yJz48
Y29udGVudCBpZD0nY29udGVudCc+PC9jb250ZW50Pjwvc3Bhbj4iCi0gICAgc2hhZG93Um9vdC5n
ZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7Ci0g
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5
SWQoInNwYW4yIikuc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKLX0KLQotZnVuY3Rpb24gcnVuVGVz
dHMoKSB7Ci0gICAgdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpOwotICAgIHRlc3RDaGlsZFRl
eHRPZlNoYWRvd1Jvb3RXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci0gICAgdGVzdERpc3Ry
aWJ1dGVkVGV4dCgpOwotICAgIHRlc3REaXN0cmlidXRlZFRleHRXaXRoUmVzZXRTdHlsZUluaGVy
aXRhbmNlKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdHMo
KSI+Ci0gIDwhLS0gW2J1ZyAxMDExMTZdIFRleHQgbm9kZXMgaW4gc2hhZG93IHJvb3RzIGRvbid0
IGluaGVyaXQgc3R5bGUgcHJvcGVybHkgLS0+Ci0gIDwhLS0gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTExNiAtLT4KLSAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci0g
IDxkaXYgaWQ9Imhvc3RSZXNldFN0eWxlSW5oZXJpdGFuY2UiPjwvZGl2PgotICA8ZGl2IGlkPSJo
b3N0V2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgotICA8ZGl2IGlk
PSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFy
PC9zcGFuPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3RpdGxlLWVsZW1lbnQtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGl0bGUtZWxlbWVudC1pbi1zaGFkb3ct
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvdGl0bGUtZWxlbWVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDIxICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGl0bGUgZWxlbWVudHMg
aW4gYSBzaGFkb3cgc3VidHJlZSBkbyBub3QgYWZmZWN0IGRvY3VtZW50LnRpdGxlIGF0dHJpYnV0
ZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLWNyZWF0ZSBhIHRpdGxlIGVsZW1l
bnQgYW5kIGluc2VydCBpdCB0byBkb2N1bWVudC4KLVBBU1MgZG9jdW1lbnQudGl0bGUgaXMgImRv
Y3VtZW50IHRpdGxlIgotcmVtb3ZlIHRpdGxlIGVsZW1lbnQgZnJvbSBkb2N1bWVudC4KLVBBU1Mg
ZG9jdW1lbnQudGl0bGUgaXMgIiIKLWNyZWF0ZSBhIHNoYWRvdyByb290IHdob3NlIGhvc3QgaXMg
YWxyZWFkeSBpbiBkb2N1bWVudCwgY3JlYXRlIGEgc3VidHJlZSB3aGljaCBjb250YWlucyBhIHRp
dGxlIGVsZW1lbnQsIGFuZCBhZGQgdGhlIHN1YnRyZWUgdG8gdGhlIHNoYWRvdyByb290LgotUEFT
UyBkb2N1bWVudC50aXRsZSBpcyAiIgotcmVtb3ZlIHRoZSBzdWJ0cmVlIGZyb20gZG9jdW1lbnQu
Ci1QQVNTIGRvY3VtZW50LnRpdGxlIGlzICIiCi1jcmVhdGUgYSBzdWJ0cmVlLCBhZGQgYSBzaGFk
b3cgcm9vdCB3aGljaCBjb250YWlucyBhIHRpdGxlIGVsZW1lbnQgdG8gdGhlIHN1YnRyZWUsIGFu
ZCBpbnNlcnQgdGhlIHN1YnRyZWUgdG8gZG9jdW1lbnQuCi1QQVNTIGRvY3VtZW50LnRpdGxlIGlz
ICIiCi1yZW1vdmUgdGhlIHN1YnRyZWUgZnJvbSBkb2N1bWVudAotUEFTUyBkb2N1bWVudC50aXRs
ZSBpcyAiIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90aXRsZS1lbGVtZW50LWluLXNo
YWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90aXRs
ZS1lbGVtZW50LWluLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvdGl0bGUtZWxlbWVudC1pbi1zaGFkb3cuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGl0
bGUgZWxlbWVudHMgaW4gYSBzaGFkb3cgc3VidHJlZSBkbyBub3QgYWZmZWN0IGRvY3VtZW50LnRp
dGxlIGF0dHJpYnV0ZS4iKQotCi1kZWJ1ZygnY3JlYXRlIGEgdGl0bGUgZWxlbWVudCBhbmQgaW5z
ZXJ0IGl0IHRvIGRvY3VtZW50LicpOwotdmFyIHRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgndGl0bGUnKTsKLXRpdGxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdk
b2N1bWVudCB0aXRsZScpKTsKLWRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGl0bGUpOwotc2hv
dWxkQmUoJ2RvY3VtZW50LnRpdGxlJywgJyJkb2N1bWVudCB0aXRsZSInKTsKLWRvY3VtZW50Lmhl
YWQucmVtb3ZlQ2hpbGQodGl0bGUpOwotZGVidWcoJ3JlbW92ZSB0aXRsZSBlbGVtZW50IGZyb20g
ZG9jdW1lbnQuJyk7Ci1zaG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLQotZGVidWco
J2NyZWF0ZSBhIHNoYWRvdyByb290IHdob3NlIGhvc3QgaXMgYWxyZWFkeSBpbiBkb2N1bWVudCwg
Y3JlYXRlIGEgc3VidHJlZSB3aGljaCBjb250YWlucyBhIHRpdGxlIGVsZW1lbnQsIGFuZCBhZGQg
dGhlIHN1YnRyZWUgdG8gdGhlIHNoYWRvdyByb290LicpOwotdmFyIHN1YnRyZWUxID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93MSA9IHN1YnRyZWUxLndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLWRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3VidHJlZTEpOwot
dmFyIHNoYWRvd1RpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGl0bGUnKTsKLXNoYWRv
d1RpdGxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdzaGFkb3cgdGl0bGUx
JykpOwotc2hhZG93MS5hcHBlbmRDaGlsZChzaGFkb3dUaXRsZSk7Ci1zaG91bGRCZSgnZG9jdW1l
bnQudGl0bGUnLCAnIiInKTsKLQotZGVidWcoJ3JlbW92ZSB0aGUgc3VidHJlZSBmcm9tIGRvY3Vt
ZW50LicpOwotZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChzdWJ0cmVlMSk7Ci1zaG91bGRCZSgn
ZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLQotZGVidWcoJ2NyZWF0ZSBhIHN1YnRyZWUsIGFkZCBh
IHNoYWRvdyByb290IHdoaWNoIGNvbnRhaW5zIGEgdGl0bGUgZWxlbWVudCB0byB0aGUgc3VidHJl
ZSwgYW5kIGluc2VydCB0aGUgc3VidHJlZSB0byBkb2N1bWVudC4nKQotdmFyIHN1YnRyZWUyID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93MiA9IHN1YnRyZWUyLndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvdzIuaW5uZXJIVE1MID0gJzx0aXRsZT5zaGFk
b3cgdGl0bGUyPC90aXRsZT4nOwotZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdWJ0cmVlMik7
Ci1zaG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLWRlYnVnKCdyZW1vdmUgdGhlIHN1
YnRyZWUgZnJvbSBkb2N1bWVudCcpOwotZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChzdWJ0cmVl
Mik7Ci1zaG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdG91Y2gt
ZXZlbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy90b3VjaC1ldmVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTEgKzAsMCBAQAotVG91Y2ggZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGluIFNo
YWRvdyBET00uCi0KLUVsZW1lbnRzIGluIFNoYWRvd0RPTSBzaG91bGQgbm90IGJlIHJldmVhbGVk
IGluIHRvdWNoVGFyZ2V0IGlmIGl0J3MgZXhhbWluZWQgaW4gbm9uIHNoYWRvdyB0cmVlLgotCi1Q
QVNTIHRvdWNoc3RhcnRGaXJlZEluU2hhZG93RE9NIGlzIHRydWUKLVBBU1MgdG91Y2hUYXJnZXRG
b3JIb3N0MSBpcyBob3N0MQotUEFTUyB0b3VjaFRhcmdldEZvcklucHV0MSBpcyBpbnB1dDEKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdG91Y2gtZXZlbnQtcmV0YXJnZXRpbmctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1l
dmVudC1yZXRhcmdldGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC1yZXRhcmdldGluZy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAotVGVzdHMgdG8gZW5zdXJlIHRoYXQg
ZXZlbnQgZGlzcGF0Y2hpbmcgYmVoYXZlcyBhcyB0aGUgU2hhZG93IERPTSBzcGVjIGRlc2NyaWJl
cy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotICB0b3VjaHN0YXJ0Ci0gICAg
IEBkaXYxICh0YXJnZXQ6IGRpdjEpICh0b3VjaGVzOiBkaXYxLCBkaXYyLCBkaXYzKSAodGFyZ2V0
VG91Y2hlczogZGl2MSkgKGNoYW5nZWRUb3VjaGVzOiBkaXYxLCBkaXYyLCBkaXYzKQotICAgICBA
ZGl2MiAodGFyZ2V0OiBkaXYyKSAodG91Y2hlczogZGl2MSwgZGl2MiwgZGl2MykgKHRhcmdldFRv
dWNoZXM6IGRpdjIpIChjaGFuZ2VkVG91Y2hlczogZGl2MSwgZGl2MiwgZGl2MykKLSAgICAgQGRp
djItc2hhZG93LXJvb3QtY2hpbGQgKHRhcmdldDogZGl2Mi1zaGFkb3ctcm9vdC1jaGlsZCkgKHRv
dWNoZXM6IGRpdjEsIGRpdjItc2hhZG93LXJvb3QtY2hpbGQsIGRpdjMpICh0YXJnZXRUb3VjaGVz
OiBkaXYyLXNoYWRvdy1yb290LWNoaWxkKSAoY2hhbmdlZFRvdWNoZXM6IGRpdjEsIGRpdjItc2hh
ZG93LXJvb3QtY2hpbGQsIGRpdjMpCi0gICAgIEBkaXYzICh0YXJnZXQ6IGRpdjMpICh0b3VjaGVz
OiBkaXYxLCBkaXYyLCBkaXYzKSAodGFyZ2V0VG91Y2hlczogZGl2MykgKGNoYW5nZWRUb3VjaGVz
OiBkaXYxLCBkaXYyLCBkaXYzKQotICAgICBAZGl2My1zaGFkb3ctcm9vdC1jaGlsZCAodGFyZ2V0
OiBkaXYzLXNoYWRvdy1yb290LWNoaWxkKSAodG91Y2hlczogZGl2MSwgZGl2MiwgZGl2My1zaGFk
b3ctcm9vdC1jaGlsZCkgKHRhcmdldFRvdWNoZXM6IGRpdjMtc2hhZG93LXJvb3QtY2hpbGQpIChj
aGFuZ2VkVG91Y2hlczogZGl2MSwgZGl2MiwgZGl2My1zaGFkb3ctcm9vdC1jaGlsZCkKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotVG91Y2ggZXZlbnQg
cmV0YXJnZXRpbmcuCi0KLWZvbwotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
dG91Y2gtZXZlbnQtcmV0YXJnZXRpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvdG91Y2gtZXZlbnQtcmV0YXJnZXRpbmcuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RvdWNoLWV2ZW50LXJldGFyZ2V0
aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93
LWRvbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudC1kaXNw
YXRjaGluZy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRvdWNoIGV2ZW50IHJl
dGFyZ2V0aW5nLjwvcD4KLTxkaXYgaWQ9InNhbmRib3giPgotPC9kaXY+Ci08cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2NvbnRhaW5lcid9LAotICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZGl2MSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoJ2ZvbycpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2RpdjInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3Qo
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
J2ZvbycpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnZGl2Mi1zaGFkb3ctcm9vdC1jaGlsZCd9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZm9vJykpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdmb28nKSkpKSwK
LSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdjMnfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2ZvbycpKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2My1zaGFkb3ctcm9vdC1j
aGlsZCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgnZm9vJykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCdmb28nKSkpKSkpOwotCi1zYW5kYm94Lm9mZnNldExlZnQ7
Ci0KLWZ1bmN0aW9uIGFkZFRvdWNoUG9pbnQodGFyZ2V0KQotewotICAgIGV2ZW50U2VuZGVyLmFk
ZFRvdWNoUG9pbnQodGFyZ2V0Lm9mZnNldExlZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGggLyAyLCB0
YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDIpOwotfQotCi1mdW5jdGlv
biBzZW5kVG91Y2hFdmVudChlbGVtZW50cykKLXsKLSAgICBldmVudFNlbmRlci5jbGVhclRvdWNo
UG9pbnRzKCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7ICsraSkK
LSAgICAgICAgYWRkVG91Y2hQb2ludChnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soZWxlbWVudHNb
aV0pKTsKLSAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7Ci0gICAgZXZlbnRTZW5kZXIudG91
Y2hFbmQoKTsKLX0KLQotYWRkRXZlbnRMaXN0ZW5lcnMoWydkaXYxJywgJ2RpdjInLCAnZGl2Mycs
Ci0gICAgICAgICAgICAgICAgICAgJ2RpdjIvZGl2Mi1zaGFkb3ctcm9vdC1jaGlsZCcsICdkaXYz
L2RpdjMtc2hhZG93LXJvb3QtY2hpbGQnXSk7Ci1zZW5kVG91Y2hFdmVudChbJ2RpdjEnLCAnZGl2
Mi9kaXYyLXNoYWRvdy1yb290LWNoaWxkJywgJ2RpdjMvZGl2My1zaGFkb3ctcm9vdC1jaGlsZCdd
KTsKLXNvcnREaXNwYXRjaGVkRXZlbnQoJ3RvdWNoc3RhcnQnKTsKLWRlYnVnRGlzcGF0Y2hlZEV2
ZW50KCd0b3VjaHN0YXJ0Jyk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdG91Y2gtZXZlbnQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw1MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
Pjxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci0KLTxwPlRvdWNoIGV2ZW50IHNob3VsZCBiZSBmaXJlZCBpbiBTaGFkb3cgRE9N
LjwvcD4KLTxwPkVsZW1lbnRzIGluIFNoYWRvd0RPTSBzaG91bGQgbm90IGJlIHJldmVhbGVkIGlu
IHRvdWNoVGFyZ2V0IGlmIGl0J3MgZXhhbWluZWQgaW4gbm9uIHNoYWRvdyB0cmVlLjwvcD4KLQot
PGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0MSIgdHlwZT0idGV4dCI+
Ci0gICAgPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICdmb28gPHNwYW4gaWQ9Imhvc3Qy
Ij5iYXI8L3NwYW4+IGJheic7Ci0KLXZhciBob3N0MiA9IHNoYWRvd1Jvb3QxLmdldEVsZW1lbnRC
eUlkKCdob3N0MicpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJyhmb28gPHNwYW4gaWQ9InRhcmdldCI+
YmFyPC9zcGFuPiBiYXopJzsKLQotdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRC
eUlkKCd0YXJnZXQnKTsKLQotdmFyIHRvdWNoVGFyZ2V0c0Zvckhvc3QxOwotaG9zdDEuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHsKLSAgICB0b3VjaFRhcmdldEZv
ckhvc3QxID0gZS50YXJnZXRUb3VjaGVzWzBdLnRhcmdldDsKLX0pOwotCi12YXIgdG91Y2hzdGFy
dEZpcmVkSW5TaGFkb3dET00gPSBmYWxzZTsKLXRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd0b3Vj
aHN0YXJ0JywgZnVuY3Rpb24oZSkgewotICAgIHRvdWNoc3RhcnRGaXJlZEluU2hhZG93RE9NID0g
dHJ1ZTsKLX0pOwotCi12YXIgdG91Y2hUYXJnZXRGb3JJbnB1dDE7Ci1pbnB1dDEuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHsKLSAgICB0b3VjaFRhcmdldEZvcklu
cHV0MSA9IGUudGFyZ2V0VG91Y2hlc1swXS50YXJnZXQ7Ci19KTsKLQotZXZlbnRTZW5kZXIuY2xl
YXJUb3VjaFBvaW50cygpOwotZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCh0YXJnZXQub2Zmc2V0
TGVmdCArIHRhcmdldC5vZmZzZXRXaWR0aCAvIDIsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQu
b2Zmc2V0SGVpZ2h0IC8gMik7Ci1ldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KGlucHV0MS5vZmZz
ZXRMZWZ0ICsgaW5wdXQxLm9mZnNldFdpZHRoIC8gMiwgaW5wdXQxLm9mZnNldFRvcCArIGlucHV0
MS5vZmZzZXRIZWlnaHQgLyAyKTsKLWV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKLWV2ZW50U2Vu
ZGVyLnRvdWNoRW5kKCk7Ci0KLXNob3VsZEJlVHJ1ZSgndG91Y2hzdGFydEZpcmVkSW5TaGFkb3dE
T00nKTsKLXNob3VsZEJlKCd0b3VjaFRhcmdldEZvckhvc3QxJywgJ2hvc3QxJyk7Ci1zaG91bGRC
ZSgndG91Y2hUYXJnZXRGb3JJbnB1dDEnLCAnaW5wdXQxJyk7Ci0KLWNvbnRhaW5lci5yZW1vdmUo
KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3RyYW5zaXRpb24tb24tc2hhZG93LWhvc3Qtd2l0aC1kaXN0cmlidXRlZC1u
b2RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvdHJhbnNpdGlvbi1vbi1zaGFkb3ctaG9zdC13aXRoLWRpc3RyaWJ1dGVkLW5vZGUtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
dHJhbnNpdGlvbi1vbi1zaGFkb3ctaG9zdC13aXRoLWRpc3RyaWJ1dGVkLW5vZGUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzAsMCBAQAotTmV3IENvbnRlbnQKLVBBU1MgLSAi
b3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5n
IGNsb3NlIHRvOiAwLjUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RyYW5z
aXRpb24tb24tc2hhZG93LWhvc3Qtd2l0aC1kaXN0cmlidXRlZC1ub2RlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RyYW5zaXRpb24tb24tc2hhZG93LWhv
c3Qtd2l0aC1kaXN0cmlidXRlZC1ub2RlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90cmFuc2l0aW9uLW9uLXNoYWRvdy1ob3N0LXdpdGgtZGlz
dHJpYnV0ZWQtbm9kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUzICswLDAgQEAKLTwhZG9j
dHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotLmJveCB7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAg
ICB3aWR0aDogMTAwcHg7Ci0gICAgbWFyZ2luOiAxMHB4OwotICAgIGJhY2tncm91bmQtY29sb3I6
IGdyYXk7Ci19Ci0KLSNib3ggewotICAgIG9wYWNpdHk6IDE7Ci0gICAgLXdlYmtpdC10cmFuc2l0
aW9uOiBvcGFjaXR5IDFzIGxpbmVhcjsKLX0KLSAgICAKLSNib3guZmFkZSB7Ci0gICAgb3BhY2l0
eTogMDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vdHJhbnNpdGlvbnMvcmVz
b3VyY2VzL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1j
b25zdCBleHBlY3RlZFZhbHVlcyA9IFsKLSAgICAgIC8vIFt0aW1lLCBlbGVtZW50LWlkLCBwcm9w
ZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KLSAgICAgIFswLjUsICdib3gnLCAnb3Bh
Y2l0eScsIDAuNSwgMC4xXSwKLV07Ci0gIAotZnVuY3Rpb24gc2V0dXBUZXN0KCkgewotICAgIHZh
ciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7Ci0gICAgdmFyIHNoYWRvd1Jv
b3QgPSBib3gud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gJzxjb250ZW50IHNlbGVjdD0iKjpmaXJzdC1jaGlsZCI+PC9jb250ZW50Pic7Ci0gICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCJjb250ZW50Iikuc2V0QXR0cmlidXRlKCJzZWxlY3QiLCAiKjpsYXN0LWNoaWxkIik7Ci0gICAg
ICAgIGJveC5jbGFzc05hbWUgPSAnYm94IGZhZGUnOwotICAgIH0sIDApOwotfQotCi1ydW5UcmFu
c2l0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgc2V0dXBUZXN0LCB1c2VQYXVzZUFQSSk7Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDwhLS0gVGVzdCBmb3IgW2J1ZyA5Mzc1NV0gU2hh
ZG93Um9vdCBpbnNlcnRpb24gcG9pbnQgY2hhbmdlIGFib3J0cyBjc3MgdHJhbnNpdGlvbiwgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNzU1IC0tPgotICAgIDwhLS0g
SWYgdGhpcyB0ZXN0IHBhc3MsIGNzcyB0cmFuc2l0aW9uIHdpbGwgYmUgc3RhcnRlZCBhbmQgLS0+
Ci0gICAgPCEtLSB0aGUgY3NzIHRyYW5zaXRpb24gd2lsbCBiZSBwYXVzZWQgYnkgdXNpbmcgcGF1
c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50LiAtLT4KLSAgICA8ZGl2IGlkPSJib3giIGNsYXNz
PSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPgotICAgICAgICA8ZGl2PkNvbnRlbnQ8
L2Rpdj4KLSAgICAgICAgPGRpdj5OZXcgQ29udGVudDwvZGl2PgotICAgIDwvZGl2PgotCi0gICAg
PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy90cmVlLXNjb3BlLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdHJlZS1zY29wZS1jcmFzaC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy90cmVlLXNjb3BlLWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsw
LDAgQEAKLVBBU1MgdW5sZXNzIGNyYXNoCi0KLQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvdHJlZS1zY29wZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy90cmVlLXNjb3BlLWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90cmVlLXNjb3BlLWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsNTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotUkVMT0FEX1RIUkVTSE9VTEQgPSAxMDsKLQotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1NYXJrdXAu
bm9BdXRvRHVtcCgpOwotICAgIAotZnVuY3Rpb24gYXNzZXJ0TWFya3VwKG5hbWUsIGVsZW1lbnQs
IGV4cGVjdGVkKQotewotICAgIHZhciBtYXJrdXAgPSBNYXJrdXAuZ2V0KGVsZW1lbnQpOwotfQot
Ci1mdW5jdGlvbiBjdXJyZW50Q291bnQoKQotewotICAgdmFyIG1hdGNoID0gLz0oLiopLy5leGVj
KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpCi0gICBpZiAoIW1hdGNoKQotICAgICAgIHJldHVybiAw
OwotICAgcmV0dXJuIHBhcnNlSW50KG1hdGNoWzFdKTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgp
Ci17Ci0gICAgdmFyIGl0ZW1zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RSZXBsYWNlJykub3V0ZXJIVE1MID0g
Jzxwcm9ncmVzcz4gbm9kZSc7Ci0gICAgYXNzZXJ0TWFya3VwKCdyZXBsYWNlJywgaXRlbXNbMF0s
ICd8IFxufCAgICJSZXBsYWNlZCJcbnwgIiBub2RlIHVzaW5nIG91dGVySFRNTC4iJyk7Ci0KLSAg
ICAKLSAgICB2YXIgY291bnQgPSBjdXJyZW50Q291bnQoKTsKLSAgICBpZiAoUkVMT0FEX1RIUkVT
SE9VTEQgPD0gY291bnQgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY291bnRlciIpLnZhbHVlID0gKGNvdW50ICsgMSkudG9TdHJpbmcoKTsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhlRm9ybSIpLnN1Ym1pdCgpOwotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08aDE+UEFTUyB1bmxl
c3MgY3Jhc2g8L2gxPgotPHVsPgotICA8bGk+PHNwYW4gaWQ9InRlc3RSZXBsYWNlIj48L3NwYW4+
PC9saT4KLTwvdWw+Ci08Zm9ybSBpZD0idGhlRm9ybSI+Ci0gIDxpbnB1dCBpZD0iY291bnRlciIg
bmFtZT0iY291bnRlciIgdmFsdWU9IiI+Ci08Zm9ybT4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbi1kYXRhbGlzdC1jcmFz
aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3VzZXItbW9kaWZ5LWluLWRhdGFsaXN0LWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluLWRhdGFs
aXN0LWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyICswLDAgQEAKLVti
dWcgOTk1ODddIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTU4NyBu
dWxsLXBvaW50ZXIgY3Jhc2ggaW4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50LiBJZiB0
aGlzIHRlc3QgcGFzc2VzLCBubyBjcmFzaCBvY2N1cnMgYW5kICJQQVNTIiBpcyBzaG93bi4KLVBB
U1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbi1kYXRh
bGlzdC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy91c2VyLW1vZGlmeS1pbi1kYXRhbGlzdC1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW4tZGF0YWxpc3QtY3Jh
c2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotPC9zY3JpcHQ+
Ci08ZGl2PltidWcgOTk1ODddIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05OTU4NyI+Ci1odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk1ODc8L2E+Ci1udWxsLXBvaW50ZXIgY3Jhc2ggaW4gU3R5bGVSZXNvbHZlcjo6c3R5bGVG
b3JFbGVtZW50LgotSWYgdGhpcyB0ZXN0IHBhc3Nlcywgbm8gY3Jhc2ggb2NjdXJzIGFuZCAiUEFT
UyIgaXMgc2hvd24uPC9kaXY+Ci08ZGl2PlBBU1M8L2Rpdj4KLTxkYXRhbGlzdD4KLTxzdW1tYXJ5
PgotPHRpdGxlPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5
LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5o
ZXJpdGFuY2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICswLDAgQEAKLVRl
c3RzIHRvIGVuc3VyZSB0aGF0IGEgJy13ZWJraXQtdXNlci1tb2RpZnknIENTUyBwb3JwZXJ0eSBp
cyBub3QgaW5oZXJpdGVkIGFjcm9zcyBzaGFkb3cgYm91bmRhcmllcy4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93
Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudGVkaXRhYmxlLWhvc3QxIiksIG51
bGwpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC1vbmx5IgotUEFTUyBjb21wdXRl
ZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250ZW50ZWRpdGFibGUtaG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUp
IGlzICJyZWFkLW9ubHkiCi1QQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jv
b3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1
ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC13cml0ZSIKLVBBU1MgY29tcHV0
ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFt
ZSkgaXMgInJlYWQtb25seSIKLVBBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93
Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MiIp
LCAiZmFsc2UiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtb25seSIKLVBBU1Mg
Y29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJv
cGVydHlOYW1lKSBpcyAicmVhZC13cml0ZSIKLVBBU1MgZ2V0VXNlck1vZGlmeVByb3BlcnR5KCJj
aGlsZC1hIikgaXMgInJlYWQtd3JpdGUiCi1QQVNTIGdldFVzZXJNb2RpZnlQcm9wZXJ0eSgiY2hp
bGQtYiIpIGlzICJyZWFkLXdyaXRlIgotUEFTUyBnZXRVc2VyTW9kaWZ5UHJvcGVydHkoImNoaWxk
LWMiKSBpcyAicmVhZC1vbmx5IgotUEFTUyBnZXRVc2VyTW9kaWZ5UHJvcGVydHkoImNoaWxkLWQi
KSBpcyAicmVhZC1vbmx5IgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlm
eS1pbmhlcml0YW5jZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFuY2UuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw4MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
dGVudGVkaXRhYmxlLWhvc3QxIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Ci08ZGl2IGlkPSJjb250
ZW50ZWRpdGFibGUtaG9zdDIiIGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KLTxkaXYgaWQ9ImNvbnRl
bnRlZGl0YWJsZS1ob3N0MyIgY29udGVudGVkaXRhYmxlPjwvZGl2PgotPGRpdiBpZD0ibm9uLWNv
bnRlbnRlZGl0YWJsZS1ob3N0MSI+PC9kaXY+Ci08ZGl2IGlkPSJub24tY29udGVudGVkaXRhYmxl
LWhvc3QyIj48L2Rpdj4KLTxkaXYgaWQ9Im5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDMiPjwvZGl2
PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08ZGl2IGlkPSJzYW5kYm94MiI+PC9kaXY+Ci08
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdG8g
ZW5zdXJlIHRoYXQgYSAnLXdlYmtpdC11c2VyLW1vZGlmeScgQ1NTIHBvcnBlcnR5IGlzIG5vdCBp
bmhlcml0ZWQgYWNyb3NzIHNoYWRvdyBib3VuZGFyaWVzLiIpOwotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBjb21wdXRlZFN0
eWxlKGVsZW1lbnQsIHN0eWxlKSB7Ci0gICAgdmFyIGNzID0gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCk7Ci0gICAgaWYgKCFjcykKLSAgICAgICAgcmV0dXJuICcoTkEpJzsKLSAgICBp
ZiAoY3MuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHlsZSkpCi0gICAgICAgIHJldHVybiBjcy5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKHN0eWxlKS5jc3NUZXh0OwotICAgIHJldHVybiB1bmRlZmluZWQ7Ci19
Ci0KLWZ1bmN0aW9uIGdldFVzZXJNb2RpZnlQcm9wZXJ0eShpZCkgewotICAgIHJldHVybiBjb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSwgdXNlck1vZGlmeVByb3BlcnR5
TmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGhvc3QsIGNvbnRl
bnRFZGl0YWJsZUF0dHJpYnV0ZVZhbHVlRm9yTm9kZSkgewotICAgIHZhciBzaGFkb3dSb290ID0g
aG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIG5vZGVJblNoYWRvdyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGlmIChjb250ZW50RWRpdGFibGVBdHRy
aWJ1dGVWYWx1ZUZvck5vZGUgIT0gbnVsbCkKLSAgICAgICAgbm9kZUluU2hhZG93LnNldEF0dHJp
YnV0ZSgnY29udGVudGVkaXRhYmxlJywgY29udGVudEVkaXRhYmxlQXR0cmlidXRlVmFsdWVGb3JO
b2RlKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG5vZGVJblNoYWRvdyk7Ci0gICAgZG9j
dW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIHJldHVybiBub2RlSW5TaGFkb3c7Ci19Ci0KLXZh
ciB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lID0gJy13ZWJraXQtdXNlci1tb2RpZnknOwotCi1zaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3Qo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwg
dXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MiIpLCAiZmFsc2UiKSwgdXNlck1vZGlm
eVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Nv
bXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlO
YW1lKScsICdyZWFkLXdyaXRlJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5
bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vbi1j
b250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVsbCksIHVzZXJNb2RpZnlQcm9wZXJ0eU5hbWUpJywg
J3JlYWQtb25seScpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRlZFN0eWxlKHByZXBh
cmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub24tY29udGVudGVk
aXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFk
LW9ubHknKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9k
ZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJs
ZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLXdyaXRl
Jyk7Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94JykuYXBwZW5kQ2hpbGQoCi0g
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnLCAnY29udGVudGVkaXRhYmxlJzogJ3Ry
dWUnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2NvbnRlbnQn
LCB7J3NlbGVjdCc6ICcjY2hpbGQtYSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjY2hpbGQtYid9KSkpLAot
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnY2hpbGQtYSd9KSwKLSAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2NoaWxkLWInfSkpKTsKLQotZG9jdW1l
bnQuYm9keS5vZmZzZXRMZWZ0OwotCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldFVzZXJNb2Rp
ZnlQcm9wZXJ0eSgiY2hpbGQtYSIpJywgJ3JlYWQtd3JpdGUnKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygnZ2V0VXNlck1vZGlmeVByb3BlcnR5KCJjaGlsZC1iIiknLCAncmVhZC13cml0ZScpOwot
Ci1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveDInKS5hcHBlbmRDaGlsZCgKLSAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdCcsICdjb250ZW50ZWRpdGFibGUnOiAnZmFsc2Un
fSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2NvbnRlbnQnLCB7
J3NlbGVjdCc6ICcjY2hpbGQtYyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHsnY29udGVudGVkaXRhYmxlJyA6ICd0cnVlJ30sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2Vs
ZWN0JzogJyNjaGlsZC1kJ30pKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdjaGlsZC1jJ30pLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
Y2hpbGQtZCd9KSkpOwotCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dldFVzZXJNb2RpZnlQcm9w
ZXJ0eSgiY2hpbGQtYyIpJywgJ3JlYWQtb25seScpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdn
ZXRVc2VyTW9kaWZ5UHJvcGVydHkoImNoaWxkLWQiKScsICdyZWFkLW9ubHknKTsKLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvd2hlZWwtZXZlbnQtaW4tc2hhZG93LWRvbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3doZWVsLWV2ZW50LWluLXNoYWRvdy1kb20tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvd2hlZWwtZXZlbnQtaW4tc2hhZG93LWRvbS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMCwwIEBACi1QQVNTOiBtb3VzZXdoZWVsIGV2ZW50IGlzIGZpcmVkLgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy93aGVlbC1ldmVudC1pbi1zaGFkb3ctZG9tLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3doZWVsLWV2ZW50LWluLXNo
YWRvdy1kb20uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3doZWVsLWV2ZW50LWluLXNoYWRvdy1kb20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LQotPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNj
cmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZUJveChuYW1lKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53aWR0aCA9ICcxMDBweCc7Ci0g
ICAgZGl2LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0KLSAgICBkaXYuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2V3aGVlbCcsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGVidWcoJ1BBU1M6IG1vdXNl
d2hlZWwgZXZlbnQgaXMgZmlyZWQuJyk7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gZGl2OwotfQot
Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIHNo
YWRvd0RpdiA9IGNyZWF0ZUJveCgnc2hhZG93Jyk7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKHNo
YWRvd0Rpdik7Ci0KLW1vdXNlTW92ZVRvRWxlbShzaGFkb3dEaXYpOwotZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeSgwLCAxKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3doZWVsLWV2ZW50LW9uLWlucHV0LWluLXNoYWRvdy1kb20tZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy93aGVlbC1ldmVudC1vbi1p
bnB1dC1pbi1zaGFkb3ctZG9tLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3doZWVsLWV2ZW50LW9uLWlucHV0LWluLXNoYWRvdy1k
b20tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotUEFTUzogbW91
c2V3aGVlbCBldmVudCBpcyBmaXJlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvd2hl
ZWwtZXZlbnQtb24taW5wdXQtaW4tc2hhZG93LWRvbS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy93aGVlbC1ldmVudC1vbi1pbnB1dC1pbi1zaGFkb3ctZG9t
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy93
aGVlbC1ldmVudC1vbi1pbnB1dC1pbi1zaGFkb3ctZG9tLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVJbnB1dChuYW1lKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci0gICAgZGl2LnN0eWxlLndpZHRoID0gJzEwMHB4
JzsKLSAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsKLQotICAgIGRpdi5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZXdoZWVsJywgZnVuY3Rpb24oZSkgewotICAgICAgICBkZWJ1ZygnUEFTUzog
bW91c2V3aGVlbCBldmVudCBpcyBmaXJlZC4nKTsKLSAgICB9KTsKLQotICAgIHJldHVybiBkaXY7
Ci19Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12
YXIgc2hhZG93RGl2ID0gY3JlYXRlSW5wdXQoJ3NoYWRvdycpOwotc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChzaGFkb3dEaXYpOwotCi1tb3VzZU1vdmVUb0VsZW0oc2hhZG93RGl2KTsKLWV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnkoMCwgMSk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY3ljbGVzLWluLXNoYWRvdy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY3ljbGVzLWlu
LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MVGVtcGxhdGVFbGVtZW50L2N5Y2xlcy1pbi1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPWNvbnRh
aW5lcj4KLSAgPHRlbXBsYXRlPjxkaXY+PC9kaXY+PC90ZW1wbGF0ZT4KLTwvZGl2PgotPHNjcmlw
dD4KLWRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgY3ljbGUgZGV0ZWN0aW9uIHRyYXZlcnNlcyBvdmVy
IGJvdGggdGVtcGxhdGVzIGFuZCBzaGFkb3cgcm9vdHMnKTsKLXZhciBvdXRlckRpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKLXZhciB0ZW1wbGF0ZSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ3RlbXBsYXRlJyk7Ci12YXIgZGl2ID0gdGVtcGxhdGUuY29udGVudC5m
aXJzdENoaWxkOwotdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotdmFyIHNoYWRvd0RpdiA9IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2JykpOwotc2hvdWxkVGhyb3coJ3NoYWRvd0Rpdi5hcHBlbmRDaGlsZChvdXRl
ckRpdiknKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2FjY2Vzcy1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9hY2Nlc3Mta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2FjY2Vzcy1rZXktZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0
IGFjY2Vzc2tleSB3b3JrcyBpbiByZWdhcmQgdG8gc2hhZG93IERPTSBib3VuZGFyeS4gQ2FuIG9u
bHkgcnVuIHdpdGhpbiBEUlQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLVBB
U1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpIGlzIFsiaW5wdXRFIl0KLVBBU1MgZGlzcGF0Y2hl
ZEV2ZW50KCJmb2N1cyIpIGlzIFsiaW5wdXRFIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1
cyIpIGlzIFsiaW5wdXRFIl0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWNjZXNzLWtl
eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY2Nlc3Mt
a2V5Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9hY2Nlc3Mta2V5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAwICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFk
b3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBhY2Nlc3NrZXkg
d29ya3MgaW4gcmVnYXJkIHRvIHNoYWRvdyBET00gYm91bmRhcnkuIENhbiBvbmx5IHJ1biB3aXRo
aW4gRFJULiIpOwotCi1mdW5jdGlvbiBwcmVzc0FjY2Vzc0tleShrZXkpCi17Ci0gICAgaWYgKG5h
dmlnYXRvci51c2VyQWdlbnQuc2VhcmNoKC9cYk1hYyBPUyBYXGIvKSAhPSAtMSkKLSAgICAgICAg
bW9kaWZpZXJzID0gWyJjdHJsS2V5IiwgImFsdEtleSJdOwotICAgIGVsc2UKLSAgICAgICAgbW9k
aWZpZXJzID0gWyJhbHRLZXkiXTsKLSAgICBldmVudFNlbmRlci5rZXlEb3duKGtleSwgbW9kaWZp
ZXJzKTsKLX0KLQotdmFyIGV2ZW50UmVjb3JkcyA9IHt9OwotCi1mdW5jdGlvbiBjbGVhckV2ZW50
UmVjb3JkcygpCi17Ci0gICAgZXZlbnRSZWNvcmRzID0ge307Ci19Ci0KLWZ1bmN0aW9uIGRpc3Bh
dGNoZWRFdmVudChldmVudFR5cGUpCi17Ci0gICAgdmFyIGV2ZW50cyA9IGV2ZW50UmVjb3Jkc1tl
dmVudFR5cGVdOwotICAgIGlmICghZXZlbnRzKQotICAgICAgICByZXR1cm4gW107Ci0gICAgcmV0
dXJuIGV2ZW50czsKLX0KLQotZnVuY3Rpb24gcmVjb3JkRXZlbnQoZXZlbnQpCi17Ci0gICAgdmFy
IGV2ZW50VHlwZSA9IGV2ZW50LnR5cGUKLSAgICBpZiAoIWV2ZW50UmVjb3Jkc1tldmVudFR5cGVd
KSB7Ci0gICAgICAgIGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdID0gW10KLSAgICB9Ci0gICAgZXZl
bnRSZWNvcmRzW2V2ZW50VHlwZV0ucHVzaChldmVudC50YXJnZXQuaWQpOwotfQotCi1mdW5jdGlv
biBwcmVwYXJlRE9NVHJlZShwYXJlbnQpCi17Ci0gICAgcGFyZW50LmFwcGVuZENoaWxkKAotICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2QSd9LAotICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRCJ30pLAotICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3NoYWRvd0MnLCAndGFiaW5kZXgnOiAwfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dEQnfSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzog
J2lucHV0RScsICdhY2Nlc3NrZXknOiAnYSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3NoYWRvd0YnLCAndGFiaW5kZXgnOiAwfSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRHJ30pKSkpKSkpOwotCi0gICAgdmFyIGlkcyA9IFsn
aW5wdXRCJywKLSAgICAgICAgICAgICAgICdzaGFkb3dDL2lucHV0RCcsICdzaGFkb3dDL2lucHV0
RScsCi0gICAgICAgICAgICAgICAnc2hhZG93Qy9zaGFkb3dGL2lucHV0RyddOwotICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0g
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKGlkc1tpXSk7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcignZm9jdXMnLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgIH0KLX0KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIHByZXBhcmVET01UcmVlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzYW5kYm94JykpOwotCi0gICAgLy8gUGxlYXNlIHNlZSB0aGUgZGlzY3Vzc2lv
biBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwOTYuCi0gICAg
Ly8gV2UgZG9uJ3QgaGF2ZSBhIGNsZWFyIGlkZWEgaG93IGFjY2Vzc2tleSBzaG91bGQgd29yayBp
biByZWdhcmQgdG8gc2hhZG93IERPTS4KLSAgICAvLyBJbiBjdXJyZW50IGltcGxlbWVudGF0aW9u
LCBhY2Nlc3NrZXlzIGRlZmluZWQgaW5zaWRlIG9mIGNvbXBvbmVudHMgYXJlIGV4cG9zZWQgdG8g
YW4gb3V0ZXIgZG9jdW1lbnQuCi0gICAgLy8gRXZlcnkgYWNjZXNza2V5cyBhcmUgZmxhdHRlbmVk
IHBlciBlYWNoIGRvY3VtZW50LgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dEIn
KS5mb2N1cygpOwotICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgcHJlc3NBY2Nlc3NLZXko
J2EnKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1siaW5wdXRF
Il0nKTsKLQotICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93Qy9pbnB1dEQnKS5m
b2N1cygpOwotICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgcHJlc3NBY2Nlc3NLZXkoJ2En
KTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1siaW5wdXRFIl0n
KTsKLQotICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93Qy9zaGFkb3dGL2lucHV0
RycpLmZvY3VzKCk7Ci0gICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBwcmVzc0FjY2Vzc0tl
eSgnYScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJpbnB1
dEUiXScpOwotfQotCi10ZXN0KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY3RpdmVlbGVtZW50LXNob3VsZC1iZS1z
aGFkb3dob3N0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvYWN0aXZlZWxlbWVudC1zaG91bGQtYmUtc2hhZG93aG9zdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hY3RpdmVl
bGVtZW50LXNob3VsZC1iZS1zaGFkb3dob3N0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwzOSArMCwwIEBACi1NYWtlcyBzdXJlIHRoYXQgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBy
ZXR1cm5zIGEgc2hhZG93IGhvc3Qgd2hlbiBhIGVsZW1lbnQgaW4gdGhlIGNvcnJlc3BvaW5kaW5n
IHNoYWRvdyB0cmVlIGlzIGZvY3VzZWQuCi0KLQotRm9jdXNpbmcgdG9wL2lucHV0MAotUEFTUzog
dG9wIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL3NoYWRvdzAKLVBBU1M6IHRvcC9pZnJh
bWUxIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTEvZG9jMV9ib2R5Ci1QQVNT
OiB0b3AvaWZyYW1lMyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWUzL2RvYzNf
Ym9keQotUEFTUzogdG9wL2lmcmFtZTQgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZy
YW1lNC9kb2M0X2JvZHkKLVBBU1M6IHRvcC9pZnJhbWU0L2lmcmFtZTRfMSBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50IGlzIHRvcC9pZnJhbWU0L2lmcmFtZTRfMS9kb2M0XzFfYm9keQotCi1Gb2N1c2lu
ZyB0b3AvaWZyYW1lMS9pbnB1dDEKLVBBU1M6IHRvcCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlz
IHRvcC9pZnJhbWUxCi1QQVNTOiB0b3AvaWZyYW1lMSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlz
IHRvcC9pZnJhbWUxL3NoYWRvdzEKLVBBU1M6IHRvcC9pZnJhbWUzIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQgaXMgdG9wL2lmcmFtZTMvZG9jM19ib2R5Ci1QQVNTOiB0b3AvaWZyYW1lNCBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWU0L2RvYzRfYm9keQotUEFTUzogdG9wL2lmcmFt
ZTQvaWZyYW1lNF8xIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQvaWZyYW1l
NF8xL2RvYzRfMV9ib2R5Ci0KLUZvY3VzaW5nIHRvcC9pbnB1dDIKLVBBU1M6IHRvcCBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50IGlzIHRvcC9zaGFkb3cyCi1QQVNTOiB0b3AvaWZyYW1lMSBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWUxL2RvYzFfYm9keQotUEFTUzogdG9wL2lmcmFt
ZTMgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1lMy9kb2MzX2JvZHkKLVBBU1M6
IHRvcC9pZnJhbWU0IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQvZG9jNF9i
b2R5Ci1QQVNTOiB0b3AvaWZyYW1lNC9pZnJhbWU0XzEgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBp
cyB0b3AvaWZyYW1lNC9pZnJhbWU0XzEvZG9jNF8xX2JvZHkKLQotRm9jdXNpbmcgdG9wL2lmcmFt
ZTMvaW5wdXQzCi1QQVNTOiB0b3AgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3Avc2hhZG93
MwotUEFTUzogdG9wL2lmcmFtZTEgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1l
MS9kb2MxX2JvZHkKLVBBU1M6IHRvcC9pZnJhbWUzIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMg
dG9wL2lmcmFtZTMvaW5wdXQzCi1QQVNTOiB0b3AvaWZyYW1lNCBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50IGlzIHRvcC9pZnJhbWU0L2RvYzRfYm9keQotUEFTUzogdG9wL2lmcmFtZTQvaWZyYW1lNF8x
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQvaWZyYW1lNF8xL2RvYzRfMV9i
b2R5Ci0KLUZvY3VzaW5nIHRvcC9pZnJhbWU0L2lmcmFtZTRfMS9pbnB1dDQKLVBBU1M6IHRvcCBk
b2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWU0Ci1QQVNTOiB0b3AvaWZyYW1lMSBk
b2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHRvcC9pZnJhbWUxL2RvYzFfYm9keQotUEFTUzogdG9w
L2lmcmFtZTMgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0b3AvaWZyYW1lMy9kb2MzX2JvZHkK
LVBBU1M6IHRvcC9pZnJhbWU0IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdG9wL2lmcmFtZTQv
aWZyYW1lNF8xCi1QQVNTOiB0b3AvaWZyYW1lNC9pZnJhbWU0XzEgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudCBpcyB0b3AvaWZyYW1lNC9pZnJhbWU0XzEvaW5wdXQ0Ci0KLQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2FjdGl2ZWVsZW1lbnQtc2hvdWxkLWJlLXNoYWRvd2hvc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWN0aXZlZWxlbWVu
dC1zaG91bGQtYmUtc2hhZG93aG9zdC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWN0aXZlZWxlbWVudC1zaG91bGQtYmUtc2hhZG93aG9zdC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGJvZHk+Ci08cD4KLU1ha2VzIHN1cmUgdGhhdCBkb2N1bWVudC5hY3RpdmVFbGVtZW50
IHJldHVybnMgYSBzaGFkb3cgaG9zdCB3aGVuIGEgZWxlbWVudCBpbiB0aGUgY29ycmVzcG9pbmRp
bmcgc2hhZG93IHRyZWUgaXMgZm9jdXNlZC4KLTwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGRlc2NyaWJlKG9iaikgewotICAgIGlmIChvYmogPT09IGRv
Y3VtZW50KQotICAgICAgICByZXR1cm4gJ3RvcCc7Ci0gICAgaWYgKG9iai5kZWZhdWx0VmlldyAm
JiBvYmouZGVmYXVsdFZpZXcuZnJhbWVFbGVtZW50KQotICAgICAgICByZXR1cm4gZGVzY3JpYmUo
b2JqLmRlZmF1bHRWaWV3LmZyYW1lRWxlbWVudCk7Ci0gICAgcmV0dXJuIGRlc2NyaWJlKG9iai5v
d25lckRvY3VtZW50KSArICcvJyArIG9iai5pZDsKLX0KLQotZnVuY3Rpb24gcHJpbnQocykgewot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykudGV4dENvbnRlbnQgKz0gcyAr
ICdcbic7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jLCBleHBlY3RlZCkg
ewotICAgIGlmIChkb2MuYWN0aXZlRWxlbWVudCA9PT0gZXhwZWN0ZWQpCi0gICAgICAgIHByaW50
KCdQQVNTOiAnICsgZGVzY3JpYmUoZG9jKSArICcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyAn
ICsgZGVzY3JpYmUoZG9jLmFjdGl2ZUVsZW1lbnQpKTsKLSAgICBlbHNlCi0gICAgICAgIHByaW50
KCdGQUlMOiAnICsgZGVzY3JpYmUoZG9jKSArICcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyAn
ICsgZGVzY3JpYmUoZG9jLmFjdGl2ZUVsZW1lbnQpICsgJyBidXQgZXhwZWN0ZWQgJyArIGRlc2Ny
aWJlKGV4cGVjdGVkKSk7Ci19Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotCi0gIGZ1bmN0aW9uIHNoYWRvd1Jvb3Qoc2hhZG93SG9zdCkg
ewotICAgIHJldHVybiBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChzaGFkb3dIb3N0KTsKLSAg
fQotCi0gIGZ1bmN0aW9uIGFwcGVuZENoaWxkVG9TaGFkb3coc2hhZG93SG9zdCwgY2hpbGQpIHsK
LSAgICByZXR1cm4gc2hhZG93Um9vdChzaGFkb3dIb3N0KS5hcHBlbmRDaGlsZChjaGlsZCkKLSAg
fQotCi0gIGZ1bmN0aW9uIGFwcGVuZFNoYWRvd0hvc3QoZG9jLCBwYXJlbnQpIHsKLSAgICB2YXIg
c2hhZG93SG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50KCdwJyk7Ci0gICAgc2hhZG93SG9zdC50YWJJ
bmRleCA9IDE7ICAvLyBNYWtlcyBzdXJlIHRoYXQgdGhlIHNoYWRvdyBob3N0IGlzIGZvY3VzYWJs
ZS4KLSAgICBwYXJlbnQgPSBwYXJlbnQgfHwgZG9jLmJvZHk7Ci0gICAgcmV0dXJuIHBhcmVudC5h
cHBlbmRDaGlsZChzaGFkb3dIb3N0KTsKLSAgfQotCi0gIC8vIEZvciByZWFkYWJpbGl0eSwgSSBu
b3RlZCBhIERPTSB0cmVlIHdoaWNoIGlzIHVuZGVyIHRoZSB0ZXN0IGhlcmUuCi0gIC8vCi0gIC8v
IC0gZG9jdW1lbnQgKGRvYzApCi0gIC8vICAgLSBzaGFkb3cwCi0gIC8vICAgICAtIGlucHV0MAot
ICAvLyAgIC0gaWZyYW1lMSAoZG9jMSkKLSAgLy8gICAgIC0gc2hhZG93MQotICAvLyAgICAgICAt
IGlucHV0MQotICAvLyAgIC0gc2hhZG93MgotICAvLyAgICAgLSBzaGFkb3cyXzEKLSAgLy8gICAg
ICAgLSBpbnB1dDIKLSAgLy8gICAtIHNoYWRvdzMKLSAgLy8gICAgIC0gaWZyYW1lMyAoZG9jMykK
LSAgLy8gICAgICAgLSBpbnB1dDMKLSAgLy8gICAtIGlmcmFtZTQgKGRvYzQpCi0gIC8vICAgICAt
IGlmcmFtZTRfMSAoZG9jNF8xKQotICAvLyAgICAgICAtIGlucHV0NAotICB2YXIgZG9jMCA9IGRv
Y3VtZW50OwotICB2YXIgc2hhZG93MCA9IGFwcGVuZFNoYWRvd0hvc3QoZG9jMCk7Ci0gIHZhciBp
bnB1dDAgPSBhcHBlbmRDaGlsZFRvU2hhZG93KHNoYWRvdzAsIGRvYzAuY3JlYXRlRWxlbWVudCgn
aW5wdXQnKSk7Ci0KLSAgdmFyIGlmcmFtZTEgPSBkb2MwLmJvZHkuYXBwZW5kQ2hpbGQoZG9jMC5j
cmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7Ci0gIHZhciBkb2MxID0gaWZyYW1lMS5jb250ZW50RG9j
dW1lbnQ7Ci0gIHZhciBzaGFkb3cxID0gYXBwZW5kU2hhZG93SG9zdChkb2MxKTsKLSAgdmFyIGlu
cHV0MSA9IGFwcGVuZENoaWxkVG9TaGFkb3coc2hhZG93MSwgZG9jMS5jcmVhdGVFbGVtZW50KCdp
bnB1dCcpKTsKLQotICB2YXIgc2hhZG93MiA9IGFwcGVuZFNoYWRvd0hvc3QoZG9jMCk7Ci0gIHZh
ciBzaGFkb3cyXzEgPSBhcHBlbmRTaGFkb3dIb3N0KGRvYzAsIHNoYWRvd1Jvb3Qoc2hhZG93Mikp
OwotICB2YXIgaW5wdXQyID0gYXBwZW5kQ2hpbGRUb1NoYWRvdyhzaGFkb3cyXzEsIGRvYzAuY3Jl
YXRlRWxlbWVudCgnaW5wdXQnKSk7Ci0KLSAgdmFyIHNoYWRvdzMgPSBhcHBlbmRTaGFkb3dIb3N0
KGRvYzApOwotICB2YXIgaWZyYW1lMyA9IGFwcGVuZENoaWxkVG9TaGFkb3coc2hhZG93MywgZG9j
MC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSkKLSAgdmFyIGRvYzMgPSBpZnJhbWUzLmNvbnRlbnRE
b2N1bWVudDsKLSAgdmFyIGlucHV0MyA9IGRvYzMuYm9keS5hcHBlbmRDaGlsZChkb2MzLmNyZWF0
ZUVsZW1lbnQoJ2lucHV0JykpCi0KLSAgLy8gQWx0aG91Z2h0IHRoaXMgc3VidHJlZSAoaWZyYW1l
NCkgZG9lc24ndCBjb250YWluIGFueSBleHBsaWNpdCBzaGFkb3cgaG9zdHMsCi0gIC8vIHRoaXMg
bWlnaHQgYmUgdXNlZnVsIGFzIGEgcmVmZXJlbmNlLgotICB2YXIgaWZyYW1lNCA9IGRvYzAuYm9k
eS5hcHBlbmRDaGlsZChkb2MwLmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKLSAgdmFyIGRvYzQg
PSBpZnJhbWU0LmNvbnRlbnREb2N1bWVudDsKLSAgdmFyIGlmcmFtZTRfMSA9IGRvYzQuYm9keS5h
cHBlbmRDaGlsZChkb2M0LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKLSAgdmFyIGRvYzRfMSA9
IGlmcmFtZTRfMS5jb250ZW50RG9jdW1lbnQ7Ci0gIHZhciBpbnB1dDQgPSBkb2M0XzEuYm9keS5h
cHBlbmRDaGlsZChkb2M0XzEuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7Ci0KLSAgLy8gU2V0IHVw
IElEcyBmb3IgbG9nZ2luZy4KLSAgdmFyIGVsZW1lbnRzID0gWydzaGFkb3cwJywnc2hhZG93MScs
ICdzaGFkb3cyJywgJ3NoYWRvdzJfMScsICdzaGFkb3czJywKLSAgICAgICAgICAgICAgICAgICdp
bnB1dDAnLCAnaW5wdXQxJywgJ2lucHV0MicsICdpbnB1dDMnLCAnaW5wdXQ0JywKLSAgICAgICAg
ICAgICAgICAgICdpZnJhbWUxJywgJ2lmcmFtZTMnLCAnaWZyYW1lNCcsICdpZnJhbWU0XzEnXTsK
LSAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewotICAgIHZhciBp
ZCA9IGVsZW1lbnRzW2ldOwotICAgIHdpbmRvd1tpZF0uaWQgPSBpZDsKLSAgfQotICB2YXIgZG9j
cyA9IFsnZG9jMCcsICdkb2MxJywgJ2RvYzMnLCAnZG9jNCcsICdkb2M0XzEnXTsKLSAgZm9yICh2
YXIgaSA9IDA7IGkgPCBkb2NzLmxlbmd0aDsgaSsrKSB7Ci0gICAgdmFyIGlkID0gZG9jc1tpXTsK
LSAgICB3aW5kb3dbaWRdLmJvZHkuaWQgPSBpZCArICdfYm9keSc7Ci0gIH0KLQotICBwcmludCgn
XG5Gb2N1c2luZyAnICsgZGVzY3JpYmUoaW5wdXQwKSk7Ci0gIGlucHV0MC5mb2N1cygpOwotICBh
c3NlcnRBY3RpdmVFbGVtZW50KGRvYzAsIHNoYWRvdzApOwotICBhc3NlcnRBY3RpdmVFbGVtZW50
KGRvYzEsIGRvYzEuYm9keSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMywgZG9jMy5ib2R5
KTsKLSAgYXNzZXJ0QWN0aXZlRWxlbWVudChkb2M0LCBkb2M0LmJvZHkpOwotICBhc3NlcnRBY3Rp
dmVFbGVtZW50KGRvYzRfMSwgZG9jNF8xLmJvZHkpOwotCi0gIHByaW50KCdcbkZvY3VzaW5nICcg
KyBkZXNjcmliZShpbnB1dDEpKTsKLSAgaW5wdXQxLmZvY3VzKCk7Ci0gIGFzc2VydEFjdGl2ZUVs
ZW1lbnQoZG9jMCwgaWZyYW1lMSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMSwgc2hhZG93
MSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMywgZG9jMy5ib2R5KTsKLSAgYXNzZXJ0QWN0
aXZlRWxlbWVudChkb2M0LCBkb2M0LmJvZHkpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRvYzRf
MSwgZG9jNF8xLmJvZHkpOwotCi0gIHByaW50KCdcbkZvY3VzaW5nICcgKyBkZXNjcmliZShpbnB1
dDIpKTsKLSAgaW5wdXQyLmZvY3VzKCk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMCwgc2hh
ZG93Mik7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMSwgZG9jMS5ib2R5KTsKLSAgYXNzZXJ0
QWN0aXZlRWxlbWVudChkb2MzLCBkb2MzLmJvZHkpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50KGRv
YzQsIGRvYzQuYm9keSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jNF8xLCBkb2M0XzEuYm9k
eSk7Ci0KLSAgcHJpbnQoJ1xuRm9jdXNpbmcgJyArIGRlc2NyaWJlKGlucHV0MykpOwotICBpbnB1
dDMuZm9jdXMoKTsKLSAgYXNzZXJ0QWN0aXZlRWxlbWVudChkb2MwLCBzaGFkb3czKTsKLSAgYXNz
ZXJ0QWN0aXZlRWxlbWVudChkb2MxLCBkb2MxLmJvZHkpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50
KGRvYzMsIGlucHV0Myk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jNCwgZG9jNC5ib2R5KTsK
LSAgYXNzZXJ0QWN0aXZlRWxlbWVudChkb2M0XzEsIGRvYzRfMS5ib2R5KTsKLQotICBwcmludCgn
XG5Gb2N1c2luZyAnICsgZGVzY3JpYmUoaW5wdXQ0KSk7Ci0gIGlucHV0NC5mb2N1cygpOwotICBh
c3NlcnRBY3RpdmVFbGVtZW50KGRvYzAsIGlmcmFtZTQpOwotICBhc3NlcnRBY3RpdmVFbGVtZW50
KGRvYzEsIGRvYzEuYm9keSk7Ci0gIGFzc2VydEFjdGl2ZUVsZW1lbnQoZG9jMywgZG9jMy5ib2R5
KTsKLSAgYXNzZXJ0QWN0aXZlRWxlbWVudChkb2M0LCBpZnJhbWU0XzEpOwotICBhc3NlcnRBY3Rp
dmVFbGVtZW50KGRvYzRfMSwgaW5wdXQ0KTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Fkb3B0LW5vZGUtd2l0aC1zaGFk
b3ctcm9vdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2Fkb3B0LW5vZGUtd2l0aC1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hZG9wdC1ub2RlLXdpdGgt
c2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi1QQVNTIGRv
Y3VtZW50LmFkb3B0Tm9kZShzaGFkb3cpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5
UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9hZG9wdC1ub2RlLXdpdGgtc2hhZG93LXJvb3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYWRvcHQtbm9kZS13aXRoLXNoYWRvdy1yb290
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9h
ZG9wdC1ub2RlLXdpdGgtc2hhZG93LXJvb3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08b2JqZWN0IGRhdGE9ImRhdGE6aW1hZ2Uvc3Zn
K3htbDtiYXNlNjQsUEZOV1IxUmxjM1JEWVhObElHbGtQU0p6SWo0PSIgaWQ9InJvb3QiIG9ubG9h
ZD0idGVzdCgpIi8+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICB2YXIgZm9yZWln
bkRvY3VtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKS5jb250ZW50RG9jdW1l
bnQ7Ci0gICAgc2hhZG93ID0gZm9yZWlnbkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzJykud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNob3VsZFRocm93KCJkb2N1bWVudC5hZG9wdE5v
ZGUoc2hhZG93KSIpOwotICAgIGxvY2F0aW9uLnJlbG9hZCgpOwotfQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0
LWFwcGx5LWR5bmFtaWNhbGx5LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2F0aG9zdC1hcHBseS1keW5hbWljYWxseS1leHBlY3RlZC5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0
LWFwcGx5LWR5bmFtaWNhbGx5LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci0gIDxkaXY+QnVnIDExMjg2
OSAtIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4
NjkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4Njk8L2E+W3No
YWRvd10gQGhvc3Qgc3R5bGVzIGFyZSBub3QgYXBwbGllZCBkeW5hbWljY2FseS48L2Rpdj4KLSAg
PGRpdiBpZD0iaG9zdDEiIGNsYXNzPSJzZWxlY3RlZCIgc3R5bGU9ImJhY2tncm91bmQ6Z3JlZW4i
Pkkgc2hvdWxkIGJlIGdyZWVuITwvZGl2PgotICA8YnI+Ci0gIDxwIGlkPSJob3N0MiIgc3R5bGU9
ImJhY2tncm91bmQ6Z3JlZW4iPkkgc2hvdWxkIGJlIGdyZWVuITwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hdGhvc3QtYXBwbHktZHluYW1p
Y2FsbHkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRo
b3N0LWFwcGx5LWR5bmFtaWNhbGx5Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9hdGhvc3QtYXBwbHktZHluYW1pY2FsbHkuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotCi1mdW5jdGlvbiBhZGRTaGFkb3dSb290KGluTm9kZSkgewotICAgIHZhciBy
b290ID0gaW5Ob2RlLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICByb290LmlubmVySFRN
TCA9ICc8c3R5bGU+QGhvc3QgeyAqLnNlbGVjdGVkIHsgYmFja2dyb3VuZDogZ3JlZW47IH0gfTwv
c3R5bGU+SSBzaG91bGQgYmUgZ3JlZW4hJzsKLX0KLSAgICAKLWZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgdmFyIGhvc3QxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QxJyk7Ci0gICAg
dmFyIGhvc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QyJyk7Ci0gICAgYWRkU2hh
ZG93Um9vdChob3N0MSk7Ci0gICAgYWRkU2hhZG93Um9vdChob3N0Mik7Ci0gICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICAgIGludGVybmFscy5hZGRyZXNzKGhvc3QyKTsKLSAgICAgIGhv
c3QyLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7Ci0gICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLSAgICB9LCAwKQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci0gIDxkaXY+QnVnIDExMjg2OSAtIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4NjkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTI4Njk8L2E+W3NoYWRvd10gQGhvc3Qgc3R5bGVzIGFyZSBub3QgYXBw
bGllZCBkeW5hbWljY2FseS48L2Rpdj4KLSAgPGRpdiBpZD0iaG9zdDEiIGNsYXNzPSJzZWxlY3Rl
ZCI+PC9kaXY+Ci0gIDxicj4KLSAgPHAgaWQ9Imhvc3QyIj48L3A+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWF0cnVsZXMtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9hdGhvc3Qt
YXRydWxlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9hdGhvc3QtYXRydWxlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTUgKzAsMCBAQAotaG9zdDogcmdiKDI1NSwgMCwgMCkKLWhvc3Q6IHJnYigyNTUsIDAs
IDApCi1ob3N0QTogcmdiKDI1NSwgMCwgMCkKLWhvc3RCOiByZ2IoMCwgMCwgMjU1KQotaG9zdDog
cmdiKDAsIDAsIDI1NSkKLWhvc3Q6IHJnYigxMjgsIDEyOCwgMTI4KQotaG9zdDogcmdiKDAsIDAs
IDI1NSkKLWhvc3Q6IHJnYigwLCAwLCAyNTUpCi1ob3N0OiByZ2IoMTI4LCAxMjgsIDEyOCkKLWhv
c3Q6IHJnYigyNTUsIDI1NSwgMCkKLWhvc3Q6IHJnYigyNTUsIDAsIDApCi1uZXN0ZWRIb3N0OiBy
Z2IoMCwgMCwgMjU1KQotaG9zdDogcmdiKDI1NSwgMCwgMCkKLWhvc3Q6IHJnYigyNTUsIDI1NSwg
MCkKLUhlbGxvCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0LWF0cnVs
ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvYXRob3N0
LWF0cnVsZXMuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2F0aG9zdC1hdHJ1bGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkwICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNob3N0IHsKLSAg
Y29sb3I6IGdyYXk7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlm
aWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkdW1wQ29tcHV0ZWRTdHlsZShu
b2RlKQotewotICAgIGRlYnVnKG5vZGUuaWQgKyAiOiAiICsgZG9jdW1lbnQuZGVmYXVsdFZpZXcu
Z2V0Q29tcHV0ZWRTdHlsZShub2RlLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdjb2xvcicpKTsK
LX0KLQotZnVuY3Rpb24gcHJlcHJvY2Vzc0ZvclRlc3QoKQotewotICAgIHZhciBwYXJlbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFyZW50Iik7Ci0gICAgcGFyZW50LmlubmVySFRNTCA9
ICc8ZGl2IGlkPSJob3N0Ij48c3Bhbj5IZWxsbzwvc3Bhbj48L2Rpdj4nOwotfQotCi1mdW5jdGlv
biB0ZXN0U2ltcGxlQ29udGVudENhc2UoKQotewotICAgIHByZXByb2Nlc3NGb3JUZXN0KCk7Ci0g
ICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotICAgIHZhciBz
aGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3cuaW5uZXJI
VE1MID0gIjxzdHlsZT5AaG9zdCB7IGRpdiB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PGNvbnRl
bnQ+PC9jb250ZW50PiI7Ci0gICAgZHVtcENvbXB1dGVkU3R5bGUoaG9zdCk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RTaW1wbGVTaGFkb3dDYXNlKCkKLXsKLSAgICBwcmVwcm9jZXNzRm9yVGVzdCgpOwot
ICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKTsKLSAgICB2YXIg
c2hhZG93ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc2hhZG93LmlubmVy
SFRNTCA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBjb2xvcjogcmVkOyB9IH08L3N0eWxlPjxzaGFk
b3c+PC9zaGFkb3c+IjsKLSAgICBkdW1wQ29tcHV0ZWRTdHlsZShob3N0KTsKLX0KLQotZnVuY3Rp
b24gdGVzdEhvc3RXaXRoU2VsZWN0b3IoKQotewotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicGFyZW50Iik7Ci0gICAgcGFyZW50LmlubmVySFRNTCA9ICI8c3R5bGUg
c2NvcGVkPiAuaG9zdCB7IGNvbG9yOiBncmF5IH07PC9zdHlsZT4iCi0gICAgICAgICsgIjxkaXYg
aWQ9J2hvc3RBJyBjbGFzcz0naG9zdCc+PHNwYW4+SGVsbG88L3NwYW4+PC9kaXY+IgotICAgICAg
ICArICI8c3BhbiBpZD0naG9zdEInIGNsYXNzPSdob3N0Jz48c3Bhbj5Xb3JsZDwvc3Bhbj48L3Nw
YW4+IjsKLQotICAgIHZhciBob3N0QSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0QSIp
OwotICAgIHZhciBzaGFkb3dBID0gaG9zdEEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAg
IHZhciBzdHlsZSA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBjb2xvcjogcmVkOyB9IHNwYW4geyBj
b2xvcjogYmx1ZTsgfSB9PC9zdHlsZT4iOwotICAgIHNoYWRvd0EuaW5uZXJIVE1MID0gc3R5bGUg
KyAiPHNoYWRvdz48L3NoYWRvdz4iOwotCi0gICAgdmFyIGhvc3RCID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImhvc3RCIik7Ci0gICAgdmFyIHNoYWRvd0IgPSBob3N0Qi53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0gICAgc2hhZG93Qi5pbm5lckhUTUwgPSBzdHlsZSArICI8c2hhZG93Pjwv
c2hhZG93PiI7Ci0KLSAgICBkdW1wQ29tcHV0ZWRTdHlsZShob3N0QSk7Ci0gICAgZHVtcENvbXB1
dGVkU3R5bGUoaG9zdEIpOwotfQotCi1mdW5jdGlvbiB0ZXN0UHNldWRvSG9zdFdpdGhTY29wZWQo
KQotewotICAgIHByZXByb2Nlc3NGb3JUZXN0KCk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotICAgIHZhciBzaGFkb3cgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3cuaW5uZXJIVE1MID0gIjxkaXY+PHN0eWxlIHNjb3Bl
ZD5AaG9zdCB7IGRpdiB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PHNoYWRvdz48L3NoYWRvdz48
ZGl2PjxzdHlsZSBzY29wZWQ+QGhvc3QgeyBkaXYgeyBjb2xvcjogYmx1ZTsgfSB9PC9zdHlsZT48
L2Rpdj48L2Rpdj4iOwotICAgIGR1bXBDb21wdXRlZFN0eWxlKGhvc3QpOwotfQotCi1mdW5jdGlv
biB0ZXN0UHNldWRvSG9zdFdpdGhGYWxsYmFja1NoYWRvdygpCi17Ci0gICAgcHJlcHJvY2Vzc0Zv
clRlc3QoKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7
Ci0gICAgdmFyIG9sZGVzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
ICAgIHZhciB5b3VuZ2VzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
ICAgIG9sZGVzdFNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6
IHJlZDsgfSB9PC9zdHlsZT48Y29udGVudD48L2NvbnRlbnQ+IjsKLSAgICB5b3VuZ2VzdFNoYWRv
dy5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+PHNoYWRvdz48L3NoYWRvdz48L2NvbnRlbnQ+IjsKLSAg
ICBkdW1wQ29tcHV0ZWRTdHlsZShob3N0KTsKLX0KLQotZnVuY3Rpb24gdGVzdFR3b1NoYWRvd1Jv
b3RzQ2FzZSgpCi17Ci0gICAgcHJlcHJvY2Vzc0ZvclRlc3QoKTsKLSAgICB2YXIgaG9zdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIG9sZGVzdFNoYWRvdyA9IGhv
c3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHZhciB5b3VuZ2VzdFNoYWRvdyA9IGhv
c3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIG9sZGVzdFNoYWRvdy5pbm5lckhUTUwg
PSAiPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6IHJlZDsgfSB9PC9zdHlsZT48Y29udGVudD48
L2NvbnRlbnQ+IjsKLSAgICB5b3VuZ2VzdFNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0
IHsgZGl2IHsgY29sb3I6IGJsdWU7IH0gfTwvc3R5bGU+PHNoYWRvdz48L3NoYWRvdz4iOwotICAg
IGR1bXBDb21wdXRlZFN0eWxlKGhvc3QpOwotfQotCi1mdW5jdGlvbiB0ZXN0VHdvU2hhZG93Um9v
dHNDcmVhdGluZ0RpZmZlcmVudE9yZGVyQ2FzZSgpCi17Ci0gICAgcHJlcHJvY2Vzc0ZvclRlc3Qo
KTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAg
dmFyIG9sZGVzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHZh
ciB5b3VuZ2VzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHlv
dW5nZXN0U2hhZG93LmlubmVySFRNTCA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBjb2xvcjogYmx1
ZTsgfSB9PC9zdHlsZT48c2hhZG93Pjwvc2hhZG93PiI7Ci0gICAgb2xkZXN0U2hhZG93LmlubmVy
SFRNTCA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBjb2xvcjogcmVkOyB9IH08L3N0eWxlPjxjb250
ZW50PjwvY29udGVudD4iOwotICAgIGR1bXBDb21wdXRlZFN0eWxlKGhvc3QpOwotfQotCi1mdW5j
dGlvbiB0ZXN0TXVsdGlwbGVTaGFkb3dSb290c1dpdGhJbmVydFNoYWRvd0NvbnRlbnQoKQotewot
ICAgIHByZXByb2Nlc3NGb3JUZXN0KCk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaG9zdCIpOwotICAgIHZhciBvbGRlc3RTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgb2xkZXJTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLSAgICB2YXIgeW91bmdlclNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotICAgIHZhciB5b3VuZ2VzdFNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotCi0gICAgeW91bmdlc3RTaGFkb3cuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9z
aGFkb3c+IjsKLSAgICB5b3VuZ2VyU2hhZG93LmlubmVySFRNTCA9ICI8Y29udGVudD48L2NvbnRl
bnQ+IjsKLSAgICBvbGRlclNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgZGl2IHsg
Y29sb3I6IGdyZWVuOyB9IH08L3N0eWxlPjxzaGFkb3c+PC9zaGFkb3c+IjsKLSAgICBvbGRlc3RT
aGFkb3cuaW5uZXJIVE1MID0gIjxzdHlsZT5AaG9zdCB7IGRpdiB7IGNvbG9yOiByZWQ7IH0gfTwv
c3R5bGU+PGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0gICAgZHVtcENvbXB1dGVkU3R5bGUoaG9zdCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RNdWx0aXBsZVNoYWRvd1Jvb3RzV2l0aEluZXJ0U2hhZG93KCkK
LXsKLSAgICBwcmVwcm9jZXNzRm9yVGVzdCgpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImhvc3QiKTsKLSAgICB2YXIgb2xkZXN0U2hhZG93ID0gaG9zdC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIG9sZGVyU2hhZG93ID0gaG9zdC53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIHlvdW5nZXJTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgeW91bmdlc3RTaGFkb3cgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLQotICAgIHlvdW5nZXN0U2hhZG93LmlubmVySFRNTCA9ICI8c3R5bGU+
QGhvc3QgeyBkaXYgeyBjb2xvcjogeWVsbG93OyB9IH08L3N0eWxlPjxzaGFkb3c+PC9zaGFkb3c+
IjsKLSAgICB5b3VuZ2VyU2hhZG93LmlubmVySFRNTCA9ICI8c3R5bGU+QGhvc3QgeyBkaXYgeyBj
b2xvcjogYmx1ZTsgfSB9PC9zdHlsZT48ZGl2PmluZXJ0PC9kaXY+IjsKLSAgICBvbGRlclNoYWRv
dy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6IGdyZWVuOyB9IH08L3N0
eWxlPjxzaGFkb3c+PC9zaGFkb3c+IjsKLSAgICBvbGRlc3RTaGFkb3cuaW5uZXJIVE1MID0gIjxz
dHlsZT5AaG9zdCB7IGRpdiB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PGNvbnRlbnQ+PC9jb250
ZW50PiI7Ci0gICAgZHVtcENvbXB1dGVkU3R5bGUoaG9zdCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RO
ZXN0ZWRDYXNlKCkKLXsKLSAgICBwcmVwcm9jZXNzRm9yVGVzdCgpOwotICAgIHZhciBob3N0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKTsKLSAgICB2YXIgb3V0ZXJTaGFkb3cgPSBo
b3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBvdXRlclNoYWRvdy5pbm5lckhUTUwg
PSAnPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6IHJlZDsgfSB9PC9zdHlsZT48ZGl2IGlkPSJu
ZXN0ZWRIb3N0Ij5Jbm5lclNoYWRvdzwvZGl2Pic7Ci0gICAgdmFyIG5lc3RlZCA9IG91dGVyU2hh
ZG93LmdldEVsZW1lbnRCeUlkKCJuZXN0ZWRIb3N0Iik7Ci0gICAgdmFyIGlubmVyU2hhZG93ID0g
bmVzdGVkLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBpbm5lclNoYWRvdy5pbm5lckhU
TUwgPSAnPHN0eWxlPkBob3N0IHsgZGl2IHsgY29sb3I6IGJsdWU7IH0gfTwvc3R5bGU+U2hvdyA8
c2hhZG93Pjwvc2hhZG93PiBpbiBvdXRlci4nOwotICAgIGR1bXBDb21wdXRlZFN0eWxlKGhvc3Qp
OwotICAgIGR1bXBDb21wdXRlZFN0eWxlKG5lc3RlZCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RIb3N0
VnNTY29wZWRTdHlsZSgpCi17Ci0gICAgcHJlcHJvY2Vzc0ZvclRlc3QoKTsKLSAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgaG9zdC5pbm5lckhUTUwg
PSAiPHN0eWxlIHNjb3BlZD4jaG9zdCB7IGNvbG9yOiB5ZWxsb3c7IH08L3N0eWxlPjxzcGFuPkhl
bGxvPC9zcGFuPiI7Ci0gICAgdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotICAgIHNoYWRvdy5pbm5lckhUTUwgPSAiPHN0eWxlPkBob3N0IHsgI2hvc3QgeyBjb2xv
cjogcmVkOyB9IH08L3N0eWxlPjxjb250ZW50PjwvY29udGVudD4iOwotICAgIGR1bXBDb21wdXRl
ZFN0eWxlKGhvc3QpOwotfQotCi1mdW5jdGlvbiB0ZXN0SG9zdFZzSW5saW5lU3R5bGUoKQotewot
ICAgIHByZXByb2Nlc3NGb3JUZXN0KCk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaG9zdCIpOwotICAgIGhvc3Quc3R5bGUuY29sb3IgPSAieWVsbG93IjsKLSAgICBo
b3N0LmlubmVySFRNTCA9ICI8c3Bhbj5IZWxsbzwvc3Bhbj4iOwotICAgIHZhciBzaGFkb3cgPSBo
b3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3cuaW5uZXJIVE1MID0gIjxz
dHlsZT5AaG9zdCB7IGRpdiB7IGNvbG9yOiByZWQ7IH0gfTwvc3R5bGU+PGNvbnRlbnQ+PC9jb250
ZW50PiI7Ci0gICAgZHVtcENvbXB1dGVkU3R5bGUoaG9zdCk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRl
c3RzKCkKLXsKLSAgICB0ZXN0U2ltcGxlQ29udGVudENhc2UoKTsKLSAgICB0ZXN0U2ltcGxlU2hh
ZG93Q2FzZSgpOwotICAgIHRlc3RIb3N0V2l0aFNlbGVjdG9yKCk7Ci0gICAgdGVzdFBzZXVkb0hv
c3RXaXRoU2NvcGVkKCk7Ci0gICAgdGVzdFBzZXVkb0hvc3RXaXRoRmFsbGJhY2tTaGFkb3coKTsK
LSAgICB0ZXN0VHdvU2hhZG93Um9vdHNDYXNlKCk7Ci0gICAgdGVzdFR3b1NoYWRvd1Jvb3RzQ3Jl
YXRpbmdEaWZmZXJlbnRPcmRlckNhc2UoKTsKLSAgICB0ZXN0TXVsdGlwbGVTaGFkb3dSb290c1dp
dGhJbmVydFNoYWRvd0NvbnRlbnQoKTsKLSAgICB0ZXN0TXVsdGlwbGVTaGFkb3dSb290c1dpdGhJ
bmVydFNoYWRvdygpOwotICAgIHRlc3ROZXN0ZWRDYXNlKCk7Ci0gICAgdGVzdEhvc3RWc1Njb3Bl
ZFN0eWxlKCk7Ci0gICAgdGVzdEhvc3RWc0lubGluZVN0eWxlKCk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Ci0gIDxkaXYgaWQ9InBhcmVudCI+Ci0g
IDwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2Jhc2UtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9iYXNlLWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Jhc2UtaW4t
c2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzAsMCBAQAot
UEFTUyBhbmNob3JJblNoYWRvdy5ocmVmLmluZGV4T2YoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20i
KSBpcyAtMQotUEFTUyBhbmNob3JJbkhvc3RDaGlsZHJlbi5ocmVmLmluZGV4T2YoImh0dHA6Ly93
d3cuZXhhbXBsZS5jb20iKSBpcyAtMQotUEFTUyBhbmNob3JPdXRzaWRlT2ZTaGFkb3cuaHJlZi5p
bmRleE9mKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikgaXMgLTEKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotdGVoZXBlcm8KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9iYXNlLWluLXNoYWRvdy10cmVlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Jhc2UtaW4tc2hhZG93LXRyZWUuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Jhc2UtaW4t
c2hhZG93LXRyZWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxs
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29udGFpbmVyIj48YSBp
ZD0iYW5jaG9yLWluLWhvc3QtY2hpbGRyZW4iIGhyZWY9Ii8iPnRlaGVwZXJvPC9hPjwvZGl2Pgot
PGRpdj48YSBpZD0iYW5jaG9yLW91dHNpZGUtb2Ytc2hhZG93IiBocmVmPSIvIj50ZWhlcGVybzwv
YT48L2Rpdj4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb250YWluZXInKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBjb250YWluZXIud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotCi12YXIgYmFzZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2Jhc2UnKTsKLWJhc2Uuc2V0QXR0cmlidXRlKCdocmVmJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5j
b20vJyk7Ci12YXIgYW5jaG9ySW5TaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7
Ci1hbmNob3JJblNoYWRvdy5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnLycpOwotCi1zaGFkb3dSb290
LmFwcGVuZENoaWxkKGJhc2UpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChhbmNob3JJblNoYWRv
dyk7Ci0KLXZhciBhbmNob3JJbkhvc3RDaGlsZHJlbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhbmNob3ItaW4taG9zdC1jaGlsZHJlbicpOwotdmFyIGFuY2hvck91dHNpZGVPZlNoYWRvdyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbmNob3Itb3V0c2lkZS1vZi1zaGFkb3cnKTsKLQot
c2hvdWxkQmUoJ2FuY2hvckluU2hhZG93LmhyZWYuaW5kZXhPZigiaHR0cDovL3d3dy5leGFtcGxl
LmNvbSIpJywgJy0xJyk7Ci1zaG91bGRCZSgnYW5jaG9ySW5Ib3N0Q2hpbGRyZW4uaHJlZi5pbmRl
eE9mKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiknLCAnLTEnKTsKLXNob3VsZEJlKCdhbmNob3JP
dXRzaWRlT2ZTaGFkb3cuaHJlZi5pbmRleE9mKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiknLCAn
LTEnKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2NhcmV0LXJhbmdlLWZyb20tcG9pbnQtaW4tbmVzdGVkLXNoYWRvdy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Nh
cmV0LXJhbmdlLWZyb20tcG9pbnQtaW4tbmVzdGVkLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jYXJldC1yYW5nZS1m
cm9tLXBvaW50LWluLW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzAsMCBAQAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUocmFuZ2Uuc3Rh
cnRDb250YWluZXIpIGlzIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZShyYW5nZS5lbmRDb250YWluZXIpIGlzIGRvY3VtZW50Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NhcmV0LXJhbmdlLWZyb20tcG9pbnQtaW4tbmVzdGVkLXNoYWRvdy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jYXJldC1yYW5nZS1mcm9tLXBv
aW50LWluLW5lc3RlZC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NhcmV0LXJhbmdlLWZyb20tcG9pbnQtaW4tbmVzdGVkLXNoYWRv
dy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLTxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotZnVuY3Rpb24gY3JlYXRlQm94KG5hbWUp
IHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2
LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKLSAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsK
LQotICAgIGRpdi5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgZnVuY3Rpb24oZSkgewotICAgICAg
ICBkZWJ1ZygnUEFTUzogZHJvcCBldmVudCBpcyBmaXJlZC4nKTsKLSAgICB9KTsKLQotICAgIHJl
dHVybiBkaXY7Ci19Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci12YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1zaGFkb3dS
b290LmFwcGVuZENoaWxkKGRpdik7Ci0KLXZhciBkYXJrUm9vdCA9IGRpdi53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci12YXIgYm94ID0gY3JlYXRlQm94KCdkYXJrJyk7Ci1kYXJrUm9vdC5hcHBl
bmRDaGlsZChib3gpOwotCi12YXIgeCA9IGJveC5vZmZzZXRMZWZ0ICsgYm94Lm9mZnNldFdpZHRo
IC8gMjsKLXZhciB5ID0gYm94Lm9mZnNldFRvcCArIGJveC5vZmZzZXRIZWlnaHQgLyAyOwotCi12
YXIgcmFuZ2UgPSBkb2N1bWVudC5jYXJldFJhbmdlRnJvbVBvaW50KHgsIHkpOwotCi1zaG91bGRC
ZSgiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHJhbmdlLnN0YXJ0Q29udGFpbmVyKSIsICJk
b2N1bWVudCIpOwotc2hvdWxkQmUoImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZShyYW5nZS5l
bmRDb250YWluZXIpIiwgImRvY3VtZW50Iik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb21wYXJlLWRvY3VtZW50LXBvc2l0aW9uLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcGFyZS1kb2N1bWVu
dC1wb3NpdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb21wYXJlLWRvY3VtZW50LXBvc2l0aW9uLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwyMyArMCwwIEBACi1UZXN0cyBmb3IgTm9kZS5jb21wYXJlRG9j
dW1lbnRQb3NpdGlvbigpIGZvciBub2RlcyBpbiBzaGFkb3cgdHJlZS4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYTIpIGlz
IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIHwgTm9kZS5ET0NVTUVOVF9QT1NJ
VElPTl9GT0xMT1dJTkcKLVBBU1MgYTIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYTEpIGlzIE5v
ZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BS
RUNFRElORwotUEFTUyBhMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhMykgaXMgTm9kZS5ET0NV
TUVOVF9QT1NJVElPTl9GT0xMT1dJTkcKLVBBU1MgYjEuY29tcGFyZURvY3VtZW50UG9zaXRpb24o
YjIpIGlzIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIHwgTm9kZS5ET0NVTUVO
VF9QT1NJVElPTl9GT0xMT1dJTkcKLVBBU1MgYjIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEp
IGlzIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lU
SU9OX1BSRUNFRElORwotUEFTUyBiMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiMykgaXMgTm9k
ZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcKLVBBU1MgYTEuY29tcGFyZURvY3VtZW50UG9z
aXRpb24oYjEpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcgfHwgYTEuY29tcGFy
ZURvY3VtZW50UG9zaXRpb24oYjEpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcg
aXMgbm9uLXplcm8uCi1QQVNTIGExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUu
RE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEIGlzIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05f
RElTQ09OTkVDVEVECi1QQVNTIGExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUu
RE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgaXMgTm9kZS5ET0NVTUVO
VF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQwotUEFTUyBhMS5jb21wYXJlRG9jdW1l
bnRQb3NpdGlvbihiMSkgaXMgYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYjEpCi1QQVNTIGIx
LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGMxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJF
Q0VESU5HIHx8IGIxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGMxKSAmIE5vZGUuRE9DVU1FTlRf
UE9TSVRJT05fRk9MTE9XSU5HIGlzIG5vbi16ZXJvLgotUEFTUyBiMS5jb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbihjMSkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCBpcyBOb2Rl
LkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRAotUEFTUyBiMS5jb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbihjMSkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJ
RklDIGlzIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMKLVBB
U1MgYjEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYzEpIGlzIGIxLmNvbXBhcmVEb2N1bWVudFBv
c2l0aW9uKGMxKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wYXJlLWRvY3VtZW50
LXBvc2l0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2NvbXBhcmUtZG9jdW1lbnQtcG9zaXRpb24uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBhcmUtZG9jdW1lbnQtcG9zaXRpb24uaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGRpdiBpZD0ic2Fu
ZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIGZvciBOb2RlLmNvbXBh
cmVEb2N1bWVudFBvc2l0aW9uKCkgZm9yIG5vZGVzIGluIHNoYWRvdyB0cmVlLiIpOwotCi1pZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLWRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94JykuYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2ExJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdhMid9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYjEnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiMid9KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdiMyd9KSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2EzJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjMSd9KSkpKSk7Ci0KLXZhciBhMSwgYTIsIGEzLCBi
MSwgYjIsIGIzLCBjMTsKLQotZnVuY3Rpb24gdGVzdENvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCkK
LXsKLSAgICB2YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7
Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotCi0gICAgYTEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYTEnKTsKLSAgICBhMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhMicp
OwotICAgIGEzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2EzJyk7Ci0gICAgYjEgPSBnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2soJ2EyL2IxJyk7Ci0gICAgYjIgPSBnZXROb2RlSW5TaGFkb3dU
cmVlU3RhY2soJ2EyL2IyJyk7Ci0gICAgYjMgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2Ey
L2IzJyk7Ci0gICAgYzEgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2EzL2MxJyk7Ci0KLSAg
ICBzaG91bGRCZSgnYTEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYTIpJywgJ05vZGUuRE9DVU1F
TlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIHwgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJ
TkcnKTsKLSAgICBzaG91bGRCZSgnYTIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYTEpJywgJ05v
ZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BS
RUNFRElORycpOwotICAgIHNob3VsZEJlKCdhMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhMykn
LCAnTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcnKTsKLQotICAgIHNob3VsZEJlKCdi
MS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiMiknLCAnTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9D
T05UQUlORURfQlkgfCBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORycpOwotICAgIHNo
b3VsZEJlKCdiMi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiMSknLCAnTm9kZS5ET0NVTUVOVF9Q
T1NJVElPTl9DT05UQUlOUyB8IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HJyk7Ci0g
ICAgc2hvdWxkQmUoJ2IyLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIzKScsICdOb2RlLkRPQ1VN
RU5UX1BPU0lUSU9OX0ZPTExPV0lORycpOwotCi0gICAgLy8gTm9kZXMgaW4gZGlmZmVyZW50IHNo
YWRvdyB0cmVlcy4KLSAgICBzaG91bGRCZU5vblplcm8oJ2ExLmNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKGIxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIHx8IGExLmNvbXBhcmVE
b2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HJyk7
Ci0gICAgc2hvdWxkQmUoJ2ExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIxKSAmIE5vZGUuRE9D
VU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEJywgJ05vZGUuRE9DVU1FTlRfUE9TSVRJT05fRElT
Q09OTkVDVEVEJyk7Ci0gICAgc2hvdWxkQmUoJ2ExLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIx
KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMnLCAnTm9k
ZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQycpOwotICAgIHNob3Vs
ZEJlKCdhMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiMSknLCAnYTEuY29tcGFyZURvY3VtZW50
UG9zaXRpb24oYjEpJyk7Ci0gICAgc2hvdWxkQmVOb25aZXJvKCdiMS5jb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbihjMSkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyB8fCBiMS5jb21w
YXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lO
RycpOwotICAgIHNob3VsZEJlKCdiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihjMSkgJiBOb2Rl
LkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCcsICdOb2RlLkRPQ1VNRU5UX1BPU0lUSU9O
X0RJU0NPTk5FQ1RFRCcpOwotICAgIHNob3VsZEJlKCdiMS5jb21wYXJlRG9jdW1lbnRQb3NpdGlv
bihjMSkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDJywg
J05vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMnKTsKLSAgICBz
aG91bGRCZSgnYjEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYzEpJywgJ2IxLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKGMxKScpOwotfQotCi10ZXN0Q29tcGFyZURvY3VtZW50UG9zaXRpb24oKTsK
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVl
LXdhbGtlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXItZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDM1NyArMCwwIEBACi1UZXN0cyBmb3IgQ29tcG9zZWQgU2hhZG93
IERPTSBUcmVlIFRyYXZlcnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGluIERSVAotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU2hhZG93Um9vdCBzaG91bGQgYmUgdXNlZC4KLUNv
bXBvc2VkIFNoYWRvdyBUcmVlOgotRElWCSBpZD1hCi0JRElWCSBpZD1iCi0KLVRyYXZlcnNlIGlu
IGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1E
SVYJIGlkPWIKLURJVgkgaWQ9YQotCi1BIGNvbnRlbnQgZWxlbWVudCBzaG91bGQgc2VsZWN0IGxp
Z2h0IGNoaWxkcmVuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9
YgotCURJVgkgaWQ9YwotCURJVgkgaWQ9ZAotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBp
ZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9YwotRElWCSBpZD1kCi1UcmF2ZXJzZSBpbiBiYWNrd2Fy
ZC4KLURJVgkgaWQ9ZAotRElWCSBpZD1jCi1ESVYJIGlkPWIKLURJVgkgaWQ9YQotCi1UZXN0IGZv
ciBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkg
aWQ9YQotCURJVgkgaWQ9YgotCURJVgkgaWQ9ZAotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElW
CSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9ZAotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJ
IGlkPWQKLURJVgkgaWQ9YgotRElWCSBpZD1hCi0KLUxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSBz
ZWxlY3RlZCBvbmx5IGF0IG9uY2UuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQot
CURJVgkgaWQ9YgotCURJVgkgaWQ9ZAotCURJVgkgaWQ9YwotCURJVgkgaWQ9ZQotCi1UcmF2ZXJz
ZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9ZAotRElWCSBpZD1j
Ci1ESVYJIGlkPWUKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1lCi1ESVYJIGlkPWMK
LURJVgkgaWQ9ZAotRElWCSBpZD1iCi1ESVYJIGlkPWEKLQotQSBjb250ZW50IGVsZW1lbnQgY2Fu
IGhhdmUgZmFsbGJhY2sgZWxlbWVudHMuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9
YQotCURJVgkgaWQ9YgotCURJVgkgaWQ9ZjEKLQlESVYJIGlkPWYyCi0KLVRyYXZlcnNlIGluIGZv
cndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1mMQotRElWCSBpZD1mMgotVHJh
dmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWYyCi1ESVYJIGlkPWYxCi1ESVYJIGlkPWIKLURJ
VgkgaWQ9YQotCi1GYWxsYmFjayBlbGVtZW50cyBzaG91bGQgbm90IGJlIHVzZWQgaWYgYSBjb250
ZW50IGVsZW1lbnQgc2VsZWN0cyBhbiBlbGVtZW50LgotQ29tcG9zZWQgU2hhZG93IFRyZWU6Ci1E
SVYJIGlkPWEKLQlESVYJIGlkPWIKLQlESVYJIGlkPWMKLQotVHJhdmVyc2UgaW4gZm9yd2FyZC4K
LURJVgkgaWQ9YQotRElWCSBpZD1iCi1ESVYJIGlkPWMKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgot
RElWCSBpZD1jCi1ESVYJIGlkPWIKLURJVgkgaWQ9YQotCi1UZXN0IGZvciB0cmF2ZXJzYWwsIHN0
YXJ0aW5nIHdpdGggYSBmYWxsYmFjayBlbGVtZW50IHdoaWNoIGlzIG5vdCB1c2VkLgotQ29tcG9z
ZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWYxCi0JRElWCSBpZD1mMgotCi1UcmF2ZXJzZSBpbiBm
b3J3YXJkLgotRElWCSBpZD1mMQotRElWCSBpZD1mMgotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1E
SVYJIGlkPWYyCi1ESVYJIGlkPWYxCi0KLU5leHQgbm9kZSBvZiBbRElWCSBpZD1mMV0gaXMgW0RJ
VgkgaWQ9ZjJdCi1OZXh0IG5vZGUgb2YgW0RJVgkgaWQ9ZjJdIGlzIFsobnVsbCldCi0KLVRlc3Qg
Zm9yIE5lc3RlZCBTaGFkb3dSb290cy4KLUNvbXBvc2VkIFNoYWRvdyBUcmVlOgotRElWCSBpZD1h
Ci0JRElWCSBpZD1iCi0JCURJVgkgaWQ9YwotCQlESVYJIGlkPWUKLQkJRElWCSBpZD1kCi0JRElW
CSBpZD1mCi0JRElWCSBpZD1oCi0JRElWCSBpZD1pCi0JRElWCSBpZD1nCi0KLVRyYXZlcnNlIGlu
IGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1jCi1ESVYJIGlkPWUKLURJ
VgkgaWQ9ZAotRElWCSBpZD1mCi1ESVYJIGlkPWgKLURJVgkgaWQ9aQotRElWCSBpZD1nCi1UcmF2
ZXJzZSBpbiBiYWNrd2FyZC4KLURJVgkgaWQ9ZwotRElWCSBpZD1pCi1ESVYJIGlkPWgKLURJVgkg
aWQ9ZgotRElWCSBpZD1kCi1ESVYJIGlkPWUKLURJVgkgaWQ9YwotRElWCSBpZD1iCi1ESVYJIGlk
PWEKLQotVGVzdCBmb3IgTXVsdGlwbGUgU2hhZG93Um9vdHMuCi1Db21wb3NlZCBTaGFkb3cgVHJl
ZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9ZAotCURJVgkgaWQ9YgotCURJVgkgaWQ9ZgotCURJVgkg
aWQ9YwotCURJVgkgaWQ9ZQotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJ
IGlkPWQKLURJVgkgaWQ9YgotRElWCSBpZD1mCi1ESVYJIGlkPWMKLURJVgkgaWQ9ZQotVHJhdmVy
c2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWUKLURJVgkgaWQ9YwotRElWCSBpZD1mCi1ESVYJIGlk
PWIKLURJVgkgaWQ9ZAotRElWCSBpZD1hCi0KLVRlc3QgZm9yIGluYWN0aXZlIGluc2VydGlvbiBw
b2ludHMuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCUNPTlRFTlQJIGlkPWIK
LQkJQ09OVEVOVAkgaWQ9YwotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1DT05U
RU5UCSBpZD1iCi1DT05URU5UCSBpZD1jCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4KLUNPTlRFTlQJ
IGlkPWMKLUNPTlRFTlQJIGlkPWIKLURJVgkgaWQ9YQotCi1UZXN0IGZvciBhbiBvcnBoYW5lZCBz
aGFkb3cgc3VidHJlZS4KLUNvbXBvc2VkIFNoYWRvdyBUcmVlOgotRElWCSBpZD1hCi0JRElWCSBp
ZD1kCi0KLVRyYXZlcnNlIGluIGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9ZAotVHJhdmVy
c2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWQKLURJVgkgaWQ9YQotCi1UZXN0IGZvciB0cmF2ZXJz
YWwsIHN0YXJ0aW5nIHdpdGggYSBub2RlIGluIGFuIG9ycGhhbmVkIHNoYWRvdyBzdWJ0cmVlLgot
Q29tcG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWIKLQlESVYJIGlkPWMKLQotVHJhdmVyc2Ug
aW4gZm9yd2FyZC4KLURJVgkgaWQ9YgotRElWCSBpZD1jCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4K
LURJVgkgaWQ9YwotRElWCSBpZD1iCi0KLVRlc3QgZm9yIGEgY29udGVudCBlbGVtZW50IHdoaWNo
IGRvZXMgbm90IHNlbGVjdCBhbnkgbm9kZXMgbm9yIGhhdmUgZmFsbGJhY2sgZWxlbWVudHMuCi1D
b21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCURJVgkgaWQ9Ywot
Ci1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9Ywot
VHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWMKLURJVgkgaWQ9YgotRElWCSBpZD1hCi0K
LVRlc3QgZm9yIGEgbmVzdGVkIGluc2VydGlvbiBwb2ludC4KLUNvbXBvc2VkIFNoYWRvdyBUcmVl
OgotRElWCSBpZD1hCi0JRElWCSBpZD1iCi0JCURJVgkgaWQ9YwotCi1UcmF2ZXJzZSBpbiBmb3J3
YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9YwotVHJhdmVyc2UgaW4gYmFja3dh
cmQuCi1ESVYJIGlkPWMKLURJVgkgaWQ9YgotRElWCSBpZD1hCi0KLVRlc3QgZm9yIG5lc3RlZCBp
bnNlcnRpb24gcG9pbnRzLiBTb21lIG9mIHRoZW0gYXJlIGVpdGhlciBlbXB0eSBpbnNlcnRpb24g
cG9pbnRzIG9yIGluYWN0aXZlIGluc2VydGlvbiBwb2ludHMuCi1Db21wb3NlZCBTaGFkb3cgVHJl
ZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9YgotCQlESVYJIGlkPWMKLQkJRElWCSBpZD1kIGNsYXNz
PXNlbGVjdC0yCi0JCURJVgkgaWQ9ZSBjbGFzcz1zZWxlY3QtMgotCi1UcmF2ZXJzZSBpbiBmb3J3
YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9YwotRElWCSBpZD1kIGNsYXNzPXNl
bGVjdC0yCi1ESVYJIGlkPWUgY2xhc3M9c2VsZWN0LTIKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgot
RElWCSBpZD1lIGNsYXNzPXNlbGVjdC0yCi1ESVYJIGlkPWQgY2xhc3M9c2VsZWN0LTIKLURJVgkg
aWQ9YwotRElWCSBpZD1iCi1ESVYJIGlkPWEKLQotVGVzdCBmb3IgYSByZS1wcm9qZWN0aW9uLgot
Q29tcG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWEKLQlESVYJIGlkPWIKLQkJRElWCSBpZD1j
Ci0KLVRyYXZlcnNlIGluIGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1j
Ci1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4KLURJVgkgaWQ9YwotRElWCSBpZD1iCi1ESVYJIGlkPWEK
LQotVGVzdCBmb3IgYSBjb250ZW50IGVsZW1lbnQgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYW5vdGhl
ciBjb250ZW50IGVsZW1lbnQuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJ
VgkgaWQ9YgotCQlESVYJIGlkPW1vc3QtaW5uZXItY2hpbGQKLQkJRElWCSBpZD1ob3N0LWNoaWxk
Ci0KLVRyYXZlcnNlIGluIGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1t
b3N0LWlubmVyLWNoaWxkCi1ESVYJIGlkPWhvc3QtY2hpbGQKLVRyYXZlcnNlIGluIGJhY2t3YXJk
LgotRElWCSBpZD1ob3N0LWNoaWxkCi1ESVYJIGlkPW1vc3QtaW5uZXItY2hpbGQKLURJVgkgaWQ9
YgotRElWCSBpZD1hCi0KLVRlc3QgZm9yIGEgcmVwcm9qZWN0aW9uLiBDb250ZW50IGVsZW1lbnRz
IHNob3VsZCBiZSB1c2VkIGluIGRvY3VtZW50IG9yZGVyLgotQ29tcG9zZWQgU2hhZG93IFRyZWU6
Ci1ESVYJIGlkPWEKLQlESVYJIGlkPWhvc3QtY2hpbGQxIGNsYXNzPWNoaWxkCi0JRElWCSBpZD1i
Ci0JCURJVgkgaWQ9aG9zdC1jaGlsZDIgY2xhc3M9Y2hpbGQKLQotVHJhdmVyc2UgaW4gZm9yd2Fy
ZC4KLURJVgkgaWQ9YQotRElWCSBpZD1ob3N0LWNoaWxkMSBjbGFzcz1jaGlsZAotRElWCSBpZD1i
Ci1ESVYJIGlkPWhvc3QtY2hpbGQyIGNsYXNzPWNoaWxkCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4K
LURJVgkgaWQ9aG9zdC1jaGlsZDIgY2xhc3M9Y2hpbGQKLURJVgkgaWQ9YgotRElWCSBpZD1ob3N0
LWNoaWxkMSBjbGFzcz1jaGlsZAotRElWCSBpZD1hCi0KLVRlc3QgZm9yIGNvbXBsZXggcmUtcHJv
amVjdGlvbnMuCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9Ygot
CQlESVYJIGlkPWNoaWxkLTEgY2xhc3M9Zm9vCi0JCURJVgkgaWQ9ZCBjbGFzcz1mb28KLQkJCURJ
VgkgaWQ9ZQotCQkJRElWCSBpZD1jaGlsZC0yIGNsYXNzPWZvbwotCQkJRElWCSBpZD1nIGNsYXNz
PWZvbwotCQkJRElWCSBpZD1mCi0JCURJVgkgaWQ9aCBjbGFzcz1mb28KLQkJRElWCSBpZD1jCi0K
LVRyYXZlcnNlIGluIGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YgotRElWCSBpZD1jaGls
ZC0xIGNsYXNzPWZvbwotRElWCSBpZD1kIGNsYXNzPWZvbwotRElWCSBpZD1lCi1ESVYJIGlkPWNo
aWxkLTIgY2xhc3M9Zm9vCi1ESVYJIGlkPWcgY2xhc3M9Zm9vCi1ESVYJIGlkPWYKLURJVgkgaWQ9
aCBjbGFzcz1mb28KLURJVgkgaWQ9YwotVHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPWMK
LURJVgkgaWQ9aCBjbGFzcz1mb28KLURJVgkgaWQ9ZgotRElWCSBpZD1nIGNsYXNzPWZvbwotRElW
CSBpZD1jaGlsZC0yIGNsYXNzPWZvbwotRElWCSBpZD1lCi1ESVYJIGlkPWQgY2xhc3M9Zm9vCi1E
SVYJIGlkPWNoaWxkLTEgY2xhc3M9Zm9vCi1ESVYJIGlkPWIKLURJVgkgaWQ9YQotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci1zaGFkb3ct
cmVwcm9qZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rp
b24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rpb24t
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4NiArMCwwIEBACi1UZXN0cyBmb3Ig
Q29tcG9zZWQgU2hhZG93IERPTSBUcmVlIFRyYXZlcnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0
aGluIERSVAotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTXVsdGlwbGUgc2hhZG93
IHJvb3Qgd2l0aG91dCBzaGFkb3cgZWxlbWVudAotQ29tcG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJ
IGlkPWEKLQlESVYJIGlkPWMKLQotVHJhdmVyc2UgaW4gZm9yd2FyZC4KLURJVgkgaWQ9YQotRElW
CSBpZD1jCi1UcmF2ZXJzZSBpbiBiYWNrd2FyZC4KLURJVgkgaWQ9YwotRElWCSBpZD1hCi0KLU11
bHRpcGxlIHNoYWRvdyByb290IHdpdGggc2hhZG93IGVsZW1lbnQKLUNvbXBvc2VkIFNoYWRvdyBU
cmVlOgotRElWCSBpZD1hCi0JRElWCSBpZD1jCi0JRElWCSBpZD1iCi0JRElWCSBpZD1lCi0KLVRy
YXZlcnNlIGluIGZvcndhcmQuCi1ESVYJIGlkPWEKLURJVgkgaWQ9YwotRElWCSBpZD1iCi1ESVYJ
IGlkPWUKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1lCi1ESVYJIGlkPWIKLURJVgkg
aWQ9YwotRElWCSBpZD1hCi0KLU11bHRpcGxlIHNoYWRvdyByb290IHdpdGggc2hhZG93IGVsZW1l
bnQsIGNhc2UgMgotQ29tcG9zZWQgU2hhZG93IFRyZWU6Ci1ESVYJIGlkPWEKLQlESVYJIGlkPWYK
LQlESVYJIGlkPWMKLQlESVYJIGlkPWIKLQlESVYJIGlkPWUKLQlESVYJIGlkPWgKLQotVHJhdmVy
c2UgaW4gZm9yd2FyZC4KLURJVgkgaWQ9YQotRElWCSBpZD1mCi1ESVYJIGlkPWMKLURJVgkgaWQ9
YgotRElWCSBpZD1lCi1ESVYJIGlkPWgKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1o
Ci1ESVYJIGlkPWUKLURJVgkgaWQ9YgotRElWCSBpZD1jCi1ESVYJIGlkPWYKLURJVgkgaWQ9YQot
Ci1zaGFkb3cgcmVwcm9qZWN0aW9uCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQot
CURJVgkgaWQ9YgotCQlESVYJIGlkPWQKLQkJRElWCSBpZD1hLWNoaWxkCi0JCURJVgkgaWQ9Zgot
Ci1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWIKLURJVgkgaWQ9ZAot
RElWCSBpZD1hLWNoaWxkCi1ESVYJIGlkPWYKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBp
ZD1mCi1ESVYJIGlkPWEtY2hpbGQKLURJVgkgaWQ9ZAotRElWCSBpZD1iCi1ESVYJIGlkPWEKLQot
c2hhZG93IHJlcHJvamVjdGlvbiwgdGFrZSAyCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkg
aWQ9YQotCURJVgkgaWQ9ZAotCQlESVYJIGlkPWYKLQkJRElWCSBpZD1iCi0JCURJVgkgaWQ9aAot
Ci1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJIGlkPWQKLURJVgkgaWQ9Zgot
RElWCSBpZD1iCi1ESVYJIGlkPWgKLVRyYXZlcnNlIGluIGJhY2t3YXJkLgotRElWCSBpZD1oCi1E
SVYJIGlkPWIKLURJVgkgaWQ9ZgotRElWCSBpZD1kCi1ESVYJIGlkPWEKLQotc2hhZG93IGZhbGxi
YWNrIGVsZW1lbnQgcmVwcm9qZWN0aW9uCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9
YQotCURJVgkgaWQ9aQotCQlESVYJIGlkPWsKLQkJRElWCSBpZD1jCi0JCURJVgkgaWQ9YgotCQlE
SVYJIGlkPWcKLQkJRElWCSBpZD1oCi0JCURJVgkgaWQ9bQotCi1UcmF2ZXJzZSBpbiBmb3J3YXJk
LgotRElWCSBpZD1hCi1ESVYJIGlkPWkKLURJVgkgaWQ9awotRElWCSBpZD1jCi1ESVYJIGlkPWIK
LURJVgkgaWQ9ZwotRElWCSBpZD1oCi1ESVYJIGlkPW0KLVRyYXZlcnNlIGluIGJhY2t3YXJkLgot
RElWCSBpZD1tCi1ESVYJIGlkPWgKLURJVgkgaWQ9ZwotRElWCSBpZD1iCi1ESVYJIGlkPWMKLURJ
VgkgaWQ9awotRElWCSBpZD1pCi1ESVYJIGlkPWEKLQotd2l0aCBpbmFjdGl2ZSBpbnNlcnRpb24g
cG9pbnRzCi1Db21wb3NlZCBTaGFkb3cgVHJlZToKLURJVgkgaWQ9YQotCURJVgkgaWQ9cwotCQlE
SVYJIGlkPXUKLQkJRElWCSBpZD1mCi0JCUNPTlRFTlQJIGlkPWIKLQkJCURJVgkgaWQ9YwotCQlT
SEFET1cJIGlkPWQKLQkJCURJVgkgaWQ9ZQotCQlDT05URU5UCSBpZD1sCi0JCVNIQURPVwkgaWQ9
bQotCQlESVYJIGlkPW4KLQkJQ09OVEVOVAkgaWQ9cAotCQlTSEFET1cJIGlkPXEKLQkJRElWCSBp
ZD1yCi0JCURJVgkgaWQ9dwotCi1UcmF2ZXJzZSBpbiBmb3J3YXJkLgotRElWCSBpZD1hCi1ESVYJ
IGlkPXMKLURJVgkgaWQ9dQotRElWCSBpZD1mCi1DT05URU5UCSBpZD1iCi1ESVYJIGlkPWMKLVNI
QURPVwkgaWQ9ZAotRElWCSBpZD1lCi1DT05URU5UCSBpZD1sCi1TSEFET1cJIGlkPW0KLURJVgkg
aWQ9bgotQ09OVEVOVAkgaWQ9cAotU0hBRE9XCSBpZD1xCi1ESVYJIGlkPXIKLURJVgkgaWQ9dwot
VHJhdmVyc2UgaW4gYmFja3dhcmQuCi1ESVYJIGlkPXcKLURJVgkgaWQ9cgotU0hBRE9XCSBpZD1x
Ci1DT05URU5UCSBpZD1wCi1ESVYJIGlkPW4KLVNIQURPVwkgaWQ9bQotQ09OVEVOVAkgaWQ9bAot
RElWCSBpZD1lCi1TSEFET1cJIGlkPWQKLURJVgkgaWQ9YwotQ09OVEVOVAkgaWQ9YgotRElWCSBp
ZD1mCi1ESVYJIGlkPXUKLURJVgkgaWQ9cwotRElWCSBpZD1hCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rp
b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcG9z
ZWQtc2hhZG93LXRyZWUtd2Fsa2VyLXNoYWRvdy1yZXByb2plY3Rpb24uaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10
cmVlLXdhbGtlci1zaGFkb3ctcmVwcm9qZWN0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTkwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgZm9yIENvbXBvc2VkIFNoYWRvdyBET00gVHJlZSBUcmF2
ZXJzYWwgQVBJcy4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKLQotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBkdW1wTm9k
ZShub2RlKQotewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuICcobnVsbCknCi0gICAg
dmFyIG91dHB1dCA9IG5vZGUubm9kZU5hbWUgKyAiXHQiOwotICAgIGlmIChub2RlLmlkKQotICAg
ICAgICBvdXRwdXQgKz0gJyBpZD0nICsgbm9kZS5pZDsKLSAgICBpZiAobm9kZS5jbGFzc05hbWUp
Ci0gICAgICAgIG91dHB1dCArPSAnIGNsYXNzPScgKyBub2RlLmNsYXNzTmFtZTsKLSAgICByZXR1
cm4gb3V0cHV0OwotfQotCi1mdW5jdGlvbiBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKG5vZGUsIGlu
ZGVudCkKLXsKLSAgICBpbmRlbnQgPSBpbmRlbnQgfHwgIiI7Ci0gICAgdmFyIG91dHB1dCA9IGlu
ZGVudCArIGR1bXBOb2RlKG5vZGUpICsgIlxuIjsKLSAgICB2YXIgY2hpbGQ7Ci0gICAgZm9yIChj
aGlsZCA9IGludGVybmFscy5maXJzdENoaWxkQnlXYWxrZXIobm9kZSk7IGNoaWxkOyBjaGlsZCA9
IGludGVybmFscy5uZXh0U2libGluZ0J5V2Fsa2VyKGNoaWxkKSkKLSAgICAgICAgIG91dHB1dCAr
PSBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKGNoaWxkLCBpbmRlbnQgKyAiXHQiKTsKLSAgICByZXR1
cm4gb3V0cHV0OwotfQotCi1mdW5jdGlvbiBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpCi17Ci0gICAg
dmFyIGxhc3ROb2RlID0gcm9vdDsKLSAgICB3aGlsZSAoaW50ZXJuYWxzLmxhc3RDaGlsZEJ5V2Fs
a2VyKGxhc3ROb2RlKSkKLSAgICAgICAgbGFzdE5vZGUgPSBpbnRlcm5hbHMubGFzdENoaWxkQnlX
YWxrZXIobGFzdE5vZGUpOwotICAgIHJldHVybiBsYXN0Tm9kZTsKLX0KLQotZnVuY3Rpb24gc2hv
d0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luRm9yd2FyZChyb290KQotewotICAgIHZh
ciBub2RlID0gcm9vdDsKLSAgICB2YXIgbGFzdCA9IGxhc3ROb2RlQnlXYWxrZXIocm9vdCk7Ci0g
ICAgd2hpbGUgKG5vZGUpIHsKLSAgICAgICAgZGVidWcoZHVtcE5vZGUobm9kZSkpOwotICAgICAg
ICBpZiAobm9kZSA9PSBsYXN0KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIG5vZGUgPSBp
bnRlcm5hbHMubmV4dE5vZGVCeVdhbGtlcihub2RlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHNo
b3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJbkJhY2t3YXJkKHJvb3QpCi17Ci0gICAg
dmFyIG5vZGUgPSBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpOwotICAgIHdoaWxlIChub2RlKSB7Ci0g
ICAgICAgIGRlYnVnKGR1bXBOb2RlKG5vZGUpKTsKLSAgICAgICAgaWYgKG5vZGUgPT0gcm9vdCkK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBub2RlID0gaW50ZXJuYWxzLnByZXZpb3VzTm9k
ZUJ5V2Fsa2VyKG5vZGUpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gc2hvd0NvbXBvc2VkU2hhZG93
VHJlZShub2RlKQotewotICAgIGRlYnVnKCdDb21wb3NlZCBTaGFkb3cgVHJlZTonKTsKLSAgICBk
ZWJ1ZyhkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKG5vZGUpKTsKLQotICAgIGRlYnVnKCdUcmF2ZXJz
ZSBpbiBmb3J3YXJkLicpOwotICAgIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJ
bkZvcndhcmQobm9kZSk7Ci0KLSAgICBkZWJ1ZygnVHJhdmVyc2UgaW4gYmFja3dhcmQuJyk7Ci0g
ICAgc2hvd0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luQmFja3dhcmQobm9kZSk7Ci0K
LSAgICBkZWJ1ZygnJyk7Ci19Ci0KLWZ1bmN0aW9uIHNob3dOZXh0Tm9kZShub2RlKSB7Ci0gICAg
dmFyIG5leHQgPSBpbnRlcm5hbHMubmV4dE5vZGVCeVdhbGtlcihub2RlKTsKLSAgICBkZWJ1Zygn
TmV4dCBub2RlIG9mIFsnICsgZHVtcE5vZGUobm9kZSkgKyAnXSBpcyBbJyArIGR1bXBOb2RlKG5l
eHQpICsgJ10nKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvbXBvc2VkU2hhZG93VHJlZShub2RlKQot
ewotICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsK
LSAgICBzYW5kYm94LmlubmVySFRNTCA9ICcnOwotICAgIHNhbmRib3guYXBwZW5kQ2hpbGQobm9k
ZSk7Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIHNob3dDb21wb3NlZFNoYWRv
d1RyZWUobm9kZSk7Ci19Ci0KLWRlYnVnKCdNdWx0aXBsZSBzaGFkb3cgcm9vdCB3aXRob3V0IHNo
YWRvdyBlbGVtZW50Jyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2InfSkpLAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSkpOwotCi1kZWJ1ZygnTXVsdGlwbGUgc2hh
ZG93IHJvb3Qgd2l0aCBzaGFkb3cgZWxlbWVudCcpOwotdGVzdENvbXBvc2VkU2hhZG93VHJlZSgK
LSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAotICAgICAgICAgICAgICBjcmVhdGVT
aGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pKSwKLSAgICAgICAgICAgICAg
Y3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnZCd9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
ZSd9KSkpKTsKLQotZGVidWcoJ011bHRpcGxlIHNoYWRvdyByb290IHdpdGggc2hhZG93IGVsZW1l
bnQsIGNhc2UgMicpOwotdGVzdENvbXBvc2VkU2hhZG93VHJlZSgKLSAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnYSd9LAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdiJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnZCd9KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSksCi0gICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFkb3cnLCB7J2lkJzogJ2cn
fSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2gnfSkpKSk7Ci0KLWRlYnVnKCdzaGFkb3cgcmVwcm9qZWN0aW9uJyk7Ci10ZXN0Q29tcG9z
ZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhLWNoaWxkJ30pLAotICAgICAgICAgICAg
ICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93Jywgeydp
ZCc6ICdjJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
Y29udGVudCcsIHsnaWQnOiAnZSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZid9KSkp
KSkpOwotCi1kZWJ1Zygnc2hhZG93IHJlcHJvamVjdGlvbiwgdGFrZSAyJyk7Ci10ZXN0Q29tcG9z
ZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAotICAgICAgICAgICAgICBjcmVh
dGVTaGFkb3dSb290KGNyZWF0ZURPTSgnc2hhZG93JywgeydpZCc6ICdjJ30pKSwKLSAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycs
IHsnaWQnOiAnZSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZid9KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2NvbnRlbnQnLCB7J2lkJzogJ2cnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2gn
fSkpKSkpKTsKLQotZGVidWcoJ3NoYWRvdyBmYWxsYmFjayBlbGVtZW50IHJlcHJvamVjdGlvbicp
OwotdGVzdENvbXBvc2VkU2hhZG93VHJlZSgKLSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
YSd9LAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKLSAgICAg
ICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQn
OiAnZCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnZSd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdzaGFkb3cnLCB7J2lkJzogJ2YnfSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2cnfSkpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdoJ30pKSwK
LSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
aSd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J3NoYWRvdycsIHsnaWQnOiAnaid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnayd9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2wnfSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ20nfSkpKSkpKTsKLQotaW50ZXJuYWxzLmFkZHJlc3MoZG9jdW1lbnQpOwotZGVidWco
J3dpdGggaW5hY3RpdmUgaW5zZXJ0aW9uIHBvaW50cycpCi10ZXN0Q29tcG9zZWRTaGFkb3dUcmVl
KAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0
ZURPTSgnY29udGVudCcsIHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ3No
YWRvdycsIHsnaWQnOiAnZCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2UnfSkpLAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdmJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnZyd9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2gnfSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93
JywgeydpZCc6ICdpJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaid9KSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6ICdrJ30sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAn
bCd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdzaGFkb3cnLCB7J2lkJzogJ20nfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICduJ30pKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnbyd9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7
J2lkJzogJ3AnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnc2hhZG93JywgeydpZCc6ICdxJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAncid9KSkpLAotICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdzJ30sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93
JywgeydpZCc6ICd0J30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICd1J30pLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnY29udGVudCcsIHsnaWQnOiAndid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
dyd9KSkpKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0KLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2Vk
LXNoYWRvdy10cmVlLXdhbGtlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVl
LXdhbGtlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI5MyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRv
bS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Rz
IGZvciBDb21wb3NlZCBTaGFkb3cgRE9NIFRyZWUgVHJhdmVyc2FsIEFQSXMuIENhbiBvbmx5IHJ1
biB3aXRoaW4gRFJUIik7Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24gZHVtcE5vZGUobm9kZSkKLXsKLSAgICBpZiAoIW5v
ZGUpCi0gICAgICAgIHJldHVybiAnKG51bGwpJwotICAgIHZhciBvdXRwdXQgPSBub2RlLm5vZGVO
YW1lICsgIlx0IjsKLSAgICBpZiAobm9kZS5pZCkKLSAgICAgICAgb3V0cHV0ICs9ICcgaWQ9JyAr
IG5vZGUuaWQ7Ci0gICAgaWYgKG5vZGUuY2xhc3NOYW1lKQotICAgICAgICBvdXRwdXQgKz0gJyBj
bGFzcz0nICsgbm9kZS5jbGFzc05hbWU7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rp
b24gZHVtcENvbXBvc2VkU2hhZG93VHJlZShub2RlLCBpbmRlbnQpCi17Ci0gICAgaW5kZW50ID0g
aW5kZW50IHx8ICIiOwotICAgIHZhciBvdXRwdXQgPSBpbmRlbnQgKyBkdW1wTm9kZShub2RlKSAr
ICJcbiI7Ci0gICAgdmFyIGNoaWxkOwotICAgIGZvciAoY2hpbGQgPSBpbnRlcm5hbHMuZmlyc3RD
aGlsZEJ5V2Fsa2VyKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbnRlcm5hbHMubmV4dFNpYmxpbmdC
eVdhbGtlcihjaGlsZCkpCi0gICAgICAgICBvdXRwdXQgKz0gZHVtcENvbXBvc2VkU2hhZG93VHJl
ZShjaGlsZCwgaW5kZW50ICsgIlx0Iik7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rp
b24gbGFzdE5vZGVCeVdhbGtlcihyb290KQotewotICAgIHZhciBsYXN0Tm9kZSA9IHJvb3Q7Ci0g
ICAgd2hpbGUgKGludGVybmFscy5sYXN0Q2hpbGRCeVdhbGtlcihsYXN0Tm9kZSkpCi0gICAgICAg
IGxhc3ROb2RlID0gaW50ZXJuYWxzLmxhc3RDaGlsZEJ5V2Fsa2VyKGxhc3ROb2RlKTsKLSAgICBy
ZXR1cm4gbGFzdE5vZGU7Ci19Ci0KLWZ1bmN0aW9uIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRy
YXZlcnNpbmdJbkZvcndhcmQocm9vdCkKLXsKLSAgICB2YXIgbm9kZSA9IHJvb3Q7Ci0gICAgdmFy
IGxhc3QgPSBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpOwotICAgIHdoaWxlIChub2RlKSB7Ci0gICAg
ICAgIGRlYnVnKGR1bXBOb2RlKG5vZGUpKTsKLSAgICAgICAgaWYgKG5vZGUgPT0gbGFzdCkKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBub2RlID0gaW50ZXJuYWxzLm5leHROb2RlQnlXYWxr
ZXIobm9kZSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBzaG93Q29tcG9zZWRTaGFkb3dUcmVlQnlU
cmF2ZXJzaW5nSW5CYWNrd2FyZChyb290KQotewotICAgIHZhciBub2RlID0gbGFzdE5vZGVCeVdh
bGtlcihyb290KTsKLSAgICB3aGlsZSAobm9kZSkgewotICAgICAgICBkZWJ1ZyhkdW1wTm9kZShu
b2RlKSk7Ci0gICAgICAgIGlmIChub2RlID09IHJvb3QpCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgbm9kZSA9IGludGVybmFscy5wcmV2aW91c05vZGVCeVdhbGtlcihub2RlKTsKLSAgICB9
Ci19Ci0KLWZ1bmN0aW9uIHNob3dDb21wb3NlZFNoYWRvd1RyZWUobm9kZSkKLXsKLSAgICBkZWJ1
ZygnQ29tcG9zZWQgU2hhZG93IFRyZWU6Jyk7Ci0gICAgZGVidWcoZHVtcENvbXBvc2VkU2hhZG93
VHJlZShub2RlKSk7Ci0KLSAgICBkZWJ1ZygnVHJhdmVyc2UgaW4gZm9yd2FyZC4nKTsKLSAgICBz
aG93Q29tcG9zZWRTaGFkb3dUcmVlQnlUcmF2ZXJzaW5nSW5Gb3J3YXJkKG5vZGUpOwotCi0gICAg
ZGVidWcoJ1RyYXZlcnNlIGluIGJhY2t3YXJkLicpOwotICAgIHNob3dDb21wb3NlZFNoYWRvd1Ry
ZWVCeVRyYXZlcnNpbmdJbkJhY2t3YXJkKG5vZGUpOwotCi0gICAgZGVidWcoJycpOwotfQotCi1m
dW5jdGlvbiBzaG93TmV4dE5vZGUobm9kZSkgewotICAgIHZhciBuZXh0ID0gaW50ZXJuYWxzLm5l
eHROb2RlQnlXYWxrZXIobm9kZSk7Ci0gICAgZGVidWcoJ05leHQgbm9kZSBvZiBbJyArIGR1bXBO
b2RlKG5vZGUpICsgJ10gaXMgWycgKyBkdW1wTm9kZShuZXh0KSArICddJyk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RDb21wb3NlZFNoYWRvd1RyZWUobm9kZSkKLXsKLSAgICB2YXIgc2FuZGJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0gICAgc2FuZGJveC5pbm5lckhUTUwg
PSAnJzsKLSAgICBzYW5kYm94LmFwcGVuZENoaWxkKG5vZGUpOwotICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0TGVmdDsKLSAgICBzaG93Q29tcG9zZWRTaGFkb3dUcmVlKG5vZGUpOwotfQotCi1kZWJ1
ZygnU2hhZG93Um9vdCBzaG91bGQgYmUgdXNlZC4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUo
Ci0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSksCi0gICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSk7Ci0KLWRlYnVnKCdBIGNvbnRlbnQgZWxl
bWVudCBzaG91bGQgc2VsZWN0IGxpZ2h0IGNoaWxkcmVuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dU
cmVlKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNy
ZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JykpLAotICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2QnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIGNvbnRlbnQgZWxlbWVu
dCBzZWxlY3Rvci4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnYid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjZCd9KSksCi0gICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnZCd9KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2UnfSkpKTsKLQotZGVidWcoJ0xpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSBzZWxlY3RlZCBvbmx5
IGF0IG9uY2UuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2InfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnI2QnfSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JykpLAotICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2QnfSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30p
KSk7Ci0KLWRlYnVnKCdBIGNvbnRlbnQgZWxlbWVudCBjYW4gaGF2ZSBmYWxsYmFjayBlbGVtZW50
cy4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnYid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjeid9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjEnfSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdm
Mid9KSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOwot
Ci1kZWJ1ZygnRmFsbGJhY2sgZWxlbWVudHMgc2hvdWxkIG5vdCBiZSB1c2VkIGlmIGEgY29udGVu
dCBlbGVtZW50IHNlbGVjdHMgYW4gZWxlbWVudC4nKTsKLXRlc3RDb21wb3NlZFNoYWRvd1RyZWUo
Ci0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjYyd9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnZjEnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmMid9KSkpKSwKLSAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIHRy
YXZlcnNhbCwgc3RhcnRpbmcgd2l0aCBhIGZhbGxiYWNrIGVsZW1lbnQgd2hpY2ggaXMgbm90IHVz
ZWQuJyk7Ci1zaG93Q29tcG9zZWRTaGFkb3dUcmVlKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygn
YS9mMScpKTsKLXNob3dOZXh0Tm9kZShnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2EvZjEnKSk7
Ci1zaG93TmV4dE5vZGUoZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdhL2YyJykpOwotZGVidWco
JycpOwotCi1kZWJ1ZygnVGVzdCBmb3IgTmVzdGVkIFNoYWRvd1Jvb3RzLicpOwotdGVzdENvbXBv
c2VkU2hhZG93VHJlZSgKLSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAotICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3Qo
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2cnfSkp
LAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaCd9KSwKLSAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2knfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9y
IE11bHRpcGxlIFNoYWRvd1Jvb3RzLicpOwotdGVzdENvbXBvc2VkU2hhZG93VHJlZSgKLSAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAotICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dS
b290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSwKLSAgICAgICAgICAgICAgY3Jl
YXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSwKLSAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9y
IGluYWN0aXZlIGluc2VydGlvbiBwb2ludHMuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAot
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZURP
TSgnY29udGVudCcsIHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdjb250ZW50JywgeydpZCc6ICdjJ30pKSkpOwotCi1kZWJ1ZygnVGVzdCBmb3IgYW4gb3Jw
aGFuZWQgc2hhZG93IHN1YnRyZWUuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSks
Ci0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9yIHRyYXZlcnNh
bCwgc3RhcnRpbmcgd2l0aCBhIG5vZGUgaW4gYW4gb3JwaGFuZWQgc2hhZG93IHN1YnRyZWUuJyk7
Ci1zaG93Q29tcG9zZWRTaGFkb3dUcmVlKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnYS9iJykp
OwotCi1kZWJ1ZygnVGVzdCBmb3IgYSBjb250ZW50IGVsZW1lbnQgd2hpY2ggZG9lcyBub3Qgc2Vs
ZWN0IGFueSBub2RlcyBub3IgaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4nKTsKLXRlc3RDb21wb3Nl
ZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcj
bm9uZSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnYid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjbm9uZSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjbm9uZSd9KSkp
KTsKLQotZGVidWcoJ1Rlc3QgZm9yIGEgbmVzdGVkIGluc2VydGlvbiBwb2ludC4nKTsKLXRlc3RD
b21wb3NlZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAg
ICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dS
b290KGNyZWF0ZURPTSgnY29udGVudCcsIHt9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHt9KSkpLAotICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOwotCi1kZWJ1ZygnVGVzdCBmb3IgbmVz
dGVkIGluc2VydGlvbiBwb2ludHMuIFNvbWUgb2YgdGhlbSBhcmUgZWl0aGVyIGVtcHR5IGluc2Vy
dGlvbiBwb2ludHMgb3IgaW5hY3RpdmUgaW5zZXJ0aW9uIHBvaW50cy4nKTsKLXRlc3RDb21wb3Nl
ZFNoYWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcj
bm9uZSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy5zZWxlY3Qt
MSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRl
bnQnLCB7J3NlbGVjdCc6ICcuc2VsZWN0LTInfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2NsYXNzJzogJ3NlbGVjdC0x
JywgJ3NlbGVjdCc6ICcuc2VsZWN0LTQnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnY2xhc3MnOiAnc2VsZWN0LTInLCAn
c2VsZWN0JzogJyNub25lJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCcsICdjbGFzcyc6ICdzZWxlY3QtMid9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250
ZW50JywgeydjbGFzcyc6ICdzZWxlY3QtMicsICdzZWxlY3QnOiAnI25vbmUnfSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdlJywgJ2NsYXNzJzogJ3NlbGVjdC0yJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2NsYXNzJzogJ3NlbGVjdC0yJywg
J3NlbGVjdCc6ICcjbm9uZSd9KSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQn
LCB7J2lkJzogJ2luYWN0aXZlLWluc2VydGlvbi1wb2ludCcsICdjbGFzcyc6ICdzZWxlY3QtNCd9
KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3Nob3VsZC1ub3QtYmUt
c2VsZWN0ZWQnfSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmJywg
J2NsYXNzJzogJ3NlbGVjdC00J30pKSk7Ci0KLWRlYnVnKCdUZXN0IGZvciBhIHJlLXByb2plY3Rp
b24uJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAn
I2MnfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcs
IHsnc2VsZWN0JzogJyNjJ30pKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdjJ30pKSk7Ci0KLWRlYnVnKCdUZXN0IGZvciBhIGNvbnRlbnQgZWxlbWVudCB3aGljaCBp
cyBzZWxlY3RlZCBieSBhbm90aGVyIGNvbnRlbnQgZWxlbWVudC4nKTsKLXRlc3RDb21wb3NlZFNo
YWRvd1RyZWUoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKLSAgICAgICAgICAg
ICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdiJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9v
dChjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjY29udGVudCd9KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdtb3N0LWlubmVyLWNoaWxkJ30pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnI2hvc3QtY2hp
bGQnfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcs
IHsnaWQnOiAnY29udGVudCcsICdzZWxlY3QnOiAnI2hvc3QtY2hpbGQnfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3Nob3Vs
ZC1ub3QtYmUtdXNlZCd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2lubmVyLWNoaWxkJywgJ2NsYXNzJzogJ2Zvbyd9KSkpLAotICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC1jaGlsZCd9KSkpOwotCi1kZWJ1
ZygnVGVzdCBmb3IgYSByZXByb2plY3Rpb24uIENvbnRlbnQgZWxlbWVudHMgc2hvdWxkIGJlIHVz
ZWQgaW4gZG9jdW1lbnQgb3JkZXIuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcj
aG9zdC1jaGlsZDEnfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnYid9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3Jl
YXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnLmNoaWxkJ30pKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuY2hpbGQnfSkp
KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QtY2hpbGQxJywg
J2NsYXNzJzogJ2NoaWxkJ30pLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnaG9zdC1jaGlsZDInLCAnY2xhc3MnOiAnY2hpbGQnfSkpKTsKLQotZGVidWcoJ1Rlc3QgZm9y
IGNvbXBsZXggcmUtcHJvamVjdGlvbnMuJyk7Ci10ZXN0Q29tcG9zZWRTaGFkb3dUcmVlKAotICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRv
d1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdj
b250ZW50JywgeydzZWxlY3QnOiAnLmZvbyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgI2NoaWxkLTEKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjY2hpbGQtMSd9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnY2xhc3MnOiAnc2hvdWxkLW5vdC1iZS11c2VkJ30pLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBTaG91bGQgbm90IHNlbGVjdCBhbnkgbm9kZXMgc2luY2UgaXQn
cyBpbmFjdGl2ZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdjb250ZW50JywgeydjbGFzcyc6ICdzaG91bGQtYmUtaW5hY3RpdmUnLCAnc2VsZWN0Jzog
Jy5mb28nfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdkJywgJ2NsYXNzJzogJ2Zvbyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30p
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFNob3VsZCBzZWxlY3QgI2NoaWxkLTIgYW5kICNnLgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsn
c2VsZWN0JzogJy5mb28nfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSkpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgI2NoaWxkLTIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywgeydz
ZWxlY3QnOiAnI2NoaWxkLTInfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdnJywgJ2NsYXNzJzogJ2Zvbyd9KSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2NsYXNzJzogJ3Nob3Vs
ZC1ub3QtYmUtc2VsZWN0ZWQnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2gnLCAnY2xhc3MnOiAnZm9vJ30pKSksCi0gICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZC0xJywgJ2NsYXNzJzogJ2Zvbyd9KSwKLSAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ25vdC1zZWxlY3RlZCcsICdjbGFz
cyc6ICdmb28nfSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGls
ZC0yJywgJ2NsYXNzJzogJ2Zvbyd9KSkpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1hZnRlci1zdHlsZS1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
b250ZW50LWFmdGVyLXN0eWxlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWFmdGVyLXN0eWxlLWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGJvZHk+Ci08ZGl2IGlkPSJob3N0Ij50ZXh0PGRpdj5ob3N0IGNvbnRlbnQ8L2Rpdj48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
b250ZW50LWFmdGVyLXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtYWZ0ZXItc3R5bGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtYWZ0ZXItc3R5bGUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJv
ZHk+Ci08ZGl2IGlkPSJob3N0Ij48ZGl2Pmhvc3QgY29udGVudDwvZGl2PjwvZGl2PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Ci12YXIgcm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNob3N0Jykud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotcm9vdC5pbm5lckhUTUwgPSAnPHN0eWxlPmludmFsaWQg
eyB9PC9zdHlsZT4nICsKLSAgICAgICAgICAgICAgICAgJ3RleHQ8Y29udGVudD48L2NvbnRlbnQ+
JzsKLXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LWNoaWxkLXdoaXRlc3BhY2UtYmV0d2Vlbi1zcGFuLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1jaGlsZC13
aGl0ZXNwYWNlLWJldHdlZW4tc3Bhbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWNoaWxkLXdoaXRlc3BhY2UtYmV0
d2Vlbi1zcGFuLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLVR3
byBjb25haW5lcnMgc2hvdWxkIGJlIGxheWVkIG91dCBpbiB0aGUgc2FtZSB3YXkKLQotUEFTUwot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1jaGlsZC13aGl0ZXNw
YWNlLWJldHdlZW4tc3Bhbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWNoaWxkLXdoaXRlc3BhY2UtYmV0d2Vlbi1zcGFuLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWNoaWxk
LXdoaXRlc3BhY2UtYmV0d2Vlbi1zcGFuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNzggKzAs
MCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0
bWw+Ci08aGVhZD4KLTxzdHlsZT4KLXN1bW1hcnkgeyBkaXNwbGF5OiBub25lOyB9Ci1zcGFuIHsg
YmFja2dyb3VuZC1jb2xvcjogcmVkOyB9Ci0vKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVz
IHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KLS5jb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRp
dmU7IH0KLTwvc3R5bGU+Ci08c2NyaXB0PgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gKG1lc3NhZ2Ug
KyAiXG4iKTsKLX0KLQotZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVyTGluZXModGV4dCkKLXsKLSAg
ICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCJcbiIpOwotICAgIGxpbmVzLnNwbGljZSgwLCAyKTsK
LSAgICByZXR1cm4gbGluZXMuam9pbigiXG4iKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgcmV0dXJuOwotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgdmFyIHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUgPSB3
aW5kb3cuaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXRDb250YWluZXIiKSk7Ci0gICAgdmFyIHRhcmdldFJlbmRlclRyZWUgPSBy
ZW1vdmVDb250YWluZXJMaW5lcyh0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlKTsKLSAgICB2YXIg
cmVmQ29udGFpbmVyUmVuZGVyVHJlZSA9IHdpbmRvdy5pbnRlcm5hbHMuZWxlbWVudFJlbmRlclRy
ZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZkNvbnRhaW5lciIpKTsKLSAgICB2
YXIgcmVmUmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHJlZkNvbnRhaW5lclJlbmRl
clRyZWUpOwotCi0gICAgdGFyZ2V0UmVuZGVyVHJlZSA9IHRhcmdldFJlbmRlclRyZWUucmVwbGFj
ZSgiUmVuZGVyQmxvY2sge0RFVEFJTFN9IiwgIlJlbmRlckJsb2NrIHtESVZ9Iik7Ci0KLSAgICBp
ZiAodGFyZ2V0UmVuZGVyVHJlZSA9PSByZWZSZW5kZXJUcmVlKQotICAgICAgICBsb2coIlBBU1Mi
KTsKLSAgICBlbHNlIHsKLSAgICAgICAgbG9nKCJGQUlMIik7Ci0gICAgICAgIGxvZygiRXhwZWN0
ZWQ6Iik7Ci0gICAgICAgIGxvZyhyZWZSZW5kZXJUcmVlKTsKLSAgICAgICAgbG9nKCJBY3R1YWw6
Iik7Ci0gICAgICAgIGxvZyh0YXJnZXRSZW5kZXJUcmVlKTsKLSAgICB9Ci0gICAgCi0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlR3byBjb25h
aW5lcnMgc2hvdWxkIGJlIGxheWVkIG91dCBpbiB0aGUgc2FtZSB3YXk8L3A+Ci08ZGl2IGlkPSJ0
ZXN0Ij4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9InRhcmdldENvbnRhaW5lciI+Ci08ZGl2
PgotPGRldGFpbHMgb3Blbj4KLTxkaXY+SGVsbG8xPC9kaXY+Ci08c3Bhbj5IZWxsbzI8L3NwYW4+
Ci08c3Bhbj5IZWxsbzM8L3NwYW4+Ci08c3VtbWFyeT48L3N1bW1hcnk+Ci08L2RldGFpbHM+Ci08
L2Rpdj4KLTwvZGl2PgotPGhyIC8+Ci08ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPSJyZWZDb250
YWluZXIiID4KLTxkaXY+Ci08ZGl2PgotPGRpdj5IZWxsbzE8L2Rpdj4KLTxzcGFuPkhlbGxvMjwv
c3Bhbj4KLTxzcGFuPkhlbGxvMzwvc3Bhbj4KLTxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+
PC9zcGFuPgotPC9kaXY+Ci08L2Rpdj4KLTwvZGl2PgotPC9kaXY+Ci08cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWFwaS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtYXBpLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCwwIEBA
Ci1UaGlzIHRlc3QgZW5zdXJlIHRoYXQgdGhlIGNvbnRlbnQgZWxlbWVudCBpcyBhdmFpbGFibGUu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNvbnRlbnRTaW1wbGVzdC5z
ZWxlY3QgaXMgJycKLVBBU1MgY29udGVudFNpbXBsZXN0LnNlbGVjdCBpcyAnZm9vJwotUEFTUyBj
b250ZW50U2ltcGxlc3QuZ2V0QXR0cmlidXRlKCdzZWxlY3QnKSBpcyAnYmFyJwotUEFTUyAwIDw9
IGNvbnRlbnRTaW1wbGVzdC5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0hUTUxDb250
ZW50RWxlbWVudCcpIGlzIHRydWUKLVBBU1Mgd2luZG93LkhUTUxDb250ZW50RWxlbWVudCBpcyBj
b250ZW50U2ltcGxlc3QuY29uc3RydWN0b3IKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LWFwaS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXY+Ci0gIDxjb250ZW50IGlkPSJjb250ZW50LXNp
bXBsZXN0Ij48L2NvbnRlbnQ+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IGVuc3VyZSB0aGF0IHRoZSBjb250ZW50IGVsZW1lbnQgaXMgYXZhaWxhYmxlLiIpOwotdmFy
IGNvbnRlbnRTaW1wbGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50LXNpbXBs
ZXN0Iik7Ci1zaG91bGRCZSgiY29udGVudFNpbXBsZXN0LnNlbGVjdCIsICInJyIpOwotY29udGVu
dFNpbXBsZXN0LnNldEF0dHJpYnV0ZSgic2VsZWN0IiwgImZvbyIpOwotc2hvdWxkQmUoImNvbnRl
bnRTaW1wbGVzdC5zZWxlY3QiLCAiJ2ZvbyciKTsKLWNvbnRlbnRTaW1wbGVzdC5zZWxlY3QgPSAi
YmFyIgotc2hvdWxkQmUoImNvbnRlbnRTaW1wbGVzdC5nZXRBdHRyaWJ1dGUoJ3NlbGVjdCcpIiwg
IidiYXInIik7Ci1zaG91bGRCZVRydWUoIjAgPD0gY29udGVudFNpbXBsZXN0LmNvbnN0cnVjdG9y
LnRvU3RyaW5nKCkuaW5kZXhPZignSFRNTENvbnRlbnRFbGVtZW50JykiKTsKLXNob3VsZEJlKCJ3
aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRlbnRTaW1wbGVzdC5jb25zdHJ1Y3RvciIp
OwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWRpc3RyaWJ1dGVkLW5vZGVzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LWRpc3RyaWJ1dGVkLW5vZGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1kaXN0cmlidXRlZC1u
b2Rlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAotVGVzdHMg
Zm9yIGNvbnRlbnQgZWxlbWVudCdzIGdldERpc3RyaWJ1dGVkTm9kZXMoKS4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm9kZUxpc3QubGVuZ3RoIGlzIGV4cGVjdGVkTm9k
ZXMubGVuZ3RoCi1QQVNTIG5vZGVMaXN0Lml0ZW0oMCkgaXMgZXhwZWN0ZWROb2Rlc1swXQotUEFT
UyBub2RlTGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9kZUxpc3Qu
aXRlbSgwKSBpcyBleHBlY3RlZE5vZGVzWzBdCi1QQVNTIG5vZGVMaXN0Lmxlbmd0aCBpcyBleHBl
Y3RlZE5vZGVzLmxlbmd0aAotUEFTUyBub2RlTGlzdC5pdGVtKDApIGlzIGV4cGVjdGVkTm9kZXNb
MF0KLVZlcmlmeSB0aGF0IGdldERpc3RyaWJ1dGVkTm9kZXMoKSByZXR1cm5zIGEgc3RhdGljIE5v
ZGVMaXN0LgotUEFTUyBub2RlTGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBB
U1Mgbm9kZUxpc3QuaXRlbSgwKSBpcyBleHBlY3RlZE5vZGVzWzBdCi1QQVNTIG5vZGVMaXN0Lmxl
bmd0aCBpcyBleHBlY3RlZE5vZGVzLmxlbmd0aAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWRpc3RyaWJ1dGVkLW5v
ZGVzLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgZm9yIGNvbnRlbnQgZWxlbWVudCdzIGdl
dERpc3RyaWJ1dGVkTm9kZXMoKS4iKTsKLQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAg
ICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnaG9zdC0xJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQn
OiAnY29udGVudC0xJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdjaGlsZC0xJ30pKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2hvc3QtMid9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9v
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lk
JzogJ2NvbnRlbnQtMid9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnaG9zdC0zJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2NvbnRlbnQtMyd9KSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdjaGlsZC0zJ30pKSksCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnY2hpbGQtMid9KSkpKTsKLQotCi12YXIgY29udGVudDEgPSBnZXROb2RlSW5T
aGFkb3dUcmVlU3RhY2soJ2hvc3QtMS9jb250ZW50LTEnKTsKLXZhciBjb250ZW50MiA9IGdldE5v
ZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC0yL2NvbnRlbnQtMicpOwotdmFyIGNvbnRlbnQzID0g
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0LTIvaG9zdC0zL2NvbnRlbnQtMycpOwotCi12
YXIgY2hpbGQxID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdjaGlsZC0xJyk7Ci12YXIgY2hp
bGQyID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdjaGlsZC0yJyk7Ci12YXIgY2hpbGQzID0g
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0LTIvY2hpbGQtMycpOwotCi12YXIgZGlzdHJp
YnV0ZWROb2RlczEgPSBjb250ZW50MS5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci12YXIgZGlzdHJp
YnV0ZWROb2RlczIgPSBjb250ZW50Mi5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci12YXIgZGlzdHJp
YnV0ZWROb2RlczMgPSBjb250ZW50My5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0KLWZ1bmN0aW9u
IGFzc2VydE5vZGVMaXN0KG5vZGVMaXN0LCBleHBlY3RlZE5vZGVzKQotewotICAgIHdpbmRvdy5u
b2RlTGlzdCA9IG5vZGVMaXN0OwotICAgIHdpbmRvdy5leHBlY3RlZE5vZGVzID0gZXhwZWN0ZWRO
b2RlczsKLSAgICBzaG91bGRCZSgibm9kZUxpc3QubGVuZ3RoIiwgImV4cGVjdGVkTm9kZXMubGVu
Z3RoIik7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlTGlzdC5sZW5ndGg7ICsraSkgewot
ICAgICAgc2hvdWxkQmUoIm5vZGVMaXN0Lml0ZW0oIiArIGkgKyAiKSIsICJleHBlY3RlZE5vZGVz
WyIgKyBpICsgIl0iKTsKLSAgICB9Ci19Ci0KLWFzc2VydE5vZGVMaXN0KGRpc3RyaWJ1dGVkTm9k
ZXMxLCBbY2hpbGQxXSk7Ci1hc3NlcnROb2RlTGlzdChkaXN0cmlidXRlZE5vZGVzMiwgW2NoaWxk
Ml0pOwotYXNzZXJ0Tm9kZUxpc3QoZGlzdHJpYnV0ZWROb2RlczMsIFtjaGlsZDNdKTsKLQotZGVi
dWcoJ1ZlcmlmeSB0aGF0IGdldERpc3RyaWJ1dGVkTm9kZXMoKSByZXR1cm5zIGEgc3RhdGljIE5v
ZGVMaXN0LicpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QtMScpLmlubmVySFRNTCA9
ICcnOwotYXNzZXJ0Tm9kZUxpc3QoZGlzdHJpYnV0ZWROb2RlczEsIFtjaGlsZDFdKTsKLWFzc2Vy
dE5vZGVMaXN0KGNvbnRlbnQxLmdldERpc3RyaWJ1dGVkTm9kZXMoKSwgW10pOwotCi08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtaW4tbWVkaWEtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1tZWRp
YS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1tZWRpYS1lbGVtZW50LWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLWNvbnRlbnRFbGVtZW50SW5WaWRl
b0VsZW1lbnQKLVBBU1MKLVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tbWVkaWEtZWxlbWVudC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tbWVk
aWEtZWxlbWVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluLW1lZGlhLWVsZW1lbnQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c3R5bGU+Ci0vKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVy
TGF5ZXIgKi8KLS5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQotLnNw
YW4gewotICAgIGRpc3BsYXk6IGJveGVkLWlubGluZTsKLSAgICBtYXJnaW46IDJweDsKLSAgICBi
b3JkZXI6IHNvbGlkOwotfQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hh
ZG93LXRlc3QtZHJpdmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFyIHRlc3RGdW5jcyA9IFtdOwotCi10
ZXN0RnVuY3MucHVzaChmdW5jdGlvbiBjb250ZW50RWxlbWVudEluVmlkZW9FbGVtZW50KGNhbGxJ
ZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicp
LmlubmVySFRNTCA9ICI8ZGl2Pjx2aWRlbz48ZGl2PjwvZGl2PjwvdmlkZW8+PC9kaXY+IjsKLQot
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXYuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwotCi0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChkaXYpOwotCi0g
ICAgdmFyIHNyID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotICAgIHZhciB2aWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Ci0gICAgdmFyIGNvbnRlbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7Ci0gICAgdmlkZW8uYXBwZW5kQ2hpbGQo
Y29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQodmlkZW8pOwotICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0V2lkdGg7IC8vIGZvcmNlIHN0eWxlIHJlY2FsYy4KLSAgICBjYWxsSWZEb25lKCk7Ci19
KTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImRvVGVzdCh0ZXN0RnVuY3Mp
Ij4KLQotPGRpdiBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+
Ci08ZGl2IGlkPSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxw
cmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluLW1ldGVyLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtaW4tbWV0ZXItZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tbWV0
ZXItZWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMCwwIEBACi1j
b250ZW50RWxlbWVudEluTWV0ZXJFbGVtZW50Ci1QQVNTCi1URVNUIENPTVBMRVRFRAotCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluLW1ldGVyLWVs
ZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LWluLW1ldGVyLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1tZXRlci1lbGVt
ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJl
cyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjog
cmVsYXRpdmU7Ci19Ci0KLS5zcGFuIHsKLSAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7Ci0gICAg
bWFyZ2luOiAycHg7Ci0gICAgYm9yZGVyOiBzb2xpZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciB0
ZXN0RnVuY3MgPSBbXTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gY29udGVudEVsZW1lbnRJ
bk1ldGVyRWxlbWVudChjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj48bWV0ZXI+PGRpdj48L2Rpdj48
L21ldGVyPjwvZGl2PiI7Ci0KLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
KTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQoZGl2KTsKLQotICAgIHZhciBzciA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0KLSAgICB2YXIgbWV0ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdtZXRlcicpOwot
ICAgIHZhciBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29udGVudCcpOwotICAg
IG1ldGVyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKG1ldGVyKTsK
LSAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOyAvLyBmb3JjZSBzdHlsZSByZWNhbGMuCi0g
ICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJkb1Rlc3QodGVzdEZ1bmNzKSI+Ci0KLTxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNz
PSJjb250YWluZXIiPjwvZGl2PgotPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNv
bnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1p
bi1wcm9ncmVzcy1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluLXByb2dyZXNzLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LWluLXByb2dyZXNzLWVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQgKzAsMCBAQAotY29udGVudEVsZW1lbnRJblByb2dyZXNzRWxlbWVu
dAotUEFTUwotVEVTVCBDT01QTEVURUQKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtZWxlbWVudC1pbi1wcm9ncmVzcy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1wcm9ncmVz
cy1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tcHJvZ3Jlc3MtZWxlbWVudC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzdHlsZT4KLS8qIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5k
ZXJMYXllciAqLwotLmNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0u
c3BhbiB7Ci0gICAgZGlzcGxheTogYm94ZWQtaW5saW5lOwotICAgIG1hcmdpbjogMnB4OwotICAg
IGJvcmRlcjogc29saWQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9z
aGFkb3ctdGVzdC1kcml2ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgdGVzdEZ1bmNzID0gW107Ci0K
LXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIGNvbnRlbnRFbGVtZW50SW5Qcm9ncmVzc0VsZW1lbnQo
Y2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFp
bmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHByb2dyZXNzPjxkaXY+PC9kaXY+PC9wcm9ncmVzcz48
L2Rpdj4iOwotCi0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxk
KGRpdik7Ci0KLSAgICB2YXIgc3IgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0g
ICAgdmFyIHByb2dyZXNzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJvZ3Jlc3MnKTsKLSAg
ICB2YXIgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvbnRlbnQnKTsKLSAgICBw
cm9ncmVzcy5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICBzci5hcHBlbmRDaGlsZChwcm9ncmVz
cyk7Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDsgLy8gZm9yY2Ugc3R5bGUgcmVjYWxj
LgotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0iZG9UZXN0KHRlc3RGdW5jcykiPgotCi08ZGl2IGlkPSJhY3R1YWwtY29udGFpbmVyIiBj
bGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxkaXYgaWQ9ImV4cGVjdC1jb250YWluZXIiIGNsYXNz
PSJjb250YWluZXIiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtaW4tc2VsZWN0LWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW4tc2VsZWN0LWVsZW1lbnQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1lbGVtZW50LWluLXNlbGVjdC1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLWNvbnRlbnRFbGVtZW50SW5TZWxlY3RFbGVtZW50Ci1Q
QVNTCi1URVNUIENPTVBMRVRFRAotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LWluLXNlbGVjdC1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbi1zZWxlY3QtZWxlbWVu
dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LWluLXNlbGVjdC1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgot
LyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICov
Ci0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLS5zcGFuIHsKLSAg
ICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0gICAgYm9yZGVyOiBz
b2xpZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0
LWRyaXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciB0ZXN0RnVuY3MgPSBbXTsKLQotdGVzdEZ1bmNz
LnB1c2goZnVuY3Rpb24gY29udGVudEVsZW1lbnRJblNlbGVjdEVsZW1lbnQoY2FsbElmRG9uZSkg
ewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJI
VE1MID0gIjxkaXY+PHNlbGVjdD48ZGl2PjwvZGl2Pjwvc2VsZWN0PjwvZGl2PiI7Ci0KLSAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKLQotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQoZGl2KTsKLQotICAgIHZh
ciBzciA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICB2YXIgc2VsZWN0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7Ci0gICAgdmFyIGNvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7Ci0gICAgc2VsZWN0LmFwcGVuZENoaWxkKGNv
bnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKHNlbGVjdCk7Ci0gICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRXaWR0aDsgLy8gZm9yY2Ugc3R5bGUgcmVjYWxjLgotICAgIGNhbGxJZkRvbmUoKTsKLX0p
OwotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iZG9UZXN0KHRlc3RGdW5jcyki
PgotCi08ZGl2IGlkPSJhY3R1YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4K
LTxkaXYgaWQ9ImV4cGVjdC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgotPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtaW5jbHVkZXItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtaW5jbHVkZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi1UaGlzIHRlc3RzIHRoZSBjb3JyZWN0bmVz
cyBvZiBpbmNsdWRlcnMgb2YgZm9yd2FyZGVkIGNoaWxkcmVuLgotTm90ZSB0aGF0IHRoaXMgdGVz
dCBuZWVkcyBpbnRlcm5hbHMgb2JqZWN0IHRodXMgY2Fubm90IHJ1biBvdXRzaWRlIERSVC4KLVBB
U1MgaW50ZXJuYWxzLmluY2x1ZGVyRm9yKGNoaWxkT2ZFbGVtZW50V2l0aG91dFNoYWRvdykgaXMg
bnVsbAotUEFTUyBpbnRlcm5hbHMuaW5jbHVkZXJGb3IoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93
KSBpcyBudWxsCi1QQVNTIGludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhT
aGFkb3dDb250ZW50KSBpcyBzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQK
LVBBU1MgaW50ZXJuYWxzLmluY2x1ZGVyRm9yKG1vdmluZ0NoaWxkKSBpcyBudWxsCi1QQVNTIGlu
dGVybmFscy5pbmNsdWRlckZvcihtb3ZpbmdDaGlsZCkgaXMgbnVsbAotUEFTUyBpbnRlcm5hbHMu
aW5jbHVkZXJGb3IobW92aW5nQ2hpbGQpIGlzIGFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50
V2l0aFNoYWRvd0NvbnRlbnQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1l
bGVtZW50LWluY2x1ZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1pbmNsdWRlci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWluY2x1ZGVyLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwcmUgaWQ9ImNvbnNvbGUiPgotVGhpcyB0
ZXN0cyB0aGUgY29ycmVjdG5lc3Mgb2YgaW5jbHVkZXJzIG9mIGZvcndhcmRlZCBjaGlsZHJlbi4K
LU5vdGUgdGhhdCB0aGlzIHRlc3QgbmVlZHMgaW50ZXJuYWxzIG9iamVjdCB0aHVzIGNhbm5vdCBy
dW4gb3V0c2lkZSBEUlQuCi08L3ByZT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08c2Ny
aXB0PgotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIi
KTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBudWxsOwotCi12YXIgZWxlbWVudFdpdGhvdXRTaGFkb3cg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLWNvbnRhaW5lci5hcHBlbmRDaGlsZChl
bGVtZW50V2l0aG91dFNoYWRvdyk7Ci12YXIgY2hpbGRPZkVsZW1lbnRXaXRob3V0U2hhZG93ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotZWxlbWVudFdpdGhvdXRTaGFkb3cuYXBw
ZW5kQ2hpbGQoY2hpbGRPZkVsZW1lbnRXaXRob3V0U2hhZG93KTsKLWNvbnRhaW5lci5vZmZzZXRM
ZWZ0Owotc2hvdWxkQmUoImludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhv
dXRTaGFkb3cpIiwgIm51bGwiKTsKLQotdmFyIGVsZW1lbnRXaXRoU2hhZG93ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7Ci1jb250YWluZXIuYXBwZW5kQ2hpbGQoZWxlbWVudFdpdGhT
aGFkb3cpOwotdmFyIHNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93ID0gaW50ZXJuYWxzLmVu
c3VyZVNoYWRvd1Jvb3QoZWxlbWVudFdpdGhTaGFkb3cpOwotc2hhZG93Um9vdE9mRWxlbWVudFdp
dGhTaGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOyAvLyBH
aXZlcyBub24tY29udGVudCBjaGlsZC4gCi12YXIgY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotZWxlbWVudFdpdGhTaGFkb3cuYXBwZW5k
Q2hpbGQoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93KTsKLWNvbnRhaW5lci5vZmZzZXRMZWZ0Owot
c2hvdWxkQmUoImludGVybmFscy5pbmNsdWRlckZvcihjaGlsZE9mRWxlbWVudFdpdGhTaGFkb3cp
IiwgIm51bGwiKTsKLQotdmFyIGVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotY29udGFpbmVyLmFwcGVuZENoaWxkKGVsZW1lbnRXaXRoU2hh
ZG93Q29udGVudCk7Ci12YXIgc2hhZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0g
aW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoZWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKLXZh
ciBzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBpbnRlcm5hbHMuY3Jl
YXRlQ29udGVudEVsZW1lbnQoKTsKLXNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVu
dC5hcHBlbmRDaGlsZChzaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQpOwot
dmFyIGNoaWxkT2ZFbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7Ci1lbGVtZW50V2l0aFNoYWRvd0NvbnRlbnQuYXBwZW5kQ2hpbGQoY2hpbGRP
ZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci1jb250YWluZXIub2Zmc2V0TGVmdDsKLXNob3Vs
ZEJlKCJpbnRlcm5hbHMuaW5jbHVkZXJGb3IoY2hpbGRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVu
dCkiLCAic2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50Iik7Ci0KLS8vCi0v
LyBUZXN0aW5nIGR5bmFtaWMgY2hhbmdlCi0vLwotdmFyIG1vdmluZ0NoaWxkID0gY2hpbGRPZkVs
ZW1lbnRXaXRoU2hhZG93Q29udGVudDsKLQotLy8gUmVtb3ZpbmcKLWVsZW1lbnRXaXRoU2hhZG93
Q29udGVudC5yZW1vdmVDaGlsZChtb3ZpbmdDaGlsZCk7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLmlu
Y2x1ZGVyRm9yKG1vdmluZ0NoaWxkKSIsICJudWxsIik7Ci0KLS8vIE1vdmluZyB0byBjb250ZW50
LWxlc3MgdHJlZQotZWxlbWVudFdpdGhTaGFkb3cuYXBwZW5kQ2hpbGQobW92aW5nQ2hpbGQpOwot
c2hvdWxkQmUoImludGVybmFscy5pbmNsdWRlckZvcihtb3ZpbmdDaGlsZCkiLCAibnVsbCIpOwot
ZWxlbWVudFdpdGhTaGFkb3cucmVtb3ZlQ2hpbGQobW92aW5nQ2hpbGQpOwotCi0vLyBNb3Zpbmcg
dG8gYW5vdGhlciBjb250ZW50LWZ1bGwgdHJlZQotdmFyIGFub3RoZXJFbGVtZW50V2l0aFNoYWRv
d0NvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLWNvbnRhaW5lci5hcHBl
bmRDaGlsZChhbm90aGVyRWxlbWVudFdpdGhTaGFkb3dDb250ZW50KTsKLXZhciBhbm90aGVyU2hh
ZG93Um9vdE9mRWxlbWVudFdpdGhTaGFkb3dDb250ZW50ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRv
d1Jvb3QoYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVudCk7Ci12YXIgYW5vdGhlclNoYWRv
d0NvbnRlbnRPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250
ZW50RWxlbWVudCgpOwotYW5vdGhlclNoYWRvd1Jvb3RPZkVsZW1lbnRXaXRoU2hhZG93Q29udGVu
dC5hcHBlbmRDaGlsZChhbm90aGVyU2hhZG93Q29udGVudE9mRWxlbWVudFdpdGhTaGFkb3dDb250
ZW50KTsKLQotYW5vdGhlckVsZW1lbnRXaXRoU2hhZG93Q29udGVudC5hcHBlbmRDaGlsZChtb3Zp
bmdDaGlsZCk7Ci1jb250YWluZXIub2Zmc2V0TGVmdDsKLXNob3VsZEJlKCJpbnRlcm5hbHMuaW5j
bHVkZXJGb3IobW92aW5nQ2hpbGQpIiwgImFub3RoZXJTaGFkb3dDb250ZW50T2ZFbGVtZW50V2l0
aFNoYWRvd0NvbnRlbnQiKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1l
bGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLXRlc3RSZW1vdmVDb250ZW50Ci1QQVNTCi10ZXN0
UmVtb3ZlQ29udGVudFRvUmVjYWxjMQotUEFTUwotdGVzdFJlbW92ZUNvbnRlbnRUb1JlY2FsYzIK
LVBBU1MKLXRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbgotUEFTUwotdGVz
dEFwcGVuZENvbnRlbnQxCi1QQVNTCi10ZXN0QXBwZW5kQ29udGVudDIKLVBBU1MKLXRlc3RBcHBl
bmRDb250ZW50MwotUEFTUwotdGVzdENoYW5nZU9yZGVyT2ZDb250ZW50Ci1QQVNTCi10ZXN0TW92
ZUxpZ2h0Q2hpbGRPdXQKLVBBU1MKLXRlc3RJbnNlcnRCZWZvcmVGYWxsYmFjawotUEFTUwotVEVT
VCBDT01QTEVURUQKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
ZWxlbWVudC1tb3ZlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMyNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c3R5bGU+Ci0vKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVu
ZGVyTGF5ZXIgKi8KLS5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQot
LnNwYW4gewotICAgIGRpc3BsYXk6IGJveGVkLWlubGluZTsKLSAgICBtYXJnaW46IDJweDsKLSAg
ICBib3JkZXI6IHNvbGlkOwotfQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
c2hhZG93LXRlc3QtZHJpdmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0
UmVtb3ZlQ29udGVudChjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3Qu
aW5uZXJIVE1MID0gIjxzcGFuPkxJR0hUPC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93
IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3Bhbics
ICdGQUxMQkFDSycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJv
b3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwot
ICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0
dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rp
b24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7
Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicp
LmlubmVySFRNTCA9ICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48
L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJv
b3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdFJlbW92ZUNvbnRlbnRUb1JlY2FsYzEoY2FsbElmRG9uZSkgewotICAgIHZh
ciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUg
bGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hU
IDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0
cmVlLgotICAgIHZhciBjb250ZW50MSA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnLCAn
RkFMTEJBQ0snKTsKLSAgICB2YXIgY29udGVudDIgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgn
c3BhbicsICdGQUxMQkFDSycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dS
b290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JF
IikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICBzci5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoIk1JRCIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50Mik7
Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQo
cm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50MSwgY2FsbElmRG9u
ZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50MS5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvbnRlbnQxKTsKLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+
QkVGT1JFPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuPkxJ
R0hUIDI8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJ
ZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KShyb290LCBjb250ZW50MSwgY2FsbElmRG9uZSk7
Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVu
dFRvUmVjYWxjMihjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5u
ZXJIVE1MID0gIjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MxJz5MSUdIVCAyPC9z
cGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQxID0g
Y3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5jMScsICdGQUxMQkFDSycpOwotICAgIHZhciBjb250
ZW50MiA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAg
dmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQo
Y29udGVudDEpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiTUlEIikp
OwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQyKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1
bmN0aW9uKHJvb3QsIGNvbnRlbnQxLCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIGNvbnRlbnQxLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29u
dGVudDEpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250
YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9z
cGFuPjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwv
c3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAg
IH0pKHJvb3QsIGNvbnRlbnQxLCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbihj
YWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxz
cGFuPkxJR0hUPC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFy
IGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicpOwotICAgIHZhciBzciA9
IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQp
OwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxk
KHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9u
ZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50LnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7Ci0gICAgICAgICAgICByZW1vdmVBbGxDaGls
ZHJlbihyb290KTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3Qt
Y29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkFG
VEVSPC9zcGFuPjwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07
Ci0gICAgfSkocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYs
IDApOwotfQotCi1mdW5jdGlvbiB0ZXN0QXBwZW5kQ29udGVudDEoY2FsbElmRG9uZSkgewotICAg
IHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVh
dGUgbGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3Bhbj5MSUdIVDwvc3Bhbj4i
OwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBzciA9IGludGVybmFscy5l
bnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgi
QUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY2Fs
bElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB2YXIg
Y29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0g
ICAgICAgICAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAg
ICAgICAgICAgIHNyLmluc2VydEJlZm9yZShjb250ZW50LCBzci5sYXN0Q2hpbGQpOwotICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhU
TUwgPSAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PFNQQU4+TElHSFQ8L3NwYW4+PHNwYW4+QUZU
RVI8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsK
LSAgICB9KShyb290LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3RBcHBlbmRDb250ZW50MihjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0
cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xh
c3M9J2MyJz5MSUdIVCAyPC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0g
ICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIg
ZiA9IChmdW5jdGlvbihyb290LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50MSA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0
KCcuYzInLCAnRkFMTEJBQ0snKTsKLSAgICAgICAgICAgIHZhciBjb250ZW50MiA9IGNyZWF0ZUNv
bnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAgICAgICAgICB2YXIgc3Ig
PSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIHNyLmluc2Vy
dEJlZm9yZShjb250ZW50MSwgc3IubGFzdENoaWxkKTsKLSAgICAgICAgICAgIHNyLmluc2VydEJl
Zm9yZShjb250ZW50Miwgc3IubGFzdENoaWxkKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVG
T1JFPC9zcGFuPjxzcGFuPkxJR0hUIDI8L3NwYW4+PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5B
RlRFUjwvc3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9
OwotICAgIH0pKHJvb3QsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0K
LQotZnVuY3Rpb24gdGVzdEFwcGVuZENvbnRlbnQzKGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgcm9v
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0
IHRyZWUuCi0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNwYW4+TElHSFQgMTwvc3Bhbj48c3BhbiBj
bGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4K
LSAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICB2YXIg
bWlkID0gY3JlYXRlU3BhbldpdGhUZXh0KCJNSUQiKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChtaWQpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzInLCAnRkFMTEJBQ0sn
KSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hp
bGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBtaWQsIGNhbGxJZkRvbmUp
IHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGNvbnRlbnQg
PSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdGQUxMQkFDSycpOwotICAgICAgICAg
ICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgICAgICAg
ICBzci5pbnNlcnRCZWZvcmUoY29udGVudCwgbWlkKTsKLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgICAg
ICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5M
SUdIVCAyPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5GQUxMQkFDSzwvc3Bhbj48c3Bhbj5B
RlRFUjwvc3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9
OwotICAgIH0pKHJvb3QsIG1pZCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDAp
OwotfQotCi1mdW5jdGlvbiB0ZXN0Q2hhbmdlT3JkZXJPZkNvbnRlbnQoY2FsbElmRG9uZSkgewot
ICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBD
cmVhdGUgbGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3BhbiBjbGFzcz0nYzEn
PkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNo
YWRvdyB0cmVlLgotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3Qp
OwotICAgIHZhciBjb250ZW50MSA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnLCAnRkFM
TEJBQ0snKTsKLSAgICB2YXIgY29udGVudDIgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3Bh
bicsICdGQUxMQkFDSycpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgi
QkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICBzci5hcHBlbmRD
aGlsZChjb250ZW50Mik7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJB
RlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVy
JykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250
ZW50MSwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAg
ICAgIHNyLnJlbW92ZUNoaWxkKGNvbnRlbnQxKTsKLSAgICAgICAgICAgIHNyLmluc2VydEJlZm9y
ZShjb250ZW50MSwgc3IubGFzdENoaWxkKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgICAgICAgICAi
PGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PFNQQU4+TElHSFQgMTwvc3Bhbj48c3Bhbj5MSUdIVCAy
PC9zcGFuPjxzcGFuPkZBTExCQUNLPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0g
ICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVu
dDEsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24g
dGVzdE1vdmVMaWdodENoaWxkT3V0KGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0g
ICAgdmFyIG4xID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgbjEuc2V0QXR0
cmlidXRlKCdpZCcsICduMScpOwotICAgIG4xLmlubmVySFRNTCA9ICI8c3BhbiBpZD0nbGlnaHQx
Jz5MSUdIVCAxPC9zcGFuPjxzcGFuPkxJR0hUIDI8L3NwYW4+IjsKLSAgICB2YXIgbjIgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBuMi5zZXRBdHRyaWJ1dGUoJ2lkJywgJ24y
Jyk7Ci0KLSAgICByb290LmFwcGVuZENoaWxkKG4xKTsKLSAgICByb290LmFwcGVuZENoaWxkKG4y
KTsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZSBpbiAnbjEnCi0gICAgdmFyIHNyID0gaW50
ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QobjEpOwotICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29u
dGVudFdpdGhTZWxlY3QoJ3NwYW4nLCAnRkFMTEJBQ0snKTsKLSAgICBzci5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50
KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwotCi0g
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGls
ZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIG4yLCBjYWxsSWZEb25lKSB7
Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHZhciBlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2xpZ2h0MScpOwotICAgICAgICAgICAgZS5wYXJlbnROb2RlLnJl
bW92ZUNoaWxkKGUpOwotICAgICAgICAgICAgbjIuYXBwZW5kQ2hpbGQoZSk7Ci0KLSAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1M
ID0KLSAgICAgICAgICAgICAgICAiPGRpdj48ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5M
SUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+TElHSFQgMTwv
c3Bhbj48L2Rpdj48L2Rpdj4iCi0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07
Ci0gICAgfSkocm9vdCwgbjIsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsK
LX0KLQotZnVuY3Rpb24gdGVzdEluc2VydEJlZm9yZUZhbGxiYWNrKGNhbGxJZkRvbmUpIHsKLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9
Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5IT0dFPC9zcGFuPjxzcGFu
PkZBTExCQUNLPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAg
dmFyIHNwYW4xID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHZhciByb290
ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qoc3BhbjEpOwotICAgIHJvb3QuYXBwZW5kQ2hp
bGQoY3JlYXRlQ29udGVudFdpdGhUZXh0KCJGQUxMQkFDSyIpKTsKLQotICAgIHRhcmdldC5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRScpKTsKLSAgICB0YXJnZXQuYXBwZW5k
Q2hpbGQoc3BhbjEpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0FGVEVSJykpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBzcGFuMSwgY2FsbElm
RG9uZSkgeyByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUo
Y3JlYXRlU3BhbldpdGhUZXh0KCdIT0dFJyksIHNwYW4xKTsKLSAgICAgICAgY2FsbElmRG9uZSgp
OwotICAgIH07fSkodGFyZ2V0LCBzcGFuMSwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0
KGYsIDApOwotfQotCi12YXIgdGVzdEZ1bmNzID0gWwotICAgIHRlc3RSZW1vdmVDb250ZW50LAot
ICAgIHRlc3RSZW1vdmVDb250ZW50VG9SZWNhbGMxLAotICAgIHRlc3RSZW1vdmVDb250ZW50VG9S
ZWNhbGMyLAotICAgIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbiwKLSAg
ICB0ZXN0QXBwZW5kQ29udGVudDEsCi0gICAgdGVzdEFwcGVuZENvbnRlbnQyLAotICAgIHRlc3RB
cHBlbmRDb250ZW50MywKLSAgICB0ZXN0Q2hhbmdlT3JkZXJPZkNvbnRlbnQsCi0gICAgdGVzdE1v
dmVMaWdodENoaWxkT3V0LAotICAgIHRlc3RJbnNlcnRCZWZvcmVGYWxsYmFjawotXTsKLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImRvVGVzdCh0ZXN0RnVuY3MpIj4KLQotPGRp
diBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08ZGl2IGlk
PSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNv
bnNvbGUiPjwvcHJlPgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LW91dHNpZGUtc2hhZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjEgKzAsMCBAQAotSFRNTENvbnRlbnRFbGVt
ZW50IHNob3VsZCBiZSBhYmxlIHRvIHN1cnZpdmUgZXZlbiBvdXRzaWRlIHNoYWRvdy4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLTxkaXY+PGNvbnRlbnQ+PC9jb250ZW50PjwvZGl2
PgotUEFTUyB0YXJnZXRSZW5kZXJUcmVlIGlzIGNvbXBhcmlzb25SZW5kZXJUcmVlCi08ZGl2Pjxj
b250ZW50PkhlcmUgaXMgYSB0ZXh0LjwvY29udGVudD48L2Rpdj4KLVBBU1MgdGFyZ2V0UmVuZGVy
VHJlZSBpcyBjb21wYXJpc29uUmVuZGVyVHJlZQotPGRpdj48Y29udGVudD48ZGl2PkhlcmUgaXMg
YSA8L2Rpdj48ZGl2PnNlcmllcyBvZjwvZGl2PjxkaXY+YmxvY2tzPC9kaXY+PC9jb250ZW50Pjwv
ZGl2PgotUEFTUyB0YXJnZXRSZW5kZXJUcmVlIGlzIGNvbXBhcmlzb25SZW5kZXJUcmVlCi08ZGl2
Pjxjb250ZW50PjxzcGFuPkhlcmUgaXMgYTxzcGFuPjxzcGFuPnNlcmllcyBvZjwvc3Bhbj48c3Bh
bj5pbmxpbmVzLjwvc3Bhbj48L2NvbnRlbnQ+PC9kaXY+Ci1QQVNTIHRhcmdldFJlbmRlclRyZWUg
aXMgY29tcGFyaXNvblJlbmRlclRyZWUKLTxkaXY+PGNvbnRlbnQ+SGVyZSBpcyBhIDxjb250ZW50
Pm5lc3RlZCBjb250ZW50PC9jb250ZW50PiBpbnNpZGUgY29udGVudC48L2NvbnRlbnQ+PC9kaXY+
Ci1QQVNTIHRhcmdldFJlbmRlclRyZWUgaXMgY29tcGFyaXNvblJlbmRlclRyZWUKLTxkaXY+PGNv
bnRlbnQ+SGVyZSBpcyBhIDxkaXY+YmxvY2sgYW5kIDxjb250ZW50Pm5lc3RlZCBjb250ZW50PC9j
b250ZW50PiBpbnNpZGUgdGhlIGJsb2NrPC9kaXY+LjwvY29udGVudD48L2Rpdj4KLVBBU1MgdGFy
Z2V0UmVuZGVyVHJlZSBpcyBjb21wYXJpc29uUmVuZGVyVHJlZQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUtZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1l
bGVtZW50LW91dHNpZGUtc2hhZG93LXN0eWxlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lk
ZS1zaGFkb3ctc3R5bGUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1zcGFuIHsKLSAg
ICBjb2xvcjogYmx1ZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdj4KLSAg
ICA8c3Bhbj5TaG91bGQgYmUgY29sb3JlZCBibHVlLjwvc3Bhbj4KLSAgPC9kaXY+Ci0gIDxkaXY+
Ci0gICAgPGRpdj5TaG91bGQgaGF2ZSBubyBjb29sIGNvbG9yLjwvZGl2PgotICAgIDxkaXY+U2hv
dWxkIGhhdmUgbm8gY29vbCBjb2xvciBlaXRoZXIuPC9kaXY+Ci0gIDwvZGl2PgotPC9ib2R5PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRl
LXNoYWRvdy1zdHlsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1v
dXRzaWRlLXNoYWRvdy1zdHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWNvbnRlbnQgewotICAg
IGNvbG9yOiBibHVlOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICA8ZGl2PgotICAg
IDxjb250ZW50PlNob3VsZCBiZSBjb2xvcmVkIGJsdWUuPC9jb250ZW50PgotICA8L2Rpdj4KLSAg
PGRpdj4KLSAgICA8ZGl2IGlkPSJob3N0V2l0aENoaWxkIj5TaG91bGQgaGF2ZSBubyBjb29sIGNv
bG9yLjwvZGl2PgotICAgIDxjb250ZW50IGlkPSJ0b0JlTW92ZWQiPlNob3VsZCBoYXZlIG5vIGNv
b2wgY29sb3IgZWl0aGVyLjwvY29udGVudD4KLSAgICA8ZGl2IGlkPSJob3N0RW1wdHkiPjwvZGl2
PgotICA8L2Rpdj4KLTxzY3JpcHQ+Ci0vLyBFbnN1cmVzIHRoYXQgZGlzdHJpYnV0ZWQgc2hhZG93
IGNoaWxkIGlzbid0IGVmZmVjdGVkIGJ5IHRoZSBzdHlsZS4KLXZhciBob3N0V2l0aENoaWxkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3RXaXRoQ2hpbGQiKTsKLXZhciBzaGFkb3dGb3JI
b3N0V2l0aENoaWxkID0gaG9zdFdpdGhDaGlsZC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1z
aGFkb3dGb3JIb3N0V2l0aENoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImNvbnRlbnQiKSk7Ci0KLS8vIEFsc28gZW5zdXJlcyB0aGF0IGR5bmFtaWNhbGx5IG1vdmVkIDxj
b250ZW50PiBlbGVtZW50cyBkbyB3b3JrLgotdmFyIGhvc3RFbXB0eSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJob3N0RW1wdHkiKTsKLXZhciBzaGFkb3dGb3JIb3N0RW1wdHkgPSBob3N0RW1w
dHkud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Rm9ySG9zdEVtcHR5LmFwcGVuZENo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b0JlTW92ZWQiKSk7Ci0KLTwvc2NyaXB0Pgot
PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVu
dC1vdXRzaWRlLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRz
aWRlLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU1ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLQotPGRpdiBpZD0idGFyZ2V0Q29udGFpbmVyIiBzdHls
ZT0icG9zaXRpb246IHJlbGF0aXZlOyI+PC9kaXY+Ci08ZGl2IGlkPSJjb21wYXJpc29uQ29udGFp
bmVyIiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+PC9kaXY+Ci0KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD48IS0t
Ci1kZXNjcmlwdGlvbigiSFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBiZSBhYmxlIHRvIHN1cnZp
dmUgZXZlbiBvdXRzaWRlIHNoYWRvdy4iKTsKLQotZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVyTGlu
ZXModGV4dCkKLXsKLSAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCJcbiIpOwotICAgIGxpbmVz
LnNwbGljZSgwLCAyKTsKLSAgICByZXR1cm4gbGluZXMuam9pbigiXG4iKTsKLX0KLQotdmFyIGNh
c2VzID0gWwotICAgIFsiPGRpdj48Y29udGVudD48L2NvbnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxk
aXY+PHVua25vd24+PC91bmtub3duPjwvZGl2PiJdLAotICAgIFsiPGRpdj48Y29udGVudD5IZXJl
IGlzIGEgdGV4dC48L2NvbnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxkaXY+PHVua25vd24+SGVyZSBp
cyBhIHRleHQuPC91bmtub3duPjwvZGl2PiJdLAotICAgIFsiPGRpdj48Y29udGVudD48ZGl2Pkhl
cmUgaXMgYSA8L2Rpdj48ZGl2PnNlcmllcyBvZjwvZGl2PjxkaXY+YmxvY2tzPC9kaXY+PC9jb250
ZW50PjwvZGl2PiIsCi0gICAgICI8ZGl2Pjx1bmtub3duPjxkaXY+SGVyZSBpcyBhIDwvZGl2Pjxk
aXY+c2VyaWVzIG9mPC9kaXY+PGRpdj5ibG9ja3M8L2Rpdj48L3Vua25vd24+PC9kaXY+Il0sCi0g
ICAgWyI8ZGl2Pjxjb250ZW50PjxzcGFuPkhlcmUgaXMgYTxzcGFuPjxzcGFuPnNlcmllcyBvZjwv
c3Bhbj48c3Bhbj5pbmxpbmVzLjwvc3Bhbj48L2NvbnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxkaXY+
PHVua25vd24+PHNwYW4+SGVyZSBpcyBhPHNwYW4+PHNwYW4+c2VyaWVzIG9mPC9zcGFuPjxzcGFu
PmlubGluZXMuPC9zcGFuPjwvdW5rbm93bj48L2Rpdj4iXSwKLSAgICBbIjxkaXY+PGNvbnRlbnQ+
SGVyZSBpcyBhIDxjb250ZW50Pm5lc3RlZCBjb250ZW50PC9jb250ZW50PiBpbnNpZGUgY29udGVu
dC48L2NvbnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxkaXY+PHVua25vd24+SGVyZSBpcyBhIDx1bmtu
b3duPm5lc3RlZCBjb250ZW50PC91bmtub3duPiBpbnNpZGUgY29udGVudC48L3Vua25vd24+PC9k
aXY+Il0sCi0gICAgWyI8ZGl2Pjxjb250ZW50PkhlcmUgaXMgYSA8ZGl2PmJsb2NrIGFuZCA8Y29u
dGVudD5uZXN0ZWQgY29udGVudDwvY29udGVudD4gaW5zaWRlIHRoZSBibG9jazwvZGl2Pi48L2Nv
bnRlbnQ+PC9kaXY+IiwKLSAgICAgIjxkaXY+PHVua25vd24+SGVyZSBpcyBhIDxkaXY+YmxvY2sg
YW5kIDx1bmtub3duPm5lc3RlZCBjb250ZW50PC91bmtub3duPiBpbnNpZGUgdGhlIGJsb2NrPC9k
aXY+LjwvdW5rbm93bj48L2Rpdj4iXQotXTsKLQotdmFyIHRhcmdldENvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRDb250YWluZXIiKTsKLXZhciBjb21wYXJpc29uQ29u
dGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBhcmlzb25Db250YWluZXIiKTsK
LQotZm9yICh2YXIgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7ICsraSkgewotICAgIHZhciB0YXJn
ZXRNYXJrdXAgPSBjYXNlc1tpXVswXTsKLSAgICB2YXIgZXhwZWN0ZWRNYXJrdXAgPSBjYXNlc1tp
XVsxXTsKLQotICAgIHRhcmdldENvbnRhaW5lci5pbm5lckhUTUwgPSB0YXJnZXRNYXJrdXA7Ci0g
ICAgY29tcGFyaXNvbkNvbnRhaW5lci5pbm5lckhUTUwgPSBleHBlY3RlZE1hcmt1cDsKLSAgICB0
YXJnZXRSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMod2luZG93LmludGVybmFscy5l
bGVtZW50UmVuZGVyVHJlZUFzVGV4dCh0YXJnZXRDb250YWluZXIpKTsKLSAgICB0YXJnZXRSZW5k
ZXJUcmVlID0gdGFyZ2V0UmVuZGVyVHJlZS5yZXBsYWNlKC9DT05URU5UL2csICJVTktOT1dOIik7
Ci0gICAgY29tcGFyaXNvblJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh3aW5kb3cu
aW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGNvbXBhcmlzb25Db250YWluZXIpKTsK
LSAgICBkZWJ1Zyhlc2NhcGVIVE1MKHRhcmdldE1hcmt1cCkpOwotICAgIHNob3VsZEJlKCJ0YXJn
ZXRSZW5kZXJUcmVlIiwgImNvbXBhcmlzb25SZW5kZXJUcmVlIik7Ci19Ci0KLXRhcmdldENvbnRh
aW5lci5pbm5lckhUTUwgPSBjb21wYXJpc29uQ29udGFpbmVyLmlubmVySFRNTCA9ICIiOwotCi0t
LT48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXJlbmRl
cmVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtcmVuZGVyZXJzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxODIgKzAsMCBAQAotVGhpcyB0ZXN0IGNvbXBhcmVzIGEgc2hhZG93LWJh
c2VkIHJlbmRlciB0cmVlIHdpdGggb25lIGZvciBhIHJlZmVyZW5jZSBET00gdHJlZS4KLU5vdGUg
dGhhdCB0aGlzIHRlc3Qgb25seSBydW5zIG9uIERSVC4KLVBBU1NbMCwwXTogY29udGVudD08ZGl2
Lz4gc2hhZG93PTxjb250ZW50Lz4KLVBBU1NbMCwxXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxk
aXYvPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbMCwyXTogY29udGVudD08ZGl2Lz4gc2hhZG93PTxk
aXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzAsM106IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08
c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbMCw0XTogY29udGVudD08ZGl2Lz4gc2hhZG93
PTxzcGFuLz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzAsNV06IGNvbnRlbnQ9PGRpdi8+IHNoYWRv
dz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzAsNl06IGNvbnRlbnQ9PGRpdi8+IHNoYWRv
dz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1swLDddOiBjb250ZW50PTxkaXYvPiBzaGFk
b3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzAsOF06IGNvbnRlbnQ9PGRpdi8+IHNo
YWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1swLDldOiBjb250ZW50PTxkaXYvPiBz
aGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbMCwxMF06IGNvbnRl
bnQ9PGRpdi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KLVBBU1Nb
MCwxMV06IGNvbnRlbnQ9PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8
c3Bhbi8+Ci1QQVNTWzAsMTJdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNv
bnRlbnQvPiN0ZXh0PGRpdi8+Ci1QQVNTWzAsMTNdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PGRp
dj48Y29udGVudC8+PC9kaXY+Ci1QQVNTWzAsMTRdOiBjb250ZW50PTxkaXYvPiBzaGFkb3c9PHNw
YW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbMSwwXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFk
b3c9PGNvbnRlbnQvPgotUEFTU1sxLDFdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2
Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzEsMl06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93
PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzEsM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4g
c2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1sxLDRdOiBjb250ZW50PSN0ZXh0
PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxLDVdOiBjb250ZW50
PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzEsNl06IGNv
bnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzEs
N106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgot
UEFTU1sxLDhdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxk
aXYvPgotUEFTU1sxLDldOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxj
b250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1sxLDEwXTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFk
b3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzEsMTFdOiBjb250ZW50
PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1Q
QVNTWzEsMTJdOiBjb250ZW50PSN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVu
dC8+I3RleHQ8ZGl2Lz4KLVBBU1NbMSwxM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4gc2hhZG93PTxk
aXY+PGNvbnRlbnQvPjwvZGl2PgotUEFTU1sxLDE0XTogY29udGVudD0jdGV4dDxkaXYvPiBzaGFk
b3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbMiwwXTogY29udGVudD08ZGl2Lz4jdGV4
dCBzaGFkb3c9PGNvbnRlbnQvPgotUEFTU1syLDFdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRv
dz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzIsMl06IGNvbnRlbnQ9PGRpdi8+I3RleHQg
c2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzIsM106IGNvbnRlbnQ9PGRpdi8+
I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1syLDRdOiBjb250ZW50
PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1syLDVdOiBj
b250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzIs
Nl06IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1Q
QVNTWzIsN106IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNw
YW4vPgotUEFTU1syLDhdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRl
bnQvPjxkaXYvPgotUEFTU1syLDldOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Lz4j
dGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1syLDEwXTogY29udGVudD08ZGl2Lz4jdGV4
dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzIsMTFdOiBj
b250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bh
bi8+Ci1QQVNTWzIsMTJdOiBjb250ZW50PTxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8
Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbMiwxM106IGNvbnRlbnQ9PGRpdi8+I3RleHQgc2hh
ZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2PgotUEFTU1syLDE0XTogY29udGVudD08ZGl2Lz4jdGV4
dCBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbMywwXTogY29udGVudD0jdGV4
dDxkaXYvPiN0ZXh0IHNoYWRvdz08Y29udGVudC8+Ci1QQVNTWzMsMV06IGNvbnRlbnQ9I3RleHQ8
ZGl2Lz4jdGV4dCBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1szLDJdOiBjb250
ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNT
WzMsM106IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48
c3Bhbi8+Ci1QQVNTWzMsNF06IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4v
Pjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbMyw1XTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNo
YWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzMsNl06IGNvbnRlbnQ9I3RleHQ8ZGl2
Lz4jdGV4dCBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbMyw3XTogY29udGVu
dD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1Nb
Myw4XTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxk
aXYvPgotUEFTU1szLDldOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93PTxkaXYvPiN0
ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+Ci1QQVNTWzMsMTBdOiBjb250ZW50PSN0ZXh0PGRpdi8+
I3RleHQgc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgotUEFTU1szLDEx
XTogY29udGVudD0jdGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+Ci1QQVNTWzMsMTJdOiBjb250ZW50PSN0ZXh0PGRpdi8+I3RleHQgc2hhZG93
PTxzcGFuLz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1szLDEzXTogY29udGVudD0j
dGV4dDxkaXYvPiN0ZXh0IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4KLVBBU1NbMywxNF06
IGNvbnRlbnQ9I3RleHQ8ZGl2Lz4jdGV4dCBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4K
LVBBU1NbNCwwXTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08Y29udGVudC8+Ci1QQVNTWzQsMV06
IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s0LDJd
OiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzQs
M106IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNT
WzQsNF06IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48ZGl2Lz4KLVBB
U1NbNCw1XTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1Q
QVNTWzQsNl06IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4K
LVBBU1NbNCw3XTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFu
Lz4KLVBBU1NbNCw4XTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxk
aXYvPgotUEFTU1s0LDldOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYvPiN0ZXh0PGNvbnRl
bnQvPiN0ZXh0PGRpdi8+Ci1QQVNTWzQsMTBdOiBjb250ZW50PTxzcGFuLz4gc2hhZG93PTxkaXYv
PiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PHNwYW4vPgotUEFTU1s0LDExXTogY29udGVudD08c3Bhbi8+
IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzQsMTJdOiBj
b250ZW50PTxzcGFuLz4gc2hhZG93PTxzcGFuLz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgot
UEFTU1s0LDEzXTogY29udGVudD08c3Bhbi8+IHNoYWRvdz08ZGl2Pjxjb250ZW50Lz48L2Rpdj4K
LVBBU1NbNCwxNF06IGNvbnRlbnQ9PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bh
bj4KLVBBU1NbNSwwXTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxjb250ZW50Lz4KLVBB
U1NbNSwxXTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2
Lz4KLVBBU1NbNSwyXTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50
Lz48c3Bhbi8+Ci1QQVNTWzUsM106IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+
PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbNSw0XTogY29udGVudD0jdGV4dDxzcGFuLz4gc2hhZG93
PTxzcGFuLz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzUsNV06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+
IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzUsNl06IGNvbnRlbnQ9I3RleHQ8
c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s1LDddOiBjb250ZW50
PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzUsOF06
IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFT
U1s1LDldOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8ZGl2Lz4KLVBBU1NbNSwxMF06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2
Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KLVBBU1NbNSwxMV06IGNvbnRlbnQ9I3RleHQ8
c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzUs
MTJdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0
ZXh0PGRpdi8+Ci1QQVNTWzUsMTNdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdj48
Y29udGVudC8+PC9kaXY+Ci1QQVNTWzUsMTRdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiBzaGFkb3c9
PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbNiwwXTogY29udGVudD08c3Bhbi8+I3RleHQg
c2hhZG93PTxjb250ZW50Lz4KLVBBU1NbNiwxXTogY29udGVudD08c3Bhbi8+I3RleHQgc2hhZG93
PTxkaXYvPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbNiwyXTogY29udGVudD08c3Bhbi8+I3RleHQg
c2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzYsM106IGNvbnRlbnQ9PHNwYW4v
PiN0ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4KLVBBU1NbNiw0XTogY29udGVu
dD08c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzYsNV06
IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNT
WzYsNl06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4v
PgotUEFTU1s2LDddOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4vPjxjb250ZW50
Lz48c3Bhbi8+Ci1QQVNTWzYsOF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+
PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s2LDldOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9
PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbNiwxMF06IGNvbnRlbnQ9PHNw
YW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4KLVBBU1Nb
NiwxMV06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+Ci1QQVNTWzYsMTJdOiBjb250ZW50PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNw
YW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+Ci1QQVNTWzYsMTNdOiBjb250ZW50PTxzcGFu
Lz4jdGV4dCBzaGFkb3c9PGRpdj48Y29udGVudC8+PC9kaXY+Ci1QQVNTWzYsMTRdOiBjb250ZW50
PTxzcGFuLz4jdGV4dCBzaGFkb3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbNywwXTog
Y29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PGNvbnRlbnQvPgotUEFTU1s3LDFdOiBj
b250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1Q
QVNTWzcsMl06IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50
Lz48c3Bhbi8+Ci1QQVNTWzcsM106IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxz
cGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s3LDRdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0
ZXh0IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s3LDVdOiBjb250ZW50PSN0
ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzcsNl06
IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+
Ci1QQVNTWzcsN106IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxzcGFuLz48Y29u
dGVudC8+PHNwYW4vPgotUEFTU1s3LDhdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRv
dz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s3LDldOiBjb250ZW50PSN0ZXh0PHNwYW4v
PiN0ZXh0IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1s3LDEw
XTogY29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+Ci1QQVNTWzcsMTFdOiBjb250ZW50PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRv
dz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzcsMTJdOiBjb250ZW50
PSN0ZXh0PHNwYW4vPiN0ZXh0IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2
Lz4KLVBBU1NbNywxM106IGNvbnRlbnQ9I3RleHQ8c3Bhbi8+I3RleHQgc2hhZG93PTxkaXY+PGNv
bnRlbnQvPjwvZGl2PgotUEFTU1s3LDE0XTogY29udGVudD0jdGV4dDxzcGFuLz4jdGV4dCBzaGFk
b3c9PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbOCwwXTogY29udGVudD08c3Bhbi8+I3Rl
eHQ8ZGl2Lz4gc2hhZG93PTxjb250ZW50Lz4KLVBBU1NbOCwxXTogY29udGVudD08c3Bhbi8+I3Rl
eHQ8ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbOCwyXTogY29udGVu
dD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNT
WzgsM106IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQv
PjxzcGFuLz4KLVBBU1NbOCw0XTogY29udGVudD08c3Bhbi8+I3RleHQ8ZGl2Lz4gc2hhZG93PTxz
cGFuLz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzgsNV06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRp
di8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzgsNl06IGNvbnRlbnQ9PHNw
YW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s4LDdd
OiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bh
bi8+Ci1QQVNTWzgsOF06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bhbi8+
PGNvbnRlbnQvPjxkaXYvPgotUEFTU1s4LDldOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBz
aGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbOCwxMF06IGNvbnRl
bnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxz
cGFuLz4KLVBBU1NbOCwxMV06IGNvbnRlbnQ9PHNwYW4vPiN0ZXh0PGRpdi8+IHNoYWRvdz08c3Bh
bi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzgsMTJdOiBjb250ZW50PTxzcGFu
Lz4jdGV4dDxkaXYvPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+Ci1Q
QVNTWzgsMTNdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9PGRpdj48Y29udGVu
dC8+PC9kaXY+Ci1QQVNTWzgsMTRdOiBjb250ZW50PTxzcGFuLz4jdGV4dDxkaXYvPiBzaGFkb3c9
PHNwYW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbOSwwXTogY29udGVudD08ZGl2Lz4jdGV4dDxz
cGFuLz4gc2hhZG93PTxjb250ZW50Lz4KLVBBU1NbOSwxXTogY29udGVudD08ZGl2Lz4jdGV4dDxz
cGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48ZGl2Lz4KLVBBU1NbOSwyXTogY29udGVudD08
ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzks
M106IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxz
cGFuLz4KLVBBU1NbOSw0XTogY29udGVudD08ZGl2Lz4jdGV4dDxzcGFuLz4gc2hhZG93PTxzcGFu
Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzksNV06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+
IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzksNl06IGNvbnRlbnQ9PGRpdi8+
I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PHNwYW4vPgotUEFTU1s5LDddOiBj
b250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+
Ci1QQVNTWzksOF06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNv
bnRlbnQvPjxkaXYvPgotUEFTU1s5LDldOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFk
b3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbOSwxMF06IGNvbnRlbnQ9
PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFu
Lz4KLVBBU1NbOSwxMV06IGNvbnRlbnQ9PGRpdi8+I3RleHQ8c3Bhbi8+IHNoYWRvdz08c3Bhbi8+
I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzksMTJdOiBjb250ZW50PTxkaXYvPiN0
ZXh0PHNwYW4vPiBzaGFkb3c9PHNwYW4vPiN0ZXh0PGNvbnRlbnQvPiN0ZXh0PGRpdi8+Ci1QQVNT
WzksMTNdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PGRpdj48Y29udGVudC8+
PC9kaXY+Ci1QQVNTWzksMTRdOiBjb250ZW50PTxkaXYvPiN0ZXh0PHNwYW4vPiBzaGFkb3c9PHNw
YW4+PGNvbnRlbnQvPjwvc3Bhbj4KLVBBU1NbMTAsMF06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBz
aGFkb3c9PGNvbnRlbnQvPgotUEFTU1sxMCwxXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRv
dz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzEwLDJdOiBjb250ZW50PTxkaXYvPjxzcGFu
Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzEwLDNdOiBjb250ZW50PTxk
aXYvPjxzcGFuLz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1sxMCw0XTog
Y29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFT
U1sxMCw1XTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRp
di8+Ci1QQVNTWzEwLDZdOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxkaXYvPjxjb250
ZW50Lz48c3Bhbi8+Ci1QQVNTWzEwLDddOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxz
cGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1sxMCw4XTogY29udGVudD08ZGl2Lz48c3Bhbi8+
IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxMCw5XTogY29udGVudD08ZGl2
Lz48c3Bhbi8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1sx
MCwxMF06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+
I3RleHQ8c3Bhbi8+Ci1QQVNTWzEwLDExXTogY29udGVudD08ZGl2Lz48c3Bhbi8+IHNoYWRvdz08
c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzEwLDEyXTogY29udGVudD08
ZGl2Lz48c3Bhbi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBB
U1NbMTAsMTNdOiBjb250ZW50PTxkaXYvPjxzcGFuLz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwv
ZGl2PgotUEFTU1sxMCwxNF06IGNvbnRlbnQ9PGRpdi8+PHNwYW4vPiBzaGFkb3c9PHNwYW4+PGNv
bnRlbnQvPjwvc3Bhbj4KLVBBU1NbMTEsMF06IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9
PGNvbnRlbnQvPgotUEFTU1sxMSwxXTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2
Lz48Y29udGVudC8+PGRpdi8+Ci1QQVNTWzExLDJdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hh
ZG93PTxkaXYvPjxjb250ZW50Lz48c3Bhbi8+Ci1QQVNTWzExLDNdOiBjb250ZW50PTxzcGFuLz48
ZGl2Lz4gc2hhZG93PTxzcGFuLz48Y29udGVudC8+PHNwYW4vPgotUEFTU1sxMSw0XTogY29udGVu
dD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxMSw1
XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08ZGl2Lz48Y29udGVudC8+PGRpdi8+Ci1Q
QVNTWzExLDZdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxkaXYvPjxjb250ZW50Lz48
c3Bhbi8+Ci1QQVNTWzExLDddOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxzcGFuLz48
Y29udGVudC8+PHNwYW4vPgotUEFTU1sxMSw4XTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRv
dz08c3Bhbi8+PGNvbnRlbnQvPjxkaXYvPgotUEFTU1sxMSw5XTogY29udGVudD08c3Bhbi8+PGRp
di8+IHNoYWRvdz08ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPgotUEFTU1sxMSwxMF06
IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PGRpdi8+I3RleHQ8Y29udGVudC8+I3RleHQ8
c3Bhbi8+Ci1QQVNTWzExLDExXTogY29udGVudD08c3Bhbi8+PGRpdi8+IHNoYWRvdz08c3Bhbi8+
I3RleHQ8Y29udGVudC8+I3RleHQ8c3Bhbi8+Ci1QQVNTWzExLDEyXTogY29udGVudD08c3Bhbi8+
PGRpdi8+IHNoYWRvdz08c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4KLVBBU1NbMTEs
MTNdOiBjb250ZW50PTxzcGFuLz48ZGl2Lz4gc2hhZG93PTxkaXY+PGNvbnRlbnQvPjwvZGl2Pgot
UEFTU1sxMSwxNF06IGNvbnRlbnQ9PHNwYW4vPjxkaXYvPiBzaGFkb3c9PHNwYW4+PGNvbnRlbnQv
Pjwvc3Bhbj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtcmVuZGVyZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1yZW5kZXJlcnMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwxNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRl
cmx5aW5nIFJlbmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRp
dmU7Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAg
IHZhciBsaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgbGluZS50ZXh0
Q29udGVudCA9IG1lc3NhZ2U7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5hcHBlbmRDaGlsZChsaW5lKTsKLX0KLQotdmFyIGNvbnRlbnRTb3VyY2VzID0gWwotICAiPGRp
di8+IiwKLSAgIiN0ZXh0PGRpdi8+IiwKLSAgIjxkaXYvPiN0ZXh0IiwKLSAgIiN0ZXh0PGRpdi8+
I3RleHQiLAotCi0gICI8c3Bhbi8+IiwKLSAgIiN0ZXh0PHNwYW4vPiIsCi0gICI8c3Bhbi8+I3Rl
eHQiLAotICAiI3RleHQ8c3Bhbi8+I3RleHQiLAotCi0gICI8c3Bhbi8+I3RleHQ8ZGl2Lz4iLAot
ICAiPGRpdi8+I3RleHQ8c3Bhbi8+IiwKLSAgIjxkaXYvPjxzcGFuLz4iLAotICAiPHNwYW4vPjxk
aXYvPiIKLQotXTsKLQotdmFyIHNoYWRvd1NvdXJjZXMgPSBbCi0gICI8Y29udGVudC8+IiwKLSAg
IjxkaXYvPjxjb250ZW50Lz48ZGl2Lz4iLAotICAiPGRpdi8+PGNvbnRlbnQvPjxzcGFuLz4iLAot
ICAiPHNwYW4vPjxjb250ZW50Lz48c3Bhbi8+IiwKLSAgIjxzcGFuLz48Y29udGVudC8+PGRpdi8+
IiwKLQotICAiPGRpdi8+PGNvbnRlbnQvPjxkaXYvPiIsCi0gICI8ZGl2Lz48Y29udGVudC8+PHNw
YW4vPiIsCi0gICI8c3Bhbi8+PGNvbnRlbnQvPjxzcGFuLz4iLAotICAiPHNwYW4vPjxjb250ZW50
Lz48ZGl2Lz4iLAotCi0gICI8ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxkaXYvPiIsCi0gICI8
ZGl2Lz4jdGV4dDxjb250ZW50Lz4jdGV4dDxzcGFuLz4iLAotICAiPHNwYW4vPiN0ZXh0PGNvbnRl
bnQvPiN0ZXh0PHNwYW4vPiIsCi0gICI8c3Bhbi8+I3RleHQ8Y29udGVudC8+I3RleHQ8ZGl2Lz4i
LAotCi0gICI8ZGl2Pjxjb250ZW50Lz48L2Rpdj4iLAotICAiPHNwYW4+PGNvbnRlbnQvPjwvc3Bh
bj4iCi1dOwotCi1mdW5jdGlvbiBjcmVhdGVUcmVlRnJvbShodG1sKQotewotICAgIHZhciBlbmhh
bmNlZEh0bWwgPSBodG1sLnJlcGxhY2UoLzxzcGFuXC8+L2csICI8c3Bhbj4gPC9zcGFuPiIpLnJl
cGxhY2UoLzxkaXZcLz4vZywgIjxkaXY+IDwvZGl2PiIpLnJlcGxhY2UoLzxjb250ZW50XC8+L2cs
ICI8Y29udGVudD48L2NvbnRlbnQ+IikucmVwbGFjZSgvI3RleHQvZywgIiAiKTsKLSAgICB2YXIg
cm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJsb2NrcXVvdGUiKTsKLSAgICByb290Lmlu
bmVySFRNTCA9IGVuaGFuY2VkSHRtbDsKLSAgICB2YXIgY29udGVudFBsYWNlaG9sZGVyID0gcm9v
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiQ09OVEVOVCIpWzBdOwotICAgIGlmIChjb250ZW50UGxh
Y2Vob2xkZXIpIHsKLSAgICAgICAgdmFyIGNvbnRlbnRQYXJlbnQgPSBjb250ZW50UGxhY2Vob2xk
ZXIucGFyZW50Tm9kZTsKLSAgICAgICAgY29udGVudFBhcmVudC5yZXBsYWNlQ2hpbGQod2luZG93
LmludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpLCBjb250ZW50UGxhY2Vob2xkZXIpOwot
ICAgIH07Ci0KLSAgICByZXR1cm4gcm9vdDsKLX0KLQotZnVuY3Rpb24gbW92ZUNoaWxkcmVuKGZy
b21QYXJlbnQsIHRvUGFyZW50KQotewotICAgIHZhciBjaGlsZHJlbiA9IGZyb21QYXJlbnQuY2hp
bGROb2RlczsKLSAgICB3aGlsZSAoZnJvbVBhcmVudC5maXJzdENoaWxkKQotICAgICAgICB0b1Bh
cmVudC5hcHBlbmRDaGlsZChmcm9tUGFyZW50LmZpcnN0Q2hpbGQpOwotfQotCi1mdW5jdGlvbiBj
cmVhdGVUYXJnZXRUcmVlKGNvbnRlbnRIdG1sLCBzaGFkb3dIdG1sKQotewotICAgIHZhciBjb250
ZW50ID0gY3JlYXRlVHJlZUZyb20oY29udGVudEh0bWwpOwotICAgIHZhciBzaGFkb3cgPSBjcmVh
dGVUcmVlRnJvbShzaGFkb3dIdG1sKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImJsb2NrcXVvdGUiKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5lbnN1
cmVTaGFkb3dSb290KGhvc3QpOwotICAgIG1vdmVDaGlsZHJlbihjb250ZW50LCBob3N0KTsKLSAg
ICBtb3ZlQ2hpbGRyZW4oc2hhZG93LCBzaGFkb3dSb290KTsgCi0gICAgcmV0dXJuIGhvc3Q7Ci19
Ci0KLWZ1bmN0aW9uIGNsZWFudXBDb250YWluZXIoY29udGFpbmVyKQotewotICAgIHZhciBjaGls
ZCA9IGNvbnRhaW5lci5maXJzdENoaWxkOwotICAgIGlmIChjaGlsZCkKLSAgICAgICAgY29udGFp
bmVyLnJlbW92ZUNoaWxkKGNoaWxkKTsKLSAgICBjb250YWluZXIub2Zmc2V0TGVmdDsKLX0KLQot
ZnVuY3Rpb24gdGVzdFdpdGhDb250ZW50QW5kU2hhZG93KGNvbnRlbnRIdG1sLCBzaGFkb3dIdG1s
LCBsYWJlbCkKLXsKLSAgICB2YXIgdGFyZ2V0Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldENvbnRhaW5lciIpOwotICAgIGNsZWFudXBDb250YWluZXIodGFyZ2V0Q29u
dGFpbmVyKTsKLSAgICB2YXIgdGFyZ2V0ID0gY3JlYXRlVGFyZ2V0VHJlZShjb250ZW50SHRtbCwg
c2hhZG93SHRtbCk7Ci0gICAgdGFyZ2V0Q29udGFpbmVyLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0g
ICAgdmFyIHRhcmdldFJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh3aW5kb3cuaW50
ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KHRhcmdldENvbnRhaW5lcikpOwotCi0gICAg
dmFyIHJlZmVyZW5jZUNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVu
Y2VDb250YWluZXIiKTsKLSAgICBjbGVhbnVwQ29udGFpbmVyKHJlZmVyZW5jZUNvbnRhaW5lcik7
Ci0gICAgdmFyIHNlcGFyYXRvciA9ICI8IS0tIC0tPiI7IC8vIFVzZXMgYSBzZXBhcmF0b3IgZm9y
IGtlZXBpbmcgdGV4dCBub2RlIHNlcGFyYXRlLgotICAgIHZhciByZWZlcmVuY2VIdG1sID0gc2hh
ZG93SHRtbC5yZXBsYWNlKCI8Y29udGVudC8+IiwgKHNlcGFyYXRvciArIGNvbnRlbnRIdG1sICsg
c2VwYXJhdG9yKSk7Ci0gICAgdmFyIHJlZmVyZW5jZSA9IGNyZWF0ZVRyZWVGcm9tKHJlZmVyZW5j
ZUh0bWwpOwotICAgIHJlZmVyZW5jZUNvbnRhaW5lci5hcHBlbmRDaGlsZChyZWZlcmVuY2UpOwot
ICAgIHZhciByZWZlcmVuY2VSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMod2luZG93
LmludGVybmFscy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4dChyZWZlcmVuY2VDb250YWluZXIpKTsK
LSAgICBpZiAodGFyZ2V0UmVuZGVyVHJlZSA9PSByZWZlcmVuY2VSZW5kZXJUcmVlKQotICAgICAg
ICBsb2coIlBBU1NbIiArIGxhYmVsICsgIl06IGNvbnRlbnQ9IiArIGNvbnRlbnRIdG1sICsgIiBz
aGFkb3c9IiArIHNoYWRvd0h0bWwpOwotICAgIGVsc2UgewotICAgICAgICBsb2coIkZBSUxbIiAr
IGxhYmVsICsgIl06IGNvbnRlbnQ9IiArIGNvbnRlbnRIdG1sICsgIiBzaGFkb3c9IiArIHNoYWRv
d0h0bWwpOwotICAgICAgICBsb2coIkV4cGVjdGVkOiAoZm9yICIgKyByZWZlcmVuY2UuaW5uZXJI
VE1MICsgIikiKTsKLSAgICAgICAgbG9nKHJlZmVyZW5jZVJlbmRlclRyZWUpOwotICAgICAgICBs
b2coIkFjdHVhbDogKGZvciAiICsgdGFyZ2V0LmlubmVySFRNTCArICIpIik7Ci0gICAgICAgIGxv
Zyh0YXJnZXRSZW5kZXJUcmVlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHJlbW92ZUNvbnRhaW5l
ckxpbmVzKHRleHQpCi17Ci0gICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgiXG4iKTsKLSAgICBs
aW5lcy5zcGxpY2UoMCwgMik7Ci0gICAgcmV0dXJuIGxpbmVzLmpvaW4oIlxuIik7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIGxvZygi
VGhpcyB0ZXN0IGNvbXBhcmVzIGEgc2hhZG93LWJhc2VkIHJlbmRlciB0cmVlIHdpdGggb25lIGZv
ciBhIHJlZmVyZW5jZSBET00gdHJlZS4iKTsKLSAgICBsb2coIk5vdGUgdGhhdCB0aGlzIHRlc3Qg
b25seSBydW5zIG9uIERSVC4iKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29udGVudFNv
dXJjZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzaGFkb3dT
b3VyY2VzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICB2YXIgdGVzdExhYmVsID0gaSArICIs
IiArIGo7Ci0gICAgICAgICAgICB0ZXN0V2l0aENvbnRlbnRBbmRTaGFkb3coY29udGVudFNvdXJj
ZXNbaV0sIHNoYWRvd1NvdXJjZXNbal0sIHRlc3RMYWJlbCk7Ci0gICAgICAgIH0KLSAgICB9IAot
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5zdHlsZS5kaXNwbGF5ID0gIm5v
bmUiOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUuZGlzcGxh
eSA9ICJibG9jayI7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KLTxkaXYgaWQ9InRlc3QiPgotPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0idGFyZ2V0Q29u
dGFpbmVyIj48L2Rpdj4KLTxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9InJlZmVyZW5jZUNvbnRh
aW5lciI+PC9kaXY+Ci08L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiIHN0eWxlPSJkaXNwbGF5OiBu
b25lOyI+PC9wcmU+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVjdC1keW5hbWljLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNl
bGVjdC1keW5hbWljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1zZWxlY3QtZHluYW1pYy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotdGVzdENoYW5nZVNlbGVjdDEK
LVBBU1MKLXRlc3RDaGFuZ2VTZWxlY3QyCi1QQVNTCi10ZXN0Q2hhbmdlU2VsZWN0VG9FbXB0eQot
UEFTUwotdGVzdENoYW5nZVNlbGVjdFRvRmFsbGJhY2sKLVBBU1MKLXRlc3RDaGFuZ2VTZWxlY3RG
cm9tRmFsbGJhY2sKLVBBU1MKLVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LXNlbGVj
dC1keW5hbWljLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWVsZW1lbnQtc2VsZWN0LWR5bmFtaWMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNzkgKzAsMCBAQAotIDwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
dHlsZT4KLS8qIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJM
YXllciAqLwotLmNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0uc3Bh
biB7Ci0gICAgZGlzcGxheTogYm94ZWQtaW5saW5lOwotICAgIG1hcmdpbjogMnB4OwotICAgIGJv
cmRlcjogc29saWQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFk
b3ctdGVzdC1kcml2ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RDaGFu
Z2VTZWxlY3QxKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwv
c3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAg
ICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3Jl
YXRlIGxpZ2h0IHRyZWUuCi0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNwYW4gY2xhc3M9J2MxJz5M
SUdIVCAxPC9zcGFuPjxzcGFuIGNsYXNzPSdjMic+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8g
Q3JlYXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVudFdpdGhT
ZWxlY3QoJy5jMScpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJv
b3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwot
ICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0
dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rp
b24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0JywgJy5jMicpOwot
ICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3QsIGNvbnRl
bnQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24g
dGVzdENoYW5nZVNlbGVjdDIoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+
QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bh
bj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5u
ZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+TElHSFQgMTwvc3Bhbj48c3BhbiBjbGFzcz0nYzIn
PkxJR0hUIDI8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4KLSAgICB2YXIg
Y29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnKTsKLSAgICB2YXIgc3IgPSBp
bnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50KTsK
LSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChy
b290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUp
IHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgY29udGVudC5zZXRB
dHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJyk7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0g
ICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRU
aW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0Q2hhbmdlU2VsZWN0VG9FbXB0eShjYWxs
SWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXIn
KS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TElH
SFQgMTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7
Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAg
Ly8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNwYW4gY2xhc3M9
J2MxJz5MSUdIVCAxPC9zcGFuPjxzcGFuIGNsYXNzPSdjMic+TElHSFQgMjwvc3Bhbj4iOwotCi0g
ICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVu
dFdpdGhTZWxlY3QoJy5jMScpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dS
b290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JF
IikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAo
ZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50LnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0Jyk7
Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29u
dGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlv
biB0ZXN0Q2hhbmdlU2VsZWN0VG9GYWxsYmFjayhjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAi
PGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+RkFMTEJBQ0s8L3NwYW4+PHNwYW4+QUZURVI8
L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRNTCA9
ICI8c3BhbiBjbGFzcz0nYzEnPkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MyJz5MSUdIVCAy
PC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQg
PSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnLmMxJyk7Ci0gICAgY29udGVudC5pbm5lckhUTUwg
PSAiPHNwYW4+RkFMTEJBQ0s8L3NwYW4+IgotCi0gICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3Vy
ZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgc3IuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2
YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJl
dHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxl
Y3QnLCAnZGl2JykKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9
KShyb290LCBjb250ZW50LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3RDaGFuZ2VTZWxlY3RGcm9tRmFsbGJhY2soY2FsbElmRG9uZSkgewot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1M
ID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8L3NwYW4+
PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFy
IHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBs
aWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNsYXNzPSdjMSc+TElHSFQg
MTwvc3Bhbj48c3BhbiBjbGFzcz0nYzInPkxJR0hUIDI8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0
ZSBzaGFkb3cgdHJlZS4KLSAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0
KCdkaXYnKTsKLSAgICBjb250ZW50LmlubmVySFRNTCA9ICI8c3Bhbj5GQUxMQkFDSzwvc3Bhbj4i
Ci0KLSAgICB2YXIgc3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICBz
ci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBl
bmRDaGlsZChjb250ZW50KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
IkFGVEVSIikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWlu
ZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNv
bnRlbnQsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJykKLSAgICAgICAgICAg
IGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KShyb290LCBjb250ZW50LCBjYWxsSWZE
b25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLXZhciB0ZXN0RnVuY3MgPSBbCi0g
ICAgdGVzdENoYW5nZVNlbGVjdDEsCi0gICAgdGVzdENoYW5nZVNlbGVjdDIsCi0gICAgdGVzdENo
YW5nZVNlbGVjdFRvRW1wdHksCi0gICAgdGVzdENoYW5nZVNlbGVjdFRvRmFsbGJhY2ssCi0gICAg
dGVzdENoYW5nZVNlbGVjdEZyb21GYWxsYmFjaywKLV07Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJkb1Rlc3QodGVzdEZ1bmNzKSI+Ci0KLTxkaXYgaWQ9ImFjdHVhbC1jb250
YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgotPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5l
ciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRl
bnQtZWxlbWVudC11c2VyLWFnZW50LXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC11c2VyLWFnZW50LXNo
YWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtdXNlci1hZ2VudC1zaGFkb3ctZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotUEFTUyBwYXJzZWRFbGVtZW50U2hvdWxk
QmVVbmtub3duLnRhZ05hbWUgaXMgJ1dFQktJVFNIQURPV0NPTlRFTlQnCi1QQVNTIDAgPCBwYXJz
ZWRFbGVtZW50U2hvdWxkQmVVbmtub3duLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZign
SFRNTFVua25vd25FbGVtZW50JykgaXMgdHJ1ZQotUEFTUyBjb250ZW50SW51c2VyQWdlbnRTaGFk
b3cudGFnTmFtZSBpcyAnV0VCS0lUU0hBRE9XQ09OVEVOVCcKLVBBU1MgMCA8IGNvbnRlbnRJbnVz
ZXJBZ2VudFNoYWRvdy5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0hUTUxFbGVtZW50
JykgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQt
dXNlci1hZ2VudC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LXVzZXItYWdlbnQtc2hhZG93Lmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQt
dXNlci1hZ2VudC1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PjwhLS0KLShmdW5jdGlvbigpCi17Ci0gICAgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBQYXJzZXIgc2hvdWxkIGJ1aWxkIEhUTUxV
bmtub3duRWxlbWVudCBmb3IgPHdlYmtpdFNoYWRvd0NvbnRlbnQ+LgotICAgIGNvbnRhaW5lciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKLSAgICBjb250YWluZXIuaW5u
ZXJIVE1MID0gIjxkaXY+PHdlYmtpdFNoYWRvd0NvbnRlbnQgaWQ9J3Nob3VsZEJlVW5rbm93bic+
PC93ZWJraXRTaGFkb3dDb250ZW50PjwvZGl2PiI7Ci0gICAgcGFyc2VkRWxlbWVudFNob3VsZEJl
VW5rbm93biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG91bGRCZVVua25vd24iKTsKLSAg
ICBzaG91bGRCZSgicGFyc2VkRWxlbWVudFNob3VsZEJlVW5rbm93bi50YWdOYW1lIiwgIidXRUJL
SVRTSEFET1dDT05URU5UJyIpOwotICAgIHNob3VsZEJlVHJ1ZSgiMCA8IHBhcnNlZEVsZW1lbnRT
aG91bGRCZVVua25vd24uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdIVE1MVW5rbm93
bkVsZW1lbnQnKSIpOwotCi0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICI8ZGV0YWlscyBpZD0n
ZGV0YWlscyc+PHN1bW1hcnk+PC9zdW1tYXJ5PjwvZGV0YWlscz4iOwotICAgIGRldGFpbHMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGV0YWlscyIpOwotCi0gICAgLy8gVGhlIHVzZXIgYWdl
bnQgc2hhZG93IGZvciA8ZGV0YWlscz4gaGFzIEhUTUxDb250ZW50RWxlbWVudCB3aXRoIHRhZ05h
bWUgIndlYmtpdFNoYWRvd0NvbnRlbnQiLgotICAgIC8vIFRoaXMgZWxlbWVudCBzaG91bGQgYmUg
d3JhcHBlZCBhcyBhbiBIVE1MRWxlbWVudCBiZWNhdXNlIGl0IGlzbid0IEhUTUxVbmtub3duRWxl
bWVudCBhbmQKLSAgICAvLyBIVE1MQ29udGVudEVsZW1lbnQgd3JhcHBlciBpcyB1bmF2YWlsYWJs
ZSB1bmxlc3MgU0hBRE9XX0RPTSBpcyBlbmFibGVkLgotICAgIHNoYWRvdyA9IGludGVybmFscy5z
aGFkb3dSb290KGRldGFpbHMpOwotICAgIGNvbnRlbnRJbnVzZXJBZ2VudFNoYWRvdyA9IHNoYWRv
dy5maXJzdENoaWxkOwotICAgIHNob3VsZEJlKCJjb250ZW50SW51c2VyQWdlbnRTaGFkb3cudGFn
TmFtZSIsICInV0VCS0lUU0hBRE9XQ09OVEVOVCciKTsKLSAgICBzaG91bGRCZVRydWUoIjAgPCBj
b250ZW50SW51c2VyQWdlbnRTaGFkb3cuY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdI
VE1MRWxlbWVudCcpIik7Ci19KSgpOwotLS0+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24t
Y29tcGxleC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1jb21wbGV4LWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJv
amVjdGlvbi1jb21wbGV4LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhh
dCBjb250ZW50IGVsZW1lbnQgY2Fubm90IHNlbGVjdCBlbGVtZW50cyBhc3NpZ25lZCB0byBhIHNo
YWRvdyBlbGVtZW50LjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxoMj5BPC9oMj4KLSAg
ICA8ZGl2PkE8L2Rpdj4KLSAgICA8ZGl2PkE8L2Rpdj4KLSAgICA8ZGl2PkE8L2Rpdj4KLSAgICA8
aDI+QjwvaDI+Ci0gICAgPGRpdj5CPC9kaXY+Ci0gICAgPGRpdj5CPC9kaXY+Ci08L2Rpdj4KLQot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9q
ZWN0aW9uLWNvbXBsZXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tY29tcGxleC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tY29t
cGxleC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci0KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgotCi08cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGNvbnRlbnQgZWxlbWVudCBjYW5ub3Qgc2Vs
ZWN0IGVsZW1lbnRzIGFzc2lnbmVkIHRvIGEgc2hhZG93IGVsZW1lbnQuPC9wPgotCi08ZGl2IGlk
PSJob3N0MSI+Ci0gICAgPGRpdiBjbGFzcz0iQSI+QTwvZGl2PgotICAgIDxkaXYgY2xhc3M9IkEi
PkE8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJCIj5CPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iQiI+
QjwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0i
aG9zdDIiPjxjb250ZW50IHNlbGVjdD0iLkEiPjwvY29udGVudD48c2hhZG93Pjwvc2hhZG93Pjxk
aXYgY2xhc3M9IkEiPkE8L2Rpdj48L2Rpdj4nOwotCi12YXIgc2hhZG93Um9vdDIgPSBzaGFkb3dS
b290MS5nZXRFbGVtZW50QnlJZCgnaG9zdDInKS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1z
aGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGRpdj48aDI+QTwvaDI+PGNvbnRlbnQgc2VsZWN0PSIu
QSI+PC9jb250ZW50PjxoMj5CPC9oMj48c2hhZG93Pjwvc2hhZG93PjwvZGl2PicKLTwvc2NyaXB0
PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1y
ZXByb2plY3Rpb24tZHluYW1pYy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1keW5hbWljLWV4cGVjdGVk
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
b250ZW50LXJlcHJvamVjdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci0KLTxkaXYgaWQ9Imhv
c3QxIj48ZGl2PjxkaXY+PGRpdj5keW5hbWljYWxseSBhZGRlZCBkaXY8L2Rpdj48L2Rpdj48L2Rp
dj48L2Rpdj4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtcmVwcm9qZWN0aW9uLWR5bmFtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZHluYW1pYy5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXBy
b2plY3Rpb24tZHluYW1pYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotCi08aHRtbD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotCi08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdj48ZGl2IGlkPSJob3N0MiI+PGNvbnRlbnQ+
PC9jb250ZW50PjwvZGl2PjwvZGl2Pic7Ci0KLXZhciBob3N0MiA9IHNoYWRvd1Jvb3QxLmdldEVs
ZW1lbnRCeUlkKCdob3N0MicpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QzIj48
Y29udGVudD48L2NvbnRlbnQ+PC9kaXY+JzsKLQotdmFyIGhvc3QzID0gc2hhZG93Um9vdDIuZ2V0
RWxlbWVudEJ5SWQoJ2hvc3QzJyk7Ci12YXIgc2hhZG93Um9vdDMgPSBob3N0My53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290My5pbm5lckhUTUwgPSAnPGRpdj48Y29udGVudD48
L2NvbnRlbnQ+PC9kaXY+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LmlubmVySFRNTCA9ICdk
eW5hbWljYWxseSBhZGRlZCBkaXYnOwotICAgIGhvc3QxLmFwcGVuZENoaWxkKGRpdik7Ci0KLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwotfSwgMCk7Ci08L3NjcmlwdD4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtcmVwcm9qZWN0aW9uLWZhbGxiYWNrLWNyYXNoLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXBy
b2plY3Rpb24tZmFsbGJhY2stY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJh
Y2stY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotQSBj
cmFzaCBzaG91bGQgbm90IGhhcHBlbiB3aGVuIGZhbGxiYWNrIGVsZW1lbnRzIGFyZSByZXByb2pl
Y3RlZC4KLQotUEFTUyBkaXN0cmlidXRlZE5vZGVzLml0ZW0oMCkgaXMgc2hhZG93Um9vdDEuZ2V0
RWxlbWVudEJ5SWQoImZhbGxiYWNrIikKLVBBU1MgZGlzdHJpYnV0ZWROb2Rlcy5pdGVtKDEpIGlz
IHNoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCJkaXYiKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1m
YWxsYmFjay1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stY3Jhc2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotCi08cD5BIGNy
YXNoIHNob3VsZCBub3QgaGFwcGVuIHdoZW4gZmFsbGJhY2sgZWxlbWVudHMgYXJlIHJlcHJvamVj
dGVkLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotCi08cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICc8ZGl2IGlkPSJob3N0MiI+PGNv
bnRlbnQgc2VsZWN0PSJzcGFuIj48ZGl2IGlkPSJmYWxsYmFjayI+ZmFsbGJhY2sgZWxlbWVudDwv
ZGl2PjwvY29udGVudD48ZGl2IGlkPSJkaXYiPlRoaXMgc2hvdWxkIGJlIHNlbGVjdGVkLjwvZGl2
PjwvZGl2Pic7Ci0KLXZhciBob3N0MiA9IHNoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCdob3N0
MicpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
c2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+
JzsKLQotdmFyIGNvbnRlbnQgPSBzaGFkb3dSb290Mi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29u
dGVudCcpLml0ZW0oMCk7Ci12YXIgZGlzdHJpYnV0ZWROb2RlcyA9IGNvbnRlbnQuZ2V0RGlzdHJp
YnV0ZWROb2RlcygpOwotCi1zaG91bGRCZSgnZGlzdHJpYnV0ZWROb2Rlcy5pdGVtKDApJywgJ3No
YWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCJmYWxsYmFjayIpJyk7Ci1zaG91bGRCZSgnZGlzdHJp
YnV0ZWROb2Rlcy5pdGVtKDEpJywgJ3NoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCJkaXYiKScp
OwotCi1maW5pc2hKU1Rlc3QoKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stZXhw
ZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9qZWN0aW9uLWZh
bGxiYWNrLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci0KLTxwPkZhbGxiYWNrIGVsZW1lbnRzIHNob3VsZCBiZSByZW5kZXJlZCBp
ZiBpdCdzIGRpc3RyaWJ1dGVkPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRpdiBpZD0i
aG9zdDIiPgotICAgICAgICA8ZGl2PmNvbnRlbnQgZmFsbGJhY2sgZWxlbWVudDwvZGl2PgotICAg
ICAgICA8ZGl2PnNoYWRvdyBmYWxsYmFjayBlbGVtZW50PC9kaXY+Ci0gICAgICAgIDxkaXY+VGhp
cyBzaG91bGQgYmUgc2VsZWN0ZWQuPC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPC9odG1s
PgotCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVj
dGlvbi1mYWxsYmFjay1yZXByb2plY3Rpb24tZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2st
cmVwcm9qZWN0aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay1yZXByb2pl
Y3Rpb24tZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLQotPHA+RmFsbGJhY2sgZWxlbWVudHMgc2hvdWxkIGJlIHJlbmRlcmVkIGlm
IGl0J3MgZGlzdHJpYnV0ZWQ8L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8ZGl2IGlkPSJo
b3N0MiI+Ci0gICAgICAgIDxkaXYgaWQ9Imhvc3QzIj4KLSAgICAgICAgICAgIDxkaXY+Y29udGVu
dCBmYWxsYmFjayBlbGVtZW50PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2PnNoYWRvdyBmYWxsYmFj
ayBlbGVtZW50PC9kaXY+Ci0gICAgICAgICAgICA8ZGl2PlRoaXMgc2hvdWxkIGJlIHNlbGVjdGVk
LjwvZGl2PgotICAgICAgICAgICAgPGRpdj5jb250ZW50IGZhbGxiYWNrIGVsZW1lbnQ8L2Rpdj4K
LSAgICAgICAgICAgIDxkaXY+VGhpcyBhbHNvIHNob3VsZCBiZSBzZWxlY3RlZC48L2Rpdj4KLSAg
ICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPC9odG1sPgotCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay1y
ZXByb2plY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY29udGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2stcmVwcm9qZWN0aW9uLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJv
amVjdGlvbi1mYWxsYmFjay1yZXByb2plY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwz
NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+RmFsbGJhY2sgZWxlbWVudHMgc2hvdWxk
IGJlIHJlbmRlcmVkIGlmIGl0J3MgZGlzdHJpYnV0ZWQ8L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48
L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9Ci0gICAgJzxkaXYgaWQ9Imhvc3Qy
Ij4nICsKLSAgICAgICAgJzxjb250ZW50PjxkaXYgdGl0bGU9ImRlYnVnc3RvcCI+Y29udGVudCBm
YWxsYmFjayBlbGVtZW50PC9kaXY+PC9jb250ZW50PicgKwotICAgICAgICAnPHNoYWRvdz48ZGl2
PnNoYWRvdyBmYWxsYmFjayBlbGVtZW50PC9kaXY+PC9zaGFkb3c+JyArCi0gICAgICAgICc8ZGl2
PlRoaXMgc2hvdWxkIGJlIHNlbGVjdGVkLjwvZGl2PicgKwotICAgICc8L2Rpdj4nOwotCi12YXIg
aG9zdDIgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnaG9zdDInKTsKLXZhciBzaGFkb3dS
b290MiA9IGhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QyLmlubmVy
SFRNTCA9Ci0gICAgJzxkaXYgaWQ9Imhvc3QzIj4nICsKLSAgICAgICAgJzxjb250ZW50IHNlbGVj
dD0iZGl2Ij48L2NvbnRlbnQ+JyArIAotICAgICAgICAnPGNvbnRlbnQgc2VsZWN0PSJzcGFuIj48
ZGl2PmNvbnRlbnQgZmFsbGJhY2sgZWxlbWVudDwvZGl2PjwvY29udGVudD4nICsgCi0gICAgICAg
ICc8ZGl2PlRoaXMgYWxzbyBzaG91bGQgYmUgc2VsZWN0ZWQuPC9kaXY+JwotICAgICc8L2Rpdj4n
OwotCi12YXIgaG9zdDMgPSBzaGFkb3dSb290Mi5nZXRFbGVtZW50QnlJZCgnaG9zdDMnKTsKLXZh
ciBzaGFkb3dSb290MyA9IGhvc3QzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jv
b3QzLmlubmVySFRNTCA9Ci0gICAgJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+Jwot
Ci08L3NjcmlwdD4KLQotPC9odG1sPgotCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1mYWxsYmFjay5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1yZXByb2plY3Rpb24tZmFsbGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+RmFsbGJhY2sgZWxlbWVudHMgc2hvdWxkIGJl
IHJlbmRlcmVkIGlmIGl0J3MgZGlzdHJpYnV0ZWQ8L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rp
dj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9Ci0gICAgJzxkaXYgaWQ9Imhvc3QyIj4n
ICsKLSAgICAgICAgJzxjb250ZW50PjxkaXYgdGl0bGU9ImRlYnVnc3RvcCI+Y29udGVudCBmYWxs
YmFjayBlbGVtZW50PC9kaXY+PC9jb250ZW50PicgKwotICAgICAgICAnPHNoYWRvdz48ZGl2PnNo
YWRvdyBmYWxsYmFjayBlbGVtZW50PC9kaXY+PC9zaGFkb3c+JyArCi0gICAgICAgICc8ZGl2IGlk
PSJkaXYiPlRoaXMgc2hvdWxkIGJlIHNlbGVjdGVkLjwvZGl2PicgKwotICAgICc8L2Rpdj4nOwot
Ci12YXIgaG9zdDIgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnaG9zdDInKTsKLXZhciBz
aGFkb3dSb290MiA9IGhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3Qy
LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdiI+PC9jb250ZW50Pic7Ci08L3Njcmlw
dD4KLQotPC9odG1sPgotCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LXJlcHJvamVjdGlvbi1vcmRlci1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1vcmRlci1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1yZXByb2plY3Rpb24tb3JkZXItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPGRp
diBpZD0iaG9zdCI+Ci0gICAgPGRpdj5DPC9kaXY+PGhyPgotICAgIDxkaXY+QjwvZGl2Pjxocj4K
LSAgICA8ZGl2PjxkaXY+QTwvZGl2PjwvZGl2Pjxocj4KLSAgICA8ZGl2PkQ8L2Rpdj4KLTwvZGl2
PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1yZXByb2plY3Rpb24tb3JkZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2plY3Rpb24tb3JkZXIuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9q
ZWN0aW9uLW9yZGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJob3N0Ij4KLSAgICA8ZGl2IGNsYXNzPSJh
IGFiIj5BPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iYiBhYiI+QjwvZGl2PgotICAgIDxkaXYgY2xh
c3M9ImMiPkM8L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotc2hhZG93Um9vdC5pbm5lckhUTUwgPQotICAg
ICc8c2hhZG93IGlkPSJpZDEiPjwvc2hhZG93Pjxocj4nICsgCi0gICAgJzxjb250ZW50IGlkPSJp
ZDIiIHNlbGVjdD0iLmIiPjwvY29udGVudD48aHI+JyArIAotICAgICc8ZGl2Pjxjb250ZW50IGlk
PSJpZDMiIHNlbGVjdD0iLmFiIj48L2NvbnRlbnQ+PC9kaXY+PGhyPicgKwotICAgICc8c2hhZG93
IGlkPSJpZDQiPjxkaXY+RDwvZGl2Pjwvc2hhZG93PicKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1yZXByb2pl
Y3Rpb24tc2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtcmVwcm9qZWN0aW9uLXNoYWRvdy1leHBlY3RlZC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1y
ZXByb2plY3Rpb24tc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPHA+VGhpcyB0ZXN0IGVuc3VyZXMg
dGhhdCBlbGVtZW50cyBkaXN0cmlidXRlZCB0byBhIGNvbnRlbnQgZWxlbWVudCBjYW4gYmUgdGFr
ZW4gZnJvbSBhIHNoYWRvdyBlbGVtZW50PC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRp
dj5UaGVzZSBlbGVtZW50czwvZGl2PgotICAgIDxkaXY+c2hvdWxkIGJlPC9kaXY+Ci0gICAgPGRp
dj5yZXByb2plY3RlZDwvZGl2PgotICAgIDxkaXY+QTwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1z
aGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1yZXByb2plY3Rpb24tc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXJlcHJvamVjdGlvbi1zaGFkb3cuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+VGhp
cyB0ZXN0IGVuc3VyZXMgdGhhdCBlbGVtZW50cyBkaXN0cmlidXRlZCB0byBhIGNvbnRlbnQgZWxl
bWVudCBjYW4gYmUgdGFrZW4gZnJvbSBhIHNoYWRvdyBlbGVtZW50PC9wPgotCi08ZGl2IGlkPSJo
b3N0MSI+Ci0gICAgPGRpdj5UaGVzZSBlbGVtZW50czwvZGl2PgotICAgIDxkaXY+c2hvdWxkIGJl
PC9kaXY+Ci0gICAgPGRpdj5yZXByb2plY3RlZDwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci12
YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dS
b290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0iaG9zdDIiPjxjb250ZW50PjwvY29udGVudD48L2Rp
dj4nOwotCi12YXIgc2hhZG93Um9vdDIgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnaG9z
dDInKS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAn
PGRpdj48c2hhZG93Pjwvc2hhZG93PjxkaXY+QTwvZGl2PjwvZGl2PicKLTwvc2NyaXB0PgotCi08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rv
ci1xdWVyeS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVy
eS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTY4ICswLDAgQEAKLVRoaXMgdGVz
dCBjaGVja3Mgc2VsZWN0IGF0dHJpYnV0ZSBvZiBjb250ZW50IGVsZW1lbnQgaXMgdmFsaWQuCi0K
LW51bGwKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRy
dWUKLQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1
ZQotbnN8ZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi0qfGRpdgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgdHJ1ZQotfGRpdgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgdHJ1ZQotZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChj
b250ZW50KSBpcyB0cnVlCi1uc3wqCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyB0cnVlCi0qfCoKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIHRydWUKLXwqCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyB0cnVlCi0qCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyB0cnVlCi0uZWxlbQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotcC5lbGVtCi1QQVNTIGludGVybmFscy5pc1ZhbGlk
Q29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1mb28uZWxlbQotUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotKi5yaWdodAotUEFTUyBpbnRl
cm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotI2VsZW0KLVBBU1Mg
aW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLXAjZWxlbQot
UEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZm9v
I2VsZW0KLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRy
dWUKLSojc29tZXRoaW5nCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250
ZW50KSBpcyB0cnVlCi1kaXZbdGl0bGVdCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXZbY2xhc3M9ImV4YW1wbGUiXQotUEFTUyBpbnRlcm5h
bHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2W2hlbGxvPSJDbGV2
ZWxhbmQiXVtnb29kYnllPSJDb2x1bWJ1cyJdCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXZbcmVsfj0iY29weXJpZ2h0Il0KLVBBU1MgaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdltocmVmPSJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tLyJdCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXZbaHJlZmxhbmd8PSJlbiJdCi1QQVNTIGludGVybmFs
cy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXZbY2hhcmFjdGVyPXJv
bWVvXQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1
ZQotZGl2OmxpbmsKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIHRydWUKLWRpdjp2aXNpdGVkCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyB0cnVlCi1kaXY6dGFyZ2V0Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29u
dGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXY6ZW5hYmxlZAotUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2OmNoZWNrZWQKLVBBU1Mg
aW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjppbmRl
dGVybWluYXRlCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCi1kaXY6bnRoLWNoaWxkKDEpCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXY6bnRoLWxhc3QtY2hpbGQoMSkKLVBBU1MgaW50ZXJu
YWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpudGgtb2YtdHlw
ZSgxKQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1
ZQotZGl2Om50aC1sYXN0LW9mLXR5cGUoMSkKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpmaXJzdC1jaGlsZAotUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2Omxhc3QtY2hpbGQKLVBB
U1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpm
aXJzdC1vZi10eXBlCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyB0cnVlCi1kaXY6bGFzdC1vZi10eXBlCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXY6b25seS1vZi10eXBlCi1QQVNTIGludGVybmFs
cy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXY6Zmlyc3Qtb2YtdHlw
ZTpsYXN0LW9mLXR5cGUKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRl
bnQpIGlzIHRydWUKLWRpdi5lbGVtOnZpc2l0ZWQKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLSo6dmlzaXRlZAotUEFTUyBpbnRlcm5hbHMuaXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQotZGl2LCBkaXYKLVBBU1MgaW50ZXJu
YWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpmaXJzdC1vZi10
eXBlLCBkaXYKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IHRydWUKLWRpdiwgZGl2OmZpcnN0LW9mLXR5cGUKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKLWRpdjpmaXJzdC1vZi10eXBlLCBkaXY6bGFzdC1v
Zi10eXBlCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCi0gZGl2LCAgICAgIGRpdiAgICAgCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyB0cnVlCi1kaXYgZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29u
dGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2ID4gZGl2Ci1QQVNTIGludGVybmFscy5p
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2ICsgZGl2Ci1QQVNTIGlu
dGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotZGl2IH4gZGl2
Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQot
ZGl2Om5vdChkaXYpCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyBmYWxzZQotZGl2OnJvb3QKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0
KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6bGFuZyhlbikKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRD
b250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6OmJlZm9yZQotUEFTUyBpbnRlcm5h
bHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdjo6YWZ0ZXIKLVBB
U1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6
OmZpcnN0LWxpbmUKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIGZhbHNlCi1kaXY6OmZpcnN0LWxldHRlcgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdjphY3RpdmUKLVBBU1MgaW50ZXJuYWxzLmlz
VmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6aG92ZXIKLVBBU1MgaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6Zm9jdXMK
LVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1k
aXYgZGl2Om5vdChkaXYpCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250
ZW50KSBpcyBmYWxzZQotZGl2Om5vdChkaXYpIGRpdgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdiBzcGFuIGRpdgotUEFTUyBpbnRlcm5h
bHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdiA8IGRpdgotUEFT
UyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdiAt
IGR2aQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFs
c2UKLTwgZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyBmYWxzZQotK2RpdgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgZmFsc2UKLX5kaXYKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNv
bnRlbnQpIGlzIGZhbHNlCi1kaXY6IQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgZmFsc2UKLSE6IQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRT
ZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdjo6IQotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLWRpdjo6Zmlyc3Rfb2ZfdHlwZQotUEFTUyBp
bnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKLXBlO3JvCi1Q
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQotQHNj
cmVlbgotUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFs
c2UKLUBpbXBvcnQgInN0eWxlLmNzcyIKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXYgOmZpcnN0LW9mLXR5cGUKLVBBU1MgaW50ZXJuYWxz
LmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCi1kaXY6OmZpcnN0LW9mLXR5
cGUKLVBBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNl
Ci0gZGl2LCAsZGl2Ci1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyBmYWxzZQotZGl2ICcnCi1QQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChj
b250ZW50KSBpcyBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNl
bGVjdG9yLXF1ZXJ5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnkuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnkuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw3NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0ZXN0IGNoZWNrcyBzZWxlY3QgYXR0cmli
dXRlIG9mIGNvbnRlbnQgZWxlbWVudCBpcyB2YWxpZC48L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci12YXIgY29udGFp
bmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwotCi12YXIgY29udGVu
dDsKLWZ1bmN0aW9uIHRlc3Qoc2VsZWN0LCB2YWxpZCkgewotICAgIGNvbnRlbnQgPSBpbnRlcm5h
bHMuY3JlYXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICBpZiAoc2VsZWN0ICE9IG51bGwpCi0gICAg
ICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOwotCi0gICAgZGVidWco
c2VsZWN0KTsKLSAgICBpZiAodmFsaWQpCi0gICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuaXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkiLCAidHJ1ZSIpOwotICAgIGVsc2UKLSAgICAgICAg
c2hvdWxkQmUoImludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSIsICJmYWxz
ZSIpOwotfQotCi12YXIgZGF0YU9mVmFsaWRDYXNlcyA9IFsKLSAgICBudWxsLCAnJywKLSAgICAn
bnN8ZGl2JywgJyp8ZGl2JywgJ3xkaXYnLCAnZGl2JywKLSAgICAnbnN8KicsICcqfConLCAnfCon
LCAnKicsCi0gICAgJy5lbGVtJywgJ3AuZWxlbScsICdmb28uZWxlbScsICcqLnJpZ2h0JywKLSAg
ICAnI2VsZW0nLCAncCNlbGVtJywgJ2ZvbyNlbGVtJywgJyojc29tZXRoaW5nJywKLSAgICAnZGl2
W3RpdGxlXScsICdkaXZbY2xhc3M9ImV4YW1wbGUiXScsICdkaXZbaGVsbG89IkNsZXZlbGFuZCJd
W2dvb2RieWU9IkNvbHVtYnVzIl0nLAotICAgICdkaXZbcmVsfj0iY29weXJpZ2h0Il0nLCAnZGl2
W2hyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIl0nLAotICAgICdkaXZbaHJlZmxhbmd8PSJl
biJdJywgJ2RpdltjaGFyYWN0ZXI9cm9tZW9dJywKLSAgICAnZGl2OmxpbmsnLCAnZGl2OnZpc2l0
ZWQnLCAnZGl2OnRhcmdldCcsICdkaXY6ZW5hYmxlZCcsICdkaXY6Y2hlY2tlZCcsCi0gICAgJ2Rp
djppbmRldGVybWluYXRlJywgJ2RpdjpudGgtY2hpbGQoMSknLCAnZGl2Om50aC1sYXN0LWNoaWxk
KDEpJywgJ2RpdjpudGgtb2YtdHlwZSgxKScsCi0gICAgJ2RpdjpudGgtbGFzdC1vZi10eXBlKDEp
JywgJ2RpdjpmaXJzdC1jaGlsZCcsICdkaXY6bGFzdC1jaGlsZCcsICdkaXY6Zmlyc3Qtb2YtdHlw
ZScsCi0gICAgJ2RpdjpsYXN0LW9mLXR5cGUnLCAnZGl2Om9ubHktb2YtdHlwZScsCi0gICAgJ2Rp
djpmaXJzdC1vZi10eXBlOmxhc3Qtb2YtdHlwZScsICdkaXYuZWxlbTp2aXNpdGVkJywgJyo6dmlz
aXRlZCcsCi0gICAgJ2RpdiwgZGl2JywgJ2RpdjpmaXJzdC1vZi10eXBlLCBkaXYnLCAnZGl2LCBk
aXY6Zmlyc3Qtb2YtdHlwZScsICdkaXY6Zmlyc3Qtb2YtdHlwZSwgZGl2Omxhc3Qtb2YtdHlwZScs
Ci0gICAgJyBkaXYsICAgICAgZGl2ICAgICAnLAotXTsKLQotdmFyIGRhdGFPZkludmFsaWRDYXNl
cyA9IFsKLSAgICAnZGl2IGRpdicsICdkaXYgPiBkaXYnLCAnZGl2ICsgZGl2JywgJ2RpdiB+IGRp
dicsCi0gICAgJ2Rpdjpub3QoZGl2KScsICdkaXY6cm9vdCcsICdkaXY6bGFuZyhlbiknLAotICAg
ICdkaXY6OmJlZm9yZScsICdkaXY6OmFmdGVyJywgJ2Rpdjo6Zmlyc3QtbGluZScsICdkaXY6OmZp
cnN0LWxldHRlcicsCi0gICAgJ2RpdjphY3RpdmUnLCAnZGl2OmhvdmVyJywgJ2Rpdjpmb2N1cycs
Ci0gICAgJ2RpdiBkaXY6bm90KGRpdiknLCAnZGl2Om5vdChkaXYpIGRpdicsICdkaXYgc3BhbiBk
aXYnLAotICAgICdkaXYgPCBkaXYnLCAnZGl2IC0gZHZpJywgJzwgZGl2JywgJytkaXYnLCAnfmRp
dicsICdkaXY6IScsICchOiEnLCAnZGl2OjohJywgJ2Rpdjo6Zmlyc3Rfb2ZfdHlwZScsCi0gICAg
J3BlO3JvJywgJ0BzY3JlZW4nLCAnQGltcG9ydCAic3R5bGUuY3NzIicsICdkaXYgOmZpcnN0LW9m
LXR5cGUnLCAnZGl2OjpmaXJzdC1vZi10eXBlJywKLSAgICAnIGRpdiwgLGRpdicsICdkaXYgXCdc
JycKLV0KLQotZnVuY3Rpb24gZG9UZXN0KCkgewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIg
fHwgIXdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhT2ZW
YWxpZENhc2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICB0ZXN0KGRhdGFPZlZhbGlkQ2FzZXNb
aV0sIHRydWUpOwotICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFPZkludmFsaWRD
YXNlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgdGVzdChkYXRhT2ZJbnZhbGlkQ2FzZXNbaV0s
IGZhbHNlKTsKLSAgICB9Ci19Ci0KLWRvVGVzdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNoYWRvdy11bmtub3duLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zaGFkb3ctdW5r
bm93bi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LXNoYWRvdy11bmtub3duLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMSArMCwwIEBACi1TaGFkb3cgRE9NIHJlbGF0ZWQgZWxlbWVudHMgc2hvdWxk
IGJlIGhpZGRlbiBpZiB0aGUgZmVhdHVyZSBpcyBvZmYuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIDAgPD0gY29udGVudC5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4
T2YoJ0hUTUxVbmtub3duRWxlbWVudCcpIGlzIHRydWUKLVBBU1MgMCA8PSBzaGFkb3cuY29uc3Ry
dWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdIVE1MVW5rbm93bkVsZW1lbnQnKSBpcyB0cnVlCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtc2hhZG93LXVua25vd24uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zaGFkb3ct
dW5rbm93bi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvY29udGVudC1zaGFkb3ctdW5rbm93bi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08ZGl2PgotICA8Y29udGVudCBpZD0iY29udGVudC1zaW1wbGVzdCI+PC9jb250ZW50Pgot
PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlNoYWRvdyBET00gcmVsYXRlZCBlbGVtZW50
cyBzaG91bGQgYmUgaGlkZGVuIGlmIHRoZSBmZWF0dXJlIGlzIG9mZi4iKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaGFkb3dET01FbmFibGVkKGZh
bHNlKTsKLXZhciBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY29udGVudCIpOwot
c2hvdWxkQmVUcnVlKCIwIDw9IGNvbnRlbnQuY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9m
KCdIVE1MVW5rbm93bkVsZW1lbnQnKSIpOwotdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNoYWRvdyIpOwotc2hvdWxkQmVUcnVlKCIwIDw9IHNoYWRvdy5jb25zdHJ1Y3Rvci50
b1N0cmluZygpLmluZGV4T2YoJ0hUTUxVbmtub3duRWxlbWVudCcpIik7Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBl
dmVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jcHBldmVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3BwZXZlbnQtaW4tc2hhZG93
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1kYXJrOiBjb3B5
IGlzIGZpcmVkLgotaG9zdDogY29weSBpcyBmaXJlZC4KLWRhcms6IGN1dCBpcyBmaXJlZC4KLWhv
c3Q6IGN1dCBpcyBmaXJlZC4KLWRhcms6IHBhc3RlIGlzIGZpcmVkLgotaG9zdDogcGFzdGUgaXMg
ZmlyZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NwcGV2ZW50LWluLXNoYWRvdy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVudC1p
bi1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NwcGV2ZW50LWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYxICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9l
dmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9zdCI+PC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGFkZExpc3Rl
bmVycyhlbGVtZW50LCBuYW1lKSB7Ci0gICAgdmFyIGV2ZW50TmFtZXMgPSBbJ2NvcHknLCAnY3V0
JywgJ3Bhc3RlJ107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudE5hbWVzLmxlbmd0aDsg
KytpKSB7Ci0gICAgICAgIChmdW5jdGlvbihpKSB7Ci0gICAgICAgICAgICAgZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXNbaV0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAg
ICAgZGVidWcobmFtZSArICc6ICcgKyBldmVudE5hbWVzW2ldICsgJyBpcyBmaXJlZC4nKTsKLSAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSkoaSk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBjcmVh
dGVCb3gobmFtZSkgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICBkaXYuc3R5bGUud2lkdGggPSAnMTAwcHgnOwotICAgIGRpdi5zdHlsZS5oZWlnaHQg
PSAnMTAwcHgnOwotICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHRydWUp
OwotCi0gICAgcmV0dXJuIGRpdjsKLX0KLQotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotCi12YXIgZGFya1Jvb3QgPSBkaXYu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIGJveCA9IGNyZWF0ZUJveCgnZGFyaycpOwot
Ym94LmlubmVySFRNTCA9ICJLb3RvcmkgT3RvbmFzaGkiOwotZGFya1Jvb3QuYXBwZW5kQ2hpbGQo
Ym94KTsKLQotYWRkTGlzdGVuZXJzKGJveCwgJ2RhcmsnKTsKLWFkZExpc3RlbmVycyhob3N0LCAn
aG9zdCcpOwotCi1pZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oYm94Lm9mZnNldExlZnQsIGJveC5vZmZzZXRUb3AgKyBib3gub2Zmc2V0SGVpZ2h0
IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oYm94Lm9mZnNldExlZnQgKyBib3gub2Zmc2V0V2lkdGgsIGJveC5vZmZzZXRUb3Ag
KyBib3gub2Zmc2V0SGVpZ2h0IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQot
Ci1kb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpOwotZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2N1
dCcpOwotZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3Bhc3RlJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVudC1pbnB1dC1pbi1zaGFkb3ctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVu
dC1pbnB1dC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3BwZXZlbnQtaW5wdXQtaW4tc2hhZG93LWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1kYXJrOiBjb3B5IGlzIGZpcmVk
LgotaG9zdDogY29weSBpcyBmaXJlZC4KLWRhcms6IGN1dCBpcyBmaXJlZC4KLWhvc3Q6IGN1dCBp
cyBmaXJlZC4KLWRhcms6IHBhc3RlIGlzIGZpcmVkLgotaG9zdDogcGFzdGUgaXMgZmlyZWQuCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NwcGV2ZW50LWlucHV0LWluLXNoYWRvdy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jcHBldmVudC1pbnB1
dC1pbi1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NwcGV2ZW50LWlucHV0LWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDU5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9z
dCI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWZ1bmN0aW9u
IGFkZExpc3RlbmVycyhlbGVtZW50LCBuYW1lKSB7Ci0gICAgdmFyIGV2ZW50TmFtZXMgPSBbJ2Nv
cHknLCAnY3V0JywgJ3Bhc3RlJ107Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudE5hbWVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIChmdW5jdGlvbihpKSB7Ci0gICAgICAgICAgICAgZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXNbaV0sIGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgICAgICAgICAgZGVidWcobmFtZSArICc6ICcgKyBldmVudE5hbWVzW2ldICsgJyBpcyBmaXJl
ZC4nKTsKLSAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSkoaSk7Ci0gICAgfQotfQotCi1mdW5j
dGlvbiBjcmVhdGVJbnB1dCgpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaW5wdXQnKTsKLSAgICBkaXYuc3R5bGUud2lkdGggPSAnMTAwcHgnOwotICAgIGRpdi5zdHls
ZS5oZWlnaHQgPSAnMTAwcHgnOwotICAgIHJldHVybiBkaXY7Ci19Ci0KLQotdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLQotdmFy
IGRhcmtSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBpbnB1dCA9IGNy
ZWF0ZUlucHV0KCk7Ci1pbnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ0tvdG9yaSBPdG9uYXNo
aScpOwotZGFya1Jvb3QuYXBwZW5kQ2hpbGQoaW5wdXQpOwotCi1hZGRMaXN0ZW5lcnMoaW5wdXQs
ICdkYXJrJyk7Ci1hZGRMaXN0ZW5lcnMoaG9zdCwgJ2hvc3QnKTsKLQotaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGlucHV0Lm9mZnNldExlZnQs
IGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNldEhlaWdodCAvIDIpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGlucHV0Lm9mZnNl
dExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCwgaW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0
SGVpZ2h0IC8gMik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1kb2N1bWVudC5l
eGVjQ29tbWFuZCgnY29weScpOwotZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2N1dCcpOwotZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ3Bhc3RlJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVu
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jcmVhdGUtY29udGVudC1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdCBjb21wYXJlcyBhIHNoYWRvdy1iYXNlZCByZW5k
ZXIgdHJlZSB3aXRoIG9uZSBmb3IgYSByZWZyZW5jZSBET00gdHJlZS4KLVBBU1MKLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NyZWF0ZS1jb250ZW50LWVsZW1lbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3JlYXRlLWNvbnRlbnQt
ZWxlbWVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvY3JlYXRlLWNvbnRlbnQtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcw
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS8qIHJl
bGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLwotLmNv
bnRhaW5lciB7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotfQotPC9zdHlsZT4KLTxzY3JpcHQ+
Ci1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJcbiIpOwotfQotCi1mdW5jdGlvbiBy
ZW1vdmVDb250YWluZXJMaW5lcyh0ZXh0KQotewotICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQo
IlxuIik7Ci0gICAgbGluZXMuc3BsaWNlKDAsIDIpOwotICAgIHJldHVybiBsaW5lcy5qb2luKCJc
biIpOwotfQotCi1mdW5jdGlvbiBzZXR1cFRhcmdldFRyZWUoKQotewotICAgIHZhciB0YXJnZXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0g
IjxzcGFuPmNvbnRlbnQ8L3NwYW4+IjsKLSAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVT
aGFkb3dSb290KHRhcmdldCk7Ci0gICAgCi0gICAgdmFyIGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKLSAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7Ci0gICAg
cm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQod2luZG93Lmlu
dGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpKTsKLSAgICB2YXIgY2hpbGQxID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgIGNoaWxkMS5pbm5lckhUTUwgPSAiV29ybGQu
IjsKLSAgICByb290LmFwcGVuZENoaWxkKGNoaWxkMSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgbG9nKCJUaGlzIHRlc3Qg
Y29tcGFyZXMgYSBzaGFkb3ctYmFzZWQgcmVuZGVyIHRyZWUgd2l0aCBvbmUgZm9yIGEgcmVmcmVu
Y2UgRE9NIHRyZWUuIik7Ci0gICAgc2V0dXBUYXJnZXRUcmVlKCk7Ci0gICAgdmFyIHRhcmdldENv
bnRhaW5lclJlbmRlclRyZWUgPSB3aW5kb3cuaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNU
ZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRDb250YWluZXIiKSk7Ci0gICAgdmFy
IHRhcmdldFJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyh0YXJnZXRDb250YWluZXJS
ZW5kZXJUcmVlKTsKLSAgICB2YXIgcmVmQ29udGFpbmVyUmVuZGVyVHJlZSA9IHdpbmRvdy5pbnRl
cm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
ZkNvbnRhaW5lciIpKTsKLSAgICB2YXIgcmVmUmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxp
bmVzKHJlZkNvbnRhaW5lclJlbmRlclRyZWUpOwotICAgIGlmICh0YXJnZXRSZW5kZXJUcmVlID09
IHJlZlJlbmRlclRyZWUpCi0gICAgICAgIGxvZygiUEFTUyIpOwotICAgIGVsc2UgewotICAgICAg
ICBsb2coIkZBSUwiKTsKLSAgICAgICAgbG9nKCJFeHBlY3RlZDoiKTsKLSAgICAgICAgbG9nKHJl
ZlJlbmRlclRyZWUpOwotICAgICAgICBsb2coIkFjdHVhbDoiKTsKLSAgICAgICAgbG9nKHRhcmdl
dFJlbmRlclRyZWUpOwotICAgIH0KLSAgICAKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdCIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0idGVzdCgpIj4KLTxkaXYgaWQ9InRlc3QiPgotPGRpdiBjbGFzcz0iY29udGFp
bmVyIiBpZD0idGFyZ2V0Q29udGFpbmVyIj48ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PjwvZGl2Pgot
PGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0icmVmQ29udGFpbmVyIj48ZGl2PjxkaXY+PHNwYW4+
SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2
PjwvZGl2PjwvZGl2PgotPC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jc3MtaG9zdHJ1bGUt
YXBpLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvY3NzLWhvc3RydWxlLWFwaS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jc3MtaG9zdHJ1bGUtYXBpLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwyOSArMCwwIEBACi1UZXN0IHdoZXRoZXIgQ1NTSG9zdFJ1bGUg
QVBJIHdvcmtzIGNvcnJlY3RseSBvciBub3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1CZWZvcmUgaW5zZXJ0aW5nIGEgYm9yZGVyIHJ1bGUgaW50byBAaG9zdCBALXJ1bGVzOgot
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGhvc3QpLmJvcmRlckNvbG9yIGlzICJyZ2IoMCwgMCwgMCki
Ci1QQVNTIGhvc3RSdWxlLmNzc1J1bGVzLmxlbmd0aCBpcyAwCi1QQVNTIGhvc3RSdWxlLnR5cGUg
aXMgMTAwMQotQWZ0ZXIgaW5zZXJ0aW5nIGEgYm9yZGVyIHJ1bGUgd2l0aCBhbiBpZCBzZWxlY3Rv
ciBpbnRvIEBob3N0IEAtcnVsZXM6Ci1QQVNTIGdldENvbXB1dGVkU3R5bGUoaG9zdCkuYm9yZGVy
Q29sb3IgaXMgInJnYigwLCAxMjgsIDApIgotUEFTUyBob3N0UnVsZS5jc3NSdWxlcy5sZW5ndGgg
aXMgMQotUEFTUyBob3N0UnVsZS5jc3NUZXh0IGlzICJAaG9zdCB7IFxuICAjaG9zdCB7IGJvcmRl
ci1jb2xvcjogZ3JlZW47IH1cbn0iCi1QQVNTIGhvc3RSdWxlLmNzc1J1bGVzWzBdLmNzc1RleHQg
aXMgIiNob3N0IHsgYm9yZGVyLWNvbG9yOiBncmVlbjsgfSIKLUFmdGVyIGluc2VydGluZyBhIGJv
cmRlciBydWxlIHdpdGggYSB0YWcgc2VsZWN0b3IgaW50byBAaG9zdCBALXJ1bGVzOgotUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGhvc3QpLmJvcmRlckNvbG9yIGlzICJyZ2IoMCwgMTI4LCAwKSIKLVBB
U1MgaG9zdFJ1bGUuY3NzUnVsZXMubGVuZ3RoIGlzIDIKLVBBU1MgaG9zdFJ1bGUuY3NzVGV4dCBp
cyAiQGhvc3QgeyBcbiAgI2hvc3QgeyBib3JkZXItY29sb3I6IGdyZWVuOyB9XG4gIGRpdiB7IGJv
cmRlci1jb2xvcjogYmx1ZTsgfVxufSIKLVBBU1MgaG9zdFJ1bGUuY3NzUnVsZXNbMF0uY3NzVGV4
dCBpcyAiI2hvc3QgeyBib3JkZXItY29sb3I6IGdyZWVuOyB9IgotUEFTUyBob3N0UnVsZS5jc3NS
dWxlc1sxXS5jc3NUZXh0IGlzICJkaXYgeyBib3JkZXItY29sb3I6IGJsdWU7IH0iCi1BZnRlciBk
ZWxldGluZyB0aGUgYm9yZGVyIHJ1bGUgd2l0aCBhbiBpZCBzZWxlY3RvciBmcm9tIEBob3N0IEAt
cnVsZXM6Ci1QQVNTIGdldENvbXB1dGVkU3R5bGUoaG9zdCkuYm9yZGVyQ29sb3IgaXMgInJnYigw
LCAwLCAyNTUpIgotUEFTUyBob3N0UnVsZS5jc3NSdWxlcy5sZW5ndGggaXMgMQotUEFTUyBob3N0
UnVsZS5jc3NUZXh0IGlzICJAaG9zdCB7IFxuICBkaXYgeyBib3JkZXItY29sb3I6IGJsdWU7IH1c
bn0iCi1QQVNTIGhvc3RSdWxlLmNzc1J1bGVzWzBdLmNzc1RleHQgaXMgImRpdiB7IGJvcmRlci1j
b2xvcjogYmx1ZTsgfSIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY3NzLWhvc3RydWxl
LWFwaS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jc3Mt
aG9zdHJ1bGUtYXBpLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jc3MtaG9zdHJ1bGUtYXBpLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDgg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICA8ZGl2
IGlkPSJob3N0Ij5UaGlzIGRpdiBpcyBhIHNoYWRvdyBob3N0LjwvZGl2PgotPC9ib2R5PgotPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgQ1NTSG9zdFJ1bGUgQVBJIHdvcmtzIGNv
cnJlY3RseSBvciBub3QuIik7Ci12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdo
b3N0Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHN0eWxlIGlkPSJzdHlsZTEiPkBob3N0IHt9PC9zdHls
ZT48ZGl2PlNoYWRvdyBUZXh0PC9kaXY+JzsKLSAgCi1kZWJ1ZygiQmVmb3JlIGluc2VydGluZyBh
IGJvcmRlciBydWxlIGludG8gQGhvc3QgQC1ydWxlczoiKTsKLXNob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGhvc3QpLmJvcmRlckNvbG9yIiwgJyJyZ2IoMCwgMCwgMCkiJyk7Ci0KLXZhciBzdHls
ZVNoZWV0ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc3R5bGUxJykuc2hlZXQ7Ci12YXIg
aG9zdFJ1bGUgPSBzdHlsZVNoZWV0LmNzc1J1bGVzWzBdOwotc2hvdWxkQmUoImhvc3RSdWxlLmNz
c1J1bGVzLmxlbmd0aCIsICcwJyk7Ci1zaG91bGRCZSgiaG9zdFJ1bGUudHlwZSIsICcxMDAxJyk7
Ci0gIAotZGVidWcoIkFmdGVyIGluc2VydGluZyBhIGJvcmRlciBydWxlIHdpdGggYW4gaWQgc2Vs
ZWN0b3IgaW50byBAaG9zdCBALXJ1bGVzOiIpOwotaG9zdFJ1bGUuaW5zZXJ0UnVsZSgiI2hvc3Qg
eyBib3JkZXItY29sb3I6IGdyZWVuOyB9IiwgaG9zdFJ1bGUuY3NzUnVsZXMubGVuZ3RoKTsKLXNo
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGhvc3QpLmJvcmRlckNvbG9yIiwgJyJyZ2IoMCwgMTI4
LCAwKSInKTsKLXNob3VsZEJlKCJob3N0UnVsZS5jc3NSdWxlcy5sZW5ndGgiLCAnMScpOwotc2hv
dWxkQmUoImhvc3RSdWxlLmNzc1RleHQiLCAnIkBob3N0IHsgXFxuICAjaG9zdCB7IGJvcmRlci1j
b2xvcjogZ3JlZW47IH1cXG59IicpOwotc2hvdWxkQmUoImhvc3RSdWxlLmNzc1J1bGVzWzBdLmNz
c1RleHQiLCAnIiNob3N0IHsgYm9yZGVyLWNvbG9yOiBncmVlbjsgfSInKTsKLQotZGVidWcoIkFm
dGVyIGluc2VydGluZyBhIGJvcmRlciBydWxlIHdpdGggYSB0YWcgc2VsZWN0b3IgaW50byBAaG9z
dCBALXJ1bGVzOiIpOwotaG9zdFJ1bGUuaW5zZXJ0UnVsZSgiZGl2IHsgYm9yZGVyLWNvbG9yOiBi
bHVlOyB9IiwgaG9zdFJ1bGUuY3NzUnVsZXMubGVuZ3RoKTsKLXNob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGhvc3QpLmJvcmRlckNvbG9yIiwgJyJyZ2IoMCwgMTI4LCAwKSInKTsKLXNob3VsZEJl
KCJob3N0UnVsZS5jc3NSdWxlcy5sZW5ndGgiLCAnMicpOwotc2hvdWxkQmUoImhvc3RSdWxlLmNz
c1RleHQiLCAnIkBob3N0IHsgXFxuICAjaG9zdCB7IGJvcmRlci1jb2xvcjogZ3JlZW47IH1cXG4g
IGRpdiB7IGJvcmRlci1jb2xvcjogYmx1ZTsgfVxcbn0iJyk7Ci1zaG91bGRCZSgiaG9zdFJ1bGUu
Y3NzUnVsZXNbMF0uY3NzVGV4dCIsICciI2hvc3QgeyBib3JkZXItY29sb3I6IGdyZWVuOyB9Iicp
Owotc2hvdWxkQmUoImhvc3RSdWxlLmNzc1J1bGVzWzFdLmNzc1RleHQiLCAnImRpdiB7IGJvcmRl
ci1jb2xvcjogYmx1ZTsgfSInKTsKLQotZGVidWcoIkFmdGVyIGRlbGV0aW5nIHRoZSBib3JkZXIg
cnVsZSB3aXRoIGFuIGlkIHNlbGVjdG9yIGZyb20gQGhvc3QgQC1ydWxlczoiKTsKLWhvc3RSdWxl
LmRlbGV0ZVJ1bGUoMCk7Ci1zaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShob3N0KS5ib3JkZXJD
b2xvciIsICcicmdiKDAsIDAsIDI1NSkiJyk7Ci1zaG91bGRCZSgiaG9zdFJ1bGUuY3NzUnVsZXMu
bGVuZ3RoIiwgJzEnKTsKLXNob3VsZEJlKCJob3N0UnVsZS5jc3NUZXh0IiwgJyJAaG9zdCB7IFxc
biAgZGl2IHsgYm9yZGVyLWNvbG9yOiBibHVlOyB9XFxufSInKTsKLXNob3VsZEJlKCJob3N0UnVs
ZS5jc3NSdWxlc1swXS5jc3NUZXh0IiwgJyJkaXYgeyBib3JkZXItY29sb3I6IGJsdWU7IH0iJyk7
Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LWNzcy10ZXh0LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRv
LWVsZW1lbnQtY3NzLXRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtY3NzLXRl
eHQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLVRlc3QgZm9y
IGNzc1RleHQgb2YgJzo6ZGlzdHJpYnV0ZWQoKScgcnVsZS4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0eWxlMScpLnNoZWV0
LmNzc1J1bGVzLml0ZW0oMCkuY3NzVGV4dCBpcyAiLmZvbzo6LXdlYmtpdC1kaXN0cmlidXRlZChk
aXYgLmJhcjo6YmVmb3JlKSB7IGRpc3BsYXk6IGJsb2NrOyB9IgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1jc3MtdGV4dC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8t
ZWxlbWVudC1jc3MtdGV4dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtY3NzLXRleHQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzdHlsZSBpZD0ic3R5bGUxIj4KLS5mb286Oi13ZWJraXQtZGlzdHJpYnV0ZWQo
ZGl2IC5iYXI6OmJlZm9yZSkgeyBkaXNwbGF5OiBibG9jazsgfQotPC9zdHlsZT4KLTwvaGVhZD4K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBmb3IgY3NzVGV4dCBvZiAnOjpkaXN0cmlidXRl
ZCgpJyBydWxlLiIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc3R5bGUxJykuc2hlZXQuY3NzUnVsZXMuaXRlbSgwKS5jc3NUZXh0IiwgIi5mb286Oi13
ZWJraXQtZGlzdHJpYnV0ZWQoZGl2IC5iYXI6OmJlZm9yZSkgeyBkaXNwbGF5OiBibG9jazsgfSIp
OwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQt
ZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08
ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdiBzdHlsZT0iY29s
b3I6IGdyZWVuIj5ncmVlbjwvZGl2PgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1m
b3Itc2hhZG93LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtZm9yLXNoYWRvdy1l
bGVtZW50LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1mb3Itc2hhZG93LWVsZW1l
bnQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPgotICA8ZGl2IGlkPSJo
b3N0Ij4KLSAgICA8ZGl2IHN0eWxlPSJjb2xvcjogZ3JlZW4iPmdyZWVuPC9kaXY+Ci0gIDwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rp
c3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LWZvci1zaGFkb3ctZWxlbWVudC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxl
bWVudC1mb3Itc2hhZG93LWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LWZvci1zaGFk
b3ctZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRv
bS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPjwvZGl2
PgotPHNjcmlwdD4KLXZhciBzaGFkb3dTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0
eWxlJyk7Ci1zaGFkb3dTdHlsZS5pbm5lckhUTUwgPSAnc2hhZG93Ojotd2Via2l0LWRpc3RyaWJ1
dGVkKGRpdikgeyBjb2xvcjogZ3JlZW47IH0nOwotCi12YXIgc2FuZGJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdncmVlbicpKSksCi0gICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBzaGFkb3dTdHls
ZSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93JykpKSk7Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0
cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1tYXRjaC1hbGwtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1l
bnQtbWF0Y2gtYWxsLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1tYXRjaC1hbGwt
ZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9z
dCI+Ci0gICAgPGRpdj4KLSAgICAgIG5vcm1hbAotICAgICAgPGRpdiBzdHlsZT0iY29sb3I6IGdy
ZWVuIj5ncmVlbjwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaXY+Ci0gICAgICBub3JtYWwKLSAg
ICAgIDxkaXYgc3R5bGU9ImNvbG9yOiBncmVlbiI+Z3JlZW48L2Rpdj4KLSAgICA8L2Rpdj4KLSAg
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbWF0Y2gtYWxsLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50
LW1hdGNoLWFsbC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbWF0Y2gtYWxsLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHNoYWRv
d1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlLmlu
bmVySFRNTCA9ICdjb250ZW50Ojotd2Via2l0LWRpc3RyaWJ1dGVkKC5oZWxsbykgeyBjb2xvcjog
Z3JlZW47IH0nOwotCi12YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5k
Ym94Jyk7Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdob3N0J30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAg
ICAgICBzaGFkb3dTdHlsZSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcp
KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydjbGFzcyc6ICdoZWxsbyd9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdncmVlbicp
KSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnbm9ybWFsJyksCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnY2xhc3MnOiAnaGVsbG8nfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZ3JlZW4n
KSkpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1tYXRjaC1kZXNjZW5kYW50
LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW1hdGNoLWRlc2NlbmRhbnQtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3Ry
aWJ1dGVkLXBzZXVkby1lbGVtZW50LW1hdGNoLWRlc2NlbmRhbnQtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJv
ZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPHA+Ci0gICAg
ICA8ZGl2IHN0eWxlPSJjb2xvcjogZ3JlZW4iPmdyZWVuPC9kaXY+Ci0gICAgPC9wPgotICA8L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9k
aXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1tYXRjaC1kZXNjZW5kYW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVt
ZW50LW1hdGNoLWRlc2NlbmRhbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW1hdGNoLWRlc2Nl
bmRhbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxz
Y3JpcHQ+Ci12YXIgc2hhZG93U3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScp
Owotc2hhZG93U3R5bGUuaW5uZXJIVE1MID0gJ2NvbnRlbnQ6Oi13ZWJraXQtZGlzdHJpYnV0ZWQo
ZGl2KSB7IGNvbG9yOiBncmVlbjsgfSc7Ci0KLXZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9N
KCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAg
ICAgICAgIHNoYWRvd1N0eWxlLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50
JykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ3AnLCB7fSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2dyZWVuJykpKSkpOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJp
YnV0ZWQtcHNldWRvLWVsZW1lbnQtbmVzdGVkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW5l
c3RlZC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbmVzdGVkLWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+Ci0gIDxkaXYgaWQ9Imhvc3QiPgotICAgIDxk
aXYgaWQ9Im5lc3RlZC1ob3N0Ij4KLSAgICAgIHRleHQxCi0gICAgICA8ZGl2PgotICAgICAgICB0
ZXh0MgotICAgICAgICA8ZGl2PgotICAgICAgICAgIHRleHQzCi0gICAgICAgICAgPGRpdiBzdHls
ZT0iY29sb3I6IGdyZWVuIj5ncmVlbjwvZGl2PgotICAgICAgICAgIDxkaXY+bm9ybWFsPC9kaXY+
Ci0gICAgICAgIDwvZGl2PgotICAgICAgPC9kaXY+Ci0gICAgPC9kaXY+Ci0gIDwvZGl2PgotPC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbmVzdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LW5lc3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbmVzdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHNoYWRvd1N0eWxlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlLmlubmVySFRNTCA9ICdk
aXYgY29udGVudDo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYgY29udGVudDo6LXdlYmtpdC1kaXN0
cmlidXRlZChkaXYuZ3JlZW4pKSB7IGNvbG9yOiBncmVlbjsgfSc7Ci0KLXZhciBzYW5kYm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQo
Ci0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgY3Jl
YXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICduZXN0ZWQtaG9zdCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRv
d1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgndGV4
dDEnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCd0ZXh0MicpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnZGl2J30pKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2NsYXNzJzogJ2dyZWVu
J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCd0ZXh0MycpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7fSkpKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydjbGFzcyc6ICdncmVlbid9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJ2dyZWVuJykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
J25vcm1hbCcpKSkpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbm8tbWF0Y2gt
ZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbm8tbWF0Y2gtZXhwZWN0ZWQuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBz
ZXVkby1lbGVtZW50LW5vLW1hdGNoLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGRpdiBpZD0ic2Fu
ZGJveCI+Ci0gIDxkaXYgaWQ9Imhvc3QiPgotICAgIDxwPm5vcm1hbDwvcD4KLSAgICA8ZGl2Pgot
ICAgICAgPGRpdj5ub3JtYWw8L2Rpdj4KLSAgICA8L2Rpdj4KLSAgPC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNl
dWRvLWVsZW1lbnQtbm8tbWF0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtbm8tbWF0Y2guaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVk
LXBzZXVkby1lbGVtZW50LW5vLW1hdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjcgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0i
c2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0PgotdmFyIHNoYWRvd1N0eWxlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc3R5bGUnKTsKLXNoYWRvd1N0eWxlLmlubmVySFRNTCA9ICd0aGlzLWRvZXMt
bm90LW1hdGNoOjotd2Via2l0LWRpc3RyaWJ1dGVkKGRpdikgeyBjb2xvcjogZ3JlZW47IH0nCi0g
ICAgKyAncDo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYpIHsgY29sb3I6IGdyZWVuOyB9JwotICAg
ICsgJ2Rpdjo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYpIHsgY29sb3I6IGdyZWVuOyB9JzsKLQot
dmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotc2FuZGJv
eC5hcHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdCd9LAotICAg
ICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgc2hhZG93U3R5
bGUsCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3AnLCB7fSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSksCi0gICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdob3N0LWNoaWxkJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgnbm9ybWFsJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8t
ZWxlbWVudC1yZXByb2plY3Rpb24tZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtcmVwcm9qZWN0
aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1yZXByb2plY3Rpb24tZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0g
ICAgPGRpdiBpZD0iaG9zdDIiPgotICAgICAgPGRpdiBzdHlsZT0nY29sb3I6IGdyZWVuJz4KLSAg
ICAgICAgZ3JlZW4KLSAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotICA8L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1w
c2V1ZG8tZWxlbWVudC1yZXByb2plY3Rpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtcmVwcm9qZWN0aW9u
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9k
aXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1yZXByb2plY3Rpb24uaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgc2hhZG93U3R5bGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwotc2hhZG93U3R5bGUuaW5uZXJIVE1M
ID0gJ2NvbnRlbnQ6Oi13ZWJraXQtZGlzdHJpYnV0ZWQoLmZvbykgeyBjb2xvcjogZ3JlZW47IH0n
OwotCi12YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1z
YW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30s
Ci0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdDInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFk
b3dTdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250
ZW50JywgeydzZWxlY3QnOiAnLmZvbyd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdjb250ZW50JykpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2NsYXNzJzogJ2Zvbyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoJ2dyZWVuJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1z
Y29wZWQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc2NvcGVkLWV4cGVjdGVkLmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRl
ZC1wc2V1ZG8tZWxlbWVudC1zY29wZWQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJz
YW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdj5ub3JtYWw8L2Rpdj4KLSAgICA8
ZGl2PgotICAgICAgPGRpdiBzdHlsZT0nY29sb3I6IGdyZWVuJz5ncmVlbjwvZGl2PgotICAgIDwv
ZGl2PgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1zY29wZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVs
ZW1lbnQtc2NvcGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC1zY29wZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgc2hhZG93
U3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwotc2hhZG93U3R5bGUuaW5u
ZXJIVE1MID0gJ2NvbnRlbnQ6Oi13ZWJraXQtZGlzdHJpYnV0ZWQoZGl2KSB7IGNvbG9yOiBncmVl
bjsgfSc7Ci1zaGFkb3dTdHlsZS5zZXRBdHRyaWJ1dGUoJ3Njb3BlZCcsIHRydWUpOwotCi12YXIg
c2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1zYW5kYm94LmFw
cGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAgICAg
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Nv
bnRlbnQnLCB7J3NlbGVjdCc6ICcjaG9zdC1jaGlsZDEnfSksCi0gICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNob3N0LWNoaWxkMid9KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaGFkb3dTdHlsZSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnaG9zdC1jaGlsZDEnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdob3N0LWNoaWxkMid9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2dyZWVuJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1
ZG8tZWxlbWVudC1zcGVjaWZpZXJzLWluLWxlZnQtc2lkZS1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxl
bWVudC1zcGVjaWZpZXJzLWluLWxlZnQtc2lkZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVs
ZW1lbnQtc3BlY2lmaWVycy1pbi1sZWZ0LXNpZGUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2
IGlkPSJzYW5kYm94Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdj5ub3JtYWw8L2Rpdj4K
LSAgICA8ZGl2IHN0eWxlPSdjb2xvcjogZ3JlZW4nPmdyZWVuPC9kaXY+Ci0gICAgPGRpdiBzdHls
ZT0nY29sb3I6IGJsdWUnPmJsdWU8L2Rpdj4KLSAgPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1l
bnQtc3BlY2lmaWVycy1pbi1sZWZ0LXNpZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc3BlY2lmaWVycy1p
bi1sZWZ0LXNpZGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXNwZWNpZmllcnMtaW4tbGVmdC1z
aWRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2Ny
aXB0PgotdmFyIHNoYWRvd1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsK
LXNoYWRvd1N0eWxlLmlubmVySFRNTCA9ICdjb250ZW50Lm5vbi1leGlzdDo6LXdlYmtpdC1kaXN0
cmlidXRlZChkaXYpIHsgY29sb3I6IHJlZDsgfScKLSAgICArICdjb250ZW50LmNvbnRlbnQtY2xh
c3M6Oi13ZWJraXQtZGlzdHJpYnV0ZWQoZGl2KSB7IGNvbG9yOiBncmVlbjsgfScKLSAgICArICcj
Y29udGVudC1pZDo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYpIHsgY29sb3I6IGJsdWU7IH0nOwot
Ci12YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci1zYW5k
Ym94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0g
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjaG9zdC1jaGlsZC0xJ30pLAotICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydjbGFzcyc6ICdjb250ZW50LWNsYXNzJywgJ3Nl
bGVjdCc6ICcjaG9zdC1jaGlsZC0yJ30pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdj
b250ZW50JywgeydpZCc6ICdjb250ZW50LWlkJywgJ3NlbGVjdCc6ICcjaG9zdC1jaGlsZC0zJ30p
LAotICAgICAgICAgICAgICAgICAgc2hhZG93U3R5bGUpLAotICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnaG9zdC1jaGlsZC0xJ30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnbm9ybWFsJykpLAotICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC1jaGlsZC0yJ30sCi0gICAgICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZ3JlZW4nKSksCi0gICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0LWNoaWxkLTMnfSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdibHVlJykpKSk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmli
dXRlZC1wc2V1ZG8tZWxlbWVudC1zdXBwb3J0LXNlbGVjdG9yLWV4cGVjdGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1l
bGVtZW50LXN1cHBvcnQtc2VsZWN0b3ItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50
LXN1cHBvcnQtc2VsZWN0b3ItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94
Ij4KLSAgPGRpdiBpZD0iaG9zdCI+Ci0gICAgPGRpdj4KLSAgICAgIG5vcm1hbAotICAgICAgPGRp
diBzdHlsZT0iY29sb3I6IGdyZWVuIj5ncmVlbjwvZGl2PgotICAgIDwvZGl2PgotICAgIDxkaXY+
Ci0gICAgICBub3JtYWwKLSAgICAgIDxkaXY+bm9ybWFsPC9kaXY+Ci0gICAgPC9kaXY+Ci0gIDwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXN1cHBvcnQtc2VsZWN0b3IuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVs
ZW1lbnQtc3VwcG9ydC1zZWxlY3Rvci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtc3VwcG9ydC1z
ZWxlY3Rvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPjwvZGl2Pgot
PHNjcmlwdD4KLXZhciBzaGFkb3dTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxl
Jyk7Ci1zaGFkb3dTdHlsZS5pbm5lckhUTUwgPSAnY29udGVudDo6LXdlYmtpdC1kaXN0cmlidXRl
ZChkaXYuaGVsbG8gZGl2KSB7IGNvbG9yOiBncmVlbjsgfSc7Ci0KLXZhciBzYW5kYm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBwZW5kQ2hpbGQoCi0g
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlLAotICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdjb250ZW50JykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnY2xhc3MnOiAnaGVsbG8nfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJ2dyZWVuJykpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCdub3JtYWwnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ25vcm1hbCcpKSkpKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXVzZWQt
aW4tc2VsZWN0b3ItbGlzdC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC11c2VkLWluLXNlbGVj
dG9yLWxpc3QtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50LXVzZWQtaW4tc2VsZWN0
b3ItbGlzdC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPgotICA8ZGl2
IGlkPSJob3N0Ij4KLSAgICA8ZGl2IHN0eWxlPSJjb2xvcjogZ3JlZW4iPmdyZWVuPC9kaXY+Ci0g
ICAgPHA+bm9ybWFsPC9wPgotICAgIDxwIHN0eWxlPSJjb2xvcjogZ3JlZW4iPmdyZWVuPC9wPgot
ICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC11c2VkLWluLXNlbGVjdG9yLWxpc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQt
cHNldWRvLWVsZW1lbnQtdXNlZC1pbi1zZWxlY3Rvci1saXN0Lmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxl
bWVudC11c2VkLWluLXNlbGVjdG9yLWxpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlk
PSJzYW5kYm94Ij48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIgc2hhZG93U3R5bGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzdHlsZScpOwotc2hhZG93U3R5bGUuaW5uZXJIVE1MID0gJ2NvbnRlbnQ6
Oi13ZWJraXQtZGlzdHJpYnV0ZWQoZGl2KSwgcCB7IGNvbG9yOiBncmVlbjsgfSc7Ci0KLXZhciBz
YW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBw
ZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlLAot
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCi0gICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ3AnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgnZ3JlZW4nKSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
J2dyZWVuJykpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ3AnLCB7J2NsYXNzJzogJ2hlbGxv
J30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnbm9y
bWFsJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC13aXRoLWFueS1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0
cmlidXRlZC1wc2V1ZG8tZWxlbWVudC13aXRoLWFueS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRv
LWVsZW1lbnQtd2l0aC1hbnktZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94
Ij4KLSAgPGRpdj4KLSAgICA8ZGl2Pm5vcm1hbDwvZGl2PgotICAgIDxkaXYgc3R5bGU9ImNvbG9y
OiBncmVlbiI+Z3JlZW48L2Rpdj4KLSAgPC9kaXY+Ci0gIDxkaXY+Ci0gICAgPGRpdj5ub3JtYWw8
L2Rpdj4KLSAgICA8ZGl2IHN0eWxlPSJjb2xvcjogcmVkIj5yZWQ8L2Rpdj4KLSAgPC9kaXY+Ci0g
IDxkaXY+Ci0gICAgPGRpdj5ub3JtYWw8L2Rpdj4KLSAgICA8ZGl2IHN0eWxlPSJjb2xvcjogYmx1
ZSI+Ymx1ZTwvZGl2PgotICA8L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRlZC1wc2V1ZG8tZWxlbWVudC13aXRoLWFueS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRl
ZC1wc2V1ZG8tZWxlbWVudC13aXRoLWFueS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQtd2l0aC1h
bnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLTxzY3Jp
cHQ+Ci12YXIgc2hhZG93U3R5bGUxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsK
LXNoYWRvd1N0eWxlMS5pbm5lckhUTUwgPSAnKjo6LXdlYmtpdC1kaXN0cmlidXRlZChkaXYpIHsg
Y29sb3I6IGdyZWVuOyB9JzsKLQotdmFyIHNoYWRvd1N0eWxlMiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3N0eWxlJyk7Ci1zaGFkb3dTdHlsZTIuaW5uZXJIVE1MID0gJ2NvbnRlbnQ6Oi13ZWJr
aXQtZGlzdHJpYnV0ZWQoKikgeyBjb2xvcjogcmVkOyB9JzsKLQotdmFyIHNoYWRvd1N0eWxlMyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7Ci1zaGFkb3dTdHlsZTMuaW5uZXJIVE1M
ID0gJyo6Oi13ZWJraXQtZGlzdHJpYnV0ZWQoKikgeyBjb2xvcjogYmx1ZTsgfSc7Ci0KLXZhciBz
YW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLXNhbmRib3guYXBw
ZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgIHNoYWRvd1N0eWxlMSwKLSAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ25vcm1hbCcpKSwKLSAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnY29udGVudCcpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdncmVlbicp
KSkpOwotCi1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0g
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBzaGFkb3dT
dHlsZTIsCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdub3JtYWwnKSksCi0g
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSksCi0gICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgncmVkJykpKSk7Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURP
TSgnZGl2Jywge30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICBzaGFkb3dTdHlsZTMsCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCdub3JtYWwnKSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSksCi0g
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnYmx1ZScpKSkpOwotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0ZWQt
cHNldWRvLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZGlzdHJpYnV0ZWQtcHNldWRvLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGVkLXBzZXVkby1lbGVtZW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0
PgotdmFyIHNoYWRvd1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKLXNo
YWRvd1N0eWxlLmlubmVySFRNTCA9ICdjb250ZW50Ojotd2Via2l0LWRpc3RyaWJ1dGVkKGRpdikg
eyBjb2xvcjogZ3JlZW47IH0nOwotCi12YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzYW5kYm94Jyk7Ci1zYW5kYm94LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2
Jywge30sCi0gICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAg
ICBzaGFkb3dTdHlsZSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwK
LSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdncmVlbicpKSkpOwotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0
aW9uLWF0dHJpYnV0ZS1tb2RpZmllZC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tYXR0cmlidXRlLW1vZGlmaWVkLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9kaXN0cmlidXRpb24tYXR0cmlidXRlLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGJv
ZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXY+RjwvZGl2PgotPC9kaXY+Ci0KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tYXR0cmli
dXRlLW1vZGlmaWVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2Rpc3RyaWJ1dGlvbi1hdHRyaWJ1dGUtbW9kaWZpZWQuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1hdHRyaWJ1dGUt
bW9kaWZpZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXY+QTwvZGl2PgotICAg
IDxkaXY+QjwvZGl2PgotICAgIDxkaXY+QzwvZGl2PgotICAgIDxkaXY+RDwvZGl2PgotICAgIDxk
aXY+RTwvZGl2PgotICAgIDxkaXYgaWQ9IkYiPkY8L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0Pgot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXZbdGl0bGVdIj48L2NvbnRlbnQ+
JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBGLnRpdGxlID0gJ3NvbWV0aGluZyc7
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWNsYXNzTmFtZS1tb2RpZmllZC1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24t
Y2xhc3NOYW1lLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tY2xhc3NOYW1lLW1vZGlmaWVk
LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXY+QTwv
ZGl2PgotICAgIDxkaXY+RDwvZGl2PgotICAgIDxkaXY+RjwvZGl2PgotPC9kaXY+Ci0KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24tY2xhc3NO
YW1lLW1vZGlmaWVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2Rpc3RyaWJ1dGlvbi1jbGFzc05hbWUtbW9kaWZpZWQuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1jbGFzc05hbWUt
bW9kaWZpZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxkaXYgY2xhc3M9InNlbGVj
dGVkIj5BPC9kaXY+Ci0gICAgPGRpdj5CPC9kaXY+Ci0gICAgPGRpdj5DPC9kaXY+Ci0gICAgPGRp
diBjbGFzcz0ic2VsZWN0ZWQiPkQ8L2Rpdj4KLSAgICA8ZGl2PkU8L2Rpdj4KLSAgICA8ZGl2IGlk
PSJGIj5GPC9kaXY+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250
ZW50IHNlbGVjdD0iLnNlbGVjdGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICBGLmNsYXNzTmFtZSA9ICdzZWxlY3RlZCc7Ci0gICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotPC9zY3Jp
cHQ+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0
aW9uLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZGlzdHJpYnV0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1jcmFzaC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBACi1XaGVuIG1vZGlmeWluZyBJ
bnNlcnRpb25Qb2ludCdzIGNoaWxkLCBkaXN0cmlidXRpb24gc2hvdWxkIG5vdCBjYXVzZSBjcmFz
aC4KLQotUEFTUyB1bmxlc3MgY3Jhc2guCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZGlzdHJpYnV0aW9uLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWNyYXNoLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD48Ym9keT4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotCi08cD5XaGVuIG1vZGlmeWluZyBJbnNlcnRpb25Qb2ludCdzIGNoaWxkLCBkaXN0cmlidXRp
b24gc2hvdWxkIG5vdCBjYXVzZSBjcmFzaC48L3A+Ci08cD5QQVNTIHVubGVzcyBjcmFzaC48L3A+
Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxz
Y3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZnVuY3Rpb24gY3JlYXRlRWxlbWVudExp
a2VEZXRhaWxzKCkKLXsKLSAgICB2YXIgZGV0YWlscyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgIHZhciBzaGFkb3dSb290ID0gZGV0YWlscy53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci0KLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRp
di5zdW1tYXJ5Ij48L2NvbnRlbnQ+PGNvbnRlbnQ+PC9jb250ZW50Pic7Ci0KLSAgICB2YXIgZGVm
YXVsdFN1bW1hcnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkZWZhdWx0
U3VtbWFyeS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJ0RlZmF1bHQgU3Vt
bWFyeSc7Ci0gICAgc2hhZG93Um9vdC5maXJzdENoaWxkLmFwcGVuZENoaWxkKGRlZmF1bHRTdW1t
YXJ5KTsKLQotICAgIHJldHVybiBkZXRhaWxzOyAgICAKLX0KLQotdmFyIHNoYWRvd1Jvb3QxID0g
aG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAn
c29tZXRoaW5nIDEnOwotCi12YXIgc2hhZG93Um9vdDIgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLXZhciBkZXRhaWxzID0gY3JlYXRlRWxlbWVudExpa2VEZXRhaWxzKCk7Ci1kZXRh
aWxzLmlubmVySFRNTCA9ICc8c2hhZG93IGlkPSJzaGFkb3ciPnNvbWV0aGluZyAyPC9zaGFkb3c+
JzsKLXNoYWRvd1Jvb3QyLmFwcGVuZENoaWxkKGRldGFpbHMpOwotCi12YXIgc2hhZG93ID0gZGV0
YWlscy5maXJzdENoaWxkOwotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBzaGFkb3cuZmly
c3RDaGlsZC5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIDApOwotPC9zY3JpcHQ+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZGlzdHJpYnV0aW9uLWlkLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Rpc3RyaWJ1dGlvbi1pZC1tb2RpZmllZC1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZGlzdHJpYnV0aW9uLWlkLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxkaXYg
aWQ9Imhvc3QiPgotICAgIDxkaXY+RjwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kaXN0cmlidXRpb24taWQtbW9kaWZpZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZGlzdHJpYnV0aW9uLWlk
LW1vZGlmaWVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9kaXN0cmlidXRpb24taWQtbW9kaWZpZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9Imhvc3Qi
PgotICAgIDxkaXYgaWQ9InNlbGVjdGVkIj5BPC9kaXY+Ci0gICAgPGRpdj5CPC9kaXY+Ci0gICAg
PGRpdj5DPC9kaXY+Ci0gICAgPGRpdj5EPC9kaXY+Ci0gICAgPGRpdj5FPC9kaXY+Ci0gICAgPGRp
diBpZD0iRiI+RjwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLXZhciBzaGFkb3dSb290ID0g
aG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICc8
Y29udGVudCBzZWxlY3Q9IiNzZWxlY3RlZCI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7Ci0gICAgQSA9IHNlbGVjdGVkOwotICAgIEYuaWQgPSAnc2VsZWN0ZWQnOyAgICAK
LSAgICBBLmlkID0gJyc7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHJhZy10by1tZXRlci1pbi1zaGFkb3ctY3Jhc2gt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9k
cmFnLXRvLW1ldGVyLWluLXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcmFnLXRvLW1ldGVyLWluLXNoYWRv
dy1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1UaGlz
IHRlc3QgY2hlY2tzIHNlbGVjdGluZyBmcm9tIG91dHNpZGUgb2YgYSBzaGFkb3cgdHJlZSBhbmQg
dG8gaW5zaWRlIG9mIGEgc2hhZG93IHRyZWUgd29uJ3QgY3Jhc2guCi0KLVBBU1MKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcmFnLXRvLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcmFnLXRvLW1l
dGVyLWluLXNoYWRvdy1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZHJhZy10by1tZXRlci1pbi1zaGFkb3ctY3Jhc2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJv
ZHk+Ci08cD5UaGlzIHRlc3QgY2hlY2tzIHNlbGVjdGluZyBmcm9tIG91dHNpZGUgb2YgYSBzaGFk
b3cgdHJlZSBhbmQgdG8gaW5zaWRlIG9mIGEgc2hhZG93IHRyZWUgd29uJ3QgY3Jhc2guPC9wPgot
PGRpdiBpZD0nY29udGFpbmVyJyBzdHlsZT0id2lkdGg6MTAwcHg7IGhlaWdodDogMTAwcHgiPjwv
ZGl2PgotPGRpdj5QQVNTPC9kaXY+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLQotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb250YWluZXInKTsKLXZhciBzaGFkb3dSb290ID0gY29udGFpbmVyLndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXZhciBtZXRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGVyJyk7
Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKG1ldGVyKTsKLQotdmFyIG1pZFggPSBtZXRlci5vZmZz
ZXRMZWZ0ICsgKG1ldGVyLm9mZnNldFdpZHRoIC8gMik7Ci12YXIgbWlkWSA9IG1ldGVyLm9mZnNl
dFRvcCArIChtZXRlci5vZmZzZXRIZWlnaHQgLyAyKTsKLXZhciBkZWx0YSA9IDQwOwotCi1ldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhtaWRYLCBtaWRZICsgZGVsdGEpOwotZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7Ci1ldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRYLCBtaWRZKTsKLWV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ryb3AtZXZlbnQtZm9yLWlucHV0LWluLXNoYWRvdy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ryb3At
ZXZlbnQtZm9yLWlucHV0LWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcm9wLWV2ZW50LWZvci1pbnB1dC1pbi1z
aGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzAsMCBAQAotUEFTUzog
ZHJvcCBldmVudCBpcyBmaXJlZC4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2Ryb3AtZXZlbnQtZm9yLWlucHV0LWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcm9wLWV2ZW50LWZvci1pbnB1dC1pbi1zaGFkb3cuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Ryb3At
ZXZlbnQtZm9yLWlucHV0LWluLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9l
dmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVh
dGVJbnB1dChuYW1lKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lu
cHV0Jyk7Ci0gICAgZGl2LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKLSAgICBkaXYuc3R5bGUuaGVp
Z2h0ID0gJzEwMHB4JzsKLQotICAgIGRpdi5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgZnVuY3Rp
b24oZSkgewotICAgICAgICBkZWJ1ZygnUEFTUzogZHJvcCBldmVudCBpcyBmaXJlZC4nKTsKLSAg
ICB9KTsKLQotICAgIHJldHVybiBkaXY7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAg
dmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIg
c2hhZG93SW5wdXQgPSBjcmVhdGVJbnB1dCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChzaGFkb3dJbnB1dCk7Ci0KLSAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmls
ZXMoWyIuLi9yZXNvdXJjZXMvYXBwbGUuZ2lmIl0pOwotICAgIG1vdXNlTW92ZVRvRWxlbShzaGFk
b3dJbnB1dCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2Pgot
PHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHJvcC1ldmVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9kcm9wLWV2ZW50LWluLXNo
YWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9kcm9wLWV2ZW50LWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMiArMCwwIEBACi1QQVNTOiBkcm9wIGV2ZW50IGlzIGZpcmVkLgotCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHJvcC1ldmVudC1pbi1zaGFkb3cuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHJvcC1ldmVudC1pbi1zaGFk
b3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2Ryb3AtZXZlbnQtaW4tc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzkgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2V2ZW50
LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZUJv
eChuYW1lKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgIGRpdi5zdHlsZS53aWR0aCA9ICcxMDBweCc7Ci0gICAgZGl2LnN0eWxlLmhlaWdodCA9ICcx
MDBweCc7Ci0KLSAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBmdW5jdGlvbihl
KSB7Ci0gICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKLSAgICB9KTsKLSAgICBkaXYuYWRkRXZl
bnRMaXN0ZW5lcignZHJvcCcsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGVidWcoJ1BBU1M6IGRy
b3AgZXZlbnQgaXMgZmlyZWQuJyk7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gZGl2OwotfQotCi1m
dW5jdGlvbiBydW5UZXN0KCkgewotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIHNoYWRvd0RpdiA9IGNyZWF0ZUJveCgnc2hhZG93Jyk7
Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3dEaXYpOwotCi0gICAgZXZlbnRTZW5k
ZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsiLi4vcmVzb3VyY2VzL2FwcGxlLmdpZiJdKTsKLSAgICBt
b3VzZU1vdmVUb0VsZW0oc2hhZG93RGl2KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPGRpdiBp
ZD0iaG9zdCI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVk
LXNoYWRvdy1yb290LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFt
aWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGJvZHk+Ci08ZGl2PgotVGhpcyB0ZXN0
cyB0aGF0IGR5bmFtaWNhbGx5IGNyZWF0ZWQgU2hhZG93Um9vdCBzaG91bGQgYmUgcmVuZGVyZWQg
Y29ycmVjdGx5LgotQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQuCi08L2Rpdj4KLTxkaXY+U2hhZG93
IHNob3VsZCBiZSByZW5kZXJlZC48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5
LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxib2R5Pgot
PGRpdj4KLVRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBjcmVhdGVkIFNoYWRvd1Jvb3Qgc2hv
dWxkIGJlIHJlbmRlcmVkIGNvcnJlY3RseS4KLUNhbiBvbmx5IHJ1biB3aXRoaW4gRFJULgotPC9k
aXY+Ci08ZGl2IGlkPSJob3N0MSI+TGlnaHQgY2hpbGRyZW4gc2hvdWxkIG5vdCBiZSByZW5kZXJl
ZC48L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykgewotICAgIHZhciBob3N0
MSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNob3N0MScpOwotICAgIHZhciBzaGFkb3dSb290
ID0gd2luZG93LmludGVybmFscy5lbnN1cmVTaGFkb3dSb290KGhvc3QxKTsKLSAgICBzaGFkb3dS
b290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdTaGFkb3cgc2hvdWxkIGJl
IHJlbmRlcmVkLicpKTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnQtZnJvbS1wb2ludC1pbi1uZXN0ZWQtc2hh
ZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZWxlbWVudC1mcm9tLXBvaW50LWluLW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1mcm9t
LXBvaW50LWluLW5lc3RlZC1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzAsMCBAQAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUoZWxlbWVudCkgaXMg
ZG9jdW1lbnQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1mcm9tLXBvaW50
LWluLW5lc3RlZC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZWxlbWVudC1mcm9tLXBvaW50LWluLW5lc3RlZC1zaGFkb3cuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnQtZnJvbS1w
b2ludC1pbi1uZXN0ZWQtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2V2ZW50
LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9
Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiBjcmVhdGVCb3gobmFtZSkgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICBkaXYuc3R5bGUud2lkdGggPSAnMTAwcHgnOwotICAgIGRpdi5zdHls
ZS5oZWlnaHQgPSAnMTAwcHgnOwotCi0gICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBm
dW5jdGlvbihlKSB7Ci0gICAgICAgIGRlYnVnKCdQQVNTOiBkcm9wIGV2ZW50IGlzIGZpcmVkLicp
OwotICAgIH0pOwotCi0gICAgcmV0dXJuIGRpdjsKLX0KLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLQotdmFyIGRhcmtSb290
ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBib3ggPSBjcmVhdGVCb3goJ2Rh
cmsnKTsKLWRhcmtSb290LmFwcGVuZENoaWxkKGJveCk7Ci0KLXZhciB4ID0gYm94Lm9mZnNldExl
ZnQgKyBib3gub2Zmc2V0V2lkdGggLyAyOwotdmFyIHkgPSBib3gub2Zmc2V0VG9wICsgYm94Lm9m
ZnNldEhlaWdodCAvIDI7Ci0KLXZhciBlbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2lu
dCh4LCB5KTsKLQotc2hvdWxkQmUoImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZShlbGVtZW50
KSIsICJkb2N1bWVudCIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZWxlbWVudC1uYW1lLWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnQtbmFtZS1pbi1zaGFkb3ctZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZWxlbWVudC1uYW1lLWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTIxICswLDAgQEAKLTxhPjogQmVmb3JlIGFwcGVuZENoaWxkLCBuYW1lZF9hIHNob3VsZCBub3Qg
YmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQot
UEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08YT46IEFmdGVyIGFwcGVuZENo
aWxkLCBuYW1lZF9hIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQsIGJlY2F1c2UgdGhl
IGVsZW1lbnQgd2FzIGluc2VydGVkIGludG8gYSBzaGFkb3cgRE9NIHRyZWUuCi1QQVNTIGVsZW1l
bnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93
IGlzIGZhbHNlCi08YT46IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJl
bmFtZWRfYSBieSB1c2luZyBzZXRBdHRyaWJ1dGUsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwg
YmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQot
UEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08YT46IEFmdGVyIGNoYW5naW5n
IGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlLXJlbmFtZWRfYSBieSB1c2luZyAnLm5hbWU9Jywg
dGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5u
YW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMg
ZmFsc2UKLTxhcHBsZXQ+OiBCZWZvcmUgYXBwZW5kQ2hpbGQsIG5hbWVkX2FwcGxldCBzaG91bGQg
bm90IGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFs
c2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGFwcGxldD46IEFmdGVy
IGFwcGVuZENoaWxkLCBuYW1lZF9hcHBsZXQgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVu
dCwgYmVjYXVzZSB0aGUgZWxlbWVudCB3YXMgaW5zZXJ0ZWQgaW50byBhIHNoYWRvdyBET00gdHJl
ZS4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQu
bmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxhcHBsZXQ+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFt
ZSBhdHRyaWJ1dGUgaW50byByZW5hbWVkX2FwcGxldCBieSB1c2luZyBzZXRBdHRyaWJ1dGUsIHRo
ZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFt
ZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZh
bHNlCi08YXBwbGV0PjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8gcmUt
cmVuYW1lZF9hcHBsZXQgYnkgdXNpbmcgJy5uYW1lPScsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3Rp
bGwgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxz
ZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08YXJlYT46IEJlZm9yZSBh
cHBlbmRDaGlsZCwgbmFtZWRfYXJlYSBzaG91bGQgbm90IGJlIGluIGRvY3VtZW50LgotUEFTUyBl
bGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdp
bmRvdyBpcyBmYWxzZQotPGFyZWE+OiBBZnRlciBhcHBlbmRDaGlsZCwgbmFtZWRfYXJlYSBzaG91
bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LCBiZWNhdXNlIHRoZSBlbGVtZW50IHdhcyBpbnNl
cnRlZCBpbnRvIGEgc2hhZG93IERPTSB0cmVlLgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1l
bnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGFyZWE+
OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byBuYW1lZF9hcmVhIGJ5IHVz
aW5nIHNldEF0dHJpYnV0ZSwgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVu
dC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQu
bmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxhcmVhPjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUg
YXR0cmlidXRlIGludG8gcmUtcmVuYW1lZF9hcmVhIGJ5IHVzaW5nICcubmFtZT0nLCB0aGUgbmFt
ZSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4g
ZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQot
PGVtYmVkPjogQmVmb3JlIGFwcGVuZENoaWxkLCBuYW1lZF9lbWJlZCBzaG91bGQgbm90IGJlIGlu
IGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1Mg
ZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGVtYmVkPjogQWZ0ZXIgYXBwZW5kQ2hp
bGQsIG5hbWVkX2VtYmVkIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQsIGJlY2F1c2Ug
dGhlIGVsZW1lbnQgd2FzIGluc2VydGVkIGludG8gYSBzaGFkb3cgRE9NIHRyZWUuCi1QQVNTIGVs
ZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2lu
ZG93IGlzIGZhbHNlCi08ZW1iZWQ+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUg
aW50byByZW5hbWVkX2VtYmVkIGJ5IHVzaW5nIHNldEF0dHJpYnV0ZSwgdGhlIG5hbWUgc2hvdWxk
IG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50
IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxlbWJlZD46
IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlLXJlbmFtZWRfZW1iZWQg
YnkgdXNpbmcgJy5uYW1lPScsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1l
bnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50
Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08Zm9ybT46IEJlZm9yZSBhcHBlbmRDaGlsZCwgbmFt
ZWRfZm9ybSBzaG91bGQgbm90IGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4g
ZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQot
PGZvcm0+OiBBZnRlciBhcHBlbmRDaGlsZCwgbmFtZWRfZm9ybSBzaG91bGQgbm90IHN0aWxsIGJl
IGluIGRvY3VtZW50LCBiZWNhdXNlIHRoZSBlbGVtZW50IHdhcyBpbnNlcnRlZCBpbnRvIGEgc2hh
ZG93IERPTSB0cmVlLgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBB
U1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGZvcm0+OiBBZnRlciBjaGFuZ2lu
ZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byByZW5hbWVkX2Zvcm0gYnkgdXNpbmcgc2V0QXR0cmli
dXRlLCB0aGUgbmFtZSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVt
ZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRv
dyBpcyBmYWxzZQotPGZvcm0+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50
byByZS1yZW5hbWVkX2Zvcm0gYnkgdXNpbmcgJy5uYW1lPScsIHRoZSBuYW1lIHNob3VsZCBub3Qg
c3RpbGwgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBm
YWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08ZnJhbWU+OiBCZWZv
cmUgYXBwZW5kQ2hpbGQsIG5hbWVkX2ZyYW1lIHNob3VsZCBub3QgYmUgaW4gZG9jdW1lbnQuCi1Q
QVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUg
aW4gd2luZG93IGlzIGZhbHNlCi08ZnJhbWU+OiBBZnRlciBhcHBlbmRDaGlsZCwgbmFtZWRfZnJh
bWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudCwgYmVjYXVzZSB0aGUgZWxlbWVudCB3
YXMgaW5zZXJ0ZWQgaW50byBhIHNoYWRvdyBET00gdHJlZS4KLVBBU1MgZWxlbWVudC5uYW1lIGlu
IGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UK
LTxmcmFtZT46IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvIHJlbmFtZWRf
ZnJhbWUgYnkgdXNpbmcgc2V0QXR0cmlidXRlLCB0aGUgbmFtZSBzaG91bGQgbm90IHN0aWxsIGJl
IGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBB
U1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGZyYW1lPjogQWZ0ZXIgY2hhbmdp
bmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8gcmUtcmVuYW1lZF9mcmFtZSBieSB1c2luZyAnLm5h
bWU9JywgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxl
bWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5k
b3cgaXMgZmFsc2UKLTxmcmFtZXNldD46IEJlZm9yZSBhcHBlbmRDaGlsZCwgbmFtZWRfZnJhbWVz
ZXQgc2hvdWxkIG5vdCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3Vt
ZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxmcmFt
ZXNldD46IEFmdGVyIGFwcGVuZENoaWxkLCBuYW1lZF9mcmFtZXNldCBzaG91bGQgbm90IHN0aWxs
IGJlIGluIGRvY3VtZW50LCBiZWNhdXNlIHRoZSBlbGVtZW50IHdhcyBpbnNlcnRlZCBpbnRvIGEg
c2hhZG93IERPTSB0cmVlLgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UK
LVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGZyYW1lc2V0PjogQWZ0ZXIg
Y2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8gbmFtZWRfZnJhbWVzZXQgYnkgdXNpbmcg
c2V0QXR0cmlidXRlLCB0aGUgbmFtZSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50Lgot
UEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1l
IGluIHdpbmRvdyBpcyBmYWxzZQotPGZyYW1lc2V0PjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUg
YXR0cmlidXRlIGludG8gcmUtcmVuYW1lZF9mcmFtZXNldCBieSB1c2luZyAnLm5hbWU9JywgdGhl
IG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1l
IGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFs
c2UKLTxpZnJhbWU+OiBCZWZvcmUgYXBwZW5kQ2hpbGQsIG5hbWVkX2lmcmFtZSBzaG91bGQgbm90
IGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UK
LVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPGlmcmFtZT46IEFmdGVyIGFw
cGVuZENoaWxkLCBuYW1lZF9pZnJhbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudCwg
YmVjYXVzZSB0aGUgZWxlbWVudCB3YXMgaW5zZXJ0ZWQgaW50byBhIHNoYWRvdyBET00gdHJlZS4K
LVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFt
ZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxpZnJhbWU+OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBh
dHRyaWJ1dGUgaW50byByZW5hbWVkX2lmcmFtZSBieSB1c2luZyBzZXRBdHRyaWJ1dGUsIHRoZSBu
YW1lIHNob3VsZCBub3Qgc3RpbGwgYmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBp
biBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNl
Ci08aWZyYW1lPjogQWZ0ZXIgY2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8gcmUtcmVu
YW1lZF9pZnJhbWUgYnkgdXNpbmcgJy5uYW1lPScsIHRoZSBuYW1lIHNob3VsZCBub3Qgc3RpbGwg
YmUgaW4gZG9jdW1lbnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQot
UEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08aW1nPjogQmVmb3JlIGFwcGVu
ZENoaWxkLCBuYW1lZF9pbWcgc2hvdWxkIG5vdCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVu
dC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cg
aXMgZmFsc2UKLTxpbWc+OiBBZnRlciBhcHBlbmRDaGlsZCwgbmFtZWRfaW1nIHNob3VsZCBub3Qg
c3RpbGwgYmUgaW4gZG9jdW1lbnQsIGJlY2F1c2UgdGhlIGVsZW1lbnQgd2FzIGluc2VydGVkIGlu
dG8gYSBzaGFkb3cgRE9NIHRyZWUuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBm
YWxzZQotUEFTUyBlbGVtZW50Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08aW1nPjogQWZ0ZXIg
Y2hhbmdpbmcgaXRzIG5hbWUgYXR0cmlidXRlIGludG8gcmVuYW1lZF9pbWcgYnkgdXNpbmcgc2V0
QXR0cmlidXRlLCB0aGUgbmFtZSBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LgotUEFT
UyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGlu
IHdpbmRvdyBpcyBmYWxzZQotPGltZz46IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0
ZSBpbnRvIHJlLXJlbmFtZWRfaW1nIGJ5IHVzaW5nICcubmFtZT0nLCB0aGUgbmFtZSBzaG91bGQg
bm90IHN0aWxsIGJlIGluIGRvY3VtZW50LgotUEFTUyBlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQg
aXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBpcyBmYWxzZQotPG9iamVjdD46
IEJlZm9yZSBhcHBlbmRDaGlsZCwgbmFtZWRfb2JqZWN0IHNob3VsZCBub3QgYmUgaW4gZG9jdW1l
bnQuCi1QQVNTIGVsZW1lbnQubmFtZSBpbiBkb2N1bWVudCBpcyBmYWxzZQotUEFTUyBlbGVtZW50
Lm5hbWUgaW4gd2luZG93IGlzIGZhbHNlCi08b2JqZWN0PjogQWZ0ZXIgYXBwZW5kQ2hpbGQsIG5h
bWVkX29iamVjdCBzaG91bGQgbm90IHN0aWxsIGJlIGluIGRvY3VtZW50LCBiZWNhdXNlIHRoZSBl
bGVtZW50IHdhcyBpbnNlcnRlZCBpbnRvIGEgc2hhZG93IERPTSB0cmVlLgotUEFTUyBlbGVtZW50
Lm5hbWUgaW4gZG9jdW1lbnQgaXMgZmFsc2UKLVBBU1MgZWxlbWVudC5uYW1lIGluIHdpbmRvdyBp
cyBmYWxzZQotPG9iamVjdD46IEFmdGVyIGNoYW5naW5nIGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRv
IHJlbmFtZWRfb2JqZWN0IGJ5IHVzaW5nIHNldEF0dHJpYnV0ZSwgdGhlIG5hbWUgc2hvdWxkIG5v
dCBzdGlsbCBiZSBpbiBkb2N1bWVudC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlz
IGZhbHNlCi1QQVNTIGVsZW1lbnQubmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLTxvYmplY3Q+OiBB
ZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byByZS1yZW5hbWVkX29iamVjdCBi
eSB1c2luZyAnLm5hbWU9JywgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVu
dC4KLVBBU1MgZWxlbWVudC5uYW1lIGluIGRvY3VtZW50IGlzIGZhbHNlCi1QQVNTIGVsZW1lbnQu
bmFtZSBpbiB3aW5kb3cgaXMgZmFsc2UKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2VsZW1lbnQtbmFtZS1pbi1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1uYW1lLWluLXNoYWRvdy5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudC1uYW1lLWluLXNo
YWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQyICswLDAgQEAKLTwhZG9jdHlwZSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdj48L2Rpdj4KLTxzY3JpcHQ+Ci12YXIg
ZGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2Iik7Ci1kb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRpdik7Ci12YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0KLS8vV2luZG93IG5hbWVkIHByb3BlcnRpZXMKLXZhciBuYW1lZEVsZW1lbnRzID0gWydh
JywgJ2FwcGxldCcsICdhcmVhJywgJ2VtYmVkJywgJ2Zvcm0nLCAnZnJhbWUnLAotICAgICdmcmFt
ZXNldCcsICdpZnJhbWUnLCdpbWcnLCAnb2JqZWN0J107Ci0KLXZhciBlbGVtZW50OwotbmFtZWRF
bGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uICh0YWdOYW1lKSB7Ci0gICAgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7Ci0gICAgZWxlbWVudC5uYW1lID0gJ25hbWVkXycg
KyB0YWdOYW1lOwotCi0gICAgZGVidWcoIiZsdDsiICsgdGFnTmFtZSArICImZ3Q7OiBCZWZvcmUg
YXBwZW5kQ2hpbGQsICIgKyBlbGVtZW50Lm5hbWUgKyAiIHNob3VsZCBub3QgYmUgaW4gZG9jdW1l
bnQuIik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5uYW1lIGluIGRvY3VtZW50Iik7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgiZWxlbWVudC5uYW1lIGluIHdpbmRvdyIpOwotICAgIHNoYWRvd1Jv
b3QuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci0gICAgZGVidWcoIiZsdDsiICsgdGFnTmFtZSArICIm
Z3Q7OiBBZnRlciBhcHBlbmRDaGlsZCwgIiArIGVsZW1lbnQubmFtZSArICIgc2hvdWxkIG5vdCBz
dGlsbCBiZSBpbiBkb2N1bWVudCwgYmVjYXVzZSB0aGUgZWxlbWVudCB3YXMgaW5zZXJ0ZWQgaW50
byBhIHNoYWRvdyBET00gdHJlZS4iKTsKLSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUg
aW4gZG9jdW1lbnQiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gd2luZG93
Iik7Ci0KLSAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnbmFtZScsICdyZW5hbWVkXycgKyB0YWdO
YW1lKTsKLSAgICBkZWJ1ZygiJmx0OyIgKyB0YWdOYW1lICsgIiZndDs6IEFmdGVyIGNoYW5naW5n
IGl0cyBuYW1lIGF0dHJpYnV0ZSBpbnRvICIgKyBlbGVtZW50Lm5hbWUgKyAiIGJ5IHVzaW5nIHNl
dEF0dHJpYnV0ZSwgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBpbiBkb2N1bWVudC4iKTsK
LSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gZG9jdW1lbnQiKTsKLSAgICBzaG91
bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gd2luZG93Iik7Ci0gICAgZWxlbWVudC5uYW1lID0g
J3JlLXJlbmFtZWRfJyArIHRhZ05hbWU7Ci0gICAgZGVidWcoIiZsdDsiICsgdGFnTmFtZSArICIm
Z3Q7OiBBZnRlciBjaGFuZ2luZyBpdHMgbmFtZSBhdHRyaWJ1dGUgaW50byAiICsgZWxlbWVudC5u
YW1lICsgIiBieSB1c2luZyAnLm5hbWU9JywgdGhlIG5hbWUgc2hvdWxkIG5vdCBzdGlsbCBiZSBp
biBkb2N1bWVudC4iKTsKLSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gZG9jdW1l
bnQiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJlbGVtZW50Lm5hbWUgaW4gd2luZG93Iik7Ci19KTsK
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2VsZW1lbnRmcm9tcG9pbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50ZnJvbXBvaW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRmcm9t
cG9pbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotUEFTUyBz
aGFkb3dSb290LmVsZW1lbnRGcm9tUG9pbnQoeDEyLCB5MTIpIGlzIGJveDEyCi1QQVNTIG5lc3Rl
ZFNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh4MjIsIHkyMikgaXMgYm94MjIKLVBBU1Mgc2hh
ZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KHgyMiwgeTIyKSBpcyBuZXN0ZWRIb3N0Ci1QQVNTIGRv
Y3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoeDIyLCB5MjIpIGlzIGhvc3QKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvZWxlbWVudGZyb21wb2ludC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50ZnJvbXBvaW50Lmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50ZnJvbXBvaW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVCb3goKSB7Ci0gICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53
aWR0aCA9ICcxMDBweCc7Ci0gICAgZGl2LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0gICAgcmV0
dXJuIGRpdjsKLX0KLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLXZhciBib3gxMSA9IGNyZWF0ZUJveCgpOwotdmFyIGJveDEyID0gY3JlYXRlQm94KCk7
Ci12YXIgYm94MTMgPSBjcmVhdGVCb3goKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYm94MTEp
Owotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChib3gxMik7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxk
KGJveDEzKTsKLQotdmFyIG5lc3RlZEhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLXZhciBuZXN0ZWRTaGFkb3dSb290ID0gbmVzdGVkSG9zdC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci12YXIgYm94MjEgPSBjcmVhdGVCb3goKTsKLXZhciBib3gyMiA9IGNyZWF0ZUJveCgp
OwotdmFyIGJveDIzID0gY3JlYXRlQm94KCk7Ci1uZXN0ZWRTaGFkb3dSb290LmFwcGVuZENoaWxk
KGJveDIxKTsKLW5lc3RlZFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYm94MjIpOwotbmVzdGVkU2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChib3gyMyk7Ci0KLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobmVz
dGVkSG9zdCk7Ci0KLXZhciB4MTIgPSBib3gxMi5vZmZzZXRMZWZ0ICsgYm94MTIub2Zmc2V0V2lk
dGggLyAyOwotdmFyIHkxMiA9IGJveDEyLm9mZnNldFRvcCArIGJveDEyLm9mZnNldEhlaWdodCAv
IDI7Ci12YXIgeDIyID0gYm94MjIub2Zmc2V0TGVmdCArIGJveDIyLm9mZnNldFdpZHRoIC8gMjsK
LXZhciB5MjIgPSBib3gyMi5vZmZzZXRUb3AgKyBib3gyMi5vZmZzZXRIZWlnaHQgLyAyOwotCi1z
aG91bGRCZSgnc2hhZG93Um9vdC5lbGVtZW50RnJvbVBvaW50KHgxMiwgeTEyKScsICdib3gxMicp
Owotc2hvdWxkQmUoJ25lc3RlZFNoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh4MjIsIHkyMikn
LCAnYm94MjInKTsKLQotc2hvdWxkQmUoJ3NoYWRvd1Jvb3QuZWxlbWVudEZyb21Qb2ludCh4MjIs
IHkyMiknLCAnbmVzdGVkSG9zdCcpOwotc2hvdWxkQmUoJ2RvY3VtZW50LmVsZW1lbnRGcm9tUG9p
bnQoeDIyLCB5MjIpJywgJ2hvc3QnKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNz
LWRvY3VtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWlu
LWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTUg
KzAsMCBAQAotVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRoZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50
cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZyYW1lbGVzcyBkb2N1bWVudHMuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1UZXN0aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRv
Y3VtZW50LgotUEFTUyB3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRlbnQuY29uc3Ry
dWN0b3IKLVBBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3Rv
cgotTW92aW5nIHRvIHRoZSBtYWluIGRvY3VtZW50LgotUEFTUyB3aW5kb3cuSFRNTENvbnRlbnRF
bGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKLVBBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVt
ZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi14KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1l
bnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICsw
LDAgQEAKLXgrPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRoZSBzaGFk
b3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZyYW1lbGVz
cyBkb2N1bWVudHMuIik7Ci0KLXZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVh
dGVIVE1MRG9jdW1lbnQoKTsKLXZhciBjb250YWluZXIgPSBkb2MuY3JlYXRlRWxlbWVudCgic3Bh
biIpOwotZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLWNvbnRhaW5lci5pbm5lckhU
TUwgPSAiPGNvbnRlbnQgaWQ9J2NvbnRlbnRFbGVtZW50Jz48L2NvbnRlbnQ+PHNoYWRvdyBpZD0n
c2hhZG93RWxlbWVudCc+PC9zaGFkb3c+IjsKLQotdmFyIGNvbnRlbnQgPSBjb250YWluZXIucXVl
cnlTZWxlY3RvcigiI2NvbnRlbnRFbGVtZW50Iik7Ci12YXIgc2hhZG93ID0gY29udGFpbmVyLnF1
ZXJ5U2VsZWN0b3IoIiNzaGFkb3dFbGVtZW50Iik7Ci0KLWRlYnVnKCJUZXN0aW5nIG9uIHRoZSBm
cmFtZS1sZXNzIGRvY3VtZW50LiIpOwotc2hvdWxkQmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1l
bnQiLCAiY29udGVudC5jb25zdHJ1Y3RvciIpOwotc2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93
RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3IiKTsKLQotZGVidWcoIk1vdmluZyB0byB0aGUg
bWFpbiBkb2N1bWVudC4iKTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsK
LXNob3VsZEJlKCJ3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRlbnQuY29uc3RydWN0
b3IiKTsKLXNob3VsZEJlKCJ3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQiLCAic2hhZG93LmNvbnN0
cnVjdG9yIik7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2V2ZW50cy1zdG9wcGVkLWF0LXNoYWRvdy1ib3VuZGFyeS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2V2
ZW50cy1zdG9wcGVkLWF0LXNoYWRvdy1ib3VuZGFyeS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ldmVudHMtc3RvcHBlZC1hdC1z
aGFkb3ctYm91bmRhcnktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYwICswLDAg
QEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IHNvbWUga2luZHMgb2YgZXZlbnRzIGFyZSBzdG9wZWVk
IGF0IHNoYWRvdyBib3VuZGFyeS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLU90
aGVyIGV2ZW50cyB0aGFuICJjbGljayIgc2hvdWxkIGJlIHN0b3BwZWQgYXQgc2hhZG93IGJvdW5k
YXJ5LiAgQSAiY2xpY2siIGlzIGFkZGVkIGZvciB0aGUgcHVycG9zZSBvZiBjb21wYXJpbmcgcmVz
dWx0cy4KLQotICBhYm9ydAotICAgICBAdGFyZ2V0ICh0YXJnZXQ6IHRhcmdldCkKLSAgICAgQHBh
cmVudC1vZi10YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotCi0gIHNlbGVjdAotICAgICBAdGFyZ2V0
ICh0YXJnZXQ6IHRhcmdldCkKLSAgICAgQHBhcmVudC1vZi10YXJnZXQgKHRhcmdldDogdGFyZ2V0
KQotCi0gIGNoYW5nZQotICAgICBAdGFyZ2V0ICh0YXJnZXQ6IHRhcmdldCkKLSAgICAgQHBhcmVu
dC1vZi10YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotCi0gIHJlc2V0Ci0gICAgIEB0YXJnZXQgKHRh
cmdldDogdGFyZ2V0KQotICAgICBAcGFyZW50LW9mLXRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0K
LSAgcmVzaXplCi0gICAgIEB0YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotICAgICBAcGFyZW50LW9m
LXRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0KLSAgc2Nyb2xsCi0gICAgIEB0YXJnZXQgKHRhcmdl
dDogdGFyZ2V0KQotICAgICBAcGFyZW50LW9mLXRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0KLSAg
c2VsZWN0c3RhcnQKLSAgICAgQHRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0gICAgIEBwYXJlbnQt
b2YtdGFyZ2V0ICh0YXJnZXQ6IHRhcmdldCkKLQotICBsb2FkCi0gICAgIEB0YXJnZXQgKHRhcmdl
dDogdGFyZ2V0KQotICAgICBAcGFyZW50LW9mLXRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0KLSAg
ZXJyb3IKLSAgICAgQHRhcmdldCAodGFyZ2V0OiB0YXJnZXQpCi0gICAgIEBwYXJlbnQtb2YtdGFy
Z2V0ICh0YXJnZXQ6IHRhcmdldCkKLQotICBjbGljawotICAgICBAdGFyZ2V0ICh0YXJnZXQ6IHRh
cmdldCkKLSAgICAgQHBhcmVudC1vZi10YXJnZXQgKHRhcmdldDogdGFyZ2V0KQotICAgICBAaG9z
dCAodGFyZ2V0OiBob3N0KQotICAgICBAdG9wICh0YXJnZXQ6IGhvc3QpCi0KLUFuIGV2ZW50IGZp
cmVkIG9uIGEgZGlzdHJpYnV0ZWQgY2hpbGQgc2hvdWxkIG5vdCBiZSBzdG9wcGVkIGF0IHRoZSBz
aGFkb3cgYm91bmRhcnkgb2YgaXRzIGhvc3QgKGhvc3QyKSwgYnV0IHNob3VsZCBiZSBzdG9wcGVk
IGF0IHRoZSBuZWFyZXN0IHNoYWRvdyBib3VuZGFyeSAoaG9zdDEpLgotCi0gIHNlbGVjdHN0YXJ0
Ci0gICAgIEBkaXN0cmlidXRlZC1jaGlsZCAodGFyZ2V0OiBkaXN0cmlidXRlZC1jaGlsZCkKLSAg
ICAgQGNvbnRlbnQgKHRhcmdldDogZGlzdHJpYnV0ZWQtY2hpbGQpCi0gICAgIEBwYXJlbnQtb2Yt
Y29udGVudCAodGFyZ2V0OiBkaXN0cmlidXRlZC1jaGlsZCkKLSAgICAgQGhvc3QyICh0YXJnZXQ6
IGRpc3RyaWJ1dGVkLWNoaWxkKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ldmVudHMt
c3RvcHBlZC1hdC1zaGFkb3ctYm91bmRhcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZXZlbnRzLXN0b3BwZWQtYXQtc2hhZG93LWJvdW5kYXJ5Lmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ldmVudHMt
c3RvcHBlZC1hdC1zaGFkb3ctYm91bmRhcnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMjgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0
aGF0IHNvbWUga2luZHMgb2YgZXZlbnRzIGFyZSBzdG9wZWVkIGF0IHNoYWRvdyBib3VuZGFyeS4i
KTsKLQotdmFyIGV2ZW50UmVjb3JkcyA9IHt9OwotCi1mdW5jdGlvbiBkaXNwYXRjaGVkRXZlbnQo
ZXZlbnRUeXBlKQotewotICAgIHZhciBldmVudHMgPSBldmVudFJlY29yZHNbZXZlbnRUeXBlXTsK
LSAgICBpZiAoIWV2ZW50cykKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIHJldHVybiBldmVudHM7
Ci19Ci0KLWZ1bmN0aW9uIGR1bXBEaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQotewotICAgIGRl
YnVnKCdcbiAgJyArIGV2ZW50VHlwZSk7Ci0gICAgdmFyIGV2ZW50cyA9IGRpc3BhdGNoZWRFdmVu
dChldmVudFR5cGUpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxlbmd0aDsgKytp
KQotICAgICAgICBkZWJ1ZygnICAgICcgKyBldmVudHNbaV0pCi19Ci0KLWZ1bmN0aW9uIHJlY29y
ZEV2ZW50KGV2ZW50KQotewotICAgIHZhciBldmVudFR5cGUgPSBldmVudC50eXBlCi0gICAgaWYg
KCFldmVudFJlY29yZHNbZXZlbnRUeXBlXSkgewotICAgICAgICBldmVudFJlY29yZHNbZXZlbnRU
eXBlXSA9IFtdCi0gICAgfQotICAgIHZhciBldmVudFN0cmluZyA9ICcnOwotICAgIGlmIChldmVu
dC5jdXJyZW50VGFyZ2V0KQotICAgICAgICBldmVudFN0cmluZyArPSAnIEAnICsgZXZlbnQuY3Vy
cmVudFRhcmdldC5pZDsKLSAgICBpZiAoZXZlbnQudGFyZ2V0KQotICAgICAgICBldmVudFN0cmlu
ZyArPSAnICh0YXJnZXQ6ICcgKyBldmVudC50YXJnZXQuaWQgKyAnKSc7Ci0gICAgaWYgKGV2ZW50
LnJlbGF0ZWRUYXJnZXQpCi0gICAgICAgIGV2ZW50U3RyaW5nICs9ICcgKHJlbGF0ZWQ6ICcgKyBl
dmVudC5yZWxhdGVkVGFyZ2V0LmlkICsgJyknOwotICAgIGlmIChldmVudC5ldmVudFBoYXNlID09
IDEpCi0gICAgICAgIGV2ZW50U3RyaW5nICs9ICcoY2FwdHVyaW5nIHBoYXNlKSc7Ci0gICAgaWYg
KGV2ZW50LnRhcmdldCAmJiBldmVudC5jdXJyZW50VGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5pZCA9
PSBldmVudC5jdXJyZW50VGFyZ2V0LmlkKQotICAgICAgICBzaG91bGRCZSgiZXZlbnQuZXZlbnRQ
aGFzZSIsICIyIiwgdHJ1ZSk7Ci0gICAgZXZlbnRSZWNvcmRzW2V2ZW50VHlwZV0ucHVzaChldmVu
dFN0cmluZyk7Ci19Ci0KLWRlYnVnKCdPdGhlciBldmVudHMgdGhhbiAiY2xpY2siIHNob3VsZCBi
ZSBzdG9wcGVkIGF0IHNoYWRvdyBib3VuZGFyeS4gIEEgImNsaWNrIiBpcyBhZGRlZCBmb3IgdGhl
IHB1cnBvc2Ugb2YgY29tcGFyaW5nIHJlc3VsdHMuJyk7IAotCi12YXIgZXZlbnRzID0gWydhYm9y
dCcsICdzZWxlY3QnLCAnY2hhbmdlJywgJ3Jlc2V0JywgJ3Jlc2l6ZScsICdzY3JvbGwnLCAnc2Vs
ZWN0c3RhcnQnLCAnbG9hZCcsICdlcnJvcicsICdjbGljayddOwotCi1mdW5jdGlvbiBhZGRFdmVu
dExpc3RlbmVycyhub2RlcykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIHZhciBub2RlID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKG5v
ZGVzW2ldKTsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBldmVudHMubGVuZ3RoOyArK2op
Ci0gICAgICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRzW2pdLCByZWNvcmRFdmVu
dCwgZmFsc2UpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdEV2ZW50c1Nob3VkQmVTdG9wcGVk
QXRTaGFkb3dCb3VuZGFyeSgpCi17Ci0gICAgdmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc2FuZGJveCcpOwotICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7Ci0gICAgc2Fu
ZGJveC5hcHBlbmRDaGlsZCgKLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9
LAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAncGFyZW50LW9mLXRh
cmdldCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ3RhcmdldCd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdwYXJlbnQtb2YtY29udGVudCd9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50
JywgeydpZCc6ICdjb250ZW50J30pKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Rpc3RyaWJ1dGVkLWNoaWxkJ30pKSkpOwotICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0TGVmdDsKLQotICAgIGFkZEV2ZW50TGlzdGVuZXJzKFsndG9wJywgJ2hv
c3QnLCAnaG9zdC9wYXJlbnQtb2YtdGFyZ2V0JywgJ2hvc3QvdGFyZ2V0JywgJ2hvc3QvcGFyZW50
LW9mLWNvbnRlbnQnLCAnaG9zdC9jb250ZW50JywgJ2Rpc3RyaWJ1dGVkLWNoaWxkJ10pOwotCi0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgZXZl
bnRSZWNvcmRzID0ge307Ci0gICAgICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50
KCdVSUV2ZW50Jyk7Ci0gICAgICAgIGV2ZW50LmluaXRFdmVudChldmVudHNbaV0sIHRydWUsIGZh
bHNlKTsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0L3RhcmdldCcpLmRp
c3BhdGNoRXZlbnQoZXZlbnQpOwotICAgICAgICBkdW1wRGlzcGF0Y2hlZEV2ZW50KGV2ZW50c1tp
XSk7Ci0gICAgfQotCi19Ci0KLWZ1bmN0aW9uIHRlc3RFdmVudHNGaXJlZE9uRGlzdHJpYnV0ZWRO
b2Rlc1Nob3VsZE5vdEJlU3RvcHBlZEF0U2hhZG93Qm91bmRhcnkoKQotewotICAgIHZhciBzYW5k
Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLSAgICBzYW5kYm94Lmlu
bmVySFRNTCA9ICcnOwotICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdob3N0MSd9LAotICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93
Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9z
dDInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdwYXJlbnQtb2YtY29udGVudCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudCd9KSkp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnZGlzdHJpYnV0ZWQtY2hpbGQnfSkpKSkpOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVm
dDsKLQotICAgIGFkZEV2ZW50TGlzdGVuZXJzKFsnaG9zdDEnLCAnaG9zdDEvaG9zdDInLCAnaG9z
dDEvaG9zdDIvcGFyZW50LW9mLWNvbnRlbnQnLCAnaG9zdDEvaG9zdDIvY29udGVudCcsICdob3N0
MS9kaXN0cmlidXRlZC1jaGlsZCddKTsKLQotICAgIGRlYnVnKCdcbkFuIGV2ZW50IGZpcmVkIG9u
IGEgZGlzdHJpYnV0ZWQgY2hpbGQgc2hvdWxkIG5vdCBiZSBzdG9wcGVkIGF0IHRoZSBzaGFkb3cg
Ym91bmRhcnkgb2YgaXRzIGhvc3QgKGhvc3QyKSwgYnV0IHNob3VsZCBiZSBzdG9wcGVkIGF0IHRo
ZSBuZWFyZXN0IHNoYWRvdyBib3VuZGFyeSAoaG9zdDEpLicpOwotICAgIGV2ZW50UmVjb3JkcyA9
IHt9OwotICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdVSUV2ZW50Jyk7Ci0g
ICAgZXZlbnQuaW5pdEV2ZW50KCdzZWxlY3RzdGFydCcsIHRydWUsIGZhbHNlKTsKLSAgICBnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QxL2Rpc3RyaWJ1dGVkLWNoaWxkJykuZGlzcGF0Y2hF
dmVudChldmVudCk7Ci0gICAgZHVtcERpc3BhdGNoZWRFdmVudCgnc2VsZWN0c3RhcnQnKTsKLX0K
LQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIHRlc3RFdmVudHNTaG91ZEJlU3RvcHBl
ZEF0U2hhZG93Qm91bmRhcnkoKQotICAgIHRlc3RFdmVudHNGaXJlZE9uRGlzdHJpYnV0ZWROb2Rl
c1Nob3VsZE5vdEJlU3RvcHBlZEF0U2hhZG93Qm91bmRhcnkoKTsKLX0KLXRlc3QoKTsKLTwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2ZvY3VzLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9mb2N1cy1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExNSArMCwwIEBACi1UaGlzIHRl
c3RzIHRoYXQgcHJlc3NpbmcgVGFiIGtleSBzaG91bGQgdHJhdmVyc2UgaW50byBzaGFkb3cgRE9N
IHN1YnRyZWVzLCBhbmQgcHJlc3NpbmcgU2hpZnQtVGFiIHNob3VsZCByZXZlcnNlIHRoZSBvcmRl
ci4KLQotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1BLTEgdG8gaW5wdXQtQi0xIGluIGZvcndhcmQK
LVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQi0xIHRvIGlucHV0LUMtMSBpbiBmb3J3YXJk
Ci1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUMtMSB0byBob3N0LUIgaW4gZm9yd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEt
MSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1
dC1BLTEgdG8gaG9zdC1CL29sZGVyLWlucHV0LUEtMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1dC1BLTEgdG8gbGlnaHQtY2hpbGQtc2VsZWN0ZWQt
MSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGxpZ2h0LWNoaWxkLXNlbGVjdGVk
LTEgdG8gaG9zdC1CL29sZGVyLWlucHV0LUItMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92
ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1dC1CLTEgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUIt
MSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1
dC1CLTEgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91
bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1dC1BLTAgdG8gaG9zdC1CL29sZGVyLWlu
cHV0LUEtMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi9vbGRlci1p
bnB1dC1BLTAgdG8gbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91
bGQgbW92ZSBmcm9tIGxpZ2h0LWNoaWxkLXNlbGVjdGVkLTAgdG8gaG9zdC1CL29sZGVyLWlucHV0
LUItMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1
dC1CLTAgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUItMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91
bGQgbW92ZSBmcm9tIGhvc3QtQi8veW91bmdlci1pbnB1dC1CLTAgdG8gaW5wdXQtRC0xIGluIGZv
cndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtRC0xIHRvIGlucHV0LUEtMCBpbiBm
b3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUEtMCB0byBob3N0LUEvaW5wdXQt
MSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQS9pbnB1dC0xIHRvIGhv
c3QtQS9pbnB1dC0yMCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQS9p
bnB1dC0yMCB0byBob3N0LUEvbmVzdGVkLWhvc3QgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1v
dmUgZnJvbSBob3N0LUEvbmVzdGVkLWhvc3QgdG8gaG9zdC1BL25lc3RlZC1ob3N0L2lucHV0LTE1
IGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1BL25lc3RlZC1ob3N0L2lu
cHV0LTE1IHRvIGhvc3QtQS9uZXN0ZWQtaG9zdC9pbnB1dC0yNSBpbiBmb3J3YXJkCi1QQVNTCi1T
aG91bGQgbW92ZSBmcm9tIGhvc3QtQS9uZXN0ZWQtaG9zdC9pbnB1dC0yNSB0byBpbnB1dC1CLTAg
aW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1CLTAgdG8gaW5wdXQtQy0w
IGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQy0wIHRvIGlucHV0LUQt
MCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUQtMCB0byBob3N0LUQg
aW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUQgdG8gaW5wdXQtRS0wIGlu
IGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtRS0wIHRvIGlucHV0LUEtMSBp
biBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUEtMSB0byBpbnB1dC1FLTAg
aW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtRS0wIHRvIGhvc3QtRCBp
biBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUQgdG8gaW5wdXQtRC0wIGlu
IGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LUQtMCB0byBpbnB1dC1DLTAg
aW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQy0wIHRvIGlucHV0LUIt
MCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1CLTAgdG8gaG9zdC1B
L25lc3RlZC1ob3N0L2lucHV0LTI1IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9t
IGhvc3QtQS9uZXN0ZWQtaG9zdC9pbnB1dC0yNSB0byBob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQt
MTUgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1BL25lc3RlZC1ob3N0
L2lucHV0LTE1IHRvIGhvc3QtQS9uZXN0ZWQtaG9zdCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxk
IG1vdmUgZnJvbSBob3N0LUEvbmVzdGVkLWhvc3QgdG8gaG9zdC1BL2lucHV0LTIwIGluIGJhY2t3
YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQS9pbnB1dC0yMCB0byBob3N0LUEvaW5w
dXQtMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUEvaW5wdXQtMSB0
byBpbnB1dC1BLTAgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtQS0w
IHRvIGlucHV0LUQtMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC1E
LTEgdG8gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUItMCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxk
IG1vdmUgZnJvbSBob3N0LUIvL3lvdW5nZXItaW5wdXQtQi0wIHRvIGhvc3QtQi9vbGRlci1pbnB1
dC1CLTAgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9zdC1CL29sZGVyLWlu
cHV0LUItMCB0byBsaWdodC1jaGlsZC1zZWxlY3RlZC0wIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91
bGQgbW92ZSBmcm9tIGxpZ2h0LWNoaWxkLXNlbGVjdGVkLTAgdG8gaG9zdC1CL29sZGVyLWlucHV0
LUEtMCBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvb2xkZXItaW5w
dXQtQS0wIHRvIGhvc3QtQi8veW91bmdlci1pbnB1dC1BLTAgaW4gYmFja3dhcmQKLVBBU1MKLVNo
b3VsZCBtb3ZlIGZyb20gaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEtMCB0byBob3N0LUIvL3lvdW5n
ZXItaW5wdXQtQi0xIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi8v
eW91bmdlci1pbnB1dC1CLTEgdG8gaG9zdC1CL29sZGVyLWlucHV0LUItMSBpbiBiYWNrd2FyZAot
UEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LUIvb2xkZXItaW5wdXQtQi0xIHRvIGxpZ2h0LWNo
aWxkLXNlbGVjdGVkLTEgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gbGlnaHQt
Y2hpbGQtc2VsZWN0ZWQtMSB0byBob3N0LUIvb2xkZXItaW5wdXQtQS0xIGluIGJhY2t3YXJkCi1Q
QVNTCi1TaG91bGQgbW92ZSBmcm9tIGhvc3QtQi9vbGRlci1pbnB1dC1BLTEgdG8gaG9zdC1CLy95
b3VuZ2VyLWlucHV0LUEtMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0
LUIvL3lvdW5nZXItaW5wdXQtQS0xIHRvIGhvc3QtQiBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxk
IG1vdmUgZnJvbSBob3N0LUIgdG8gaW5wdXQtQy0xIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlucHV0LUMtMSB0byBpbnB1dC1CLTEgaW4gYmFja3dhcmQKLVBBU1MKLVNob3Vs
ZCBtb3ZlIGZyb20gaW5wdXQtQi0xIHRvIGlucHV0LUEtMSBpbiBiYWNrd2FyZAotUEFTUwotU2hv
dWxkIG1vdmUgZnJvbSBpbnB1dC1BLTEgdG8gaW5wdXQtRS0wIGluIGJhY2t3YXJkCi1QQVNTCi1U
ZXN0IGZpbmlzaGVkLgotCi0KLQotCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2ZvY3VzLW5hdmlnYXRpb24td2l0aC1kaXN0cmlidXRlZC1ub2Rlcy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRp
b24td2l0aC1kaXN0cmlidXRlZC1ub2Rlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mb2N1cy1uYXZpZ2F0aW9uLXdpdGgtZGlz
dHJpYnV0ZWQtbm9kZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICswLDAg
QEAKLVRoaXMgdGVzdHMgdGhhdCBwcmVzc2luZyBUYWIga2V5IHNob3VsZCB0cmF2ZXJzZSBpbnRv
IHNoYWRvdyBET00gc3VidHJlZXMsIGFuZCBwcmVzc2luZyBTaGlmdC1UYWIgc2hvdWxkIHJldmVy
c2UgdGhlIG9yZGVyLgotCi0KLQotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0xIHRvIHNoYWRvd2hv
c3QgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBzaGFkb3dob3N0IHRvIGRpc3Ry
aWJ1dGVkLW5vZGUtMSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGRpc3RyaWJ1
dGVkLW5vZGUtMSB0byBzaGFkb3dob3N0L2lucHV0LTIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxk
IG1vdmUgZnJvbSBzaGFkb3dob3N0L2lucHV0LTIgdG8gZGlzdHJpYnV0ZWQtbm9kZS0yIGluIGZv
cndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gZGlzdHJpYnV0ZWQtbm9kZS0yIHRvIGlucHV0
LTMgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0zIHRvIGRpc3RyaWJ1
dGVkLW5vZGUtMiBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBkaXN0cmlidXRl
ZC1ub2RlLTIgdG8gc2hhZG93aG9zdC9pbnB1dC0yIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIHNoYWRvd2hvc3QvaW5wdXQtMiB0byBkaXN0cmlidXRlZC1ub2RlLTEgaW4gYmFj
a3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gZGlzdHJpYnV0ZWQtbm9kZS0xIHRvIHNoYWRv
d2hvc3QgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gc2hhZG93aG9zdCB0byBp
bnB1dC0xIGluIGJhY2t3YXJkCi1QQVNTCi1kZXRhaWxzL3N1bW1hcnkgZWxlbWVudHMgdXNlIFNo
YWRvdyBET00gYW5kIGRpc3RyaWJ1dGVkIG5vZGVzIGludGVybmFsbHkuCi1TaG91bGQgbW92ZSBm
cm9tIGlucHV0LTEgdG8gc3VtbWFyeS0xIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZy
b20gc3VtbWFyeS0xIHRvIGlucHV0LTIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJv
bSBpbnB1dC0yIHRvIHN1bW1hcnktMSBpbiBiYWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJv
bSBzdW1tYXJ5LTEgdG8gaW5wdXQtMSBpbiBiYWNrd2FyZAotUEFTUwotVGVzdCBmaW5pc2hlZC4K
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5hdmlnYXRpb24td2l0
aC1kaXN0cmlidXRlZC1ub2Rlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9mb2N1cy1uYXZpZ2F0aW9uLXdpdGgtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZvY3VzLW5h
dmlnYXRpb24td2l0aC1kaXN0cmlidXRlZC1ub2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDc1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHA+VGhpcyB0ZXN0cyB0aGF0IHByZXNzaW5nIFRhYiBrZXkgc2hvdWxkIHRyYXZlcnNlIGludG8g
c2hhZG93IERPTSBzdWJ0cmVlcywgYW5kIHByZXNzaW5nIFNoaWZ0LVRhYiBzaG91bGQgcmV2ZXJz
ZSB0aGUgb3JkZXIuPC9wPgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoRGlzdHJpYnV0ZWROb2Rl
cygpCi17Ci0gICAgdmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJv
eCcpOwotICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7Ci0gICAgc2FuZGJveC5hcHBlbmRDaGls
ZCgKLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcC1kaXYnfSwKLSAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LTEnLCAndGFiaW5kZXgn
OiAxfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93
aG9zdCcsICd0YWJpbmRleCc6IDF9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
Y29udGVudCcsIHsnc2VsZWN0JzogJyNkaXN0cmlidXRlZC1ub2RlLTEnfSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LTIn
LCAndGFiaW5kZXgnOiAxfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNkaXN0cmlidXRlZC1ub2RlLTInfSkpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2Rpc3Ry
aWJ1dGVkLW5vZGUtMicsICd0YWJpbmRleCc6IDF9KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdkaXN0cmlidXRlZC1ub2RlLTEnLCAndGFi
aW5kZXgnOiAxfSkpLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQn
OiAnaW5wdXQtMycsICd0YWJpbmRleCc6IDF9KSkpOwotICAgIHNhbmRib3gub2Zmc2V0TGVmdDsK
LQotICAgIHZhciBlbGVtZW50c0luRm9jdXNOYXZpZ2F0aW9uT3JkZXIgPSBbJ2lucHV0LTEnLCAn
c2hhZG93aG9zdCcsICdkaXN0cmlidXRlZC1ub2RlLTEnLCAnc2hhZG93aG9zdC9pbnB1dC0yJywg
J2Rpc3RyaWJ1dGVkLW5vZGUtMicsICdpbnB1dC0zJ107Ci0gICAgdGVzdEZvY3VzTmF2aWdhdGlv
bkZvd3JhZChlbGVtZW50c0luRm9jdXNOYXZpZ2F0aW9uT3JkZXIpOwotICAgIGVsZW1lbnRzSW5G
b2N1c05hdmlnYXRpb25PcmRlci5yZXZlcnNlKCkKLSAgICB0ZXN0Rm9jdXNOYXZpZ2F0aW9uQmFj
a3dhcmQoZWxlbWVudHNJbkZvY3VzTmF2aWdhdGlvbk9yZGVyKQotfQotCi1mdW5jdGlvbiB0ZXN0
RGV0YWlsc1N1bW1hcnkoKQotewotICAgIGRlYnVnKCdkZXRhaWxzL3N1bW1hcnkgZWxlbWVudHMg
dXNlIFNoYWRvdyBET00gYW5kIGRpc3RyaWJ1dGVkIG5vZGVzIGludGVybmFsbHkuJykKLSAgICB2
YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0gICAgc2Fu
ZGJveC5pbm5lckhUTUwgPSAnJzsKLSAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAndG9wLWRpdid9LAotICAgICAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtMSd9KSwKLSAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGV0YWlscycsIHsnaWQnOiAnZGV0YWlscy0xJ30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdzdW1tYXJ5JywgeydpZCc6ICdzdW1tYXJ5LTEnfSkpLAot
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtMid9KSkp
OwotICAgIHNhbmRib3gub2Zmc2V0TGVmdDsKLQotICAgIHZhciBlbGVtZW50c0luRm9jdXNOYXZp
Z2F0aW9uT3JkZXIgPSBbJ2lucHV0LTEnLCAnc3VtbWFyeS0xJywgJ2lucHV0LTInXTsKLSAgICB0
ZXN0Rm9jdXNOYXZpZ2F0aW9uRm93cmFkKGVsZW1lbnRzSW5Gb2N1c05hdmlnYXRpb25PcmRlcik7
Ci0gICAgZWxlbWVudHNJbkZvY3VzTmF2aWdhdGlvbk9yZGVyLnJldmVyc2UoKQotICAgIHRlc3RG
b2N1c05hdmlnYXRpb25CYWNrd2FyZChlbGVtZW50c0luRm9jdXNOYXZpZ2F0aW9uT3JkZXIpOwot
fQotCi0KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIGlmICghd2luZG93LmV2ZW50U2Vu
ZGVyKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJycpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgdGVzdFdpdGhEaXN0cmlidXRlZE5vZGVzKCkKLSAgICB0ZXN0RGV0YWlsc1N1bW1hcnko
KTsKLQotICAgIGRlYnVnKCdUZXN0IGZpbmlzaGVkLicpOwotfQotCi10ZXN0KCk7Ci0KLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2ZvY3VzLW5hdmlnYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZm9jdXMtbmF2aWdhdGlvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZm9jdXMtbmF2aWdhdGlvbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE4NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwPlRoaXMgdGVzdHMgdGhhdCBwcmVzc2luZyBUYWIga2V5IHNob3VsZCB0cmF2
ZXJzZSBpbnRvIHNoYWRvdyBET00gc3VidHJlZXMsIGFuZCBwcmVzc2luZyBTaGlmdC1UYWIgc2hv
dWxkIHJldmVyc2UgdGhlIG9yZGVyLjwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQotewotICAgIHBhcmVudC5h
cHBlbmRDaGlsZCgKLSAgICAgICAgLy8gRklYTUU6IFVzZSBtb3JlIGRlc2NyaXB0aXZlIGlkcyBm
b3IgZWFjaCBlbGVtZW50cy4KLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcC1k
aXYnfSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0
LUEtMScsICd0YWJpbmRleCc6IDF9KSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5w
dXQnLCB7J2lkJzogJ2lucHV0LUItMScsICd0YWJpbmRleCc6IDF9KSwKLSAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnZGl2JyksICAvLyBTaG91bGQgbm90IGJlIHNlbGVjdGVkLgotICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtQS0wJywgJ3RhYmlu
ZGV4JzogMH0pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hv
c3QtQScsICd0YWJpbmRleCc6IC0xfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2lucHV0JywgeydpZCc6ICdpbnB1dC0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnbmVzdGVkLWhvc3Qn
LCAndGFiaW5kZXgnOiAzMH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J3RhYmluZGV4JzogLTF9KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0
JywgeydpZCc6ICdpbnB1dC0xNScsICd0YWJpbmRleCc6IDE1fSksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAn
aW5wdXQtMjUnLCAndGFiaW5kZXgnOiAyNX0pKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0LTIwJywgJ3RhYmluZGV4Jzog
MjB9KSkpLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5w
dXQtQy0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdp
bnB1dCcsIHsnaWQnOiAnaW5wdXQtQi0wJywgJ3RhYmluZGV4JzogMH0pLAotICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QtQicsICd0YWJpbmRleCc6IDF9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ29sZGVyLWlu
cHV0LUEtMCcsICd0YWJpbmRleCc6IDB9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnb2xkZXItaW5wdXQtQS0xJywgJ3RhYmluZGV4
JzogMX0pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRl
bnQnLCB7J3NlbGVjdCc6ICcjbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMCwgI2xpZ2h0LWNoaWxkLXNl
bGVjdGVkLTEnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
aW5wdXQnLCB7J2lkJzogJ29sZGVyLWlucHV0LUItMCcsICd0YWJpbmRleCc6IDB9KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnb2xk
ZXItaW5wdXQtQi0xJywgJ3RhYmluZGV4JzogMX0pKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2lucHV0JywgeydpZCc6ICd5b3VuZ2VyLWlucHV0LUEtMCcsICd0YWJpbmRleCc6
IDB9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcs
IHsnaWQnOiAneW91bmdlci1pbnB1dC1BLTEnLCAndGFiaW5kZXgnOiAxfSksICAvLyBUaGUgZmly
c3Qgbm9kZSBpbiB0aGUgZm9jdXNTY29wZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ3NoYWRvdycpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2lucHV0JywgeydpZCc6ICd5b3VuZ2VyLWlucHV0LUItMCcsICd0YWJpbmRleCc6
IDB9KSwgIC8vIFRoZSBsYXN0IG5vZGUgaW4gdGhlIGZvY3VzU2NvcGUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAneW91bmdlci1pbnB1
dC1CLTEnLCAndGFiaW5kZXgnOiAxfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnaW5wdXQnLCB7J2lkJzogJ2xpZ2h0LWNoaWxkLXNlbGVjdGVkLTAnLCAndGFiaW5k
ZXgnOiAwfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcs
IHsnaWQnOiAnbGlnaHQtY2hpbGQtc2VsZWN0ZWQtMScsICd0YWJpbmRleCc6IDF9KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdsaWdodC1j
aGlsZC1ub24tc2VsZWN0ZWQtMScsICd0YWJpbmRleCc6IDF9KSksCi0gICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dC1ELTEnLCAndGFiaW5kZXgnOiAxfSks
Ci0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dC1DLTAn
LCAndGFiaW5kZXgnOiAwfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnaG9zdC1DJywgJ3RhYmluZGV4JzogLTF9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnaW5wdXQnLCB7J3RhYmluZGV4JzogLTF9KSkpLAotICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXQtRC0wJywgJ3RhYmluZGV4JzogMH0pLAot
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC1EJywgJ3RhYmluZGV4Jzog
MH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoKSkpLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5w
dXQtRS0wJywgJ3RhYmluZGV4JzogMH0pKSk7Ci0gICAgcGFyZW50Lm9mZnNldExlZnQ7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7
Ci0gICAgICAgIHRlc3RGYWlsZWQoJycpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
cHJlcGFyZURPTVRyZWUoZG9jdW1lbnQuYm9keSk7Ci0KLSAgICAvLyBGSVhNRTogT3V0cHV0IGlu
c2VydGVkIGNvbW1lbnRzIGluIHRoaXMgYXJyYXkgdG8gZXhwZWN0ZWQudHh0IGZvciByZWFkYWJp
bGl0eSBvZiB0aGUgcmVzdWx0LgotICAgIGVsZW1lbnRzTmF2aWdhdGVkSW5Gb3J3YXJkID0gWwot
ICAgICAgICAnaW5wdXQtQS0xJywgJ2lucHV0LUItMScsCi0gICAgICAgIC8vIFRyYXZlcnNlIGVs
ZW1lbnRzIHdoaWNoIGhhdmUgdGFiaW5kZXg9MS4KLSAgICAgICAgLy8gU2hvdWxkIHNraXAgZXZl
cnkgZWxlbWVudHMsIGV2ZW4gdGhvdWdoIHRoZXkgaGF2ZSB0aGUgc2FtZSB0YWJpbmRleCwgaW4g
bm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdCAoaWQ9aG9zdC1BKSAKLSAgICAgICAgLy8gc2luY2Ug
bm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdCBhY3RlZCBhcyBpZiB0aGV5IHdlcmUgYXNzaW5nZWQg
dG8gdGFiaW5kZXg9MCBzbyBpdCB3YXMgc2tpcHBlZCBpbiB0aGlzIHR1cm4uCi0gICAgICAgICdp
bnB1dC1DLTEnLAotCi0gICAgICAgIC8vIFRyYXZlcnNlIGEgZm9jdXNhYmxlIHNoYWRvdyBob3N0
LgotICAgICAgICAnaG9zdC1CJywKLQotICAgICAgICAvLyBFbnRlciBhIGZvY3VzIHNjb3BlIG9m
IHRoZSBzaGFkb3cgaG9zdCBhbmQgdHJhdmVzZSB0aGUgZmlyc3QgZm9jdXNhYmxlIG5vZGUgaW4g
c2hhZG93IERPTSBuYXZpZ2F0aW9uLgotICAgICAgICAnaG9zdC1CLy95b3VuZ2VyLWlucHV0LUEt
MScsCi0KLSAgICAgICAgLy8gQSA8c2hhZG93PiBlbGVtZW50IHNob3VsZCBiZSByZXNvbHZlZC4K
LSAgICAgICAgJ2hvc3QtQi9vbGRlci1pbnB1dC1BLTEnLAotCi0gICAgICAgIC8vIEEgPGNvbnRl
bnQ+IGVsZW1lbnQgc2hvdWxkIGJlIHJlc29sdmVkLgotICAgICAgICAnbGlnaHQtY2hpbGQtc2Vs
ZWN0ZWQtMScsCi0gICAgICAgICdob3N0LUIvb2xkZXItaW5wdXQtQi0xJywKLSAgICAgICAgJ2hv
c3QtQi8veW91bmdlci1pbnB1dC1CLTEnLAotCi0gICAgICAgIC8vIEFsbCBlbGVtZW50cyB3aXRo
IHRhYmluZGV4PTEgaGFkIGJlZW4gdHJhdmVyc2VkLiBTbyBlbGVtZW50cyB3aXRoIHRhYmluZGV4
PTAgc2hvb3VkIGZvbGxvdy4KLSAgICAgICAgJ2hvc3QtQi8veW91bmdlci1pbnB1dC1BLTAnLAot
ICAgICAgICAnaG9zdC1CL29sZGVyLWlucHV0LUEtMCcsCi0gICAgICAgICdsaWdodC1jaGlsZC1z
ZWxlY3RlZC0wJywKLSAgICAgICAgJ2hvc3QtQi9vbGRlci1pbnB1dC1CLTAnLAotICAgICAgICAn
aG9zdC1CLy95b3VuZ2VyLWlucHV0LUItMCcsCi0KLSAgICAgICAgLy8gRXhpdCBhIGZvY3VzIHNj
b3BlIG9mIHRoZSBzaGFkb3cgaG9zdCAoaWQ9aG9zdC1CKSBhbmQgdHJhdmVyc2UgdGhlIG5leHQu
Ci0gICAgICAgICdpbnB1dC1ELTEnLAotCi0gICAgICAgIC8vIEFsbCBlbGVtZW50cyB3aXRoIHRh
YmluZGV4PTEgaGFkIGJlZW4gdHJhdmVyc2VkIGluIHRoZSBvdXRlcm1vc3Qgc2NvcGUuCi0gICAg
ICAgIC8vIFNvIHRyYXZlcnNlIGVsZW1lbnRzIHdpdGggdGFiaW5kZXg9MCBpbiBuZXh0LgotICAg
ICAgICAnaW5wdXQtQS0wJywKLQotICAgICAgICAvLyBBIG5vbi1mb2N1c2FibGUgc2hhZG93IGhv
c3QgKGlkPWhvc3QtQSkgd2lsbCBiZSAicmVwbGFjZWQiIHdpdGggaXRzIHNoYWRvdyBET00gbmF2
aWdhdGlvbi4KLSAgICAgICAgJ2hvc3QtQS9pbnB1dC0xJywKLSAgICAgICAgJ2hvc3QtQS9pbnB1
dC0yMCcsCi0gICAgICAgICdob3N0LUEvbmVzdGVkLWhvc3QnLAotCi0gICAgICAgIC8vIEVudGVy
IGEgbmVzdGVkIGZvY3VzIHNjb3BlIGluc2lkZSBvZiBhIHNoYWRvdyBob3N0IChpZD1uZXN0ZWQt
aG9zdCkuCi0gICAgICAgICdob3N0LUEvbmVzdGVkLWhvc3QvaW5wdXQtMTUnLAotICAgICAgICAn
aG9zdC1BL25lc3RlZC1ob3N0L2lucHV0LTI1JywKLQotICAgICAgICAvLyBFeGl0IGEgbmVzdGVk
IHNoYWRvdyBob3N0LgotICAgICAgICAnaW5wdXQtQi0wJywKLSAgICAgICAgJ2lucHV0LUMtMCcs
Ci0KLSAgICAgICAgLy8gQSBub24tZm9jdXNhYmxlIHNoYWRvdyBob3N0IChpZD1ob3N0LUMpLCB3
aGljaCBkb2VzIG5vdCBoYXZlIGZvY3VzYWJsZSBlbGVtZW50cywgc2hvdWxkIGJlIHNraXBwZWQg
ZW50aXJlbHkuCi0gICAgICAgICdpbnB1dC1ELTAnLAotICAgICAgICAnaG9zdC1EJywKLSAgICAg
ICAgJ2lucHV0LUUtMCcsCi0KLSAgICAgICAgLy8gV3JhcHMgdG8gdGhlIGZpcnN0IGVsZW1lbnQg
aW4gdGhlIG91dGVybW9zdCBmb2N1cyBzY29wZS4KLSAgICAgICAgJ2lucHV0LUEtMScsCi0gICAg
XTsKLQotCi0gICAgZWxlbWVudHNOYXZpZ2F0ZWRJbkJhY2t3YXJkID0gWwotICAgICAgICAnaW5w
dXQtQS0xJywKLSAgICAgICAgJ2lucHV0LUUtMCcsCi0gICAgICAgICdob3N0LUQnLAotICAgICAg
ICAnaW5wdXQtRC0wJywKLSAgICAgICAgJ2lucHV0LUMtMCcsCi0gICAgICAgICdpbnB1dC1CLTAn
LAotCi0gICAgICAgIC8vIFRyaWNreSBuYXZpZ2F0aW9uLiBUcmF2YXJzZSB0aGUgZGVlcGx5IGxh
c3QgZWxlbWVudCBpbiBuZXN0ZWQgc2hhZG93IERPTSBuYXZpZ2F0aW9uLgotICAgICAgICAnaG9z
dC1BL25lc3RlZC1ob3N0L2lucHV0LTI1JywKLSAgICAgICAgJ2hvc3QtQS9uZXN0ZWQtaG9zdC9p
bnB1dC0xNScsCi0gICAgICAgICdob3N0LUEvbmVzdGVkLWhvc3QnLAotICAgICAgICAnaG9zdC1B
L2lucHV0LTIwJywKLSAgICAgICAgJ2hvc3QtQS9pbnB1dC0xJywKLQotICAgICAgICAvLyBFeGl0
IGEgc2hhZG8gaG9zdC4KLSAgICAgICAgJ2lucHV0LUEtMCcsCi0KLSAgICAgICAgLy8gQWxsIGVs
ZW1lbnRzIHdpdGggdGFiaW5kZXg9MCBoYWQgYmVlbiB0cmF2ZXJzZWQuIFNvIHRyYXZlcnNlIGVs
ZW1lbnRzIHdpdGggdGFiaW5kZXg9MSBpbiByZXZlcnNlIG9yZGVyLgotICAgICAgICAnaW5wdXQt
RC0xJywKLQotICAgICAgICAvLyBZZXQgYW5vdGhlciB0cmlja3kgbmF2aWdhdGlvbi4gU2hvdWxk
IHRyYXZlcnNlIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIHNoYWRvdyBET00gbmF2aWdhdGlvbi4K
LSAgICAgICAgJ2hvc3QtQi8veW91bmdlci1pbnB1dC1CLTAnLAotICAgICAgICAnaG9zdC1CL29s
ZGVyLWlucHV0LUItMCcsCi0gICAgICAgICdsaWdodC1jaGlsZC1zZWxlY3RlZC0wJywKLSAgICAg
ICAgJ2hvc3QtQi9vbGRlci1pbnB1dC1BLTAnLAotICAgICAgICAnaG9zdC1CLy95b3VuZ2VyLWlu
cHV0LUEtMCcsCi0KLSAgICAgICAgJ2hvc3QtQi8veW91bmdlci1pbnB1dC1CLTEnLAotICAgICAg
ICAnaG9zdC1CL29sZGVyLWlucHV0LUItMScsCi0gICAgICAgICdsaWdodC1jaGlsZC1zZWxlY3Rl
ZC0xJywKLSAgICAgICAgJ2hvc3QtQi9vbGRlci1pbnB1dC1BLTEnLAotICAgICAgICAnaG9zdC1C
Ly95b3VuZ2VyLWlucHV0LUEtMScsCi0KLSAgICAgICAgLy8gQSBzaGFkb3cgaG9zdCBzaG91bGQg
YmUgc2VsZWN0ZWQganVzdCBhZnRlciB0aGUgZmlyc3QgZWxlbWVudCBpbiBpdHMgc2hhZG93IERP
TSBuYXZpZ2F0aW9uLgotICAgICAgICAvLyBOb3RlIHRoYXQgYSAnZm9jdXMnIGV2ZW50IGlzIG5v
dCBjYWxsZWQgaGVyZSBzaW5jZSBhIGZvY3VzIG1vdmVzIHdpdGhpbiB0aGUgc2FtZSBzaGFkb3cg
aG9zdC4KLSAgICAgICAgJ2hvc3QtQicsCi0gICAgICAgICdpbnB1dC1DLTEnLAotICAgICAgICAn
aW5wdXQtQi0xJywKLSAgICAgICAgJ2lucHV0LUEtMScsCi0KLSAgICAgICAgLy8gV3JhcHMgdG8g
dGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgb3V0ZXJtb3N0IGZvY3VzIHNjb3BlLgotICAgICAgICAn
aW5wdXQtRS0wJywKLSAgICBdOwotCi0gICAgdGVzdEZvY3VzTmF2aWdhdGlvbkZvd3JhZChlbGVt
ZW50c05hdmlnYXRlZEluRm9yd2FyZCk7Ci0gICAgdGVzdEZvY3VzTmF2aWdhdGlvbkJhY2t3YXJk
KGVsZW1lbnRzTmF2aWdhdGVkSW5CYWNrd2FyZCk7Ci0KLSAgICBkZWJ1ZygnVGVzdCBmaW5pc2hl
ZC4nKTsKLX0KLQotdGVzdCgpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mb3JtLWluLXNoYWRvdy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mb3JtLWluLXNoYWRvdy5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZm9ybS1pbi1z
aGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2Pgot
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotCi1mdW5jdGlvbiBjcmVhdGVTaGFkb3dGb3JtKCkgewotICAgIHZhciBjb250
YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci0gICAgdmFyIHNo
YWRvd1Jvb3QgPSBjb250YWluZXIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPQotICAgICAgICAnPGZvcm0+JyArCi0gICAgICAgICcgICAgPGlu
cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaGlkZGVuIiB2YWx1ZT0iaGlkZGVuIj4nICsKLSAgICAg
ICAgJyAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idGV4dCIgdmFsdWU9InRleHQiPicgKwot
ICAgICAgICAnICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2tib3gxIiBjaGVj
a2VkPicgKwotICAgICAgICAnICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2ti
b3gyIj4nICsKLSAgICAgICAgJyAgICA8aW5wdXQgdHlwZT0icmFuZ2UiIG5hbWU9InJhbmdlIiBt
aW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiPicgKwotICAgICAgICAnICAgIDx0ZXh0YXJlYSBu
YW1lPSJ0ZXh0YXJlYSI+dGV4dGFyZWE8L3RleHRhcmVhPicgKwotICAgICAgICAnICAgIDxpbnB1
dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiPicgKwotICAgICAgICAnPC9mb3JtPic7Ci0KLSAg
ICByZXR1cm4gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc3VibWl0Jyk7Ci19Ci0KLWZ1bmN0
aW9uIHBhcnNlUXVlcnkocXVlcnkpIHsKLSAgICB2YXIgcmVzdWx0ID0ge307Ci0gICAgdmFyIG5h
bWVWYWx1ZXMgPSBxdWVyeS5zcGxpdCgnJicpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBu
YW1lVmFsdWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBpZHggPSBuYW1lVmFsdWVzW2ld
LmluZGV4T2YoJz0nKTsKLSAgICAgICAgdmFyIG5hbWUgPSBuYW1lVmFsdWVzW2ldLnN1YnN0cigw
LCBpZHgpOwotICAgICAgICB2YXIgdmFsdWUgPSBuYW1lVmFsdWVzW2ldLnN1YnN0cihpZHggKyAx
KTsKLQotICAgICAgICByZXN1bHRbbmFtZV0gPSB2YWx1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi12YXIgb2JqOwotZnVuY3Rpb24gY2hlY2tRdWVyeShxdWVyeSkgewotICAg
IG9iaiA9IHBhcnNlUXVlcnkocXVlcnkpOwotCi0gICAgc2hvdWxkQmUoIm9iai5oaWRkZW4iLCAi
J2hpZGRlbiciKTsKLSAgICBzaG91bGRCZSgib2JqLnRleHQiLCAiJ3RleHQnIik7Ci0gICAgc2hv
dWxkQmUoIm9iai5jaGVja2JveDEiLCAiJ29uJyIpOwotICAgIHNob3VsZEJlVW5kZWZpbmVkKCJv
YmouY2hlY2tib3gyIik7Ci0gICAgc2hvdWxkQmUoIm9iai5yYW5nZSIsICInNTAnIik7Ci0gICAg
c2hvdWxkQmUoIm9iai50ZXh0YXJlYSIsICIndGV4dGFyZWEnIik7Ci19Ci0KLXZhciBzdWJtaXRC
dXR0b24gPSBjcmVhdGVTaGFkb3dGb3JtKCk7Ci1pZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCc/
JykgPiAwKSB7Ci0gICAgdmFyIHF1ZXJ5ID0gbG9jYXRpb24uaHJlZi5zdWJzdHIobG9jYXRpb24u
aHJlZi5pbmRleE9mKCc/JykgKyAxKTsKLSAgICBjaGVja1F1ZXJ5KHF1ZXJ5KTsKLQotICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19
IGVsc2UgewotICAgIHN1Ym1pdEJ1dHRvbi5jbGljaygpOwotfQotCi12YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZnJhbWVsZXNzLW1lZGlhLWVsZW1lbnQtY3Jhc2gt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9m
cmFtZWxlc3MtbWVkaWEtZWxlbWVudC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9mcmFtZWxlc3MtbWVkaWEtZWxlbWVu
dC1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1DcmVh
dGluZyBhIHZpZGVvIGVsZW1lbnQgaW4gYSBmcmFtZWxlc3MgZG9jdW1lbnQgc2hvdWxkIG5vdCBj
cmFzaCBXZWJLaXQuCi0KLVRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZnJhbWVsZXNzLW1lZGlhLWVsZW1lbnQt
Y3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZnJh
bWVsZXNzLW1lZGlhLWVsZW1lbnQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2ZyYW1lbGVzcy1tZWRpYS1lbGVtZW50LWNyYXNoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotdmFyIGRvYyA9IGRv
Y3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOwotZG9jLm9wZW4oKTsK
LWRvYy53cml0ZSgnPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Jyk7Ci1kb2MuY2xvc2UoKTsKLQot
PC9zY3JpcHQ+Ci08cD5DcmVhdGluZyBhIHZpZGVvIGVsZW1lbnQgaW4gYSBmcmFtZWxlc3MgZG9j
dW1lbnQgc2hvdWxkIG5vdCBjcmFzaCBXZWJLaXQuCi08cD5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0
IGRvZXMgbm90IGNyYXNoLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nYy1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nYy1zaGFkb3ctZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi1UaGlzIHRlc3Rz
IHRoYXQgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBvYmplY3RzIG9mIHNoYWRvdyBET00gb2JqZWN0
cwotYXJlIG5vdCBwcmVtYXR1cmVseSBnYXJiYWdlIGNvbGxlY3RlZC4KLQotUEFTUyBpbnRlcm5h
bHMuc2hhZG93Um9vdChwc1swXSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBBU1MgaW50ZXJu
YWxzLnNoYWRvd1Jvb3QocHNbMV0pLnRhdHRvbyBpcyAiSSA8MyBXZWJLaXQiCi1QQVNTIGludGVy
bmFscy5zaGFkb3dSb290KHBzWzJdKS50YXR0b28gaXMgIkkgPDMgV2ViS2l0IgotUEFTUyBpbnRl
cm5hbHMuc2hhZG93Um9vdChwc1szXSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBBU1MgaW50
ZXJuYWxzLnNoYWRvd1Jvb3QocHNbNF0pLnRhdHRvbyBpcyAiSSA8MyBXZWJLaXQiCi1QQVNTIGlu
dGVybmFscy5zaGFkb3dSb290KHBzWzVdKS50YXR0b28gaXMgIkkgPDMgV2ViS2l0IgotUEFTUyBp
bnRlcm5hbHMuc2hhZG93Um9vdChwc1s2XSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBBU1Mg
aW50ZXJuYWxzLnNoYWRvd1Jvb3QocHNbN10pLnRhdHRvbyBpcyAiSSA8MyBXZWJLaXQiCi1QQVNT
IGludGVybmFscy5zaGFkb3dSb290KHBzWzhdKS50YXR0b28gaXMgIkkgPDMgV2ViS2l0IgotUEFT
UyBpbnRlcm5hbHMuc2hhZG93Um9vdChwc1s5XSkudGF0dG9vIGlzICJJIDwzIFdlYktpdCIKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2djLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2Mtc2hhZG93Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwcmUgaWQ9ImNvbnNvbGUiPgotVGhpcyB0ZXN0cyB0aGF0
IHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgb2JqZWN0cyBvZiBzaGFkb3cgRE9NIG9iamVjdHMKLWFy
ZSBub3QgcHJlbWF0dXJlbHkgZ2FyYmFnZSBjb2xsZWN0ZWQuCi0KLTwvcHJlPgotPHNjcmlwdD4K
LWlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgdmFyIHBzID0gW107Ci0KLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwOyBpKyspIHsKLSAgICAgICAgdmFyIHAgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdwJyk7Ci0gICAgICAgIHBzLnB1c2gocCk7Ci0KLSAgICAgICAgdmFyIHNoYWRvdyA9
IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHApOwotICAgICAgICBzaGFkb3cudGF0dG9vID0g
J0kgPDMgV2ViS2l0JzsKLSAgICAgICAgc2hhZG93ID0gbnVsbDsKLSAgICB9Ci0KLSAgICBnYygp
OwotCi0gICAgZm9yIChpID0gMDsgaSA8IHBzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuc2hhZG93Um9vdChwc1snICsgaSArICddKS50YXR0b28nLCAnIkkgPDMg
V2ViS2l0IicpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dlc3R1cmUtdGFwLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2VzdHVyZS10YXAtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZ2VzdHVyZS10YXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAg
QEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhl
IFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi0KLSAgZ2VzdHVyZXRhcAotICAgICBAZGl2MS1zaGFkb3ctcm9vdC1jaGlsZCAodGFyZ2V0
OiBkaXYxLXNoYWRvdy1yb290LWNoaWxkKQotICAgICBAZGl2MSAodGFyZ2V0OiBkaXYxKQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2VzdHVyZS10YXAuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2VzdHVyZS10YXAuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dlc3R1cmUtdGFw
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRv
bS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudC1kaXNwYXRj
aGluZy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9InNhbmRib3giPgot
PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXNhbmRib3guYXBwZW5k
Q2hpbGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2NvbnRhaW5lcid9LAotICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9LAotICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZm9vJykpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXYxLXNoYWRvdy1yb290LWNoaWxkJ30s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCdmb28nKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoJ2ZvbycpKSkpKSk7Ci0KLXNhbmRib3gub2Zmc2V0TGVmdDsKLQotZnVu
Y3Rpb24gZ2VzdHVyZVRhcChlbGVtZW50SWQpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBnZXROb2Rl
SW5TaGFkb3dUcmVlU3RhY2soZWxlbWVudElkKTsKLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAoZWxlbWVudC5vZmZzZXRMZWZ0ICsg
ZWxlbWVudC5vZmZzZXRXaWR0aCAvIDIsIGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZz
ZXRIZWlnaHQgLyAyKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTApOwotICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCcgJyk7Ci0gICAgfQotfQotCi1hZGRFdmVudExpc3Rl
bmVycyhbJ2RpdjEnLCAnZGl2MS9kaXYxLXNoYWRvdy1yb290LWNoaWxkJ10pOwotZ2VzdHVyZVRh
cCgnZGl2MS9kaXYxLXNoYWRvdy1yb290LWNoaWxkJyk7Ci1kZWJ1Z0Rpc3BhdGNoZWRFdmVudCgn
Z2VzdHVyZXRhcCcpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWRpc3RyaWJ1dGVkLW5vZGVzLW9ycGhhbi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1kaXN0
cmlidXRlZC1ub2Rlcy1vcnBoYW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWRpc3RyaWJ1dGVkLW5vZGVzLW9ycGhhbi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjkgKzAsMCBAQAotZ2V0RGlzdHJpYnV0
ZWROb2RlcygpIHNob3VsZCB3b3JrIG91dCBvZiBEb2N1bWVudAotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotZ2V0RGlzdHJpYnV0ZWROb2RlcygpIHNob3VsZCB3b3JrIG91dCBvZiBE
b2N1bWVudAotUEFTUyBub2RlTGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBB
U1Mgbm9kZUxpc3QuaXRlbSgwKSBpcyBleHBlY3RlZE5vZGVzWzBdCi0KLVdoZW4gYSBjb250ZW50
IGVsZW1lbnQgaXMgZGlzY29ubmVjdGVkIGZyb20gU2hhZG93Um9vdCwgaXQgc2hvdWxkIG5vdCB3
b3JrLgotUEFTUyBub2RlTGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLQotUmVw
cm9qZWN0aW9uIGNhc2UKLVBBU1Mgbm9kZUxpc3QubGVuZ3RoIGlzIGV4cGVjdGVkTm9kZXMubGVu
Z3RoCi1QQVNTIG5vZGVMaXN0Lml0ZW0oMCkgaXMgZXhwZWN0ZWROb2Rlc1swXQotUEFTUyBub2Rl
TGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9kZUxpc3QuaXRlbSgw
KSBpcyBleHBlY3RlZE5vZGVzWzBdCi1QQVNTIG5vZGVMaXN0Lml0ZW0oMSkgaXMgZXhwZWN0ZWRO
b2Rlc1sxXQotCi1yb290Q2hpbGQgaXMgZGlzY29ubmVjdGVkLiBOb3cgY29udGVudCBiZWNhbWUg
aW5hY3RpdmUsIHNvIGNvbnRlbnQgZWxlbWVudCBpdHNlbGYgc2hvdWxkIGJlIGRpc3RyaWJ1dGVk
LgotUEFTUyBub2RlTGlzdC5sZW5ndGggaXMgZXhwZWN0ZWROb2Rlcy5sZW5ndGgKLVBBU1Mgbm9k
ZUxpc3QubGVuZ3RoIGlzIGV4cGVjdGVkTm9kZXMubGVuZ3RoCi1QQVNTIG5vZGVMaXN0Lml0ZW0o
MCkgaXMgZXhwZWN0ZWROb2Rlc1swXQotUEFTUyBub2RlTGlzdC5pdGVtKDEpIGlzIGV4cGVjdGVk
Tm9kZXNbMV0KLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZGlzdHJpYnV0ZWQt
bm9kZXMtb3JwaGFuLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2dldC1kaXN0cmlidXRlZC1ub2Rlcy1vcnBoYW4uaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1kaXN0cmlidXRlZC1ub2Rlcy1vcnBo
YW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4K
LTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oImdldERp
c3RyaWJ1dGVkTm9kZXMoKSBzaG91bGQgd29yayBvdXQgb2YgRG9jdW1lbnQiKTsKLQotZnVuY3Rp
b24gYXNzZXJ0Tm9kZUxpc3Qobm9kZUxpc3QsIGV4cGVjdGVkTm9kZXMpCi17Ci0gICAgd2luZG93
Lm5vZGVMaXN0ID0gbm9kZUxpc3Q7Ci0gICAgd2luZG93LmV4cGVjdGVkTm9kZXMgPSBleHBlY3Rl
ZE5vZGVzOwotICAgIHNob3VsZEJlKCJub2RlTGlzdC5sZW5ndGgiLCAiZXhwZWN0ZWROb2Rlcy5s
ZW5ndGgiKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVMaXN0Lmxlbmd0aDsgKytpKSB7
Ci0gICAgICAgIHNob3VsZEJlKCJub2RlTGlzdC5pdGVtKCIgKyBpICsgIikiLCAiZXhwZWN0ZWRO
b2Rlc1siICsgaSArICJdIik7Ci0gICAgfQotfQotCi12YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLXZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotdmFy
IHJvb3RDaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotdmFyIGNvbnRlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7Ci0KLWhvc3QuYXBwZW5kQ2hpbGQo
Y2hpbGQpOwotcm9vdENoaWxkLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChyb290Q2hpbGQpOwotCi1kZWJ1ZygnZ2V0RGlzdHJpYnV0ZWROb2RlcygpIHNob3Vs
ZCB3b3JrIG91dCBvZiBEb2N1bWVudCcpOwotYXNzZXJ0Tm9kZUxpc3QoY29udGVudC5nZXREaXN0
cmlidXRlZE5vZGVzKCksIFtjaGlsZF0pOwotZGVidWcoJycpOwotCi1kZWJ1ZygnV2hlbiBhIGNv
bnRlbnQgZWxlbWVudCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBTaGFkb3dSb290LCBpdCBzaG91bGQg
bm90IHdvcmsuJyk7Ci1zaGFkb3dSb290LnJlbW92ZUNoaWxkKHJvb3RDaGlsZCk7Ci1hc3NlcnRO
b2RlTGlzdChjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKSwgW10pOwotZGVidWcoJycpOwot
Ci1kZWJ1ZygnUmVwcm9qZWN0aW9uIGNhc2UnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocm9v
dENoaWxkKTsKLXZhciBzaGFkb3dSb290MiA9IHJvb3RDaGlsZC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci12YXIgY29udGVudDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7
Ci12YXIgcm9vdENoaWxkQ2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXNo
YWRvd1Jvb3QyLmFwcGVuZENoaWxkKGNvbnRlbnQyKTsKLXJvb3RDaGlsZC5hcHBlbmRDaGlsZChy
b290Q2hpbGRDaGlsZCk7Ci0KLWFzc2VydE5vZGVMaXN0KGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWRO
b2RlcygpLCBbY2hpbGRdKTsKLWFzc2VydE5vZGVMaXN0KGNvbnRlbnQyLmdldERpc3RyaWJ1dGVk
Tm9kZXMoKSwgW2NoaWxkLCByb290Q2hpbGRDaGlsZF0pOwotZGVidWcoJycpOwotCi1kZWJ1Zygn
cm9vdENoaWxkIGlzIGRpc2Nvbm5lY3RlZC4gTm93IGNvbnRlbnQgYmVjYW1lIGluYWN0aXZlLCBz
byBjb250ZW50IGVsZW1lbnQgaXRzZWxmIHNob3VsZCBiZSBkaXN0cmlidXRlZC4nKTsKLXNoYWRv
d1Jvb3QucmVtb3ZlQ2hpbGQocm9vdENoaWxkKTsKLWFzc2VydE5vZGVMaXN0KGNvbnRlbnQuZ2V0
RGlzdHJpYnV0ZWROb2RlcygpLCBbXSk7Ci1hc3NlcnROb2RlTGlzdChjb250ZW50Mi5nZXREaXN0
cmlidXRlZE5vZGVzKCksIFtjb250ZW50LCByb290Q2hpbGRDaGlsZF0pOwotZGVidWcoJycpOwot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LW11dGF0aW9uLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQt
YnktaWQtaW4tc2hhZG93LW11dGF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRv
dy1tdXRhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAot
VGVzdHMgdG8gZW5zdXJlIHRoYXQgU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCB3b3JrcyBldmVu
IGFmdGVyIG11dGF0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG51
bGwgaXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGEgaXMgc2hhZG93Lmdl
dEVsZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGIgaXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdm
b28nKQotUEFTUyBlMGMgaXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGIg
aXMgc2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKQotUEFTUyBlMGEgaXMgc2hhZG93LmdldEVs
ZW1lbnRCeUlkKCdmb28nKQotUEFTUyBudWxsIGlzIHNoYWRvdy5nZXRFbGVtZW50QnlJZCgnZm9v
JykKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hh
ZG93LW11dGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1tdXRhdGlvbi5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQt
aW4tc2hhZG93LW11dGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDIgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYg
aWQ9Imhvc3QiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUg
dGhhdCBTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkIHdvcmtzIGV2ZW4gYWZ0ZXIgbXV0YXRpb24i
KTsKLQotdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotdmFyIHNo
YWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi1zaG91bGRCZSgibnVsbCIs
ICJzaGFkb3cuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpIik7Ci0KLWUwYSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotZTBhLmlkID0gImZvbyI7Ci1zaGFkb3cuYXBwZW5kQ2hpbGQoZTBh
KTsKLXNob3VsZEJlKCJlMGEiLCAic2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKSIpOwotCi1l
MGIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci1lMGIuaWQgPSAiZm9vIjsKLXNo
YWRvdy5pbnNlcnRCZWZvcmUoZTBiLCBlMGEpOwotc2hvdWxkQmUoImUwYiIsICJzaGFkb3cuZ2V0
RWxlbWVudEJ5SWQoJ2ZvbycpIik7Ci0KLWUwYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAi
KTsKLWUwYy5pZCA9ICJmb28iOwotZTBjUGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci1lMGNQYXJlbnQuYXBwZW5kQ2hpbGQoZTBjKTsKLXNoYWRvdy5pbnNlcnRCZWZvcmUo
ZTBjUGFyZW50LCBlMGIpOwotc2hvdWxkQmUoImUwYyIsICJzaGFkb3cuZ2V0RWxlbWVudEJ5SWQo
J2ZvbycpIik7Ci0KLXNoYWRvdy5yZW1vdmVDaGlsZChlMGNQYXJlbnQpOwotc2hvdWxkQmUoImUw
YiIsICJzaGFkb3cuZ2V0RWxlbWVudEJ5SWQoJ2ZvbycpIik7Ci1zaGFkb3cucmVtb3ZlQ2hpbGQo
ZTBiKTsKLXNob3VsZEJlKCJlMGEiLCAic2hhZG93LmdldEVsZW1lbnRCeUlkKCdmb28nKSIpOwot
c2hhZG93LnJlbW92ZUNoaWxkKGUwYSk7Ci1zaG91bGRCZSgibnVsbCIsICJzaGFkb3cuZ2V0RWxl
bWVudEJ5SWQoJ2ZvbycpIik7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVudC1ieS1pZC1pbi1zaGFkb3ct
cm9vdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5
LWlkLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCAr
MCwwIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkIGNh
biBnZXQgYW4gZWxlbWVudCBpbiBTaGFkb3dSb290IGJ5IGl0cyBpZC4gQ2FuIG9ubHkgcnVuIHdp
dGhpbiBEUlQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZ2V0Tm9kZUlu
U2hhZG93VHJlZVN0YWNrKCdkaXZBL2lucHV0QicpLmlkIGlzICJpbnB1dEIiCi1QQVNTIGdldE5v
ZGVJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDJykuaWQgaXMgImRpdkMiCi1QQVNTIGdldE5v
ZGVJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDL2lucHV0RCcpLmlkIGlzICJpbnB1dEQiCi1Q
QVNTIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDLy9pbnB1dEUnKS5pZCBpcyAi
aW5wdXRFIgotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvZGl2Qy8vL2lucHV0
RicpLmlkIGlzICJpbnB1dEYiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVt
ZW50LWJ5LWlkLWluLXNoYWRvdy1yb290Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2dldC1lbGVtZW50LWJ5LWlkLWluLXNoYWRvdy1yb290Lmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXQtZWxlbWVu
dC1ieS1pZC1pbi1zaGFkb3ctcm9vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBTaGFkb3dSb290LmdldEVsZW1lbnRC
eUlkIGNhbiBnZXQgYW4gZWxlbWVudCBpbiBTaGFkb3dSb290IGJ5IGl0cyBpZC4gQ2FuIG9ubHkg
cnVuIHdpdGhpbiBEUlQiKTsKLQotZnVuY3Rpb24gcHJlcGFyZURvbVRyZWUocGFyZW50KQotewot
ICAgIHBhcmVudC5hcHBlbmRDaGlsZCgKLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2RpdkEnfSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsnaWQnOiAnaW5wdXRCJ30pLAotICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXZDJ30sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2lucHV0JywgeydpZCc6ICdpbnB1dEQn
fSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdpbnB1dCcsIHsn
aWQnOiAnaW5wdXRFJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnaW5wdXQnLCB7J2lkJzogJ2lucHV0Rid9KSkpKSkpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotCi0gICAgcHJlcGFyZURvbVRyZWUoZG9jdW1lbnQuYm9keSk7Ci0gICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2RpdkEvaW5wdXRCJyku
aWQiLCAnaW5wdXRCJyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ2RpdkEvZGl2QycpLmlkIiwgJ2RpdkMnKTsKLSAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnZGl2QS9kaXZDL2lucHV0RCcpLmlk
IiwgJ2lucHV0RCcpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Tm9kZUluU2hhZG93
VHJlZVN0YWNrKCdkaXZBL2RpdkMvL2lucHV0RScpLmlkIiwgJ2lucHV0RScpOwotICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdkaXZBL2RpdkMvLy9p
bnB1dEYnKS5pZCIsICdpbnB1dEYnKTsKLX0KLQotdGVzdCgpOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0ZWxlbWVu
dGJ5aWQtaW4tb3JwaGFuLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvZ2V0ZWxlbWVudGJ5aWQtaW4tb3JwaGFuLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldGVsZW1lbnRi
eWlkLWluLW9ycGhhbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMzUgKzAsMCBA
QAotVGVzdHMgdG8gZW5zdXJlIFNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQgd29ya3MgZXZlbiBp
ZiBhIFNoYWRvd1Jvb3QgaXMgb3JwaGFuLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDEiKSBpcyBzaGFkb3dDaGls
ZDEKLVBBU1Mgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY2hpbGQyIikgaXMgc2hhZG93Q2hp
bGQyCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpIGlzIG51bGwKLVBB
U1Mgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY2hpbGQ0IikgaXMgbnVsbAotUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQxIikgaXMgbnVsbAotUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY2hpbGQyIikgaXMgbnVsbAotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY2hpbGQzIikgaXMgbnVsbAotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQ0
IikgaXMgbnVsbAotCi1JbnNlcnQgZWxlbWVudHMgaGF2aW5nIHRoZSBzYW1lIGlkCi1QQVNTIHNo
YWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMiIpIGlzIHNoYWRvd0NoaWxkMgotUEFTUyBz
aGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKSBpcyBzaGFkb3dDaGlsZDJfMwotCi1N
YWtlIHRoZSBob3N0IGluIGRvY3VtZW50Ci1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQo
ImNoaWxkMSIpIGlzIHNoYWRvd0NoaWxkMQotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlk
KCJjaGlsZDIiKSBpcyBzaGFkb3dDaGlsZDJfMwotUEFTUyBzaGFkb3dSb290LmdldEVsZW1lbnRC
eUlkKCJjaGlsZDMiKSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNo
aWxkNCIpIGlzIG51bGwKLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMSIpIGlz
IG51bGwKLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMiIpIGlzIG51bGwKLVBB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpIGlzIGNoaWxkMwotUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQ0IikgaXMgY2hpbGQ0Ci0KLUFkZCBhIGNoaWxkIGFu
ZCBtYWtlIHRoZSBob3N0IG5vdCBpbiBkb2N1bWVudAotUEFTUyBzaGFkb3dSb290LmdldEVsZW1l
bnRCeUlkKCJjaGlsZDUiKSBpcyBzaGFkb3dDaGlsZDUKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9nZXRlbGVtZW50YnlpZC1pbi1vcnBoYW4uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZ2V0ZWxlbWVudGJ5aWQtaW4tb3JwaGFuLmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVtZW50
YnlpZC1pbi1vcnBoYW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4NCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJ3cmFwcGVyIj48L2Rpdj4KLTxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotZnVuY3Rpb24gY3JlYXRlRGl2V2l0aElkKGlk
KQotewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBk
aXYuaWQgPSBpZDsKLQotICAgIHJldHVybiBkaXY7Ci19Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0
byBlbnN1cmUgU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCB3b3JrcyBldmVuIGlmIGEgU2hhZG93
Um9vdCBpcyBvcnBoYW4uIik7Ci0KLXZhciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
Ci12YXIgc2hhZG93Q2hpbGQxID0gY3JlYXRlRGl2V2l0aElkKCdjaGlsZDEnKTsKLXZhciBzaGFk
b3dDaGlsZDIgPSBjcmVhdGVEaXZXaXRoSWQoJ2NoaWxkMicpOwotdmFyIGhvc3RDaGlsZDEgPSBj
cmVhdGVEaXZXaXRoSWQoJ2NoaWxkMycpOwotdmFyIGhvc3RDaGlsZDIgPSBjcmVhdGVEaXZXaXRo
SWQoJ2NoaWxkNCcpOwotCi1ob3N0LmFwcGVuZENoaWxkKGhvc3RDaGlsZDEpOwotaG9zdC5hcHBl
bmRDaGlsZChob3N0Q2hpbGQyKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93Q2hpbGQx
KTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93Q2hpbGQyKTsKLQotc2hvdWxkQmUoJ3No
YWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMSIpJywgJ3NoYWRvd0NoaWxkMScpOwotc2hv
dWxkQmUoJ3NoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMiIpJywgJ3NoYWRvd0NoaWxk
MicpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ251
bGwnKTsKLXNob3VsZEJlKCdzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDQiKScsICdu
dWxsJyk7Ci0KLXNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQxIiknLCAn
bnVsbCcpOwotc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKScsICdu
dWxsJyk7Ci1zaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ251
bGwnKTsKLXNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQ0IiknLCAnbnVs
bCcpOwotCi1kZWJ1ZygnJyk7Ci1kZWJ1ZygnSW5zZXJ0IGVsZW1lbnRzIGhhdmluZyB0aGUgc2Ft
ZSBpZCcpOwotCi12YXIgc2hhZG93Q2hpbGQyXzIgPSBjcmVhdGVEaXZXaXRoSWQoJ2NoaWxkMicp
Owotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3dDaGlsZDJfMik7Ci0KLXNob3VsZEJlKCdz
aGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKScsICdzaGFkb3dDaGlsZDInKTsKLQot
dmFyIHNoYWRvd0NoaWxkMl8zID0gY3JlYXRlRGl2V2l0aElkKCdjaGlsZDInKTsKLXNoYWRvd1Jv
b3QuaW5zZXJ0QmVmb3JlKHNoYWRvd0NoaWxkMl8zLCBzaGFkb3dSb290LmZpcnN0Q2hpbGQpOwot
Ci1zaG91bGRCZSgnc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY2hpbGQyIiknLCAnc2hhZG93
Q2hpbGQyXzMnKTsKLQotZGVidWcoJycpOwotZGVidWcoJ01ha2UgdGhlIGhvc3QgaW4gZG9jdW1l
bnQnKTsKLXdyYXBwZXIuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLXNob3VsZEJlKCdzaGFkb3dSb290
LmdldEVsZW1lbnRCeUlkKCJjaGlsZDEiKScsICdzaGFkb3dDaGlsZDEnKTsKLXNob3VsZEJlKCdz
aGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKScsICdzaGFkb3dDaGlsZDJfMycpOwot
c2hvdWxkQmUoJ3NoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ251bGwnKTsK
LXNob3VsZEJlKCdzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJjaGlsZDQiKScsICdudWxsJyk7
Ci0KLXNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQxIiknLCAnbnVsbCcp
Owotc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDIiKScsICdudWxsJyk7
Ci1zaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkMyIpJywgJ2NoaWxkMycp
Owotc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZDQiKScsICdjaGlsZDQn
KTsKLQotZGVidWcoJycpOwotZGVidWcoJ0FkZCBhIGNoaWxkIGFuZCBtYWtlIHRoZSBob3N0IG5v
dCBpbiBkb2N1bWVudCcpOwotdmFyIHNoYWRvd0NoaWxkNSA9IGNyZWF0ZURpdldpdGhJZCgnY2hp
bGQ1Jyk7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKHNoYWRvd0NoaWxkNSk7Ci13cmFwcGVyLnJl
bW92ZUNoaWxkKGhvc3QpOwotCi1zaG91bGRCZSgnc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgi
Y2hpbGQ1IiknLCAnc2hhZG93Q2hpbGQ1Jyk7Ci0KLWRlYnVnKCcnKTsKLXdyYXBwZXIuaW5uZXJI
VE1MID0gIiI7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVtZW50YnlpZC1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVtZW50YnlpZC1z
aGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZ2V0ZWxlbWVudGJ5aWQtc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwzNyArMCwwIEBACi1UZXN0cyB0byBlbnN1cmUgU2hhZG93Um9vdC5nZXRFbGVt
ZW50QnlJZCB3b3JrcyBhZnRlciBjb21wbGV4IERPTSBtYW5pcHVsYXRpb24uCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJBIikg
aXMgQQotUEFTUyBzaGFkb3dSb290QS5nZXRFbGVtZW50QnlJZCgiQiIpIGlzIEIKLVBBU1Mgc2hh
ZG93Um9vdEIuZ2V0RWxlbWVudEJ5SWQoIkMiKSBpcyBDCi1QQVNTIHNoYWRvd1Jvb3RDLmdldEVs
ZW1lbnRCeUlkKCJEIikgaXMgRAotCi1SZW1vdmUgQyBmcm9tIHNoYWRvd1Jvb3RCCi1QQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJBIikgaXMgQQotUEFTUyBzaGFkb3dSb290QS5nZXRFbGVt
ZW50QnlJZCgiQiIpIGlzIEIKLVBBU1Mgc2hhZG93Um9vdEIuZ2V0RWxlbWVudEJ5SWQoIkMiKSBp
cyBudWxsCi1QQVNTIHNoYWRvd1Jvb3RDLmdldEVsZW1lbnRCeUlkKCJEIikgaXMgRAotCi1BcHBl
bmQgQyB0byBTaGFkb3dSb290QiwgYW5kIHJlbW92ZSBBIGZyb20gZG9jdW1lbnQKLVBBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkEiKSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3RBLmdldEVs
ZW1lbnRCeUlkKCJCIikgaXMgQgotUEFTUyBzaGFkb3dSb290Qi5nZXRFbGVtZW50QnlJZCgiQyIp
IGlzIEMKLVBBU1Mgc2hhZG93Um9vdEMuZ2V0RWxlbWVudEJ5SWQoIkQiKSBpcyBECi0KLVJlbW92
ZSBDIGZyb20gc2hhZG93Um9vdEIKLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkEiKSBp
cyBudWxsCi1QQVNTIHNoYWRvd1Jvb3RBLmdldEVsZW1lbnRCeUlkKCJCIikgaXMgQgotUEFTUyBz
aGFkb3dSb290Qi5nZXRFbGVtZW50QnlJZCgiQyIpIGlzIG51bGwKLVBBU1Mgc2hhZG93Um9vdEMu
Z2V0RWxlbWVudEJ5SWQoIkQiKSBpcyBECi0KLVJlbW92ZSBEIGZyb20gc2hhZG93Um9vdEMKLVBB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkEiKSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3RB
LmdldEVsZW1lbnRCeUlkKCJCIikgaXMgQgotUEFTUyBzaGFkb3dSb290Qi5nZXRFbGVtZW50QnlJ
ZCgiQyIpIGlzIG51bGwKLVBBU1Mgc2hhZG93Um9vdEMuZ2V0RWxlbWVudEJ5SWQoIkQiKSBpcyBu
dWxsCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldGVsZW1lbnRieWlkLXNoYWRvdy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9nZXRlbGVtZW50
YnlpZC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2dldGVsZW1lbnRieWlkLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDc4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5l
ciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWRlc2NyaXB0
aW9uKCJUZXN0cyB0byBlbnN1cmUgU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCB3b3JrcyBhZnRl
ciBjb21wbGV4IERPTSBtYW5pcHVsYXRpb24uIik7Ci0KLWZ1bmN0aW9uIGNyZWF0ZURpdihpZCkK
LXsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2
LmlkID0gaWQ7Ci0gICAgcmV0dXJuIGRpdjsKLX0KLQotdmFyIEEgPSBjcmVhdGVEaXYoJ0EnKTsK
LXZhciBCID0gY3JlYXRlRGl2KCdCJyk7Ci12YXIgQyA9IGNyZWF0ZURpdignQycpOwotdmFyIEQg
PSBjcmVhdGVEaXYoJ0QnKTsKLXZhciBzaGFkb3dSb290QSA9IEEud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotdmFyIHNoYWRvd1Jvb3RCID0gQi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci12
YXIgc2hhZG93Um9vdEMgPSBDLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotc2hhZG93Um9v
dEEuYXBwZW5kQ2hpbGQoQik7Ci1zaGFkb3dSb290Qi5hcHBlbmRDaGlsZChDKTsKLXNoYWRvd1Jv
b3RDLmFwcGVuZENoaWxkKEQpOwotCi1jb250YWluZXIuYXBwZW5kQ2hpbGQoQSk7Ci1zaG91bGRC
ZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkEiKScsICdBJyk7Ci1zaG91bGRCZSgnc2hhZG93
Um9vdEEuZ2V0RWxlbWVudEJ5SWQoIkIiKScsICdCJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEIu
Z2V0RWxlbWVudEJ5SWQoIkMiKScsICdDJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEMuZ2V0RWxl
bWVudEJ5SWQoIkQiKScsICdEJyk7Ci0KLWRlYnVnKCcnKTsKLWRlYnVnKCdSZW1vdmUgQyBmcm9t
IHNoYWRvd1Jvb3RCJyk7Ci1zaGFkb3dSb290Qi5yZW1vdmVDaGlsZChDKTsKLQotc2hvdWxkQmUo
J2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJBIiknLCAnQScpOwotc2hvdWxkQmUoJ3NoYWRvd1Jv
b3RBLmdldEVsZW1lbnRCeUlkKCJCIiknLCAnQicpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RCLmdl
dEVsZW1lbnRCeUlkKCJDIiknLCAnbnVsbCcpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RDLmdldEVs
ZW1lbnRCeUlkKCJEIiknLCAnRCcpOwotCi1kZWJ1ZygnJyk7Ci1kZWJ1ZygnQXBwZW5kIEMgdG8g
U2hhZG93Um9vdEIsIGFuZCByZW1vdmUgQSBmcm9tIGRvY3VtZW50Jyk7Ci1zaGFkb3dSb290Qi5h
cHBlbmRDaGlsZChDKTsKLWNvbnRhaW5lci5yZW1vdmVDaGlsZChBKTsKLQotc2hvdWxkQmUoJ2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJBIiknLCAnbnVsbCcpOwotc2hvdWxkQmUoJ3NoYWRvd1Jv
b3RBLmdldEVsZW1lbnRCeUlkKCJCIiknLCAnQicpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RCLmdl
dEVsZW1lbnRCeUlkKCJDIiknLCAnQycpOwotc2hvdWxkQmUoJ3NoYWRvd1Jvb3RDLmdldEVsZW1l
bnRCeUlkKCJEIiknLCAnRCcpOwotCi1kZWJ1ZygnJyk7Ci1kZWJ1ZygnUmVtb3ZlIEMgZnJvbSBz
aGFkb3dSb290QicpOwotc2hhZG93Um9vdEIucmVtb3ZlQ2hpbGQoQyk7Ci0KLXNob3VsZEJlKCdk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiQSIpJywgJ251bGwnKTsKLXNob3VsZEJlKCdzaGFkb3dS
b290QS5nZXRFbGVtZW50QnlJZCgiQiIpJywgJ0InKTsKLXNob3VsZEJlKCdzaGFkb3dSb290Qi5n
ZXRFbGVtZW50QnlJZCgiQyIpJywgJ251bGwnKTsKLXNob3VsZEJlKCdzaGFkb3dSb290Qy5nZXRF
bGVtZW50QnlJZCgiRCIpJywgJ0QnKTsKLQotZGVidWcoJycpOwotZGVidWcoJ1JlbW92ZSBEIGZy
b20gc2hhZG93Um9vdEMnKTsKLXNoYWRvd1Jvb3RDLnJlbW92ZUNoaWxkKEQpOwotCi1zaG91bGRC
ZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkEiKScsICdudWxsJyk7Ci1zaG91bGRCZSgnc2hh
ZG93Um9vdEEuZ2V0RWxlbWVudEJ5SWQoIkIiKScsICdCJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9v
dEIuZ2V0RWxlbWVudEJ5SWQoIkMiKScsICdudWxsJyk7Ci1zaG91bGRCZSgnc2hhZG93Um9vdEMu
Z2V0RWxlbWVudEJ5SWQoIkQiKScsICdudWxsJyk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2hhcy1jb250ZW50LWVs
ZW1lbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvaGFzLWNvbnRlbnQtZWxlbWVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWNvbnRlbnQtZWxlbWVudHMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAgQEAKLVRlc3QgZm9yIEJ1ZyAx
MDA5MjEgYW5kIDEwNDM0NjogSFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBiZSByZWdpc3RlcmVk
IGNvcnJlY3RseS4KLQotSW4gdGhlIGNhc2UgaG9zdCBpcyBpbiBkb2N1bWVudAotUEFTUyBpbnRl
cm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50ZXJu
YWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxz
Lmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5o
YXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFz
Q29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29u
dGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRl
bnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRF
bGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxl
bWVudChpbm5lclNoYWRvd1Jvb3QxKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50
RWxlbWVudChpbm5lclNoYWRvd1Jvb3QyKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNDb250
ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVu
dEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVs
ZW1lbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250
ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVu
dEVsZW1lbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXND
b250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29u
dGVudEVsZW1lbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIHRydWUKLUluIHRoZSBjYXNlIGhvc3Qg
aXMgbm90IGluIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFk
b3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93
Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9v
dCkgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3Qp
IGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBp
cyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBm
YWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgdHJ1
ZQotUEFTUyBpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UK
LVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KGlubmVyU2hhZG93Um9vdDEpIGlzIHRy
dWUKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KGlubmVyU2hhZG93Um9vdDIpIGlz
IHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVl
Ci1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudCh5b3VuZ2VyU2hhZG93Um9vdCkgaXMg
ZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudCh5b3VuZ2VyU2hhZG93Um9vdCkg
aXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlz
IGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudCh5b3VuZ2VyU2hhZG93Um9v
dCkgaXMgdHJ1ZQotaW5zZXJ0ZWRJbnRvL3JlbW92ZWRGcm9tIGNhbiBiZSBjYWxsZWQgc2V2ZXJh
bCB0aW1lcy4KLVBBU1MgaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIGlz
IGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0
cnVlCi1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVl
Ci1QQVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyB0cnVlCi1Q
QVNTIGludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9oYXMtY29udGVudC1lbGVtZW50cy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9oYXMtY29udGVudC1lbGVtZW50
cy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
aGFzLWNvbnRlbnQtZWxlbWVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMTEgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAoIXdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgZGVidWcoIndpbmRvd3MuaW50ZXJuYWxzIG5vdCBmb3VuZCEiKTsKLWVsc2UgaWYg
KCF3aW5kb3cuaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KQotICAgIGRlYnVnKCJ3aW5kb3dz
LmludGVybmFscy5oYXNDb250ZW50RWxlbWVudCBub3QgZm91bmQhIik7Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotCi08cD5UZXN0IGZvciBCdWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDkyMSI+MTAwOTIxPC9hPiBhbmQgPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDM0NiI+MTA0MzQ2PC9h
PjogSFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBiZSByZWdpc3RlcmVkIGNvcnJlY3RseS48L3A+
Ci0KLTxkaXYgaWQ9IndyYXBwZXIiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0K
LTxzY3JpcHQ+Ci1mdW5jdGlvbiBkb0NvbW1vblRlc3QoKSB7Ci0gICAgc2hvdWxkQmVGYWxzZSgi
aW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIik7Ci0KLSAgICB2YXIgZGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZGl2LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImNvbnRlbnQiKSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChkaXYpOwotICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50
KHNoYWRvd1Jvb3QpIik7Ci0gICAgCi0gICAgc2hhZG93Um9vdC5yZW1vdmVDaGlsZChkaXYpOwot
ICAgIHNob3VsZEJlRmFsc2UoImludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290
KSIpOwotICAgIAotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXY+Tm8gSW5zZXJ0aW9u
IFBvaW50czwvZGl2PiI7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRF
bGVtZW50KHNoYWRvd1Jvb3QpIik7Ci0gICAgCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAi
PGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0gICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMuaGFzQ29u
dGVudEVsZW1lbnQoc2hhZG93Um9vdCkiKTsKLSAgICAKLSAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICI8c2hhZG93Pjwvc2hhZG93PiI7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhh
c0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIik7Ci0gICAgCi0gICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPGRpdj48ZGl2PjxkaXY+PGNvbnRlbnQ+PC9jb250ZW50PjwvZGl2PjwvZGl2Pjwv
ZGl2PiI7Ci0gICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoc2hh
ZG93Um9vdCkiKTsKLSAgICAKLSAgICAvLyBDYXNlIGZvciBuZXN0ZWQgc2hhZG93IHN1YnRyZWUK
LSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PmluIHNoYWRvdyByb290PC9kaXY+JzsK
LSAgICB2YXIgaW5uZXJEaXYxID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkaXYnKTsKLSAg
ICBpbm5lclNoYWRvd1Jvb3QxID0gaW5uZXJEaXYxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBpbm5lclNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICI8ZGl2Pjxjb250ZW50PjwvY29udGVu
dD48L2Rpdj4iOwotICAgIHZhciBpbm5lckRpdjIgPSBpbm5lclNoYWRvd1Jvb3QxLnF1ZXJ5U2Vs
ZWN0b3IoJ2RpdicpOwotICAgIGlubmVyU2hhZG93Um9vdDIgPSBpbm5lckRpdjIud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIGlubmVyU2hhZG93Um9vdDIuaW5uZXJIVE1MID0gIjxkaXY+
PGNvbnRlbnQgdGl0bGU9J2RlYnVnc3RvcCc+PC9jb250ZW50PjwvZGl2PiI7Ci0gICAgCi0gICAg
c2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpIik7
Ci0gICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQoaW5uZXJTaGFk
b3dSb290MSkiKTsKLSAgICBzaG91bGRCZVRydWUoImludGVybmFscy5oYXNDb250ZW50RWxlbWVu
dChpbm5lclNoYWRvd1Jvb3QyKSIpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXY+
PC9kaXY+IjsKLSAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVsZW1lbnQo
c2hhZG93Um9vdCkiKTsKLQotICAgIC8vIENhc2UgZm9yIG11bHRpcGxlIHNoYWRvdyBzdWJ0cmVl
cwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXY+PGRpdj48ZGl2Pjxjb250ZW50Pjwv
Y29udGVudD48L2Rpdj48L2Rpdj48L2Rpdj4iOwotICAgIHlvdW5nZXJTaGFkb3dSb290ID0gaG9z
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgLy8gTW9kaWZ5aW5nIG9sZGVyIHNoYWRv
dyByb290IG9yIHlvdW5nZXIgc2hhZG93IHJvb3QgZG9lc24ndCBhZmZlY3QgdGhlIG90aGVyLgot
ICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3Qp
Iik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHlvdW5n
ZXJTaGFkb3dSb290KSIpOwotICAgIAotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFk
b3c+PC9zaGFkb3c+IjsKLSAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaGFzQ29udGVudEVs
ZW1lbnQoc2hhZG93Um9vdCkiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaGFzQ29u
dGVudEVsZW1lbnQoeW91bmdlclNoYWRvd1Jvb3QpIik7Ci0gICAgCi0gICAgeW91bmdlclNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gIjxjb250ZW50PjwvY29udGVudD4iOwotICAgIHNob3VsZEJlRmFs
c2UoImludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KSIpOwotICAgIHNob3Vs
ZEJlVHJ1ZSgiaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHlvdW5nZXJTaGFkb3dSb290KSIp
OwotfQotCi1kZWJ1ZygnSW4gdGhlIGNhc2UgaG9zdCBpcyBpbiBkb2N1bWVudCcpOwotaG9zdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotd3JhcHBlci5hcHBlbmRDaGlsZChob3N0
KTsKLXNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLWRvQ29tbW9u
VGVzdCgpOwotd3JhcHBlci5pbm5lckhUTUwgPSAiIjsKLQotZGVidWcoJ0luIHRoZSBjYXNlIGhv
c3QgaXMgbm90IGluIGRvY3VtZW50Jyk7Ci1ob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci1zaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1kb0Nv
bW1vblRlc3QoKTsKLXdyYXBwZXIuaW5uZXJIVE1MID0gIiI7Ci0KLWRlYnVnKCdpbnNlcnRlZElu
dG8vcmVtb3ZlZEZyb20gY2FuIGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzLicpOwotdmFyIGhvc3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXZhciBjb250ZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnY29udGVudCcpOwotdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLXZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12
YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotZGl2MS5hcHBl
bmRDaGlsZChjb250ZW50KTsKLXNob3VsZEJlRmFsc2UoJ2ludGVybmFscy5oYXNDb250ZW50RWxl
bWVudChzaGFkb3dSb290KScpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYxKTsKLXNob3Vs
ZEJlVHJ1ZSgnaW50ZXJuYWxzLmhhc0NvbnRlbnRFbGVtZW50KHNoYWRvd1Jvb3QpJyk7Ci1kaXYy
LmFwcGVuZENoaWxkKGhvc3QpOwotc2hvdWxkQmVUcnVlKCdpbnRlcm5hbHMuaGFzQ29udGVudEVs
ZW1lbnQoc2hhZG93Um9vdCknKTsKLWRpdjIucmVtb3ZlQ2hpbGQoaG9zdCk7Ci1zaG91bGRCZVRy
dWUoJ2ludGVybmFscy5oYXNDb250ZW50RWxlbWVudChzaGFkb3dSb290KScpOwotc2hhZG93Um9v
dC5yZW1vdmVDaGlsZChkaXYxKTsKLXNob3VsZEJlRmFsc2UoJ2ludGVybmFscy5oYXNDb250ZW50
RWxlbWVudChzaGFkb3dSb290KScpOwotZGl2MS5yZW1vdmVDaGlsZChjb250ZW50KTsKLQotd3Jh
cHBlci5pbm5lckhUTUwgPSAnJzsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLWVsZW1lbnRzaGFkb3ctZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9oYXMtZWxl
bWVudHNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9oYXMtZWxlbWVudHNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNDkgKzAsMCBAQAotVGhpcyB0ZXN0IGNvbmZpcm1zIHRoYXQgdGhlIG51bWJl
ciBvZiBlbGVtZW50cyBoYXZpbmcgU2hhZG93IGluIGEgc2hhZG93IHN1YnRyZWUgaXMgY29ycmVj
dGx5IGNvdW50ZWQuIFNlZSBCdWcgMTAwOTIyIGFsc28uCi0KLUluaXRpYWwgY291bnQgc2hvdWxk
IGJlIDAKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBpcyAw
Ci0KLUluc2VydGVkIGludG8gLyByZW1vdmVkIGZyb20gYW4gZWxlbWVudCBoYXZpbmcgc2hhZG93
Ci1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMQotUEFT
UyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpIGlzIDAKLQotSW5zZXJ0
ZWQgaW50byAvIHJlbW92ZWQgZnJvbSBhbiBlbGVtZW50IGhhdmluZyBtdWx0aXBsZSBzaGFkb3cg
cm9vdHMKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBpcyAx
Ci1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCkgaXMgMAotCi1T
aGFkb3dSb290IGlzIGFkZGVkCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hh
ZG93Um9vdCkgaXMgMAotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jv
b3QpIGlzIDEKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KSBp
cyAxCi0KLVNob3VsZCBiZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93IHJvb3QgKG11bHRpcGxlIHNo
YWRvdyByb290IGNhc2UpCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93
Um9vdCkgaXMgMQotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHlvdW5nZXJTaGFk
b3dSb290KSBpcyAwCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9v
dCkgaXMgMAotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHlvdW5nZXJTaGFkb3dS
b290KSBpcyAxCi0KLVNob3VsZCBiZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93IHJvb3QgKG5lc3Rl
ZCBzaGFkb3cgcm9vdCBjYXNlKQotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNo
YWRvd1Jvb3QpIGlzIDEKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0ZWRT
aGFkb3dSb290KSBpcyAwCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93
Um9vdCkgaXMgMQotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5lc3RlZFNoYWRv
d1Jvb3QpIGlzIDEKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290
KSBpcyAyCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3cobmVzdGVkU2hhZG93Um9v
dCkgaXMgMQotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpIGlz
IDIKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0ZWRTaGFkb3dSb290KSBp
cyAyCi0KLVNob3VsZCBiZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93IHJvb3QgKGRlZXAgbmVzdGVk
IHNoYWRvdyByb290IGNhc2UpCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hh
ZG93Um9vdCkgaXMgMQotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5lc3RlZFNo
YWRvd1Jvb3QpIGlzIDAKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhkZWVwTmVz
dGVkU2hhZG93Um9vdCkgaXMgMAotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNo
YWRvd1Jvb3QpIGlzIDEKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0ZWRT
aGFkb3dSb290KSBpcyAxCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coZGVlcE5l
c3RlZFNoYWRvd1Jvb3QpIGlzIDEKLVBBU1MgaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhz
aGFkb3dSb290KSBpcyAwCi1QQVNTIGludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3cobmVzdGVk
U2hhZG93Um9vdCkgaXMgMAotUEFTUyBpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KGRlZXBO
ZXN0ZWRTaGFkb3dSb290KSBpcyAwCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFz
LWVsZW1lbnRzaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvaGFzLWVsZW1lbnRzaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2hhcy1lbGVtZW50c2hhZG93Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTUwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0K
LTxwPlRoaXMgdGVzdCBjb25maXJtcyB0aGF0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaGF2aW5n
IFNoYWRvdyBpbiBhIHNoYWRvdyBzdWJ0cmVlIGlzIGNvcnJlY3RseSBjb3VudGVkLgotU2VlIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA5MjIiPkJ1
ZyAxMDA5MjI8L2E+IGFsc28uPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0Q2FzZShmKQot
ewotICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKLSAgICBjb250YWluZXIuYXBwZW5kQ2hp
bGQoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpOwotICAgIHNoYWRvd1Jvb3QgPSBp
bnRlcm5hbHMuc2hhZG93Um9vdChob3N0KTsKLQotICAgIGYoKTsKLSAgICBkZWJ1ZygnJyk7Ci19
Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnSW5pdGlhbCBjb3VudCBzaG91
bGQgYmUgMCcpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNo
YWRvd1Jvb3QpJywgJzAnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVi
dWcoJ0luc2VydGVkIGludG8gLyByZW1vdmVkIGZyb20gYW4gZWxlbWVudCBoYXZpbmcgc2hhZG93
Jyk7Ci0KLSAgICB2YXIgZGl2ID0gY3JlYXRlRE9NKCdkaXYnLCB7fSwgY3JlYXRlU2hhZG93Um9v
dCgpKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdik7Ci0gICAgc2hvdWxkQmUoJ2lu
dGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9vdCknLCAnMScpOwotCi0gICAgc2hh
ZG93Um9vdC5yZW1vdmVDaGlsZChkaXYpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRF
bGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpJywgJzAnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlv
bigpCi17Ci0gICAgZGVidWcoJ0luc2VydGVkIGludG8gLyByZW1vdmVkIGZyb20gYW4gZWxlbWVu
dCBoYXZpbmcgbXVsdGlwbGUgc2hhZG93IHJvb3RzJyk7Ci0KLSAgICB2YXIgZGl2ID0gY3JlYXRl
RE9NKCdkaXYnLCB7fSwgY3JlYXRlU2hhZG93Um9vdCgpLCBjcmVhdGVTaGFkb3dSb290KCkpOwot
Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotICAgIHNob3VsZEJlKCdpbnRlcm5h
bHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpJywgJzEnKTsKLQotICAgIHNoYWRvd1Jv
b3QucmVtb3ZlQ2hpbGQoZGl2KTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxlbWVu
dFNoYWRvdyhzaGFkb3dSb290KScsICcwJyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQot
ewotICAgIGRlYnVnKCdTaGFkb3dSb290IGlzIGFkZGVkJyk7Ci0gICAgdmFyIGRpdiA9IGNyZWF0
ZURPTSgnZGl2Jywge30pOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KScsICcwJyk7
Ci0KLSAgICBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuY291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpJywgJzEnKTsKLQotICAgIGRpdi53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVs
ZW1lbnRTaGFkb3coc2hhZG93Um9vdCknLCAnMScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9u
KCkKLXsKLSAgICBkZWJ1ZygnU2hvdWxkIGJlIGNvdW50ZWQgYnkgZWFjaCBzaGFkb3cgcm9vdCAo
bXVsdGlwbGUgc2hhZG93IHJvb3QgY2FzZSknKTsKLSAgICB5b3VuZ2VyU2hhZG93Um9vdCA9IGhv
c3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAgdmFyIGRpdiA9IGNyZWF0ZURPTSgn
ZGl2Jywge30sIGNyZWF0ZVNoYWRvd1Jvb3QoKSk7Ci0KLSAgICBzaGFkb3dSb290LmFwcGVuZENo
aWxkKGRpdik7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hh
ZG93Um9vdCknLCAnMScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hh
ZG93KHlvdW5nZXJTaGFkb3dSb290KScsICcwJyk7Ci0KLSAgICB5b3VuZ2VyU2hhZG93Um9vdC5h
cHBlbmRDaGlsZChkaXYpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hh
ZG93KHNoYWRvd1Jvb3QpJywgJzAnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxl
bWVudFNoYWRvdyh5b3VuZ2VyU2hhZG93Um9vdCknLCAnMScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1
bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnU2hvdWxkIGJlIGNvdW50ZWQgYnkgZWFjaCBzaGFkb3cg
cm9vdCAobmVzdGVkIHNoYWRvdyByb290IGNhc2UpJyk7Ci0gICAgdmFyIGRpdiA9IGNyZWF0ZURP
TSgnZGl2Jywge30sIGNyZWF0ZVNoYWRvd1Jvb3QoKSk7Ci0gICAgbmVzdGVkU2hhZG93Um9vdCA9
IGludGVybmFscy5zaGFkb3dSb290KGRpdik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChk
aXYpOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93
Um9vdCknLCAnMScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93
KG5lc3RlZFNoYWRvd1Jvb3QpJywgJzAnKTsKLQotICAgIG5lc3RlZFNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQoY3JlYXRlRE9NKCdkaXYnLCB7fSwgY3JlYXRlU2hhZG93Um9vdCgpKSk7Ci0KLSAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhzaGFkb3dSb290KScsICcxJyk7
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3cobmVzdGVkU2hhZG93
Um9vdCknLCAnMScpOwotCi0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjcmVhdGVET00oJ2Rp
dicsIHt9LCBjcmVhdGVTaGFkb3dSb290KCkpKTsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
Y291bnRFbGVtZW50U2hhZG93KHNoYWRvd1Jvb3QpJywgJzInKTsKLSAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmNvdW50RWxlbWVudFNoYWRvdyhuZXN0ZWRTaGFkb3dSb290KScsICcxJyk7Ci0KLSAg
ICBuZXN0ZWRTaGFkb3dSb290LmFwcGVuZENoaWxkKGNyZWF0ZURPTSgnZGl2Jywge30sIGNyZWF0
ZVNoYWRvd1Jvb3QoKSkpOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRT
aGFkb3coc2hhZG93Um9vdCknLCAnMicpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRF
bGVtZW50U2hhZG93KG5lc3RlZFNoYWRvd1Jvb3QpJywgJzInKTsKLX0pOwotCi10ZXN0Q2FzZShm
dW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ1Nob3VsZCBiZSBjb3VudGVkIGJ5IGVhY2ggc2hhZG93
IHJvb3QgKGRlZXAgbmVzdGVkIHNoYWRvdyByb290IGNhc2UpJyk7Ci0gICAgdmFyIGRpdiA9IGNy
ZWF0ZURPTSgnZGl2Jywge30sIGNyZWF0ZVNoYWRvd1Jvb3QoKSk7Ci0gICAgbmVzdGVkU2hhZG93
Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KGRpdik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChkaXYpOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3co
c2hhZG93Um9vdCknLCAnMScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50
U2hhZG93KG5lc3RlZFNoYWRvd1Jvb3QpJywgJzAnKTsKLQotICAgIHZhciBkaXYxID0gY3JlYXRl
RE9NKCdkaXYnLCB7fSwgY3JlYXRlU2hhZG93Um9vdCgpKTsKLSAgICBkaXYxLnNldEF0dHJpYnV0
ZSgndGl0bGUnLCAnZGVidWdzdG9wJyk7Ci0gICAgZGVlcE5lc3RlZFNoYWRvd1Jvb3QgPSBpbnRl
cm5hbHMuc2hhZG93Um9vdChkaXYxKTsKLSAgICB2YXIgZGl2MiA9IGNyZWF0ZURPTSgnZGl2Jywg
e30sIGNyZWF0ZVNoYWRvd1Jvb3QoKSk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QyID0gaW50ZXJuYWxz
LnNoYWRvd1Jvb3QoZGl2Mik7Ci0KLSAgICBkZWVwTmVzdGVkU2hhZG93Um9vdC5hcHBlbmRDaGls
ZChkaXYyKTsKLSAgICAvLyBXaGVuIG5vdCBpbiBkb2N1bWVudCwgd2UgZG9uJ3QgY291bnQgaXQu
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coZGVlcE5lc3RlZFNo
YWRvd1Jvb3QpJywgJzAnKTsKLQotICAgIG5lc3RlZFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2
MSk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5jb3VudEVsZW1lbnRTaGFkb3coc2hhZG93Um9v
dCknLCAnMScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hhZG93KG5l
c3RlZFNoYWRvd1Jvb3QpJywgJzEnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxl
bWVudFNoYWRvdyhkZWVwTmVzdGVkU2hhZG93Um9vdCknLCAnMScpOwotCi0gICAgY29udGFpbmVy
LmlubmVySFRNTCA9ICIiOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuY291bnRFbGVtZW50U2hh
ZG93KHNoYWRvd1Jvb3QpJywgJzAnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmNvdW50RWxl
bWVudFNoYWRvdyhuZXN0ZWRTaGFkb3dSb290KScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5jb3VudEVsZW1lbnRTaGFkb3coZGVlcE5lc3RlZFNoYWRvd1Jvb3QpJywgJzAnKTsKLX0p
OwotCi1maW5pc2hKU1Rlc3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2hhcy1zaGFkb3ctaW5zZXJ0aW9uLXBvaW50
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
aGFzLXNoYWRvdy1pbnNlcnRpb24tcG9pbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLXNoYWRvdy1pbnNlcnRpb24tcG9p
bnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwICswLDAgQEAKLVRlc3QgZm9y
IEJ1ZyA5NzE4NCBhbmQgMTA0MzQ2IDogSFRNTFNoYWRvd0VsZW1lbnQgc2hvdWxkIGJlIHJlZ2lz
dGVyZWQgY29ycmVjdGx5LgotCi1JbiB0aGUgY2FzZSBob3N0IGlzIGluIGRvY3VtZW50Ci1QQVNT
IGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQot
UEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1
ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMg
ZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3Qp
IGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dS
b290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hh
ZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQo
c2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9p
bnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9u
UG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTaGFk
b3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFz
U2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGlu
dGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFT
UyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlz
IHRydWUKLUluIHRoZSBjYXNlIGhvc3QgaXMgbm90IGluIGRvY3VtZW50Ci1QQVNTIGludGVybmFs
cy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRl
cm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1ZQotUEFTUyBp
bnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgZmFsc2UKLVBB
U1MgaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIGlzIGZhbHNl
Ci1QQVNTIGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBm
YWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkg
aXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9v
dCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93
Um9vdCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91
bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRp
b25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5z
ZXJ0aW9uUG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5o
YXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5h
bHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoeW91bmdlclNoYWRvd1Jvb3QpIGlzIHRydWUKLWlu
c2VydGVkSW50by9yZW1vdmVkRnJvbSBjYW4gYmUgY2FsbGVkIHNldmVyYWwgdGltZXMuCi1QQVNT
IGludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dSb290KSBpcyBmYWxzZQot
UEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMgdHJ1
ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkgaXMg
dHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkg
aXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9v
dCkgaXMgZmFsc2UKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaGFzLXNoYWRvdy1pbnNl
cnRpb24tcG9pbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaGFzLXNoYWRvdy1pbnNlcnRpb24tcG9pbnQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2hhcy1zaGFkb3ctaW5zZXJ0aW9uLXBvaW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1pZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgZGVidWcoIndpbmRvd3Mu
aW50ZXJuYWxzIG5vdCBmb3VuZCEiKTsKLWVsc2UgaWYgKCF3aW5kb3cuaW50ZXJuYWxzLmhhc1No
YWRvd0luc2VydGlvblBvaW50KQotICAgIGRlYnVnKCJ3aW5kb3dzLmludGVybmFscy5oYXNTaGFk
b3dJbnNlcnRpb25Qb2ludCBub3QgZm91bmQhIik7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotCi08cD5UZXN0IGZvciBCdWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3MTg0Ij45NzE4NDwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQzNDYiPjEwNDM0NjwvYT4gOiBIVE1MU2hhZG93
RWxlbWVudCBzaG91bGQgYmUgcmVnaXN0ZXJlZCBjb3JyZWN0bHkuPC9wPgotCi08ZGl2IGlkPSJ3
cmFwcGVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotZnVu
Y3Rpb24gZG9UZXN0KCkgewotICAgIHNob3VsZEJlRmFsc2UoImludGVybmFscy5oYXNTaGFkb3dJ
bnNlcnRpb25Qb2ludChzaGFkb3dSb290KSIpOwotCi0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzaGFkb3ciKSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotICAg
IHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jv
b3QpIik7Ci0KLSAgICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKGRpdik7Ci0gICAgc2hvdWxkQmVG
YWxzZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIik7Ci0K
LSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2Pk5vIEluc2VydGlvbiBQb2ludHM8L2Rp
dj4iOwotICAgIHNob3VsZEJlRmFsc2UoImludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2lu
dChzaGFkb3dSb290KSIpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+
PC9jb250ZW50PiI7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2Vy
dGlvblBvaW50KHNoYWRvd1Jvb3QpIik7Ci0KLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICI8
c2hhZG93Pjwvc2hhZG93PiI7Ci0gICAgc2hvdWxkQmVUcnVlKCJpbnRlcm5hbHMuaGFzU2hhZG93
SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkiKTsKLQotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1M
ID0gIjxkaXY+PGRpdj48ZGl2PjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+PC9kaXY+PC9kaXY+IjsK
LSAgICBzaG91bGRCZVRydWUoImludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFk
b3dSb290KSIpOwotCi0gICAgeW91bmdlclNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoaG9zdCk7Ci0gICAgLy8gTW9kaWZ5aW5nIG9sZGVyIHNoYWRvdyByb290IG9yIHlv
dW5nZXIgc2hhZG93IHJvb3QgZG9lc24ndCBhZmZlY3QgdGhlIG90aGVyLgotICAgIHNob3VsZEJl
VHJ1ZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpIik7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2VydGlvblBvaW50KHlvdW5n
ZXJTaGFkb3dSb290KSIpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+
PC9jb250ZW50PiI7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhhc1NoYWRvd0luc2Vy
dGlvblBvaW50KHNoYWRvd1Jvb3QpIik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmhh
c1NoYWRvd0luc2VydGlvblBvaW50KHlvdW5nZXJTaGFkb3dSb290KSIpOwotCi0gICAgeW91bmdl
clNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IjsKLSAgICBzaG91bGRC
ZUZhbHNlKCJpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCkiKTsK
LSAgICBzaG91bGRCZVRydWUoImludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludCh5b3Vu
Z2VyU2hhZG93Um9vdCkiKTsKLX0KLQotZGVidWcoJ0luIHRoZSBjYXNlIGhvc3QgaXMgaW4gZG9j
dW1lbnQnKTsKLWhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXdyYXBwZXIu
YXBwZW5kQ2hpbGQoaG9zdCk7Ci1zaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci1kb1Rlc3QoKTsKLXdyYXBwZXIuaW5uZXJIVE1MID0gIiI7Ci0KLWRlYnVnKCdJbiB0
aGUgY2FzZSBob3N0IGlzIG5vdCBpbiBkb2N1bWVudCcpOwotaG9zdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotZG9UZXN0KCk7Ci13cmFwcGVyLmlubmVySFRNTCA9ICIiOwotCi1kZWJ1ZygnaW5zZXJ0
ZWRJbnRvL3JlbW92ZWRGcm9tIGNhbiBiZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcy4nKTsKLXZhciBo
b3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci12YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1kaXYxLmFw
cGVuZENoaWxkKHNoYWRvdyk7Ci1zaG91bGRCZUZhbHNlKCdpbnRlcm5hbHMuaGFzU2hhZG93SW5z
ZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCknKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZGl2MSk7
Ci1zaG91bGRCZVRydWUoJ2ludGVybmFscy5oYXNTaGFkb3dJbnNlcnRpb25Qb2ludChzaGFkb3dS
b290KScpOwotZGl2Mi5hcHBlbmRDaGlsZChob3N0KTsKLXNob3VsZEJlVHJ1ZSgnaW50ZXJuYWxz
Lmhhc1NoYWRvd0luc2VydGlvblBvaW50KHNoYWRvd1Jvb3QpJyk7Ci1kaXYyLnJlbW92ZUNoaWxk
KGhvc3QpOwotc2hvdWxkQmVUcnVlKCdpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQo
c2hhZG93Um9vdCknKTsKLXNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoZGl2MSk7Ci1zaG91bGRCZUZh
bHNlKCdpbnRlcm5hbHMuaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoc2hhZG93Um9vdCknKTsKLWRp
djEucmVtb3ZlQ2hpbGQoc2hhZG93KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ob3N0LXdyYXBwZXItcmVjbGFp
bWVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaG9zdC13cmFwcGVyLXJlY2xhaW1lZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ob3N0LXdyYXBwZXItcmVjbGFpbWVkLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotUEFTUyB1bmxlc3MgY3Jhc2guCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaG9zdC13cmFwcGVyLXJlY2xhaW1lZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9ob3N0LXdyYXBw
ZXItcmVjbGFpbWVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9ob3N0LXdyYXBwZXItcmVjbGFpbWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBtYWtlT3JwaGFuU2hhZG93KCkgewotICAgIHZh
ciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdmFyIHNoYWRvdyA9
IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHJldHVybiBzaGFkb3c7Ci19Owot
Ci12YXIgc2hhZG93ID0gbWFrZU9ycGhhblNoYWRvdygpOwotZ2ModHJ1ZSk7Ci0KLXRyeSB7IHNo
YWRvdy5pbm5lckhUTUwgPSAiSGVsbG8iOyB9IGNhdGNoKGUpIHsgfQotc2hhZG93LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSk7Ci1zaGFkb3cucmVzZXRTdHlsZUlu
aGVyaXRhbmNlID0gdHJ1ZTsKLXNoYWRvdy5hcHBseUF1dGhvclN0eWxlcyA9IGZhbHNlOwotCi1k
b2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIHVubGVzcyBjcmFzaC4iOwotPC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
aWZyYW1lLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2lmcmFtZS1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaWZyYW1lLXNoYWRvdy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjMgKzAsMCBAQAotVGhpcyB0ZXN0IGVuc3VyZXMgdGhh
dCBpZnJhbWUgaW5zaWRlIHNoYWRvdyBpc24ndCB2aXNpYmxlIGZyb20gdGhlIGhvc3QgZG9jdW1l
bnQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHdpbmRvdy5sZW5ndGgg
aXMgNAotUEFTUyBpMGJ5bmFtZS5sZW5ndGggaXMgMQotUEFTUyBpMCBpcyBpMGJ5bmFtZVswXS5j
b250ZW50V2luZG93Ci1QQVNTIGkxLmxlbmd0aCBpcyAyCi1QQVNTIHdpbmRvdy5sZW5ndGggaXMg
NAotUEFTUyBpMmJ5bmFtZS5sZW5ndGggaXMgMQotUEFTUyBpMmJ5bmFtZVswXS5jb250ZW50V2lu
ZG93IGlzIGkyCi1QQVNTIGkzYnluYW1lLmxlbmd0aCBpcyAwCi1QQVNTIGkzIGlzIHVuZGVmaW5l
ZAotUEFTUyB3aW5kb3cubGVuZ3RoIGlzIDMKLVBBU1MgZG9jdW1lbnRbJ2kwJ10gaXMgdW5kZWZp
bmVkCi1QQVNTIHdpbmRvdy5sZW5ndGggaXMgNAotUEFTUyBkb2N1bWVudFsnaTMnXSBpcyBpM0lu
U2hhZG93LmNvbnRlbnRXaW5kb3cKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotICAgCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9p
ZnJhbWUtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2lmcmFtZS1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2lmcmFtZS1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3
MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KLTxpZnJhbWUgbmFtZT0iaTAiPjwvaWZyYW1lPgotPGlmcmFt
ZSBuYW1lPSJpMSI+PC9pZnJhbWU+Ci08aWZyYW1lIG5hbWU9ImkxIj48L2lmcmFtZT4KLTxpZnJh
bWUgbmFtZT0iaTIiPjwvaWZyYW1lPgotCi08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLQotPHNjcmlw
dD4KLQotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIHRoYXQgaWZyYW1lIGluc2lkZSBz
aGFkb3cgaXNuJ3QgdmlzaWJsZSBmcm9tIHRoZSBob3N0IGRvY3VtZW50LiIpOwotCi0vLyBBdCBm
aXJzdCwgY2hlY2sgaWZyYW1lIGluIHVzdWFsIHdheQotc2hvdWxkQmUoIndpbmRvdy5sZW5ndGgi
LCAiNCIpOwotdmFyIGkwID0gZG9jdW1lbnRbImkwIl07Ci12YXIgaTBieW5hbWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5TmFtZSgiaTAiKTsKLXNob3VsZEJlKCJpMGJ5bmFtZS5sZW5ndGgiLCAi
MSIpOwotc2hvdWxkQmUoImkwIiwgImkwYnluYW1lWzBdLmNvbnRlbnRXaW5kb3ciKTsKLQotdmFy
IGkxID0gZG9jdW1lbnRbImkxIl07Ci12YXIgaTJieW5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5TmFtZSgiaTAiKTsKLXNob3VsZEJlKCJpMS5sZW5ndGgiLCAiMiIpOwotCi0vLyBUaGVuIEFk
ZGluZyBzb21lIGlmcmFtZXMgaW50byBhIHNoYWRvdy4KLQotdmFyIGhvc3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotdmFyIGkySW5TaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKLWkySW5TaGFkb3cuc2V0QXR0cmlidXRlKCJuYW1lIiwgImkyIik7Ci1zaGFkb3cuYXBw
ZW5kQ2hpbGQoaTJJblNoYWRvdyk7Ci0KLXZhciBpM0luU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7Ci1pM0luU2hhZG93LnNldEF0dHJpYnV0ZSgibmFtZSIsICJpMyIp
Owotc2hhZG93LmFwcGVuZENoaWxkKGkzSW5TaGFkb3cpOwotCi1zaG91bGRCZSgid2luZG93Lmxl
bmd0aCIsICI0Iik7Ci0KLXZhciBpMiA9IGRvY3VtZW50WyJpMiJdOwotdmFyIGkyYnluYW1lID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoImkyIik7Ci1zaG91bGRCZSgiaTJieW5hbWUubGVu
Z3RoIiwgIjEiKTsKLXNob3VsZEJlKCJpMmJ5bmFtZVswXS5jb250ZW50V2luZG93IiwgImkyIik7
Ci0KLXZhciBpMyA9IGRvY3VtZW50WyJpMyJdOwotdmFyIGkzYnluYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeU5hbWUoImkzIik7Ci1zaG91bGRCZSgiaTNieW5hbWUubGVuZ3RoIiwgIjAiKTsK
LXNob3VsZEJlKCJpMyIsICJ1bmRlZmluZWQiKTsKLQotLy8gTW92aW5nIGlmcmFtZXMgYWNyb3Nz
IHNoYWRvdyBib3VuZGFyeSB0byBlbnN1cmUKLS8vIFRoYXQgd2luZG93Lmxlbmd0aCBhbmQgcHJv
cGVydHkgYXZhaWxhYmlsaXR5IGFyZQotLy8gY29ycmVjdGx5IHVwZGF0ZWQuCi0KLXNoYWRvdy5h
cHBlbmRDaGlsZChpMC5mcmFtZUVsZW1lbnQpOwotCi1zaG91bGRCZSgid2luZG93Lmxlbmd0aCIs
ICIzIik7Ci1zaG91bGRCZSgiZG9jdW1lbnRbJ2kwJ10iLCAidW5kZWZpbmVkIik7Ci0KLWRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaTNJblNoYWRvdyk7Ci1zaG91bGRCZSgid2luZG93Lmxlbmd0
aCIsICI0Iik7Ci1zaG91bGRCZSgiZG9jdW1lbnRbJ2kzJ10iLCAiaTNJblNoYWRvdy5jb250ZW50
V2luZG93Iik7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93
LW5vY2hhbmdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2lucHV0LXNoYWRvdy1ub2NoYW5nZS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNTIgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBpbnB1dCdzIHNoYWRv
dyByb290IGlzIG5vdCBjaGFuZ2VkIGlmIGlucHV0IHR5cGUgaXMgY2hhbmdlZC4KLQotaGlkZGVu
Ci1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLXRleHQKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRv
dwotc2VhcmNoCi1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLXRlbAotUEFTUyBuZXdTaGFkb3cg
aXMgc2hhZG93Ci11cmwKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotZW1haWwKLVBBU1MgbmV3
U2hhZG93IGlzIHNoYWRvdwotcGFzc3dvcmQKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotZGF0
ZXRpbWUKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotZGF0ZQotUEFTUyBuZXdTaGFkb3cgaXMg
c2hhZG93Ci1tb250aAotUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Ci13ZWVrCi1QQVNTIG5ld1No
YWRvdyBpcyBzaGFkb3cKLXRpbWUKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotZGF0ZXRpbWUt
bG9jYWwKLVBBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwotbnVtYmVyCi1QQVNTIG5ld1NoYWRvdyBp
cyBzaGFkb3cKLXJhbmdlCi1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLWNvbG9yCi1QQVNTIG5l
d1NoYWRvdyBpcyBzaGFkb3cKLWNoZWNrYm94Ci1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLXJh
ZGlvCi1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLWZpbGUKLVBBU1MgbmV3U2hhZG93IGlzIHNo
YWRvdwotc3VibWl0Ci1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLWltYWdlCi1QQVNTIG5ld1No
YWRvdyBpcyBzaGFkb3cKLXJlc2V0Ci1QQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKLWJ1dHRvbgot
UEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lu
cHV0LXNoYWRvdy1ub2NoYW5nZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9jaGFuZ2UuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXNoYWRvdy1ub2NoYW5nZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgY2hlY2tzIGlucHV0J3Mg
c2hhZG93IHJvb3QgaXMgbm90IGNoYW5nZWQgaWYgaW5wdXQgdHlwZSBpcyBjaGFuZ2VkLjwvcD4K
LTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KLQot
PHNjcmlwdD4KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFp
bmVyIik7Ci0KLWZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
IHx8ICF3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICByZXR1cm47Ci0KLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLQotICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lucHV0Jyk7Ci0gICAgdmFyIGlucHV0VHlwZXMgPSBbCi0gICAgICAgICJoaWRkZW4iLCAidGV4
dCIsICJzZWFyY2giLCAidGVsIiwgInVybCIsICJlbWFpbCIsICJwYXNzd29yZCIsICJkYXRldGlt
ZSIsCi0gICAgICAgICJkYXRlIiwgIm1vbnRoIiwgIndlZWsiLCAidGltZSIsICJkYXRldGltZS1s
b2NhbCIsICJudW1iZXIiLCAicmFuZ2UiLAotICAgICAgICAiY29sb3IiLCAiY2hlY2tib3giLCAi
cmFkaW8iLCAiZmlsZSIsICJzdWJtaXQiLCAiaW1hZ2UiLCAicmVzZXQiLCAiYnV0dG9uIgotICAg
IF07Ci0KLSAgICBzaGFkb3cgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChpbnB1dCk7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBpbnB1dFR5cGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlucHV0
LnR5cGUgPSBpbnB1dFR5cGVzW2ldOwotCi0gICAgICAgIG5ld1NoYWRvdyA9IGludGVybmFscy5z
aGFkb3dSb290KGlucHV0KTsKLQotICAgICAgICBkZWJ1ZyhpbnB1dFR5cGVzW2ldKTsKLSAgICAg
ICAgc2hvdWxkQmUoIm5ld1NoYWRvdyIsICJzaGFkb3ciKTsKLSAgICB9Ci19Ci0KLWRvVGVzdCgp
OwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC13aXRoLXZh
bGlkYXRpb24tZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5wdXQtd2l0aC12YWxpZGF0aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC13aXRoLXZhbGlkYXRp
b24tZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
Ci08cD5WYWxpZGF0aW9uIHNob3VsZCBiZSBzaG93biBpZiBTaGFkb3cgRE9NIGhhcyBhIHNoYWRv
dyBlbGVtZW50LjwvcD4KLTxmb3JtIGlkPSdmb3JtJyBhY3Rpb249ImlucHV0LXdpdGgtdmFsaWRh
dGlvbi5odG1sIj4KLTxpbnB1dCBpZD1wYXNzd29yZCB0eXBlPXBhc3N3b3JkIHJlcXVpcmVkIG1h
eGxlbmd0aD0yMCB0aXRsZT0iTmVlZHMgYXQgbGVhc3QgOCBsZXR0ZXJzLiYjeDBhO1Nob3VsZCBu
b3QgYmUgaWRlbnRpY2FsIHdpdGggdGhlIGN1cnJlbnQgcGFzc3dvcmQuIj4KLTxpbnB1dCB0eXBl
PXN1Ym1pdCBpZD1zdWJtaXQ+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaW5wdXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKTsKLQotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3N1Ym1pdCcpLmNsaWNrKCk7Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9LCAxMCk7Ci19Ci08L3NjcmlwdD4K
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXdpdGgtdmFsaWRhdGlv
bi13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC13aXRoLXZhbGlkYXRpb24td2l0aG91dC1zaGFkb3ctZXhw
ZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2lucHV0LXdpdGgtdmFsaWRhdGlvbi13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPlZhbGlkYXRpb24gd29u
J3QgYmUgc2hvd24gaWYgU2hhZG93IERPTSBkb2VzIG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQu
PC9wPgotPGZvcm0gaWQ9J2Zvcm0nIGFjdGlvbj0iaW5wdXQtd2l0aC12YWxpZGF0aW9uLXdpdGhv
dXQtc2hhZG93Lmh0bWwiPgotPGlucHV0IGlkPXBhc3N3b3JkIHR5cGU9cGFzc3dvcmQgbWF4bGVu
Z3RoPTIwIHRpdGxlPSJOZWVkcyBhdCBsZWFzdCA4IGxldHRlcnMuJiN4MGE7U2hvdWxkIG5vdCBi
ZSBpZGVudGljYWwgd2l0aCB0aGUgY3VycmVudCBwYXNzd29yZC4iPgotPGlucHV0IHR5cGU9c3Vi
bWl0IGlkPXN1Ym1pdD4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBpbnB1dCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9LCAxMCk7Ci19Ci08
L3NjcmlwdD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXdpdGgt
dmFsaWRhdGlvbi13aXRob3V0LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC13aXRoLXZhbGlkYXRpb24td2l0aG91dC1zaGFkb3cuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0
LXdpdGgtdmFsaWRhdGlvbi13aXRob3V0LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5
ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPlZhbGlkYXRpb24gd29uJ3QgYmUgc2hvd24gaWYgU2hh
ZG93IERPTSBkb2VzIG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQuPC9wPgotPGZvcm0gaWQ9J2Zv
cm0nIGFjdGlvbj0iaW5wdXQtd2l0aC12YWxpZGF0aW9uLXdpdGhvdXQtc2hhZG93Lmh0bWwiPgot
PGlucHV0IGlkPXBhc3N3b3JkIHR5cGU9cGFzc3dvcmQgcmVxdWlyZWQgbWF4bGVuZ3RoPTIwIHRp
dGxlPSJOZWVkcyBhdCBsZWFzdCA4IGxldHRlcnMuJiN4MGE7U2hvdWxkIG5vdCBiZSBpZGVudGlj
YWwgd2l0aCB0aGUgY3VycmVudCBwYXNzd29yZC4iPgotPGlucHV0IHR5cGU9c3VibWl0IGlkPXN1
Ym1pdD4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICB2YXIg
aW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKTsKLSAgICB2YXIgc2hh
ZG93Um9vdCA9IGlucHV0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzdWJtaXQnKS5jbGljaygpOwotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwotICAgICAgICB9LCAxMCk7Ci0gICAgfQotfQotCi10cnkgewotICAgIGRvVGVzdCgpCi19IGNh
dGNoIChlKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5wdXQtd2l0aC12YWxpZGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2lucHV0LXdpdGgtdmFsaWRhdGlvbi5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtd2l0aC12YWxp
ZGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+
VmFsaWRhdGlvbiBzaG91bGQgYmUgc2hvd24gaWYgU2hhZG93IERPTSBoYXMgYSBzaGFkb3cgZWxl
bWVudC48L3A+Ci08Zm9ybSBpZD0nZm9ybScgYWN0aW9uPSJpbnB1dC13aXRoLXZhbGlkYXRpb24u
aHRtbCI+Ci08aW5wdXQgaWQ9cGFzc3dvcmQgdHlwZT1wYXNzd29yZCByZXF1aXJlZCBtYXhsZW5n
dGg9MjAgdGl0bGU9Ik5lZWRzIGF0IGxlYXN0IDggbGV0dGVycy4mI3gwYTtTaG91bGQgbm90IGJl
IGlkZW50aWNhbCB3aXRoIHRoZSBjdXJyZW50IHBhc3N3b3JkLiI+Ci08aW5wdXQgdHlwZT1zdWJt
aXQgaWQ9c3VibWl0PgotPC9mb3JtPgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRF
bmFibGVkKHRydWUpOwotCi12YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFz
c3dvcmQnKTsKLXZhciBzaGFkb3dSb290ID0gaW5wdXQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
Owotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz4iOwotCi1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnc3VibWl0JykuY2xpY2soKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0sIDEwKTsK
LX0KLTwvc2NyaXB0PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0
aW9uLXBhcmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2luc2VydGlvbi1wYXJlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBhcmVudC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgZm9yIG5vZGUncyBp
bnNlcnRpb25QYXJlbnQoKS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mg
ZG9jdW1lbnQud2Via2l0SW5zZXJ0aW9uUGFyZW50IGlzIHVuZGVmaW5lZC4KLVBBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QtMScpLndlYmtpdEluc2VydGlvblBhcmVudCBpcyBudWxs
Ci1QQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGlsZCcpLndlYmtpdEluc2VydGlvblBh
cmVudC5pZCBpcyAiY29udGVudC0xIgotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVw
cm9qZWN0ZWQtY2hpbGQnKS53ZWJraXRJbnNlcnRpb25QYXJlbnQuaWQgaXMgImNvbnRlbnQtMiIK
LVBBU1MgdGV4dE5vZGUud2Via2l0SW5zZXJ0aW9uUGFyZW50LmlkIGlzICJjb250ZW50LTMiCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLWhlbGxvCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBhcmVudC1zaGFkb3ct
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9p
bnNlcnRpb24tcGFyZW50LXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcGFyZW50LXNoYWRvdy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzAsMCBAQAotVGVzdHMgZm9yIGluc2Vy
dGlvblBhcmVudCB3aXRoIGEgc2hhZG93IGVsZW1lbnQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC9vbGRlci1zaGFk
b3ctcm9vdC1jaGlsZCcpLndlYmtpdEluc2VydGlvblBhcmVudC5pZCBpcyAic2hhZG93IgotUEFT
UyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvL3NoYWRvdycpLndlYmtpdEluc2VydGlv
blBhcmVudCBpcyBudWxsCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1w
YXJlbnQtc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2luc2VydGlvbi1wYXJlbnQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcGFyZW50LXNoYWRvdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBmb3IgaW5zZXJ0
aW9uUGFyZW50IHdpdGggYSBzaGFkb3cgZWxlbWVudC4iKTsKLQotZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnaG9zdCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnb2xkZXItc2hhZG93LXJvb3QtY2hpbGQnfSkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ3NoYWRvdycsIHsnaWQnOiAnc2hhZG93J30pKSkpKTsKLQotZG9jdW1lbnQuYm9keS5v
ZmZzZXRMZWZ0OwotCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnaG9zdC9vbGRlci1zaGFkb3ctcm9vdC1jaGlsZCcpLndlYmtpdEluc2VydGlvblBhcmVu
dC5pZCIsICJzaGFkb3ciKTsKLXNob3VsZEJlTnVsbCgiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNr
KCdob3N0Ly9zaGFkb3cnKS53ZWJraXRJbnNlcnRpb25QYXJlbnQiKTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2Vy
dGlvbi1wYXJlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaW5zZXJ0aW9uLXBhcmVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBhcmVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBmb3Igbm9kZSdzIGluc2VydGlvblBhcmVu
dCgpLiIpOwotCi12YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnaGVsbG8n
KTsKLQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHt9
LAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdC0xJ30sCi0gICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudC0xJ30pKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZCd9KSks
Ci0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0LTInfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6ICdjb250ZW50LTInLCAnc2VsZWN0
JzogJy5jbHMnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2hvc3QtMyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6ICdjb250ZW50LTMnfSkpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3JlcHJvamVj
dGVkLWNoaWxkJywgJ2NsYXNzJzogJ2Nscyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHROb2RlKSkpOwotCi1kb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0KLXNob3VsZEJlVW5kZWZp
bmVkKCJkb2N1bWVudC53ZWJraXRJbnNlcnRpb25QYXJlbnQiKTsKLXNob3VsZEJlTnVsbCgiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QtMScpLndlYmtpdEluc2VydGlvblBhcmVudCIpOwot
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKS53
ZWJraXRJbnNlcnRpb25QYXJlbnQuaWQiLCAiY29udGVudC0xIik7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXByb2plY3RlZC1jaGlsZCcpLndlYmtp
dEluc2VydGlvblBhcmVudC5pZCIsICJjb250ZW50LTIiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygidGV4dE5vZGUud2Via2l0SW5zZXJ0aW9uUGFyZW50LmlkIiwgImNvbnRlbnQtMyIpOwotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvaW5zZXJ0aW9uLXBvaW50LWxpc3QtbWVudS1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wb2ludC1saXN0
LW1lbnUtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LWxpc3QtbWVudS1jcmFzaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMCwwIEBACi1QQVNTIHVubGVzcyBjcmFzaAot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LWxpc3Qt
bWVudS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9pbnNlcnRpb24tcG9pbnQtbGlzdC1tZW51LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtbGlzdC1tZW51
LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLWZ1bmN0aW9uIGJvb20oKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIG9sZGVyID0gZGl2LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICBvbGRlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSk7Ci0gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRp
dik7Ci0KLSAgICB2YXIgeW91bmdlciA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0g
ICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOwotICAgIHZh
ciBzaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzZWxlY3Qu
YXBwZW5kQ2hpbGQoc2hhZG93KTsKLSAgICB5b3VuZ2VyLmFwcGVuZENoaWxkKHNlbGVjdCk7Ci0K
LSAgICB0ZXN0UGFzc2VkKCJ1bmxlc3MgY3Jhc2giKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0K
LXdpbmRvdy5vbmxvYWQgPSBib29tOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJ
bmhlcml0YW5jZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2luc2VydGlvbi1wb2ludC1yZXNldFN0eWxlSW5oZXJpdGFuY2UtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5z
ZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzEgKzAsMCBAQAotVGVzdCBjYXNlOiBubyByZXNldC1zdHlsZS1pbmhlcml0
YW5jZS4gY29sb3IgdmFsdWUgc2hvdWxkIGJlIGluaGVyaXRlZCBmcm9tIHRoZSBzaGFkb3cgaG9z
dC4KLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im5vLXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuY29sb3IgaXMgInJnYigy
NTUsIDIzOCwgMjM4KSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm5vLXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotVGVzdCBjYXNlOiByZXNldC1zdHls
ZS1pbmhlcnRpYWNlIGJhc2ljIHRlc3QuIGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbml0aWFsIGJl
Y2F1c2UgaW5zZXJ0aW9uIHBvaW50J3MgcmVzZXRTdHlsZUluaGVyaXRhbmNlIGlzIHRydWUuCi1Q
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNl
dC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMCki
Ci1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZXNldC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmJhY2tncm91bmRDb2xvciBpcyAi
cmdiYSgwLCAwLCAwLCAwKSIKLVRlc3QgY2FzZTogbWFrZSBhIGNvbnRlbnQgZWxlbWVudCByZXNl
dC1zdHlsZS1pbmhlcnRpYWNlIGJ5IHVzaW5nIGl0cyBhdHRyaWJ1dGUuIGNvbG9yIHZhbHVlIHNo
b3VsZCBiZSBpbml0aWFsIGJlY2F1c2UgaW5zZXJ0aW9uIHBvaW50J3MgcmVzZXRTdHlsZUluaGVy
aXRhbmNlIGlzIHRydWUuCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmNvbG9y
IGlzICJyZ2IoMCwgMCwgMCkiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVRlc3QgY2FzZTogbWFrZSBhIHNo
YWRvdyBlbGVtZW50IHJlc2V0LXN0eWxlLWluaGVydGlhY2UgYnkgdXNpbmcgaXRzIGF0dHJpYnV0
ZS4gY29sb3IgdmFsdWUgc2hvdWxkIGJlIGluaXRpYWwgYmVjYXVzZSBpbnNlcnRpb24gcG9pbnQn
cyByZXNldFN0eWxlSW5oZXJpdGFuY2UgaXMgdHJ1ZS4KLVBBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIiku
Zmlyc3RDaGlsZCkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVyaXRhbmNl
IikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotVGVz
dCBjYXNlOiByZXNldC1zdHlsZS1pbmhlcnRpYWNlIGNoYW5nZXMgZHluYW1pY2FsbHkuIEZpcnN0
bHkgY29sb3IgdmFsdWUgc2hvdWxkIGJlIGluaGVyaXRlZC4gTmV4dCwgaW5pdGlhbC4gQXQgbGFz
dCwgaW5oZXJpdGVkLgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZHluYW1pYyIpLmZpcnN0Q2hpbGQp
LmNvbG9yIGlzICJyZ2IoMjU1LCAyMzgsIDIzOCkiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5h
bWljIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgot
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVz
ZXQtc3R5bGUtaW5oZXJpdGFuY2UtZHluYW1pYyIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2Io
MCwgMCwgMCkiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGlsZCkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Ut
ZHluYW1pYyIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMjU1LCAyMzgsIDIzOCkiCi1QQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1z
dHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGlsZCkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2JhKDAsIDAsIDAsIDApIgotVGVzdCBjYXNlOiB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIGRp
c3RyaWJ1dGVkIG5vZGUgaXMgaW4gdGhlIHNhbWUgc2hhZG93IGRvbSBzdWJ0cmVlIGFzIHRoZSBp
bnNlcnRpb24gcG9pbnQuIGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbml0aWFsLiByZXNldC1zdHls
ZS1pbmhlcml0YW5jZSBkb2Vzbid0IGRlcGVuZCBvbiB3aGV0aGVyIHBhcmVudCBzdHlsZSBub2Rl
IGlzIGluIHRoZSBzYW1lIHRyZWVzY29wZSBvciBub3QuCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1idXQtbm90LWNyb3NzLXVwcGVy
LWJvdW5kYXJ5IikuZmlyc3RDaGlsZCkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LWJ1dC1u
b3QtY3Jvc3MtdXBwZXItYm91bmRhcnkiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYmEoMCwgMCwgMCwgMCkiCi1UZXN0IGNhc2U6IHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIHdp
dGggbXVsdGlwbGUgc2hhZG93IHJvb3RzLiBjb2xvciB2YWx1ZSBzaG91bGQgYmUgaW5pdGlhbCwg
YmVjYXVzZSByZXNldC1zdHlsZS1pbmhlcml0YW5jZSBvZiB0aGUgaW5zZXJ0aW9uIHBvaW50IGlu
IHRoZSB5b3VuZ2VzdCBzaGFkb3cgcm9vdCBpcyB0cnVlLgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXVsdGlwbGUtc2hhZG93LXJvb3RzIiku
Zmlyc3RDaGlsZCkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlLXNoYWRvdy1yb290cyIp
LmZpcnN0Q2hpbGQpLmJhY2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVRlc3Qg
Y2FzZTogbXVsdGlwbGUgaW5zZXJ0aW9uIHBvaW50cyBpbiB0aGUgc2FtZSBzaGFkb3cgZG9tIHN1
YnRyZWUuLiBFYWNoIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIHNob3VsZCBiZSBjaGVja2VkLgot
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXVs
dGlwbGUtaW5zZXJ0aW9uLXBvaW50cyIpLmZpcnN0Q2hpbGQpLmNvbG9yIGlzICJyZ2IoMjU1LCAy
MzgsIDIzOCkiCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJtdWx0aXBsZS1pbnNlcnRpb24tcG9pbnRzIikuZmlyc3RDaGlsZCkuYmFja2dyb3Vu
ZENvbG9yIGlzICJyZ2JhKDAsIDAsIDAsIDApIgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXVsdGlwbGUtaW5zZXJ0aW9uLXBvaW50cyIpLmxh
c3RDaGlsZCkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKLVBBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlLWluc2VydGlvbi1wb2ludHMi
KS5sYXN0Q2hpbGQpLmJhY2tncm91bmRDb2xvciBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLURPTkUK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtcmVzZXRT
dHlsZUluaGVyaXRhbmNlLXdpdGgtcHNldWRvLWVsZW1lbnQtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQt
cmVzZXRTdHlsZUluaGVyaXRhbmNlLXdpdGgtcHNldWRvLWVsZW1lbnQtY3Jhc2gtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5z
ZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS13aXRoLXBzZXVkby1lbGVtZW50LWNy
YXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLVtidWcgMTEy
MzIyXSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyMzIyIFRoaXMg
dGVzdCBlbnN1cmVzIFdlYktpdCBkb2VzIG5vdCBjcmFzaCB3aGVuIGNoZWNraW5nIHdoZXRoZXIg
ZGlzdHJpYnV0ZWQgbm9kZXMgaGF2ZSBhbnkgcHNldWRvIGVsZW1lbnQgb3Igbm90LiBJZiB0aGVy
ZSBpcyBubyBjcmFzaCwgdGhlIHRlc3QgcGFzc2VzLgotCi1QQVNTCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS13
aXRoLXBzZXVkby1lbGVtZW50LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wb2ludC1yZXNldFN0eWxlSW5oZXJpdGFuY2Utd2l0
aC1wc2V1ZG8tZWxlbWVudC1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5j
ZS13aXRoLXBzZXVkby1lbGVtZW50LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYg
KzAsMCBAQAotPCFkb2N0eWxlIGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLXNwYW46OmFmdGVyIHsK
LSAgICAtd2Via2l0LW1hc2stYm94LWltYWdlLXNvdXJjZTogdXJsKGRvZXMtbm90LWV4aXN0Lmdp
ZikKLX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBydW5UZXN0cygpIHsKLSAgICB2YXIg
aG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dSb290LmlubmVy
SFRNTCA9ICI8Y29udGVudCBpZD0nY29udGVudCc+IgotICAgIHNoYWRvd1Jvb3QuZ2V0RWxlbWVu
dEJ5SWQoImNvbnRlbnQiKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgotICA8cD5bYnVnIDExMjMy
Ml0gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjMy
MiI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjMyMjwvYT4gVGhp
cyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGNyYXNoIHdoZW4gY2hlY2tpbmcgd2hldGhl
ciBkaXN0cmlidXRlZCBub2RlcyBoYXZlIGFueSBwc2V1ZG8gZWxlbWVudCBvciBub3QuIElmIHRo
ZXJlIGlzIG5vIGNyYXNoLCB0aGUgdGVzdCBwYXNzZXMuPC9wPgotICA8ZGl2IGlkPSdob3N0Jz4K
LSAgICA8c3Bhbj5QQVNTPC9zcGFuPgotICA8L2Rpdj4KLTwvYm9keT4KLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wb2ludC1yZXNldFN0eWxlSW5oZXJpdGFu
Y2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0
aW9uLXBvaW50LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXJlc2V0U3R5bGVJ
bmhlcml0YW5jZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1MSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1kaXYucmVzZXRUZXN0IHsKLSAgYmFj
a2dyb3VuZC1jb2xvcjogI2VlZjsKLSAgY29sb3I6ICNmZWU7Ci19Ci08L3N0eWxlPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiB0ZXN0Tm9SZXNldFN0eWxlSW5oZXJpdGFuY2UoKSB7Ci0gICAgZGVidWcoIlRlc3QgY2Fz
ZTogbm8gcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UuIGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbmhl
cml0ZWQgZnJvbSB0aGUgc2hhZG93IGhvc3QuIik7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpOwotCi0gICAgdmFyIHNo
YWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gJzxjb250ZW50IGlkPSJjb250ZW50Ij48L2NvbnRlbnQ+JzsKLSAgICAKLSAg
ICBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdjb250ZW50JykucmVzZXRTdHlsZUluaGVyaXRh
bmNlID0gZmFsc2U7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hp
bGQpLmNvbG9yJywgJyJyZ2IoMjU1LCAyMzgsIDIzOCkiJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuby1yZXNldC1zdHls
ZS1pbmhlcml0YW5jZSIpLmZpcnN0Q2hpbGQpLmJhY2tncm91bmRDb2xvcicsICcicmdiYSgwLCAw
LCAwLCAwKSInKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsK
LSAgICBkZWJ1ZygiVGVzdCBjYXNlOiByZXNldC1zdHlsZS1pbmhlcnRpYWNlIGJhc2ljIHRlc3Qu
IGNvbG9yIHZhbHVlIHNob3VsZCBiZSBpbml0aWFsIGJlY2F1c2UgaW5zZXJ0aW9uIHBvaW50J3Mg
cmVzZXRTdHlsZUluaGVyaXRhbmNlIGlzIHRydWUuIik7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZScpOwotCi0gICAgdmFyIHNo
YWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gJzxjb250ZW50IGlkPSJjb250ZW50Ij48L2NvbnRlbnQ+JzsKLQotICAgIHNo
YWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbnQnKS5yZXNldFN0eWxlSW5oZXJpdGFuY2Ug
PSB0cnVlOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiKS5maXJzdENoaWxkKS5jb2xv
cicsICcicmdiKDAsIDAsIDApIicpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiKS5m
aXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoQXR0cmlidXRlKCkgewotICAg
IGRlYnVnKCJUZXN0IGNhc2U6IG1ha2UgYSBjb250ZW50IGVsZW1lbnQgcmVzZXQtc3R5bGUtaW5o
ZXJ0aWFjZSBieSB1c2luZyBpdHMgYXR0cmlidXRlLiBjb2xvciB2YWx1ZSBzaG91bGQgYmUgaW5p
dGlhbCBiZWNhdXNlIGluc2VydGlvbiBwb2ludCdzIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0
cnVlLiIpOwotICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5
bGUtaW5oZXJpdGFuY2UnKTsKLQotICAgIHZhciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBpZD0i
Y29udGVudCIgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2U+PC9jb250ZW50Pic7Ci0KLSAgICBzaG91
bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigwLCAwLCAw
KSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIikuZmlyc3RDaGlsZCkuYmFja2dy
b3VuZENvbG9yJywgJyJyZ2JhKDAsIDAsIDAsIDApIicpOwotfQotCi1mdW5jdGlvbiB0ZXN0U2hh
ZG93UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aEF0dHJpYnV0ZSgpIHsKLSAgICBkZWJ1ZygiVGVz
dCBjYXNlOiBtYWtlIGEgc2hhZG93IGVsZW1lbnQgcmVzZXQtc3R5bGUtaW5oZXJ0aWFjZSBieSB1
c2luZyBpdHMgYXR0cmlidXRlLiBjb2xvciB2YWx1ZSBzaG91bGQgYmUgaW5pdGlhbCBiZWNhdXNl
IGluc2VydGlvbiBwb2ludCdzIHJlc2V0U3R5bGVJbmhlcml0YW5jZSBpcyB0cnVlLiIpOwotICAg
IHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFu
Y2UnKTsKLQotICAgIHZhciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8c2hhZG93IGlkPSJjb250ZW50IiByZXNl
dC1zdHlsZS1pbmhlcml0YW5jZT48L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCd3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5o
ZXJpdGFuY2UiKS5maXJzdENoaWxkKS5jb2xvcicsICcicmdiKDAsIDAsIDApIicpOwotICAgIHNo
b3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAn
InJnYmEoMCwgMCwgMCwgMCkiJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZXNldFN0eWxlSW5oZXJp
dGFuY2VEeW5hbWljKCkgewotICAgIGRlYnVnKCJUZXN0IGNhc2U6IHJlc2V0LXN0eWxlLWluaGVy
dGlhY2UgY2hhbmdlcyBkeW5hbWljYWxseS4gRmlyc3RseSBjb2xvciB2YWx1ZSBzaG91bGQgYmUg
aW5oZXJpdGVkLiBOZXh0LCBpbml0aWFsLiBBdCBsYXN0LCBpbmhlcml0ZWQuIik7Ci0gICAgdmFy
IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1k
eW5hbWljJyk7Ci0KLSAgICB2YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgaWQ9ImNvbnRlbnQi
PjwvY29udGVudD4nOwotCi0gICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcp
LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IGZhbHNlOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzZXQtc3R5bGUtaW5oZXJp
dGFuY2UtZHluYW1pYyIpLmZpcnN0Q2hpbGQpLmNvbG9yJywgJyJyZ2IoMjU1LCAyMzgsIDIzOCki
Jyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGlsZCku
YmFja2dyb3VuZENvbG9yJywgJyJyZ2JhKDAsIDAsIDAsIDApIicpOwotCi0gICAgc2hhZG93Um9v
dC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7
Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5hbWljIikuZmlyc3RDaGlsZCkuY29s
b3InLCAnInJnYigwLCAwLCAwKSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWR5
bmFtaWMiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCki
Jyk7Ci0KLSAgICBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdjb250ZW50JykucmVzZXRTdHls
ZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS1keW5h
bWljIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigyNTUsIDIzOCwgMjM4KSInKTsKLSAgICBz
aG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWR5bmFtaWMiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5k
Q29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZXNldFN0
eWxlSW5oZXJpdGFuY2VXaXRob3V0Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5KCkgewotICAgIGRlYnVn
KCJUZXN0IGNhc2U6IHRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgZGlzdHJpYnV0ZWQgbm9kZSBpcyBp
biB0aGUgc2FtZSBzaGFkb3cgZG9tIHN1YnRyZWUgYXMgdGhlIGluc2VydGlvbiBwb2ludC4gY29s
b3IgdmFsdWUgc2hvdWxkIGJlIGluaXRpYWwuIHJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIGRvZXNu
J3QgZGVwZW5kIG9uIHdoZXRoZXIgcGFyZW50IHN0eWxlIG5vZGUgaXMgaW4gdGhlIHNhbWUgdHJl
ZXNjb3BlIG9yIG5vdC4iKTsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc2V0LWJ1dC1ub3QtY3Jvc3MtdXBwZXItYm91bmRhcnknKTsKLSAgICB2YXIgc2hhZG93Um9v
dCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICBzaGFkb3dSb290LmlubmVy
SFRNTCA9ICc8ZGl2IHN0eWxlPSJjb2xvcjpibHVlOyBiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuOyI+
PGNvbnRlbnQgaWQ9ImNvbnRlbnQiPjwvY29udGVudD48L2Rpdj4nOwotCi0gICAgc2hhZG93Um9v
dC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpLnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7
Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXNldC1idXQtbm90LWNyb3NzLXVwcGVyLWJvdW5kYXJ5IikuZmlyc3RDaGlsZCku
Y29sb3InLCAnInJnYigwLCAwLCAwKSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc2V0LWJ1dC1ub3QtY3Jvc3MtdXBw
ZXItYm91bmRhcnkiKS5maXJzdENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwg
MCwgMCkiJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoTXVs
dGlwbGVTaGFkb3dSb290cygpIHsKLSAgICBkZWJ1ZygiVGVzdCBjYXNlOiByZXNldC1zdHlsZS1p
bmhlcml0YW5jZSB3aXRoIG11bHRpcGxlIHNoYWRvdyByb290cy4gY29sb3IgdmFsdWUgc2hvdWxk
IGJlIGluaXRpYWwsIGJlY2F1c2UgcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Ugb2YgdGhlIGluc2Vy
dGlvbiBwb2ludCBpbiB0aGUgeW91bmdlc3Qgc2hhZG93IHJvb3QgaXMgdHJ1ZS4iKTsKLSAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ211bHRpcGxlLXNoYWRvdy1yb290cycp
OwotICAgIHZhciBvbGRlc3RTaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLSAgICBvbGRlc3RTaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBpZD0iY29udGVu
dCI+PC9jb250ZW50Pic7Ci0KLSAgICB2YXIgeW91bmdlclNoYWRvd1Jvb3QgPSBkaXYud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHlvdW5nZXJTaGFkb3dSb290LmlubmVySFRNTCA9ICc8
c2hhZG93IGlkPSJzaGFkb3ciPjwvc2hhZG93Pic7Ci0KLSAgICB2YXIgeW91bmdlc3RTaGFkb3dS
b290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB5b3VuZ2VzdFNoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gJzxzaGFkb3cgaWQ9InNoYWRvdyI+PC9zaGFkb3c+JzsKLQotICAgIG9s
ZGVzdFNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbnQnKS5yZXNldFN0eWxlSW5oZXJp
dGFuY2UgPSBmYWxzZTsKLSAgICB5b3VuZ2VyU2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc2hh
ZG93JykucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0gICAgeW91bmdlc3RTaGFkb3dS
b290LmdldEVsZW1lbnRCeUlkKCdzaGFkb3cnKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVl
OwotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibXVsdGlwbGUtc2hhZG93LXJvb3RzIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJn
YigwLCAwLCAwKSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlLXNoYWRvdy1yb290cyIpLmZpcnN0Q2hpbGQp
LmJhY2tncm91bmRDb2xvcicsICcicmdiYSgwLCAwLCAwLCAwKSInKTsKLX0KLQotZnVuY3Rpb24g
dGVzdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhNdWx0aXBsZUluc2VydGlvblBvaW50cygpIHsK
LSAgICBkZWJ1ZygiVGVzdCBjYXNlOiBtdWx0aXBsZSBpbnNlcnRpb24gcG9pbnRzIGluIHRoZSBz
YW1lIHNoYWRvdyBkb20gc3VidHJlZS4uIEVhY2ggcmVzZXQtc3R5bGUtaW5oZXJpdGFuY2Ugc2hv
dWxkIGJlIGNoZWNrZWQuIik7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdtdWx0aXBsZS1pbnNlcnRpb24tcG9pbnRzJyk7Ci0gICAgdmFyIG9sZGVzdFNoYWRvd1Jvb3Qg
PSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIG9sZGVzdFNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gJzxjb250ZW50IGlkPSJjb250ZW50Ij48L2NvbnRlbnQ+JzsKLQotICAgIHZhciB5
b3VuZ2VzdFNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHlv
dW5nZXN0U2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6Zmlyc3QtY2hp
bGQiIGlkPSJjb250ZW50Ij48L2NvbnRlbnQ+PHNoYWRvdyBpZD0ic2hhZG93Ij48L3NoYWRvdz4n
OwotCi0gICAgeW91bmdlc3RTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdjb250ZW50JykucmVz
ZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0gICAgeW91bmdlc3RTaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCdzaGFkb3cnKS5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOwotCi0gICAg
c2hvdWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJtdWx0aXBsZS1pbnNlcnRpb24tcG9pbnRzIikuZmlyc3RDaGlsZCkuY29sb3InLCAnInJnYigy
NTUsIDIzOCwgMjM4KSInKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlLWluc2VydGlvbi1wb2ludHMiKS5maXJz
dENoaWxkKS5iYWNrZ3JvdW5kQ29sb3InLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci0gICAgc2hv
dWxkQmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJt
dWx0aXBsZS1pbnNlcnRpb24tcG9pbnRzIikubGFzdENoaWxkKS5jb2xvcicsICcicmdiKDAsIDAs
IDApIicpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibXVsdGlwbGUtaW5zZXJ0aW9uLXBvaW50cyIpLmxhc3RDaGlsZCkuYmFj
a2dyb3VuZENvbG9yJywgJyJyZ2JhKDAsIDAsIDAsIDApIicpOwotfQotCi1mdW5jdGlvbiBydW5U
ZXN0cygpIHsKLSAgICB0ZXN0Tm9SZXNldFN0eWxlSW5oZXJpdGFuY2UoKTsKLSAgICB0ZXN0UmVz
ZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci0gICAgdGVzdFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhB
dHRyaWJ1dGUoKTsKLSAgICB0ZXN0U2hhZG93UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aEF0dHJp
YnV0ZSgpOwotICAgIHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VEeW5hbWljKCk7Ci0gICAgdGVz
dFJlc2V0U3R5bGVJbmhlcml0YW5jZVdpdGhvdXRDcm9zc2luZ1VwcGVyQm91bmRhcnkoKQotICAg
IHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoTXVsdGlwbGVTaGFkb3dSb290cygpOwotICAg
IHRlc3RSZXNldFN0eWxlSW5oZXJpdGFuY2VXaXRoTXVsdGlwbGVJbnNlcnRpb25Qb2ludHMoKTsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1jYXNlcycpLmlubmVySFRNTCA9ICdE
T05FJzsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4K
LTxkaXYgaWQ9InRlc3QtY2FzZXMiPgotICA8ZGl2IGlkPSJuby1yZXNldC1zdHlsZS1pbmhlcml0
YW5jZSIgY2xhc3M9InJlc2V0VGVzdCI+PHNwYW4+Zmlyc3QtY2hpbGQ8L3NwYW4+PC9kaXY+Ci0g
IDxkaXYgaWQ9InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlIiBjbGFzcz0icmVzZXRUZXN0Ij48c3Bh
bj5maXJzdC1jaGlsZDwvc3Bhbj48L2Rpdj4KLSAgPGRpdiBpZD0icmVzZXQtc3R5bGUtaW5oZXJp
dGFuY2UtZHluYW1pYyIgY2xhc3M9InJlc2V0VGVzdCI+PHNwYW4+Zmlyc3QtY2hpbGQ8L3NwYW4+
PC9kaXY+Ci0gIDxkaXYgaWQ9InJlc2V0LWJ1dC1ub3QtY3Jvc3MtdXBwZXItYm91bmRhcnkiIGNs
YXNzPSJyZXNldFRlc3QiPjxzcGFuPmZpcnN0LWNoaWxkPC9zcGFuPjwvZGl2PgotICA8ZGl2IGlk
PSJtdWx0aXBsZS1zaGFkb3ctcm9vdHMiIGNsYXNzPSJyZXNldFRlc3QiPjxzcGFuPmZpcnN0LWNo
aWxkPC9zcGFuPjwvZGl2PgotICA8ZGl2IGlkPSJtdWx0aXBsZS1pbnNlcnRpb24tcG9pbnRzIiBj
bGFzcz0icmVzZXRUZXN0Ij48c3Bhbj5maXJzdC1jaGlsZDwvc3Bhbj48c3Bhbj5sYXN0LWNoaWxk
PC9zcGFuPjwvZGl2PgotPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXNoYWRvdy1jcmFzaC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1w
b2ludC1zaGFkb3ctY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXNoYWRvdy1jcmFzaC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEgKzAsMCBAQAotUEFTUwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wb2ludC1zaGFkb3ctY3Jhc2guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50
LXNoYWRvdy1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXNoYWRvdy1jcmFzaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDI0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBydW5UZXN0cygpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZGl2KTsKLQotICAgIHNoYWRvdzEgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIHNoYWRvdzEuaW5uZXJIVE1MID0gIjxzdHlsZT5kaXYgeyBjb2xvcjogcmVkOyB9PC9z
dHlsZT48ZGl2PkhFTExPPC9kaXY+IjsKLQotICAgIHNoYWRvdzIgPSBkaXYud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotICAgIHNoYWRvdzIuaW5uZXJIVE1MID0gIjxkaXY+PHNoYWRvdz48L3No
YWRvdz48L2Rpdj4iOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLSAgICBkb2N1bWVu
dC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIjsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0cygpIj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtdmlkZW8tY3Jhc2gtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9p
bnQtdmlkZW8tY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50LXZpZGVvLWNyYXNoLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyICswLDAgQEAKLVBBU1MgdW5sZXNzIGNyYXNoCi0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtdmlkZW8t
Y3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5z
ZXJ0aW9uLXBvaW50LXZpZGVvLWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnQtdmlkZW8tY3Jhc2guaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVl
OwotZnVuY3Rpb24gYm9vbSgpIHsKLSAgICBkaXZOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRpdk5v
ZGUpOwotICAgIGRpdlNoYWRvdzEgPSBkaXZOb2RlLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBkaXZTaGFkb3cyID0gZGl2Tm9kZS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAg
Ci0gICAgdmlkZW9Ob2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKLSAgICBk
aXZTaGFkb3cyLmFwcGVuZENoaWxkKHZpZGVvTm9kZSk7Ci0gICAgCi0gICAgc2hhZG93Tm9kZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIHZpZGVvTm9kZS5hcHBlbmRD
aGlsZChzaGFkb3dOb2RlKTsKLSAgICAKLSAgICB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoJ0hlbGxvJyk7Ci0gICAgZGl2U2hhZG93MS5hcHBlbmRDaGlsZCh0ZXh0KTsKLQotICAgIHRl
c3RQYXNzZWQoInVubGVzcyBjcmFzaCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOyAgICAKLX0KLQot
d2luZG93Lm9ubG9hZCA9IGJvb207Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNlcnRpb24tcG9pbnRzLXdpdGgtc2hhZG93
LWRpc2FibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50cy13aXRoLXNoYWRvdy1kaXNhYmxlZC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnNl
cnRpb24tcG9pbnRzLXdpdGgtc2hhZG93LWRpc2FibGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSArMCwwIEBACi1QQVNTIHVubGVzcyBjcmFzaApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2luc2VydGlvbi1wb2ludHMtd2l0aC1zaGFkb3ctZGlzYWJsZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBv
aW50cy13aXRoLXNoYWRvdy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5zZXJ0aW9uLXBvaW50cy13aXRoLXNoYWRvdy1kaXNh
YmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNoYWRvd0RPTUVuYWJsZWQoZmFsc2UpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzdW1tYXJ5PgotICA8Y29udGVudD48L2NvbnRlbnQ+Ci08L3N1bW1hcnk+Ci08c3VtbWFy
eT4KLSAgPHNoYWRvdz48L3NoYWRvdz4KLTwvc3VtbWFyeT4KLTxkaXY+UEFTUyB1bmxlc3MgY3Jh
c2g8L2Rpdj4KLTwvaGVhZD4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9pbnZhbGlkYXRlLWRpc3RyaWJ1dGlvbi1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnZhbGlkYXRlLWRpc3RyaWJ1dGlvbi1leHBl
Y3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvaW52YWxpZGF0ZS1kaXN0cmlidXRpb24tZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxkaXYgaWQ9
Imhvc3QiPjxwPnlvdW5nZXIgc2hhZG93PC9wPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW52YWxpZGF0ZS1kaXN0cmlidXRpb24u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW52YWxpZGF0
ZS1kaXN0cmlidXRpb24uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2ludmFsaWRhdGUtZGlzdHJpYnV0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJob3N0Ij48
L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxwPm9sZGVzdCBzaGFkb3c8L3A+
IgotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIHZhciBzaGFkb3dSb290MiA9IGhvc3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNoYWRvd1Jvb3QyLmlubmVySFRNTCA9ICI8
cD55b3VuZ2VyIHNoYWRvdzwvcD4iOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3Rz
LWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xh
eW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTIgKzAsMCBAQAotCi1UaGlzIHRlc3RzIHRoYXQgbGF5b3V0IHRlc3RzIGNhbiBhY2Nl
c3Mgc2hhZG93IERPTS4KLQotUEFTUyBzaGFkb3cubm9kZU5hbWUgaXMgIiNkb2N1bWVudC1mcmFn
bWVudCIKLVBBU1MgZXhjZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1Nf
RVJSCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KHApIGlzIG51bGwKLVBBU1Mgc2hhZG93Lm5v
ZGVOYW1lIGlzICIjZG9jdW1lbnQtZnJhZ21lbnQiCi1QQVNTIHNoYWRvdyA9PT0gaW50ZXJuYWxz
LnNoYWRvd1Jvb3QocCkgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlv
dXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93Lmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlvdXQtdGVz
dHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0MiArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGtl
eWdlbiBpZD0ia2V5cyIgLz4KLTxwIGlkPSJwZWFzIiAvPgotPHByZSBpZD0iY29uc29sZSI+Ci1U
aGlzIHRlc3RzIHRoYXQgbGF5b3V0IHRlc3RzIGNhbiBhY2Nlc3Mgc2hhZG93IERPTS4KLQotPC9w
cmU+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAvLyBNYWtlIGFzc2Vy
dGlvbnMgYWJvdXQgYSBidWlsdC1pbiBzaGFkb3cKLSAgICB2YXIga2V5Z2VuID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2tleXMnKTsKLSAgICB2YXIgc2hhZG93ID0gaW50ZXJuYWxzLnNoYWRv
d1Jvb3Qoa2V5Z2VuKTsKLSAgICBzaG91bGRCZSgnc2hhZG93Lm5vZGVOYW1lJywgJyIjZG9jdW1l
bnQtZnJhZ21lbnQiJyk7Ci0KLSAgICAvLyBTaGFkb3cgcm9vdHMgYXJlbid0IGVsZW1lbnRzLCBz
byBhY2Nlc3NpbmcgdGhlaXIgc2hhZG93IHNob3VsZAotICAgIC8vIHJhaXNlCi0gICAgdmFyIGV4
Y2VwdGlvbkNvZGU7Ci0gICAgdHJ5IHsKLSAgICAgICAgaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoc2hh
ZG93KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGV4Y2VwdGlvbkNvZGUgPSBlLmNvZGU7
Ci0gICAgfQotICAgIHNob3VsZEJlKCdleGNlcHRpb25Db2RlJywgJ0RPTUV4Y2VwdGlvbi5JTlZB
TElEX0FDQ0VTU19FUlInKTsKLQotICAgIC8vIE9yZGluYXJ5IGVsZW1lbnQgc2hvdWxkIG5vdCBo
YXZlIHNoYWRvdwotICAgIHZhciBwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BlYXMnKTsK
LSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCknLCAnbnVsbCcpOwotCi0gICAg
Ly8gQ2FuIGJsZXNzIG9yZGluYXJ5IGVsZW1lbnRzIHdpdGggc2hhZG93cwotICAgIHNoYWRvdyA9
IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHApOwotICAgIHNob3VsZEJlKCdzaGFkb3cubm9k
ZU5hbWUnLCAnIiNkb2N1bWVudC1mcmFnbWVudCInKTsKLSAgICBzaG91bGRCZSgnc2hhZG93ID09
PSBpbnRlcm5hbHMuc2hhZG93Um9vdChwKScsICd0cnVlJyk7Ci19Ci08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9saW5rLWlu
LXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvbGluay1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9saW5rLWluLXNoYWRvdy10cmVl
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICswLDAgQEAKLVBBU1MgY29tcHV0
ZWRCYWNrZ3JvdW5kQ29sb3Ioc3BhbkluU2hhZG93KSBpcyAicmdiYSgwLCAwLCAwLCAwKSIKLVBB
U1MgY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3Ioc3BhbkluSG9zdENoaWxkcmVuKSBpcyAicmdiYSgw
LCAwLCAwLCAwKSIKLVBBU1MgY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3Ioc3Bhbk91dHNpZGVPZlNo
YWRvdykgaXMgInJnYmEoMCwgMCwgMCwgMCkiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLXRlaGVwZXJvCi10ZWhlcGVybwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2xpbmstaW4tc2hhZG93LXRyZWUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGluay1pbi1zaGFkb3ctdHJlZS5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGluay1pbi1z
aGFkb3ctdHJlZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJjb250YWluZXIiPjxzcGFu
IGlkPSJpbi1ob3N0LWNoaWxkcmVuIiBjbGFzcz0ia290b3JpIiBocmVmPSIvIj50ZWhlcGVybzwv
c3Bhbj48L2Rpdj4KLTxkaXY+PHNwYW4gaWQ9Im91dHNpZGUtb2Ytc2hhZG93IiBjbGFzcz0ia290
b3JpIiBocmVmPSIvIj50ZWhlcGVybzwvc3Bhbj48L2Rpdj4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rp
b24gY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3IoZWxlbSkgewotICAgIHZhciBzdHlsZSA9IGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgJycpOwotICAgIHJldHVybiBz
dHlsZS5iYWNrZ3JvdW5kQ29sb3I7Ci19Ci0KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci0KLXZhciBzaGFkb3dSb290ID0gY29udGFpbmVyLndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdsaW5rJyk7Ci1saW5rLnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTsKLWxp
bmsuc2V0QXR0cmlidXRlKCdocmVmJywgJ3Jlc291cmNlcy9saW5rLWluLXNoYWRvdy1zdHlsZS5j
c3MnKTsKLQotdmFyIHNwYW5JblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4n
KTsKLXNwYW5JblNoYWRvdy5pbm5lckhUTUwgPSAndGVoZXBlcm8nOwotc3BhbkluU2hhZG93LmNs
YXNzTmFtZSA9ICdrb3RvcmknOwotCi1zaGFkb3dSb290LmFwcGVuZENoaWxkKGxpbmspOwotc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuSW5TaGFkb3cpOwotc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50JykpOwotCi12YXIgc3BhbkluSG9zdENo
aWxkcmVuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luLWhvc3QtY2hpbGRyZW4nKTsKLXZh
ciBzcGFuT3V0c2lkZU9mU2hhZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHNpZGUt
b2Ytc2hhZG93Jyk7Ci0KLXNob3VsZEJlKCdjb21wdXRlZEJhY2tncm91bmRDb2xvcihzcGFuSW5T
aGFkb3cpJywgJyJyZ2JhKDAsIDAsIDAsIDApIicpOwotc2hvdWxkQmUoJ2NvbXB1dGVkQmFja2dy
b3VuZENvbG9yKHNwYW5Jbkhvc3RDaGlsZHJlbiknLCAnInJnYmEoMCwgMCwgMCwgMCkiJyk7Ci1z
aG91bGRCZSgnY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3Ioc3Bhbk91dHNpZGVPZlNoYWRvdyknLCAn
InJnYmEoMCwgMCwgMCwgMCkiJyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1hZG9wdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtYWRv
cHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1hZG9wdC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBtdWx0aXBsZSBzaGFkb3cg
dHJlZXMgY2FuIGJlIG1vdmVkIGludG8gYW5vdGhlciBkb2N1bWVudC4KLQotUEFTUyBkb2N1bWVu
dCBpcyBzcjEub3duZXJEb2N1bWVudAotUEFTUyBzcjEub3duZXJEb2N1bWVudCBpcyBzcjIub3du
ZXJEb2N1bWVudAotUEFTUyBzcjEub3duZXJEb2N1bWVudCBpcyBpZnJhbWVEb2MKLVBBU1Mgc3Iy
Lm93bmVyRG9jdW1lbnQgaXMgaWZyYW1lRG9jCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L211bHRpcGxlLXNoYWRvd3Jvb3QtYWRvcHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1hZG9wdC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93
cm9vdC1hZG9wdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3Qg
Y2hlY2tzIG11bHRpcGxlIHNoYWRvdyB0cmVlcyBjYW4gYmUgbW92ZWQgaW50byBhbm90aGVyIGRv
Y3VtZW50LjwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08aWZyYW1lIGlkPSJpZnJh
bWUiPjwvaWZyYW1lPgotCi08c2NyaXB0PgotZnVuY3Rpb24gZG9UZXN0KCkgewotICAgIHZhciB0
YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBzcjEgPSB0YXJnZXQu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMiA9IHRhcmdldC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0KLSAgICBzaG91bGRCZSgnZG9jdW1lbnQnLCAnc3IxLm93bmVyRG9jdW1l
bnQnKTsKLSAgICBzaG91bGRCZSgnc3IxLm93bmVyRG9jdW1lbnQnLCAnc3IyLm93bmVyRG9jdW1l
bnQnKTsKLQotICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1l
Jyk7Ci0gICAgaWZyYW1lRG9jID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudDsKLSAgICBpZnJhbWVE
b2MuYm9keS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgc2hvdWxkQmUoJ3NyMS5vd25lckRv
Y3VtZW50JywgJ2lmcmFtZURvYycpOwotICAgIHNob3VsZEJlKCdzcjIub3duZXJEb2N1bWVudCcs
ICdpZnJhbWVEb2MnKTsKLX0KLQotZG9UZXN0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE2ICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmUgdGhhdCB0aGUgbXVsdGlwbGUgc2hhZG93IHJv
b3QgaXMgYXZhaWxhYmxlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBp
bnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIGlzIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QoZGl2KSBpcyBzaGFkb3dSb290MQotUEFTUyBpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNo
YWRvd1Jvb3QxKSBpcyBudWxsCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KGRpdikgaXMgc2hh
ZG93Um9vdDIKLVBBU1MgaW50ZXJuYWxzLm9sZGVyU2hhZG93Um9vdChzaGFkb3dSb290MikgaXMg
c2hhZG93Um9vdDEKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBzaGFkb3dSb290
MwotUEFTUyBpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QzKSBpcyBzaGFkb3dS
b290MgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJl
bmRlcmluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRv
d3Jvb3QtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCArMCww
IEBACi10ZXN0RG91YmxlU2hhZG93U3VidHJlZXMKLVBBU1MKLXRlc3RUcmlwbGVTaGFkb3dTdWJ0
cmVlcwotUEFTUwotdGVzdFNoYWRvd1N1YnRyZWVzV2l0aENvbnRlbnQKLVBBU1MKLXRlc3RTaGFk
b3dTdWJ0cmVlc1dpdGhDb250ZW50SW5PbGRlclN1YnRyZWUKLVBBU1MKLXRlc3RTaGFkb3dTdWJ0
cmVlc1dpdGhEeW5hbWljQ3JlYXRpb24KLVBBU1MKLXRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhEeW5h
bWljQ3JlYXRpb25PdXRPZlRyZWUKLVBBU1MKLVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LXJlbmRlcmluZy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFk
b3dyb290LXJlbmRlcmluZy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1yZW5kZXJpbmcuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJl
bmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0K
LS5zcGFuIHsKLSAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0g
ICAgYm9yZGVyOiBzb2xpZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3NoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIHRlc3RGdW5j
cyA9IFtdOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiB0ZXN0RG91YmxlU2hhZG93U3VidHJl
ZXMoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29u
dGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPk1JRDwv
c3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgnTElHSFQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JF
OiBTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoJ01JRDogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLSAgICBzcjEuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5PVCBCRSBSRU5ERVJF
RCcpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAg
ICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3Iy
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotICAgIHNyMi5hcHBlbmRD
aGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIGNh
bGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiB0ZXN0VHJpcGxlU2hh
ZG93U3VidHJlZXMoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxz
cGFuPk1JRDwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnTElHSFQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgnQkVGT1JFOiBTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotICAgIHNyMS5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRDogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLSAg
ICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5PVCBC
RSBSRU5ERVJFRCcpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkU6IFNI
T1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgnTUlEOiBTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotICAgIHNyMi5hcHBlbmRD
aGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSOiBTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykp
OwotCi0gICAgdmFyIHNyMyA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNy
My5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRScpKTsKLSAgICBzcjMuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0gICAgc3IzLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVInKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgY2FsbElm
RG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHRlc3RTaGFkb3dTdWJ0cmVl
c1dpdGhDb250ZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48
c3Bhbj5MSUdIVDwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJv
b3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElHSFQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnQkVGT1JFOiBTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotICAgIHNyMS5hcHBlbmRD
aGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRDogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsK
LSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5P
VCBCRSBSRU5ERVJFRCcpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUn
KSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywg
J0ZBTExCQUNLJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FG
VEVSJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXIn
KS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVu
Y3MucHVzaChmdW5jdGlvbiB0ZXN0U2hhZG93U3VidHJlZXNXaXRoQ29udGVudEluT2xkZXJTdWJ0
cmVlKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNv
bnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5MSUdI
VCAxPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdMSUdIVCAxJywgJ2MxJykpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3Jl
YXRlU3BhbldpdGhUZXh0KCdMSUdIVCAyJywgJ2MyJykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0JFRk9SRTogU0hPVUxEIE5PVCBCRSBSRU5ERVJFRCcpKTsKLSAgICBzcjEuYXBw
ZW5kQ2hpbGQoY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5jMicsICdGQUxMQkFDSycpKTsKLSAg
ICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUjogU0hPVUxEIE5PVCBC
RSBSRU5ERVJFRCcpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7
Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCcuYzEnLCAnRkFM
TEJBQ0snKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIn
KSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFw
cGVuZENoaWxkKHJvb3QpOwotCi0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5w
dXNoKGZ1bmN0aW9uIHRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhEeW5hbWljQ3JlYXRpb24oY2FsbElm
RG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJyku
aW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8L3NwYW4+
PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFy
IHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElHSFQgMScsICdjMScpKTsKLSAgICByb290LmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElHSFQgMicsICdjMicpKTsKLQotICAgIHZhciBz
cjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkU6IFNIT1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7Ci0g
ICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExC
QUNLIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVI6
IFNIT1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgc2V0VGltZW91
dCgoZnVuY3Rpb24oY2FsbElmRG9uZSwgcm9vdCkgeyByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICAgICAgc3Iy
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFJykpOwotICAgICAgICBzcjIu
YXBwZW5kQ2hpbGQoY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJ3NwYW4nLCAnRkFMTEJBQ0sgMicp
KTsKLSAgICAgICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVInKSk7
Ci0KLSAgICAgICAgY2FsbElmRG9uZSgpOwotICAgIH07fSkoY2FsbElmRG9uZSwgcm9vdCksIDAp
OwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHRlc3RTaGFkb3dTdWJ0cmVlc1dpdGhE
eW5hbWljQ3JlYXRpb25PdXRPZlRyZWUoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+QkVG
T1JFPC9zcGFuPjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4+TElHSFQgMjwvc3Bhbj48c3Bhbj5B
RlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTElH
SFQgMScsICdjMScpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgn
TElHSFQgMicsICdjMicpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkU6
IFNIT1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZUNv
bnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVI6IFNIT1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7
Ci0KLSAgICBzZXRUaW1lb3V0KChmdW5jdGlvbihjYWxsSWZEb25lLCByb290KSB7IHJldHVybiBm
dW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotICAgICAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUn
KSk7Ci0gICAgICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3Bh
bicsICdGQUxMQkFDSyAyJykpOwotICAgICAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCdBRlRFUicpKTsKLQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0
dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgICAgIGNhbGxJZkRvbmUo
KTsKLSAgICB9O30pKGNhbGxJZkRvbmUsIHJvb3QpLCAwKTsKLX0pOwotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9ImRvVGVzdCh0ZXN0RnVuY3MpIj4KLQotPGRpdiBpZD0iYWN0dWFs
LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08ZGl2IGlkPSJleHBlY3QtY29u
dGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
bXVsdGlwbGUtc2hhZG93cm9vdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGVuc3VyZSB0aGF0IHRoZSBtdWx0aXBsZSBzaGFkb3cgcm9vdCBpcyBhdmFpbGFibGUuIik7Ci0K
LXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLXNob3VsZEJlKCJpbnRl
cm5hbHMuc2hhZG93Um9vdChkaXYpIiwgIm51bGwiKTsKLXZhciBzaGFkb3dSb290MSA9IGRpdi53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaG91bGRCZSgiaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
ZGl2KSIsICJzaGFkb3dSb290MSIpOwotc2hvdWxkQmUoImludGVybmFscy5vbGRlclNoYWRvd1Jv
b3Qoc2hhZG93Um9vdDEpIiwgIm51bGwiKTsKLQotdmFyIHNoYWRvd1Jvb3QyID0gZGl2LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKQotc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGRpdiki
LCAic2hhZG93Um9vdDIiKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNo
YWRvd1Jvb3QyKSIsICJzaGFkb3dSb290MSIpOwotCi12YXIgc2hhZG93Um9vdDMgPSBkaXYud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGRp
dikiLCAic2hhZG93Um9vdDMiKTsKLXNob3VsZEJlKCJpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290
KHNoYWRvd1Jvb3QzKSIsICJzaGFkb3dSb290MiIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3RzLXdpdGgtZW1wdHktc3R5bGVz
LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L211bHRpcGxlLXNoYWRvd3Jvb3RzLXdpdGgtZW1wdHktc3R5bGVzLWV4cGVjdGVkLmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1z
aGFkb3dyb290cy13aXRoLWVtcHR5LXN0eWxlcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGRpdiBp
ZD0ib3V0cHV0Ij4KLTxkaXYgaWQ9ImYiPjxkaXY+SGVsbG8gZnJvbSBmb28uPC9kaXY+PC9kaXY+
Ci08ZGl2IGlkPSJiIj48ZGl2PkhlbGxvIGZyb20gYmFyLjwvZGl2PjxkaXY+SGVsbG8gZnJvbSB6
b3QuPC9kaXY+PC9kaXY+Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290cy13aXRoLWVtcHR5LXN0eWxl
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBs
ZS1zaGFkb3dyb290cy13aXRoLWVtcHR5LXN0eWxlcy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdHMtd2l0aC1l
bXB0eS1zdHlsZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLQotZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0
aW9uKCkgewotICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0
Iik7Ci0gICAgLy8gMS4gbWFrZSBhbiBlbGVtZW50IGFuZCBpbnNlcnQgaXQgaW50byB0aGUgZG9j
dW1lbnQuIAotICAgIC8vIDIuIGNyZWF0ZSBhIHNoYWRvdyByb290IHRoYXQgY29udGFpbnMgYSBz
dHlsZSBlbGVtZW50LgotICAgIHZhciBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
Ci0gICAgb3V0cHV0LmFwcGVuZENoaWxkKGYpOwotICAgIHZhciBmcyA9IGYud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotICAgIGZzLmlubmVySFRNTCA9ICI8c3R5bGU+PC9zdHlsZT48ZGl2Pkhl
bGxvIGZyb20gZm9vLjwvZGl2PiI7Ci0gICAgLy8KLSAgICAvLyAzLiBtYWtlIGFub3RoZXIgZWxl
bWVudC4KLSAgICAvLyA0LiBjcmVhdGUgYSBzaGFkb3cgcm9vdCBvbiB0aGlzIGVsZW1lbnQgdGhh
dCBjb250YWlucyBhIHN0eWxlIGVsZW1lbnQuCi0gICAgLy8gNS4gY3JlYXRlIGFub3RoZXIgc2hh
ZG93IHJvb3Qgb24gdGhlIGVsZW1lbnQuCi0gICAgLy8gNi4gaW5zZXJ0IHRoZSBlbGVtZW50IGlu
dG8gdGhlIGRvY3VtZW50LgotICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Ci0gICAgdmFyIGJzMCA9IGIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIGJzMC5p
bm5lckhUTUwgPSAiPHN0eWxlPjwvc3R5bGU+PGRpdj5IZWxsbyBmcm9tIGJhci48L2Rpdj4iOwot
ICAgIHZhciBiczEgPSBiLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBiczEuaW5uZXJI
VE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+PGRpdj5IZWxsbyBmcm9tIHpvdC48L2Rpdj4iOwotICAg
IC8vIE5PVEU6IG11c3QgYWRkIHRvIGRvbSBhZnRlciBhZGRpbmcgc2hhZG93Um9vdCB0byBvYnNl
cnZlIHByb2JsZW0uCi0gICAgb3V0cHV0LmFwcGVuZENoaWxkKGIpOwotCi0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0pOwotPC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvbmVzdGVkLXJlcHJvamVjdGlvbi1pbmNvbnNpc3RlbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9uZXN0ZWQtcmVwcm9qZWN0aW9uLWlu
Y29uc2lzdGVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9uZXN0ZWQtcmVwcm9qZWN0aW9uLWluY29uc2lzdGVudC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotV2hlbiB3ZSBtb2RpZnkgaG9z
dCBjaGlsZHJlbiBhbmQgZ2V0IGRpc3RyaWJ1dGVkIG5vZGVzIGluIG5lc3RlZCBTaGFkb3dET00s
IGRpc3RyaWJ1dGlvbiBzaG91bGQgb2NjdXIgZnJvbSB0aGUgaG9zdC4KLQotQWRkcyBhIGRpdiB0
byBTaGFkb3dSb290LgotUEFTUyBjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5sZW5ndGgg
aXMgMgotUEFTUyBjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDApIGlzIGRpdjEK
LVBBU1MgY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkuaXRlbSgxKSBpcyBhZGRlZERpdgot
Ci1BZGRzIGEgZGl2IGFzIGZhbGxiYWNrIGNvbnRlbnQKLVBBU1MgY29udGVudC5nZXREaXN0cmli
dXRlZE5vZGVzKCkubGVuZ3RoIGlzIDMKLVBBU1MgY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVz
KCkuaXRlbSgwKSBpcyBkaXYxCi1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0
ZW0oMSkgaXMgYW5vdGhlckFkZGVkRGl2Ci1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2Rl
cygpLml0ZW0oMikgaXMgYWRkZWREaXYKLQotUmVtb3ZlcyB0aGUgZmlyc3QgYWRkZWQgZGl2Ci1Q
QVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLmxlbmd0aCBpcyAyCi1QQVNTIGNvbnRl
bnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0ZW0oMCkgaXMgZGl2MQotUEFTUyBjb250ZW50Lmdl
dERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDEpIGlzIGFub3RoZXJBZGRlZERpdgotCi1SZW1vdmVz
IHRoZSBzZWNvbmQgYWRkZWQgZGl2Ci1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2Rlcygp
Lmxlbmd0aCBpcyAxCi1QQVNTIGNvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0ZW0oMCkg
aXMgZGl2MQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25lc3RlZC1yZXByb2plY3Rp
b24taW5jb25zaXN0ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L25lc3RlZC1yZXByb2plY3Rpb24taW5jb25zaXN0ZW50Lmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9uZXN0ZWQtcmVwcm9qZWN0aW9u
LWluY29uc2lzdGVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDczICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+PGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB3ZSBtb2RpZnkgaG9zdCBjaGls
ZHJlbiBhbmQgZ2V0IGRpc3RyaWJ1dGVkIG5vZGVzIGluIG5lc3RlZCBTaGFkb3dET00sIGRpc3Ry
aWJ1dGlvbiBzaG91bGQgb2NjdXIgZnJvbSB0aGUgaG9zdC48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRh
aW5lciI+Ci0gICAgPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPC9kaXY+Ci08cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgc2hh
ZG93Um9vdDExID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDEx
LmlubmVySFRNTCA9ICc8ZGl2PjwvZGl2PjxzaGFkb3c+PC9zaGFkb3c+JzsKLXZhciBkaXYxID0g
c2hhZG93Um9vdDExLmZpcnN0Q2hpbGQ7Ci12YXIgc2hhZG93MSA9IHNoYWRvd1Jvb3QxMS5sYXN0
Q2hpbGQ7Ci0KLXZhciBzaGFkb3dSb290MTIgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci1zaGFkb3dSb290MTIuaW5uZXJIVE1MID0gJzxkaXY+PHNoYWRvdz48L3NoYWRvdz48L2Rp
dj4nOwotdmFyIGhvc3QyID0gc2hhZG93Um9vdDEyLmZpcnN0Q2hpbGQ7Ci0KLXZhciBzaGFkb3dS
b290MjEgPSBob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MjEuaW5u
ZXJIVE1MID0gJzxjb250ZW50PjwvY29udGVudD4nOwotCi12YXIgc2hhZG93Um9vdDIyID0gaG9z
dDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIyLmlubmVySFRNTCA9ICc8
ZGl2PjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+JzsKLXZhciBob3N0MyA9IHNoYWRvd1Jvb3QyMi5m
aXJzdENoaWxkOwotCi12YXIgc2hhZG93Um9vdDMxID0gaG9zdDMud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotc2hhZG93Um9vdDMxLmlubmVySFRNTCA9ICc8Y29udGVudD48L2NvbnRlbnQ+JzsK
LQotdmFyIGNvbnRlbnQgPSBzaGFkb3dSb290MzEuZmlyc3RDaGlsZDsKLQotc2V0VGltZW91dChm
dW5jdGlvbigpIHsKLSAgICBkZWJ1ZygnQWRkcyBhIGRpdiB0byBTaGFkb3dSb290LicpOwotICAg
IGFkZGVkRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgc2hhZG93Um9v
dDExLmFwcGVuZENoaWxkKGFkZGVkRGl2KTsKLSAgICBzaG91bGRCZSgnY29udGVudC5nZXREaXN0
cmlidXRlZE5vZGVzKCkubGVuZ3RoJywgJzInKTsKLSAgICBzaG91bGRCZSgnY29udGVudC5nZXRE
aXN0cmlidXRlZE5vZGVzKCkuaXRlbSgwKScsICdkaXYxJyk7Ci0gICAgc2hvdWxkQmUoJ2NvbnRl
bnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0ZW0oMSknLCAnYWRkZWREaXYnKTsKLSAgICBkZWJ1
ZygnJyk7Ci0KLQotICAgIGRlYnVnKCdBZGRzIGEgZGl2IGFzIGZhbGxiYWNrIGNvbnRlbnQnKTsK
LSAgICBhbm90aGVyQWRkZWREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICBzaGFkb3cxLmFwcGVuZENoaWxkKGFub3RoZXJBZGRlZERpdik7Ci0gICAgc2hvdWxkQmUoJ2Nv
bnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLmxlbmd0aCcsICczJyk7Ci0gICAgc2hvdWxkQmUo
J2NvbnRlbnQuZ2V0RGlzdHJpYnV0ZWROb2RlcygpLml0ZW0oMCknLCAnZGl2MScpOwotICAgIHNo
b3VsZEJlKCdjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDEpJywgJ2Fub3RoZXJB
ZGRlZERpdicpOwotICAgIHNob3VsZEJlKCdjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5p
dGVtKDIpJywgJ2FkZGVkRGl2Jyk7Ci0gICAgZGVidWcoJycpOwotCi0gICAgZGVidWcoJ1JlbW92
ZXMgdGhlIGZpcnN0IGFkZGVkIGRpdicpOwotICAgIGFkZGVkRGl2LnJlbW92ZSgpOwotICAgIHNo
b3VsZEJlKCdjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5sZW5ndGgnLCAnMicpOwotICAg
IHNob3VsZEJlKCdjb250ZW50LmdldERpc3RyaWJ1dGVkTm9kZXMoKS5pdGVtKDApJywgJ2RpdjEn
KTsKLSAgICBzaG91bGRCZSgnY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkuaXRlbSgxKScs
ICdhbm90aGVyQWRkZWREaXYnKTsKLSAgICBkZWJ1ZygnJyk7Ci0KLSAgICBkZWJ1ZygnUmVtb3Zl
cyB0aGUgc2Vjb25kIGFkZGVkIGRpdicpOwotICAgIGFub3RoZXJBZGRlZERpdi5yZW1vdmUoKTsK
LSAgICBzaG91bGRCZSgnY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkubGVuZ3RoJywgJzEn
KTsKLSAgICBzaG91bGRCZSgnY29udGVudC5nZXREaXN0cmlidXRlZE5vZGVzKCkuaXRlbSgwKScs
ICdkaXYxJyk7Ci0gICAgZGVidWcoJycpOwotCi0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICIi
OwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT48L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tcmVuZGVyZXJzLWZvci1s
aWdodC1jaGlsZHJlbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L25vLXJlbmRlcmVycy1mb3ItbGlnaHQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tcmVu
ZGVyZXJzLWZvci1saWdodC1jaGlsZHJlbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMCwwIEBACi1DaGlsZHJlbiBvZiBhbiBlbGVtZW50IGFyZSBuZXZlciByZW5kZXJlZCBp
cyBpdCBoYXMgYSBzaGFkb3cgRE9NIHN1YnRyZWUuCi1TaG91bGQgbm90IHNlZSB0aGUgd29yZCBG
QUlMIGJlbG93LgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tcmVuZGVy
ZXJzLWZvci1saWdodC1jaGlsZHJlbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9uby1yZW5kZXJlcnMtZm9yLWxpZ2h0LWNoaWxkcmVuLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9uby1yZW5kZXJlcnMt
Zm9yLWxpZ2h0LWNoaWxkcmVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjAgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBmdW5jdGlvbigpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2tleWdl
bicpWzBdLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdGQUlMJykpOwotfSwg
ZmFsc2UpOwotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotQ2hpbGRyZW4gb2YgYW4gZWxl
bWVudCBhcmUgbmV2ZXIgcmVuZGVyZWQgaXMgaXQgaGFzIGEgc2hhZG93IERPTSBzdWJ0cmVlLjxi
cj4KLVNob3VsZCBub3Qgc2VlIHRoZSB3b3JkIEZBSUwgYmVsb3cuPGJyPgotPGtleWdlbj48L2tl
eWdlbj4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm8tc3R5bGUtc2hhcmluZy13aXRoLWRpc3Ry
aWJ1dGVkLW5vZGVzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L25vLXN0eWxlLXNoYXJpbmctd2l0aC1kaXN0cmlidXRlZC1ub2Rlcy1leHBl
Y3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvbm8tc3R5bGUtc2hhcmluZy13aXRoLWRpc3RyaWJ1dGVkLW5vZGVzLWV4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHN0eWxlPgotLmNvbnRhaW5lciB7Ci0gICAgYm9yZGVyOjFweCBzb2xpZCBibGFj
azsKLX0KLS5jb250YWluZXI+Lm51bWJlciB7Ci0gICAgY29sb3I6cmVkOwotfQotLmNvbnRhaW5l
cj4ubGV0dGVycyB7Ci0gICAgY29sb3I6Ymx1ZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxkaXYgaWQ9InRlc3QxIj4KLSAgPGRpdiBjbGFzcz0ibnVtYmVyIj4xPC9kaXY+Ci0gIDxk
aXYgY2xhc3M9ImxldHRlcnMiPlFVWDwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgaWQ9InRlc3QyIj4K
LSAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNzPSJudW1iZXIiPjxkaXYg
Y2xhc3M9Im51bWJlciI+MjwvZGl2PjwvZGl2PgotICAgIDxkaXYgY2xhc3M9ImxldHRlcnMiPjxk
aXYgY2xhc3M9ImxldHRlcnMiPkZPTzwvZGl2PjwvZGl2PgotICA8L2Rpdj4KLTwvZGl2PgotCi08
ZGl2IGlkPSJ0ZXN0MyI+Ci0gIDxkaXYgY2xhc3M9Im51bWJlciI+MzwvZGl2PgotICA8ZGl2IGNs
YXNzPSJsZXR0ZXJzIj5CQVI8L2Rpdj4KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vLXN0eWxlLXNoYXJpbmctd2l0aC1kaXN0cmli
dXRlZC1ub2Rlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9uby1zdHlsZS1zaGFyaW5nLXdpdGgtZGlzdHJpYnV0ZWQtbm9kZXMuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vLXN0eWxlLXNoYXJpbmct
d2l0aC1kaXN0cmlidXRlZC1ub2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAg
QEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBy
dW5UZXN0KCkgewotICB2YXIgc2hhZG93ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Rlc3Qy
Jykud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCd0ZW1wbGF0ZScpOwotICBzaGFkb3cuYXBwZW5kQ2hpbGQodGVtcGxhdGUu
Y29udGVudCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTx0ZW1wbGF0ZT4KLSAgPHN0eWxlPgotICAgIC5jb250YWluZXIgewotICAgICAgYm9yZGVy
OjFweCBzb2xpZCBibGFjazsKLSAgICB9Ci0gICAgLmNvbnRhaW5lcj4ubnVtYmVyIHsKLSAgICAg
IGNvbG9yOnJlZDsKLSAgICB9Ci0gICAgLmNvbnRhaW5lcj4ubGV0dGVycyB7Ci0gICAgICBjb2xv
cjpibHVlOwotICAgIH0KLSAgPC9zdHlsZT4KLSAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KLSAg
ICA8ZGl2IGNsYXNzPSJudW1iZXIiPjxjb250ZW50IHNlbGVjdD0iLm51bWJlciI+PC9jb250ZW50
PjwvZGl2PgotICAgIDxkaXYgY2xhc3M9ImxldHRlcnMiPjxjb250ZW50IHNlbGVjdD0iLmxldHRl
cnMiPjwvY29udGVudD48L2Rpdj4KLSAgPC9kaXY+Ci08L3RlbXBsYXRlPgotCi08ZGl2IGlkPSJ0
ZXN0MSI+Ci0gIDxkaXYgY2xhc3M9Im51bWJlciI+MTwvZGl2PgotICA8ZGl2IGNsYXNzPSJsZXR0
ZXJzIj5RVVg8L2Rpdj4KLTwvZGl2PgotCi08ZGl2IGlkPSJ0ZXN0MiI+Ci0gIDxkaXYgY2xhc3M9
Im51bWJlciI+MjwvZGl2PgotICA8ZGl2IGNsYXNzPSJsZXR0ZXJzIj5GT088L2Rpdj4KLTwvZGl2
PgotCi08ZGl2IGlkPSJ0ZXN0MyI+Ci0gIDxkaXYgY2xhc3M9Im51bWJlciI+MzwvZGl2PgotICA8
ZGl2IGNsYXNzPSJsZXR0ZXJzIj5CQVI8L2Rpdj4KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGV0eXBlLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbm9kZXR5cGUtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
bm9kZXR5cGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLQot
VGhpcyB0ZXN0cyB0aGUgc2hhZG93IGhvc3QncyBhbmQgc2hhZG93IHJvb3QncyBub2RlVHlwZS4K
LVBBU1Mga2V5Z2VuLm5vZGVUeXBlIGlzIE5vZGUuRUxFTUVOVF9OT0RFCi1QQVNTIHNoYWRvdy5u
b2RlVHlwZSBpcyBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUKLVBBU1Mgc2hhZG93Q2hpbGQg
aXMgbm9uLW51bGwuCi1QQVNTIHNoYWRvd0NoaWxkLm5vZGVUeXBlICE9IE5vZGUuRE9DVU1FTlRf
RlJBR01FTlRfTk9ERSBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGV0
eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L25vZGV0
eXBlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9ub2RldHlwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08a2V5Z2VuIGlkPSJr
ZXlzIiAvPgotPHByZSBpZD0iY29uc29sZSI+Ci1UaGlzIHRlc3RzIHRoZSBzaGFkb3cgaG9zdCdz
IGFuZCBzaGFkb3cgcm9vdCdzIG5vZGVUeXBlLgotPC9wcmU+Ci08c2NyaXB0PgotICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgCi0gICAgICAgIHZhciBrZXlnZW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2V5
cycpOwotICAgICAgICB2YXIgc2hhZG93ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoa2V5Z2VuKTsK
LSAgICAgICAgdmFyIHNoYWRvd0NoaWxkID0gc2hhZG93LmZpcnN0Q2hpbGQ7Ci0gICAgICAgIHNo
b3VsZEJlKCdrZXlnZW4ubm9kZVR5cGUnLCAnTm9kZS5FTEVNRU5UX05PREUnKTsKLSAgICAgICAg
c2hvdWxkQmUoJ3NoYWRvdy5ub2RlVHlwZScsICdOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUn
KTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCdzaGFkb3dDaGlsZCcpOwotICAgICAgICBzaG91
bGRCZVRydWUoJ3NoYWRvd0NoaWxkLm5vZGVUeXBlICE9IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRf
Tk9ERScpOwotICAgIH0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29mZnNldC1wYXJlbnQtZG9lcy1ub3QtbGVhay11YS1z
aGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9vZmZzZXQtcGFyZW50LWRvZXMtbm90LWxlYWstdWEtc2hhZG93LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29mZnNldC1w
YXJlbnQtZG9lcy1ub3QtbGVhay11YS1zaGFkb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEzICswLDAgQEAKLW9mZnNldFBhcmVudCBzaG91bGQgbm90IGxlYWsgbm9kZXMgaW4g
dXNlciBhZ2VudCBTaGFkb3cgRE9NLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBjaGlsZC5vZmZzZXRQYXJlbnQgaXMgc2hhZG93LnBvc2l0aW9uZWRFbGVtZW50Ci1QQVNT
IGNoaWxkLm9mZnNldFBhcmVudCBpcyBjb250YWluZXIKLVBBU1MgY2hpbGQub2Zmc2V0UGFyZW50
IGlzIG51bGwKLVBBU1MgY2hpbGQub2Zmc2V0UGFyZW50IGlzIGNvbnRhaW5lcgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9vZmZzZXQtcGFyZW50LWRvZXMtbm90LWxlYWstdWEtc2hhZG93
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29mZnNldC1w
YXJlbnQtZG9lcy1ub3QtbGVhay11YS1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29mZnNldC1wYXJlbnQtZG9lcy1ub3QtbGVhay11
YS1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPGJvZHk+Ci08ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJwb3NpdGlvbjogcmVs
YXRpdmU7Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbignb2Zmc2V0UGFyZW50IHNob3Vs
ZCBub3QgbGVhayBub2RlcyBpbiB1c2VyIGFnZW50IFNoYWRvdyBET00uJyk7Ci0KLWlmICghd2lu
ZG93LmludGVybmFscykKLSAgICBmYWlsKCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVy
bmFscyB0byBtYW5pcHVsYXRlIHVzZXIgYWdlbnQgU2hhZG93IERPTS4nKTsKLQotZnVuY3Rpb24g
Y29uZmlndXJlU2hhZG93Um9vdChzaGFkb3cpIHsKLSAgICBzaGFkb3cuaW5uZXJIVE1MID0KLSAg
ICAgICAgJzxkaXYgaWQ9IngiIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij48Y29udGVudD48
L2NvbnRlbnQ+PC9kaXY+JzsKLSAgICBzaGFkb3cucG9zaXRpb25lZEVsZW1lbnQgPSBzaGFkb3cu
cXVlcnlTZWxlY3RvcignI3gnKTsKLX0KLQotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyNjb250YWluZXInKTsKLQotLy8gVGVzdCB0aGF0IG9mZnNldFBhcmVudCB3b3Jr
cyBpbiBhdXRob3IgU2hhZG93IERPTQotdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLWNvbnRhaW5lci5hcHBlbmRDaGlsZChob3N0KTsKLXZhciBjaGlsZCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotaG9zdC5hcHBlbmRDaGlsZChjaGlsZCk7Ci12YXIg
c2hhZG93ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1jb25maWd1cmVTaGFkb3dS
b290KHNoYWRvdyk7Ci1zaG91bGRCZSgnY2hpbGQub2Zmc2V0UGFyZW50JywgJ3NoYWRvdy5wb3Np
dGlvbmVkRWxlbWVudCcpOwotCi0vLyBUZXN0IHRoYXQgb2Zmc2V0UGFyZW50IHdvcmtzICd0aHJv
dWdoJyBTaGFkb3cgRE9NIHdoZW4gdGhlcmUgaXMgbm8KLS8vIHBvc2l0aW9uZWQgYW5jZXN0b3Ig
aW4gdXNlciBhZ2VudCBTaGFkb3cgRE9NCi1zaGFkb3cucG9zaXRpb25lZEVsZW1lbnQucmVtb3Zl
QXR0cmlidXRlKCdzdHlsZScpOwotc2hvdWxkQmUoJ2NoaWxkLm9mZnNldFBhcmVudCcsICdjb250
YWluZXInKTsKLQotLy8gVGVzdCB0aGF0IHdoZW4gdGhlIG9mZnNldFBhcmVudCBpcyBpbiB1c2Vy
IGFnZW50IFNoYWRvdyBET00sIGl0IGlzCi0vLyBub3QgZXhwb3NlZCB0byBzY3JpcHQKLWhvc3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkZXRhaWxzJyk7Ci1jb250YWluZXIuYXBwZW5kQ2hp
bGQoaG9zdCk7Ci1ob3N0LnNldEF0dHJpYnV0ZSgnb3BlbicsICdvcGVuJyk7Ci1ob3N0LmFwcGVu
ZENoaWxkKGNoaWxkKTsKLXZhciBzaGFkb3cgPSB3aW5kb3cuaW50ZXJuYWxzLnlvdW5nZXN0U2hh
ZG93Um9vdChob3N0KTsgIC8vIHRoaXMgaXMgYSBVQSBzaGFkb3cgcm9vdAotY29uZmlndXJlU2hh
ZG93Um9vdChzaGFkb3cpOwotc2hvdWxkQmUoJ2NoaWxkLm9mZnNldFBhcmVudCcsICdudWxsJyk7
Ci0KLS8vIFRlc3QgdGhhdCBvZmZzZXRQYXJlbnQgd29ya3MgJ3Rocm91Z2gnIHVzZXIgYWdlbnQg
U2hhZG93IERPTSB3aGVuIHRoZXJlIGlzIG5vCi0vLyBwb3NpdGlvbmVkIGFuY2VzdG9yIGluIHVz
ZXIgYWdlbnQgU2hhZG93IERPTQotc2hhZG93LnBvc2l0aW9uZWRFbGVtZW50LnJlbW92ZUF0dHJp
YnV0ZSgnc3R5bGUnKTsKLXNob3VsZEJlKCdjaGlsZC5vZmZzZXRQYXJlbnQnLCAnY29udGFpbmVy
Jyk7Ci0KLWNvbnRhaW5lci5yZW1vdmUoKTsKLQotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29sZGVyU2hh
ZG93Um9vdC1pbi1zaGFkb3dlbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvb2xkZXJTaGFkb3dSb290LWluLXNoYWRvd2VsZW1lbnQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvb2xkZXJTaGFkb3dSb290LWluLXNoYWRvd2VsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLUNvbmZpcm1zIHNoYWRvdy5vbGRlclNoYWRvd1Jv
b3QgcmV0dXJucyBjb3JyZWN0IFNoYWRvd1Jvb3QKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLQotCi1zaGFkb3cgaW4geW91bmdlciBTaGFkb3dET00KLVBBU1Mgc2hhZG93Lm9sZGVy
U2hhZG93Um9vdCBpcyBvbGRlc3RTaGFkb3dSb290Ci0KLXNoYWRvdyBpbiB0aGUgb2xkZXN0IFNo
YWRvd0RPTQotUEFTUyBzaGFkb3cub2xkZXJTaGFkb3dSb290IGlzIG51bGwKLQotMiBhY3RpdmUg
c2hhZG93cwotUEFTUyBzaGFkb3cxLm9sZGVyU2hhZG93Um9vdCBpcyBvbGRlc3RTaGFkb3dSb290
Ci1QQVNTIHNoYWRvdzIub2xkZXJTaGFkb3dSb290IGlzIG51bGwKLQotdGhlIGZpcnN0IHNoYWRv
dyBpcyBub3QgYWN0aXZlCi1QQVNTIHNoYWRvdzEub2xkZXJTaGFkb3dSb290IGlzIG51bGwKLVBB
U1Mgc2hhZG93Mi5vbGRlclNoYWRvd1Jvb3QgaXMgb2xkZXN0U2hhZG93Um9vdAotCi1uZXN0ZWQg
U2hhZG93RE9NIGNhc2UKLVBBU1Mgc2hhZG93MS5vbGRlclNoYWRvd1Jvb3QgaXMgbnVsbAotUEFT
UyBzaGFkb3cyLm9sZGVyU2hhZG93Um9vdCBpcyBuZXN0ZWRPbGRlc3RTaGFkb3dSb290Ci0KLW9y
cGhhbiBzaGFkb3cKLVBBU1Mgc2hhZG93Lm9sZGVyU2hhZG93Um9vdCBpcyBudWxsCi0KLW9ycGhh
biBTaGFkb3cgRE9NCi1QQVNTIHNoYWRvdy5vbGRlclNoYWRvd1Jvb3QgaXMgb2xkZXN0U2hhZG93
Um9vdAotCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCi0KLQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvb2xkZXJTaGFkb3dS
b290LWluLXNoYWRvd2VsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvb2xkZXJTaGFkb3dSb290LWluLXNoYWRvd2VsZW1lbnQuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L29sZGVyU2hhZG93Um9v
dC1pbi1zaGFkb3dlbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08
cHJlIGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdDb25maXJt
cyBzaGFkb3cub2xkZXJTaGFkb3dSb290IHJldHVybnMgY29ycmVjdCBTaGFkb3dSb290Jyk7Ci0K
LWZ1bmN0aW9uIHRlc3RDYXNlKGYpCi17Ci0gICAgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotICAgIG9sZGVzdFNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgICB5b3VuZ2VyU2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotCi0gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOwotCi0gICAgZigpOwot
Ci0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICIiOwotICAgIGRlYnVnKCcnKTsKLX0KLQotdGVz
dENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdzaGFkb3cgaW4geW91bmdlciBTaGFkb3dE
T00nKTsKLSAgICBzaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAg
ICB5b3VuZ2VyU2hhZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3cpOwotCi0gICAgc2hvdWxkQmUo
J3NoYWRvdy5vbGRlclNoYWRvd1Jvb3QnLCAnb2xkZXN0U2hhZG93Um9vdCcpOwotfSk7Ci0KLXRl
c3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1Zygnc2hhZG93IGluIHRoZSBvbGRlc3QgU2hh
ZG93RE9NJyk7Ci0gICAgc2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7
Ci0gICAgb2xkZXN0U2hhZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3cpOwotCi0gICAgc2hvdWxk
QmUoJ3NoYWRvdy5vbGRlclNoYWRvd1Jvb3QnLCAnbnVsbCcpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1
bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnMiBhY3RpdmUgc2hhZG93cycpOwotICAgIHNoYWRvdzEg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgeW91bmdlclNoYWRvd1Jvb3QuYXBwZW5k
Q2hpbGQoc2hhZG93MSk7Ci0gICAgeW91bmdlclNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93
Mik7Ci0KLSAgICBzaG91bGRCZSgnc2hhZG93MS5vbGRlclNoYWRvd1Jvb3QnLCAnb2xkZXN0U2hh
ZG93Um9vdCcpOwotICAgIHNob3VsZEJlKCdzaGFkb3cyLm9sZGVyU2hhZG93Um9vdCcsICdudWxs
Jyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCd0aGUgZmlyc3Qg
c2hhZG93IGlzIG5vdCBhY3RpdmUnKTsKLSAgICBzaGFkb3cxID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3No
YWRvdycpOwotCi0gICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250
ZW50Jyk7Ci0gICAgY29udGVudC5hcHBlbmRDaGlsZChzaGFkb3cxKTsKLQotICAgIHlvdW5nZXJT
aGFkb3dSb290LmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHlvdW5nZXJTaGFkb3dSb290LmFw
cGVuZENoaWxkKHNoYWRvdzIpOwotCi0gICAgc2hvdWxkQmUoJ3NoYWRvdzEub2xkZXJTaGFkb3dS
b290JywgJ251bGwnKTsKLSAgICBzaG91bGRCZSgnc2hhZG93Mi5vbGRlclNoYWRvd1Jvb3QnLCAn
b2xkZXN0U2hhZG93Um9vdCcpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBk
ZWJ1ZygnbmVzdGVkIFNoYWRvd0RPTSBjYXNlJyk7Ci0gICAgbmVzdGVkSG9zdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIG5lc3RlZE9sZGVzdFNoYWRvd1Jvb3QgPSBuZXN0
ZWRIb3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBuZXN0ZWRZb3VuZ2VyU2hhZG93
Um9vdCA9IG5lc3RlZEhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIG9sZGVzdFNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQobmVzdGVkSG9zdCk7Ci0KLSAgICBzaGFkb3cxID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93MiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIG5lc3RlZE9sZGVzdFNoYWRvd1Jvb3QuYXBwZW5kQ2hp
bGQoc2hhZG93MSk7Ci0gICAgbmVzdGVkWW91bmdlclNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hh
ZG93Mik7Ci0KLSAgICBzaG91bGRCZSgnc2hhZG93MS5vbGRlclNoYWRvd1Jvb3QnLCAnbnVsbCcp
OwotICAgIHNob3VsZEJlKCdzaGFkb3cyLm9sZGVyU2hhZG93Um9vdCcsICduZXN0ZWRPbGRlc3RT
aGFkb3dSb290Jyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdv
cnBoYW4gc2hhZG93Jyk7Ci0gICAgc2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hh
ZG93Jyk7Ci0gICAgc2hvdWxkQmUoJ3NoYWRvdy5vbGRlclNoYWRvd1Jvb3QnLCAnbnVsbCcpOwot
fSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1Zygnb3JwaGFuIFNoYWRvdyBE
T00nKTsKLSAgICBzaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAg
ICB5b3VuZ2VyU2hhZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3cpOwotCi0gICAgY29udGFpbmVy
LnJlbW92ZUNoaWxkKGhvc3QpOwotCi0gICAgc2hvdWxkQmUoJ3NoYWRvdy5vbGRlclNoYWRvd1Jv
b3QnLCAnb2xkZXN0U2hhZG93Um9vdCcpOwotfSk7Ci0KLWNvbnRhaW5lci5pbm5lckhUTUwgPSAn
JzsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BhcmVudC10cmVlLXNjb3BlLWluLXNoYWRvdy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BhcmVudC10cmVlLXNjb3Bl
LWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9wYXJlbnQtdHJlZS1zY29wZS1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1ICswLDAgQEAKLUNyZWF0aW5nIHNoYWRvdyBkb20gc3Vi
dHJlZXMgZnJvbSB0b3AgdG8gYm90dG9tLgotUEFTUyBpbnRlcm5hbHMucGFyZW50VHJlZVNjb3Bl
KHNoYWRvdzEpIGlzIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy5wYXJlbnRUcmVlU2NvcGUoc2hh
ZG93MikgaXMgc2hhZG93MQotUEFTUyBpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzMp
IGlzIHNoYWRvdzIKLUNyZWF0aW5nIG11bHRpcGxlIHNoYWRvdyBkb20gc3VidHJlZXMuCi1QQVNT
IGludGVybmFscy5wYXJlbnRUcmVlU2NvcGUoc2hhZG93MikgaXMgc2hhZG93MQotUEFTUyBpbnRl
cm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzMpIGlzIHNoYWRvdzEKLUNyZWF0aW5nIG11bHRp
cGxlIHNoYWRvdyBkb20gc3VidHJlZXMgZnJvbSBib3R0b20gdG8gdG9wLgotUEFTUyBpbnRlcm5h
bHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzEpIGlzIGRvY3VtZW50Ci1QQVNTIGludGVybmFscy5w
YXJlbnRUcmVlU2NvcGUoc2hhZG93MikgaXMgc2hhZG93MQotUEFTUyBpbnRlcm5hbHMucGFyZW50
VHJlZVNjb3BlKHNoYWRvdzMpIGlzIHNoYWRvdzIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcGFyZW50LXRyZWUtc2NvcGUtaW4tc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BhcmVudC10cmVlLXNjb3BlLWluLXNoYWRvdy5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcGFyZW50LXRy
ZWUtc2NvcGUtaW4tc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjYgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZG9t
L3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08ZGl2IGlkPSJ0ZXN0Ij48L2Rpdj4KLQotPHNjcmlwdD4KLSAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7
Ci0KLSAgZGVidWcoIkNyZWF0aW5nIHNoYWRvdyBkb20gc3VidHJlZXMgZnJvbSB0b3AgdG8gYm90
dG9tLiIpOwotICB2YXIgc2hhZG93MSA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0g
IHNoYWRvdzEuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J0UnPi9kaXY+IjsKLSAgdmFyIGUgPSBzaGFk
b3cxLmdldEVsZW1lbnRCeUlkKCJFIik7Ci0gIHZhciBzaGFkb3cyID0gZS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0gIHNoYWRvdzIuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J0YnPjwvZGl2PiI7
Ci0gIHZhciBmID0gc2hhZG93Mi5nZXRFbGVtZW50QnlJZCgiRiIpOwotICB2YXIgc2hhZG93MyA9
IGYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICBzaGFkb3czLmlubmVySFRNTCA9ICI8ZGl2
IGlkPSdHJz48L2Rpdj4iOwotCi0gIHNob3VsZEJlKCJpbnRlcm5hbHMucGFyZW50VHJlZVNjb3Bl
KHNoYWRvdzEpIiwgImRvY3VtZW50Iik7Ci0gIHNob3VsZEJlKCJpbnRlcm5hbHMucGFyZW50VHJl
ZVNjb3BlKHNoYWRvdzIpIiwgInNoYWRvdzEiKTsKLSAgc2hvdWxkQmUoImludGVybmFscy5wYXJl
bnRUcmVlU2NvcGUoc2hhZG93MykiLCAic2hhZG93MiIpOwotCi0gIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQoZGl2KTsKLQotICBkZWJ1ZygiQ3JlYXRpbmcgbXVsdGlwbGUgc2hhZG93IGRvbSBz
dWJ0cmVlcy4iKTsKLSAgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgc2hhZG93MSA9IGRpdi53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci0gIHNoYWRvdzEuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J0gnPjwvZGl2
PiI7Ci0KLSAgdmFyIGggPSBzaGFkb3cxLmdldEVsZW1lbnRCeUlkKCJIIik7Ci0gIHNoYWRvdzIg
PSBoLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgc2hhZG93Mi5pbm5lckhUTUwgPSAiPGRp
dj5zaGFkb3cyPC9kaXY+IjsKLSAgc2hhZG93MyA9IGgud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICBzaGFkb3czLmlubmVySFRNTCA9ICI8ZGl2PnNoYWRvdzM8L2Rpdj4iOwotICBzaG91bGRC
ZSgiaW50ZXJuYWxzLnBhcmVudFRyZWVTY29wZShzaGFkb3cyKSIsICJzaGFkb3cxIik7Ci0gIHNo
b3VsZEJlKCJpbnRlcm5hbHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzMpIiwgInNoYWRvdzEiKTsK
LQotICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7Ci0KLSAgZGVidWcoIkNyZWF0aW5n
IG11bHRpcGxlIHNoYWRvdyBkb20gc3VidHJlZXMgZnJvbSBib3R0b20gdG8gdG9wLiIpOwotICBm
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gIHNoYWRvdzMgPSBmLndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgc2hhZG93My5pbm5lckhUTUwgPSAiPGRpdiBpZD0nRyc+PC9k
aXY+IjsKLSAgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICBzaGFkb3cyID0g
ZS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gIHNoYWRvdzIuYXBwZW5kQ2hpbGQoZik7Ci0g
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICBzaGFkb3cxID0gZGl2Lndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgc2hhZG93MS5hcHBlbmRDaGlsZChlKTsKLSAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpOwotCi0gIHNob3VsZEJlKCJpbnRlcm5hbHMucGFy
ZW50VHJlZVNjb3BlKHNoYWRvdzEpIiwgImRvY3VtZW50Iik7Ci0gIHNob3VsZEJlKCJpbnRlcm5h
bHMucGFyZW50VHJlZVNjb3BlKHNoYWRvdzIpIiwgInNoYWRvdzEiKTsKLSAgc2hvdWxkQmUoImlu
dGVybmFscy5wYXJlbnRUcmVlU2NvcGUoc2hhZG93MykiLCAic2hhZG93MiIpOwotCi0gIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKLTwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1k
eW5hbWljLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkby1hdHRyaWJ1dGUtZHluYW1pYy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1k
eW5hbWljLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci0KLTxwPlRoaXMgdGVzdCBjaGVja3MgZHluYW1p
YyAncHNldWRvJyBhdHRyaWJ1dGUgc2hvdWxkIHJlZmxlY3Qgc3R5bGUuPC9wPgotCi08ZGl2Pjxk
aXYgc3R5bGU9ImNvbG9yOiBibHVlOyI+VGhpcyBzaG91bGQgYmUgYmx1ZS48L2Rpdj48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG8tYXR0cmlidXRlLWR5bmFtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1keW5hbWljLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLWR5bmFt
aWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Nj
cmlwdD4KLTxzdHlsZT4KLSNob3N0Ojp4LWZvbyB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLQotI2hv
c3Q6OngtYmFyIHsKLSAgICBjb2xvcjogYmx1ZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9k
eT4KLQotPHA+VGhpcyB0ZXN0IGNoZWNrcyBkeW5hbWljICdwc2V1ZG8nIGF0dHJpYnV0ZSBzaG91
bGQgcmVmbGVjdCBzdHlsZS48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotCi08c2NyaXB0
PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotZGl2LndlYmtpdFBzZXVkbyA9
ICd4LWZvbyc7Ci1kaXYuaW5uZXJIVE1MID0gIlRoaXMgc2hvdWxkIGJlIGJsdWUuIjsKLXNoYWRv
d1Jvb3QuYXBwZW5kQ2hpbGQoZGl2KTsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBk
aXYud2Via2l0UHNldWRvID0gJ3gtYmFyJzsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0
cmlidXRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNSArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHBzZXVk
byBhdHRyaWJ1dGUgaXMgZXhwb3NlZCBjb3JyZWN0bHkuCi0KLVBBU1MgZGl2LndlYmtpdFBzZXVk
byBpcyAnJwotUEFTUyBkaXYuZ2V0QXR0cmlidXRlKCdwc2V1ZG8nKSBpcyBudWxsCi1QQVNTIGRp
di53ZWJraXRQc2V1ZG8gaXMgJ2ZvbycKLVBBU1MgZGl2LmdldEF0dHJpYnV0ZSgncHNldWRvJykg
aXMgJ2ZvbycKLVBBU1MgZGl2LndlYmtpdFBzZXVkbyBpcyAnYmFyJwotUEFTUyBkaXYuZ2V0QXR0
cmlidXRlKCdwc2V1ZG8nKSBpcyAnYmFyJwotUEFTUyBkaXYud2Via2l0UHNldWRvIGlzICcnCi1Q
QVNTIGRpdi5nZXRBdHRyaWJ1dGUoJ3BzZXVkbycpIGlzIG51bGwKLVBBU1MgZGl2LndlYmtpdFBz
ZXVkbyBpcyAnZmlyc3QtbGV0dGVyJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG8tYXR0cmlidXRlLXJlbmRlcmluZy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLXJlbmRlcmluZy1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cHNldWRvLWF0dHJpYnV0ZS1yZW5kZXJpbmctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08cD5UaGlz
IHRlc3QgY2hlY2tzIGVsZW1lbnQucHNldWRvIHN0YXJ0aW5nICctd2Via2l0LScgb25seSB3b3Jr
cyBpbiBVc2VyQWdlbnRTaGFkb3dSb290LjwvcD4KLQotPGRpdj48ZGl2IHN0eWxlPSJjb2xvcjog
cmVkIj5UaGlzIHRleHQgc2hvdWxkIGJlIHJlZC48L2Rpdj48L2Rpdj4KLTxkaXY+PGRpdj5UaGlz
IHRleHQgc2hvdWxkIG5vdCBiZSByZWQuPC9kaXY+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLXJlbmRl
cmluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG8tYXR0cmlidXRlLXJlbmRlcmluZy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvLWF0dHJpYnV0ZS1yZW5kZXJpbmcuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzdHls
ZT4KLWRpdjo6eC1mb28gewotICAgIGNvbG9yOiByZWQ7Ci19Ci1kaXY6Oi13ZWJraXQtZm9vYmFy
IHsKLSAgICBjb2xvcjogcmVkOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhp
cyB0ZXN0IGNoZWNrcyBlbGVtZW50LnBzZXVkbyBzdGFydGluZyAnLXdlYmtpdC0nIG9ubHkgd29y
a3MgaW4gVXNlckFnZW50U2hhZG93Um9vdC48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4K
LTxkaXYgaWQ9Imhvc3QyIj48L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhv
c3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci1kaXYxLndlYmtpdFBzZXVkbyA9ICd4LWZvbyc7Ci1kaXYxLmlubmVy
SFRNTCA9ICJUaGlzIHRleHQgc2hvdWxkIGJlIHJlZC4iOwotc2hhZG93Um9vdDEuYXBwZW5kQ2hp
bGQoZGl2MSk7Ci0KLXZhciBzaGFkb3dSb290MiA9IGhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLXZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1kaXYyLndl
YmtpdFBzZXVkbyA9ICctd2Via2l0LWZvb2Jhcic7Ci1kaXYyLmlubmVySFRNTCA9ICJUaGlzIHRl
eHQgc2hvdWxkIG5vdCBiZSByZWQuIjsKLXNoYWRvd1Jvb3QyLmFwcGVuZENoaWxkKGRpdjIpOwot
PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9wc2V1ZG8tYXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkby1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkby1hdHRyaWJ1dGUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJv
ZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLQotPHA+VGhpcyB0ZXN0IGNoZWNrcyBwc2V1ZG8gYXR0cmlidXRlIGlzIGV4cG9zZWQg
Y29ycmVjdGx5LjwvcD4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLXNob3VsZEJlKCJkaXYu
d2Via2l0UHNldWRvIiwgIicnIik7Ci1zaG91bGRCZSgiZGl2LmdldEF0dHJpYnV0ZSgncHNldWRv
JykiLCAibnVsbCIpOwotCi1kaXYuc2V0QXR0cmlidXRlKCJwc2V1ZG8iLCAiZm9vIik7Ci1zaG91
bGRCZSgiZGl2LndlYmtpdFBzZXVkbyIsICInZm9vJyIpOwotc2hvdWxkQmUoImRpdi5nZXRBdHRy
aWJ1dGUoJ3BzZXVkbycpIiwgIidmb28nIik7Ci0KLWRpdi53ZWJraXRQc2V1ZG8gPSAiYmFyIjsK
LXNob3VsZEJlKCJkaXYud2Via2l0UHNldWRvIiwgIidiYXInIik7Ci1zaG91bGRCZSgiZGl2Lmdl
dEF0dHJpYnV0ZSgncHNldWRvJykiLCAiJ2JhciciKTsKLQotZGl2LnJlbW92ZUF0dHJpYnV0ZSgn
cHNldWRvJyk7Ci1zaG91bGRCZSgiZGl2LndlYmtpdFBzZXVkbyIsICInJyIpOwotc2hvdWxkQmUo
ImRpdi5nZXRBdHRyaWJ1dGUoJ3BzZXVkbycpIiwgIm51bGwiKTsKLQotLy8gQ2hlY2tzIHBzZXVk
byBhY2NlcHRzIGtub3duIHBzZXVkby1lbGVtZW50IHdvcmQuCi1kaXYud2Via2l0UHNldWRvID0g
J2ZpcnN0LWxldHRlcic7Ci1zaG91bGRCZSgiZGl2LndlYmtpdFBzZXVkbyIsICInZmlyc3QtbGV0
dGVyJyIpOwotCi1maW5pc2hKU1Rlc3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1j
aGVja2VkLWlucHV0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1jaGVja2VkLWlucHV0LWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtY2hlY2tlZC1pbnB1dC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDIxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLQotPHA+
V2hlbiBhbiBpbnB1dCBlbGVtZW50IGJlY2FtZSAnY2hlY2tlZCcgb3Igbm90LSdjaGVja2VkJywg
ZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uPC9wPgotCi08cD5DYXNlIDE6IGlucHV0W3R5cGU9
Y2hlY2tib3hdIGJlY29tZXMgY2hlY2tlZDwvcD4KLTxkaXYgaWQ9Imhvc3QxIj48aW5wdXQgaWQ9
ImlucHV0MSIgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQ+PC9kaXY+Ci0KLTxwPkNhc2UgMjogaW5w
dXRbdHlwZT1jaGVja2JveF0gYmVjb21lcyBub24tY2hlY2tlZDwvcD4KLTxkaXYgaWQ9Imhvc3Qy
Ij48L2Rpdj4KLQotPHA+Q2FzZSAzOiBpbnB1dFt0eXBlPXJhZGlvXSBiZWNvbWVzIGNoZWNrZWQ8
L3A+Ci08ZGl2IGlkPSJob3N0MyI+PGlucHV0IGlkPSJpbnB1dDMiIG5hbWU9InJhZGlvMyIgdHlw
ZT0icmFkaW8iIGNoZWNrZWQ+PC9kaXY+Ci0KLTxwPkNhc2UgNDogaW5wdXRbdHlwZT1yYWRpb10g
YmVjb21lcyBub24tY2hlY2tlZDwvcD4KLTxkaXYgaWQ9Imhvc3Q0Ij48L2Rpdj4KLQotPC9ib2R5
PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xh
c3MtdXBkYXRlLWNoZWNrZWQtaW5wdXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWNoZWNrZWQtaW5wdXQuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNz
LXVwZGF0ZS1jaGVja2VkLWlucHV0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTIgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFu
IGlucHV0IGVsZW1lbnQgYmVjYW1lICdjaGVja2VkJyBvciBub3QtJ2NoZWNrZWQnLCBkaXN0cmli
dXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0KLTxwPkNhc2UgMTogaW5wdXRbdHlwZT1jaGVja2Jv
eF0gYmVjb21lcyBjaGVja2VkPC9wPgotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxpbnB1dCBpZD0i
aW5wdXQxIiB0eXBlPSJjaGVja2JveCI+Ci08L2Rpdj4KLQotPHA+Q2FzZSAyOiBpbnB1dFt0eXBl
PWNoZWNrYm94XSBiZWNvbWVzIG5vbi1jaGVja2VkPC9wPgotPGRpdiBpZD0iaG9zdDIiPgotICAg
IDxpbnB1dCBpZD0iaW5wdXQyIiB0eXBlPSJjaGVja2JveCIgY2hlY2tlZD4KLTwvZGl2PgotCi08
cD5DYXNlIDM6IGlucHV0W3R5cGU9cmFkaW9dIGJlY29tZXMgY2hlY2tlZDwvcD4KLTxkaXYgaWQ9
Imhvc3QzIj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0MyIgbmFtZT0icmFkaW8zIiB0eXBlPSJyYWRp
byI+Ci08L2Rpdj4KLQotPHA+Q2FzZSA0OiBpbnB1dFt0eXBlPXJhZGlvXSBiZWNvbWVzIG5vbi1j
aGVja2VkPC9wPgotPGRpdiBpZD0iaG9zdDQiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQ0IiBuYW1l
PSJyYWRpbzQiIHR5cGU9InJhZGlvIiBjaGVja2VkPgotPC9kaXY+Ci0KLQotPHNjcmlwdD4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQot
aG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxl
Y3Q9ImlucHV0OmNoZWNrZWQiPic7Ci1ob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5u
ZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iaW5wdXQ6Y2hlY2tlZCI+JzsKLWhvc3QzLndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJpbnB1dDpj
aGVja2VkIj4nOwotaG9zdDQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8
Y29udGVudCBzZWxlY3Q9ImlucHV0OmNoZWNrZWQiPic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7Ci0gICAgaW5wdXQxLmNoZWNrZWQgPSB0cnVlOwotICAgIGlucHV0Mi5jaGVja2VkID0gZmFs
c2U7Ci0gICAgaW5wdXQzLmNoZWNrZWQgPSB0cnVlOwotICAgIGlucHV0NC5jaGVja2VkID0gZmFs
c2U7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtY2hlY2tlZC1vcHRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtY2hlY2tlZC1v
cHRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWNoZWNrZWQtb3B0aW9uLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMCwwIEBACi1XaGVuIGFuIG9wdGlvbiBlbGVtZW50
IGJlY2FtZSAnY2hlY2tlZCcgb3Igbm90LSdjaGVja2VkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBo
YXBwZW4uCi0KLVNpbmNlIGFuIG9wdGlvbiBlbGVtZW50IGRvZXMgbm90IGNyZWF0ZSBhIHJlbmRl
cmVyLCB3ZSBjYW5ub3QgY2hlY2sgdGhpcyB1c2luZyByZWZ0ZXN0LgotCi1QQVNTIG5vZGVzMS5s
ZW5ndGggaXMgMAotUEFTUyBub2RlczIubGVuZ3RoIGlzIDEKLVBBU1Mgbm9kZXMyLml0ZW0oMCku
aW5uZXJIVE1MIGlzICJvcHRpb24gMiIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNl
dWRvY2xhc3MtdXBkYXRlLWNoZWNrZWQtb3B0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1jaGVja2VkLW9wdGlvbi5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNl
dWRvY2xhc3MtdXBkYXRlLWNoZWNrZWQtb3B0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0K
LTxwPldoZW4gYW4gb3B0aW9uIGVsZW1lbnQgYmVjYW1lICdjaGVja2VkJyBvciBub3QtJ2NoZWNr
ZWQnLCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci08cD5TaW5jZSBhbiBvcHRpb24g
ZWxlbWVudCBkb2VzIG5vdCBjcmVhdGUgYSByZW5kZXJlciwgd2UgY2Fubm90IGNoZWNrIHRoaXMg
dXNpbmcgcmVmdGVzdC48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0i
aG9zdDEiPgotICAgICAgICA8b3B0aW9uIGlkPSJvcHRpb24xIj5vcHRpb24gMTwvb3B0aW9uPgot
ICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0iaG9zdDIiPgotICAgICAgICA8b3B0aW9uIGlkPSJv
cHRpb24yIiBzZWxlY3RlZD5vcHRpb24gMjwvb3B0aW9uPgotICAgIDwvZGl2PgotPC9kaXY+Ci0K
LTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LXZhciBzaGFkb3dSb290MiA9IGhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQotc2hh
ZG93Um9vdDEuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0ib3B0aW9uOmNoZWNrZWQiPic7
Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJvcHRpb246Y2hlY2tl
ZCI+JzsKLQotdmFyIGNvbnRlbnQxID0gc2hhZG93Um9vdDEucXVlcnlTZWxlY3RvcignY29udGVu
dCcpOwotdmFyIGNvbnRlbnQyID0gc2hhZG93Um9vdDIucXVlcnlTZWxlY3RvcignY29udGVudCcp
OwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIG9wdGlvbjEuc2V0QXR0cmlidXRlKCdz
ZWxlY3RlZCcsIHRydWUpOwotICAgIG9wdGlvbjIucmVtb3ZlQXR0cmlidXRlKCdzZWxlY3RlZCcp
OwotCi0gICAgbm9kZXMxID0gY29udGVudDEuZ2V0RGlzdHJpYnV0ZWROb2RlcygpOwotICAgIHNo
b3VsZEJlKCdub2RlczEubGVuZ3RoJywgJzAnKTsKLQotICAgIG5vZGVzMiA9IGNvbnRlbnQyLmdl
dERpc3RyaWJ1dGVkTm9kZXMoKTsKLSAgICBzaG91bGRCZSgnbm9kZXMyLmxlbmd0aCcsICcxJyk7
Ci0gICAgc2hvdWxkQmUoJ25vZGVzMi5pdGVtKDApLmlubmVySFRNTCcsICcib3B0aW9uIDIiJyk7
Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIiI7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19
LCAwKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWJ1dHRvbi1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtYnV0dG9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZGlzYWJsZWQtYnV0dG9uLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9oZWFkPgotCi08Ym9keT4K
LQotPHA+V2hlbiB0aGUgJ2Rpc2FibGVkJyBzdGF0ZSBvZiBhIGJ1dHRvbiB0YWcgaXMgY2hhbmdl
ZCwgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhv
c3QxIj48YnV0dG9uIGRpc2FibGVkPkJ1dHRvbiAyPC9idXR0b24+PC9kaXY+Ci0KLTxkaXYgaWQ9
Imhvc3QyIj48YnV0dG9uIGRpc2FibGVkPkJ1dHRvbiAzPC9idXR0b24+PC9kaXY+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2Ns
YXNzLXVwZGF0ZS1kaXNhYmxlZC1idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWJ1dHRvbi5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWRpc2FibGVkLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+
V2hlbiB0aGUgJ2Rpc2FibGVkJyBzdGF0ZSBvZiBhIGJ1dHRvbiB0YWcgaXMgY2hhbmdlZCwgd2Ug
aGF2ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4K
LSAgICA8YnV0dG9uIGlkPSJidXR0b24xIj5CdXR0b24gMTwvYnV0dG9uPgotICAgIDxidXR0b24g
aWQ9ImJ1dHRvbjIiPkJ1dHRvbiAyPC9idXR0b24+Ci08L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIi
PgotICAgIDxidXR0b24gaWQ9ImJ1dHRvbjMiIGRpc2FibGVkPkJ1dHRvbiAzPC9idXR0b24+Ci0g
ICAgPGJ1dHRvbiBpZD0iYnV0dG9uNCIgZGlzYWJsZWQ+QnV0dG9uIDQ8L2J1dHRvbj4KLTwvZGl2
PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1M
ID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2FibGVkIj48L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZGlzYWJs
ZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGJ1dHRvbjIu
c2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwotICAgIGJ1dHRvbjQucmVtb3ZlQXR0cmli
dXRlKCdkaXNhYmxlZCcpOwotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0K
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLWZpZWxkc2V0LWV4cGVjdGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNz
LXVwZGF0ZS1kaXNhYmxlZC1maWVsZHNldC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2Fi
bGVkLWZpZWxkc2V0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9oZWFkPgotCi08Ym9keT4KLQot
PHA+V2hlbiB0aGUgJ2Rpc2FibGVkJyBzdGF0ZSBvZiBhIGZpZWxkc2V0IHRhZyBpcyBjaGFuZ2Vk
LCB3ZSBoYXZlIHRvIGludmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0iaG9z
dDEiPjxmaWVsZHNldCBpZD0iZmllbGRzZXQyIiBkaXNhYmxlZD5GaWVsZHNldCAyPC9maWVsZHNl
dD48L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPjxmaWVsZHNldCBpZD0iZmllbGRzZXQzIiBkaXNh
YmxlZD5GaWVsZHNldCAzPC9maWVsZHNldD48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2Fi
bGVkLWZpZWxkc2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1maWVsZHNldC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LWRpc2FibGVkLWZpZWxkc2V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIHRoZSAn
ZGlzYWJsZWQnIHN0YXRlIG9mIGEgZmllbGRzZXQgdGFnIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8g
aW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGZp
ZWxkc2V0IGlkPSJmaWVsZHNldDEiPkZpZWxkc2V0IDE8L2ZpZWxkc2V0PgotICAgIDxmaWVsZHNl
dCBpZD0iZmllbGRzZXQyIj5GaWVsZHNldCAyPC9maWVsZHNldD4KLTwvZGl2PgotCi08ZGl2IGlk
PSJob3N0MiI+Ci0gICAgPGZpZWxkc2V0IGlkPSJmaWVsZHNldDMiIGRpc2FibGVkPkZpZWxkc2V0
IDM8L2ZpZWxkc2V0PgotICAgIDxmaWVsZHNldCBpZD0iZmllbGRzZXQ0IiBkaXNhYmxlZD5GaWVs
ZHNldCA0PC9maWVsZHNldD4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2FibGVkIj48
L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAn
PGNvbnRlbnQgc2VsZWN0PSI6ZGlzYWJsZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewotICAgIGZpZWxkc2V0Mi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7
Ci0gICAgZmllbGRzZXQ0LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLSAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1k
aXNhYmxlZC1pbnB1dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtaW5wdXQtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1pbnB1dC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTwv
aGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gdGhlICdkaXNhYmxlZCcgc3RhdGUgb2YgYW4gaW5w
dXQgdGFnIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9w
PgotCi08ZGl2IGlkPSJob3N0MSI+PGlucHV0IGlkPSJpbnB1dDIiIHZhbHVlPSJJbnB1dCAyIiBk
aXNhYmxlZD48L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPjxpbnB1dCBpZD0iaW5wdXQzIiB2YWx1
ZT0iSW5wdXQgMyIgZGlzYWJsZWQ+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1p
bnB1dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtaW5wdXQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1p
bnB1dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2Rpc2FibGVkJyBzdGF0
ZSBvZiBhbiBpbnB1dCB0YWcgaXMgY2hhbmdlZCwgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIGRpc3Ry
aWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0MSIg
dmFsdWU9IklucHV0IDEiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQyIiB2YWx1ZT0iSW5wdXQgMiI+
Ci08L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPgotICAgIDxpbnB1dCBpZD0iaW5wdXQzIiB2YWx1
ZT0iSW5wdXQgMyIgZGlzYWJsZWQ+Ci0gICAgPGlucHV0IGlkPSJpbnB1dDQiIHZhbHVlPSJJbnB1
dCA0IiBkaXNhYmxlZD4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2FibGVkIj48L2Nv
bnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNv
bnRlbnQgc2VsZWN0PSI6ZGlzYWJsZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewotICAgIGlucHV0Mi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAg
aW5wdXQ0LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKLX0sIDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1v
cHRncm91cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1vcHRncm91cC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9j
bGFzcy11cGRhdGUtZGlzYWJsZWQtb3B0Z3JvdXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEyICswLDAgQEAKLVdoZW4gYW4gb3B0Z3JvdXAgZWxlbWVudCBiZWNhbWUgJ2Rpc2Fi
bGVkJyBvciBub3QtJ2Rpc2FibGVkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uCi0KLVNp
bmNlIGFuIG9wdGdyb3VwIGVsZW1lbnQgZG9lcyBub3QgY3JlYXRlIGEgcmVuZGVyZXIsIHdlIGNh
bm5vdCBjaGVjayB0aGlzIHVzaW5nIHJlZnRlc3QuCi0KLVBBU1Mgbm9kZXMxLmxlbmd0aCBpcyAx
Ci1QQVNTIG5vZGVzMS5pdGVtKDApLmlubmVySFRNTCBpcyAib3B0Z3JvdXAgMiIKLVBBU1Mgbm9k
ZXMyLmxlbmd0aCBpcyAxCi1QQVNTIG5vZGVzMi5pdGVtKDApLmlubmVySFRNTCBpcyAib3B0Z3Jv
dXAgMyIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRp
c2FibGVkLW9wdGdyb3VwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1vcHRncm91cC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBk
YXRlLWRpc2FibGVkLW9wdGdyb3VwLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4g
YW4gb3B0Z3JvdXAgZWxlbWVudCBiZWNhbWUgJ2Rpc2FibGVkJyBvciBub3QtJ2Rpc2FibGVkJywg
ZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uPC9wPgotPHA+U2luY2UgYW4gb3B0Z3JvdXAgZWxl
bWVudCBkb2VzIG5vdCBjcmVhdGUgYSByZW5kZXJlciwgd2UgY2Fubm90IGNoZWNrIHRoaXMgdXNp
bmcgcmVmdGVzdC48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaG9z
dDEiPgotICAgICAgICA8b3B0Z3JvdXAgaWQ9Im9wdGdyb3VwMSI+b3B0Z3JvdXAgMTwvb3B0Z3Jv
dXA+Ci0gICAgICAgIDxvcHRncm91cCBpZD0ib3B0Z3JvdXAyIj5vcHRncm91cCAyPC9vcHRncm91
cD4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9Imhvc3QyIj4KLSAgICAgICAgPG9wdGdyb3Vw
IGlkPSJvcHRncm91cDMiIGRpc2FibGVkPm9wdGdyb3VwIDM8L29wdGdyb3VwPgotICAgICAgICA8
b3B0Z3JvdXAgaWQ9Im9wdGdyb3VwNCIgZGlzYWJsZWQ+b3B0Z3JvdXAgNDwvb3B0Z3JvdXA+Ci0g
ICAgPC9kaXY+Ci08L2Rpdj4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+
Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotCi1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0
PSI6ZGlzYWJsZWQiPic7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0
PSI6ZGlzYWJsZWQiPic7Ci0KLXZhciBjb250ZW50MSA9IHNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0
b3IoJ2NvbnRlbnQnKTsKLXZhciBjb250ZW50MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5U2VsZWN0b3Io
J2NvbnRlbnQnKTsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBvcHRncm91cDIuc2V0
QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwotICAgIG9wdGdyb3VwNC5yZW1vdmVBdHRyaWJ1
dGUoJ2Rpc2FibGVkJyk7Ci0KLSAgICBub2RlczEgPSBjb250ZW50MS5nZXREaXN0cmlidXRlZE5v
ZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMS5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJl
KCdub2RlczEuaXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGdyb3VwIDIiJyk7Ci0KLSAgICBub2Rl
czIgPSBjb250ZW50Mi5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVz
Mi5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdub2RlczIuaXRlbSgwKS5pbm5lckhUTUwn
LCAnIm9wdGdyb3VwIDMiJyk7Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIiI7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRp
c2FibGVkLW9wdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC1vcHRpb24tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNl
dWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLW9wdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTIgKzAsMCBAQAotV2hlbiBhbiBvcHRpb24gZWxlbWVudCBiZWNhbWUgJ2Rpc2Fi
bGVkJyBvciBub3QtJ2Rpc2FibGVkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uCi0KLVNp
bmNlIGFuIG9wdGlvbiBlbGVtZW50IGRvZXMgbm90IGNyZWF0ZSBhIHJlbmRlcmVyLCB3ZSBjYW5u
b3QgY2hlY2sgdGhpcyB1c2luZyByZWZ0ZXN0LgotCi1QQVNTIG5vZGVzMS5sZW5ndGggaXMgMQot
UEFTUyBub2RlczEuaXRlbSgwKS5pbm5lckhUTUwgaXMgIm9wdGlvbiAyIgotUEFTUyBub2RlczIu
bGVuZ3RoIGlzIDEKLVBBU1Mgbm9kZXMyLml0ZW0oMCkuaW5uZXJIVE1MIGlzICJvcHRpb24gMyIK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVk
LW9wdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9w
c2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtb3B0aW9uLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJs
ZWQtb3B0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gYW4gb3B0aW9uIGVs
ZW1lbnQgYmVjYW1lICdkaXNhYmxlZCcgb3Igbm90LSdkaXNhYmxlZCcsIGRpc3RyaWJ1dGlvbiBz
aG91bGQgaGFwcGVuLjwvcD4KLTxwPlNpbmNlIGFuIG9wdGlvbiBlbGVtZW50IGRvZXMgbm90IGNy
ZWF0ZSBhIHJlbmRlcmVyLCB3ZSBjYW5ub3QgY2hlY2sgdGhpcyB1c2luZyByZWZ0ZXN0LjwvcD4K
LQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJob3N0MSI+Ci0gICAgICAgIDxv
cHRpb24gaWQ9Im9wdGlvbjEiPm9wdGlvbiAxPC9vcHRpb24+Ci0gICAgICAgIDxvcHRpb24gaWQ9
Im9wdGlvbjIiPm9wdGlvbiAyPC9vcHRpb24+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJo
b3N0MiI+Ci0gICAgICAgIDxvcHRpb24gaWQ9Im9wdGlvbjMiIGRpc2FibGVkPm9wdGlvbiAzPC9v
cHRpb24+Ci0gICAgICAgIDxvcHRpb24gaWQ9Im9wdGlvbjQiIGRpc2FibGVkPm9wdGlvbiA0PC9v
cHRpb24+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0K
LTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHNoYWRvd1Jvb3QxID0gaG9z
dDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSI6ZGlzYWJsZWQiPic7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSI6ZGlzYWJsZWQiPic7Ci0KLXZhciBjb250ZW50MSA9IHNoYWRvd1Jvb3QxLnF1
ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsKLXZhciBjb250ZW50MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5
U2VsZWN0b3IoJ2NvbnRlbnQnKTsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBvcHRp
b24yLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTsKLSAgICBvcHRpb240LnJlbW92ZUF0
dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLQotICAgIG5vZGVzMSA9IGNvbnRlbnQxLmdldERpc3RyaWJ1
dGVkTm9kZXMoKTsKLSAgICBzaG91bGRCZSgnbm9kZXMxLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hv
dWxkQmUoJ25vZGVzMS5pdGVtKDApLmlubmVySFRNTCcsICcib3B0aW9uIDIiJyk7Ci0KLSAgICBu
b2RlczIgPSBjb250ZW50Mi5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25v
ZGVzMi5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdub2RlczIuaXRlbSgwKS5pbm5lckhU
TUwnLCAnIm9wdGlvbiAzIicpOwotCi0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICIiOwotICAg
IGZpbmlzaEpTVGVzdCgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1k
aXNhYmxlZC1zZWxlY3QtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLXNlbGVjdC1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cHNldWRvY2xhc3MtdXBkYXRlLWRpc2FibGVkLXNlbGVjdC1leHBlY3RlZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDE2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gdGhlICdkaXNhYmxlZCcgc3RhdGUgb2YgYSBz
ZWxlY3QgdGFnIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24u
PC9wPgotCi08ZGl2IGlkPSJob3N0MSI+PHNlbGVjdCBkaXNhYmxlZD48b3B0aW9uPlNlbGVjdCAy
PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+Ci0KLTxkaXYgaWQ9Imhvc3QyIj48c2VsZWN0IGRpc2Fi
bGVkPjxvcHRpb24+U2VsZWN0IDM8L29wdGlvbj48L3NlbGVjdD48L2Rpdj4KLQotPC9ib2R5Pgot
PC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLWRpc2FibGVkLXNlbGVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtc2VsZWN0Lmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFz
cy11cGRhdGUtZGlzYWJsZWQtc2VsZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVu
IHRoZSAnZGlzYWJsZWQnIHN0YXRlIG9mIGEgc2VsZWN0IHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZl
IHRvIGludmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAg
IDxzZWxlY3QgaWQ9InNlbGVjdDEiPjxvcHRpb24+U2VsZWN0IDE8L29wdGlvbj48L3NlbGVjdD4K
LSAgICA8c2VsZWN0IGlkPSJzZWxlY3QyIj48b3B0aW9uPlNlbGVjdCAyPC9vcHRpb24+PC9zZWxl
Y3Q+Ci08L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPgotICAgIDxzZWxlY3QgaWQ9InNlbGVjdDMi
IGRpc2FibGVkPjxvcHRpb24+U2VsZWN0IDM8L29wdGlvbj48L3NlbGVjdD4KLSAgICA8c2VsZWN0
IGlkPSJzZWxlY3Q0IiBkaXNhYmxlZD48b3B0aW9uPlNlbGVjdCA0PC9vcHRpb24+PC9zZWxlY3Q+
Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLQotaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlu
bmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjpkaXNhYmxlZCI+PC9jb250ZW50Pic7Ci1ob3N0
Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0i
OmRpc2FibGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBz
ZWxlY3QyLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTsKLSAgICBzZWxlY3Q0LnJlbW92
ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0s
IDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC10ZXh0YXJlYS1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtZGlzYWJsZWQtdGV4dGFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS1kaXNhYmxlZC10ZXh0YXJlYS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLQotPGJv
ZHk+Ci0KLTxwPldoZW4gdGhlICdkaXNhYmxlZCcgc3RhdGUgb2YgYSB0ZXh0YXJlYSB0YWcgaXMg
Y2hhbmdlZCwgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYg
aWQ9Imhvc3QxIj48dGV4dGFyZWEgZGlzYWJsZWQ+VGV4dGFyZWEgMjwvdGV4dGFyZWE+PC9kaXY+
Ci0KLTxkaXYgaWQ9Imhvc3QyIj48dGV4dGFyZWEgZGlzYWJsZWQ+VGV4dGFyZWEgMzwvdGV4dGFy
ZWE+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC10ZXh0YXJlYS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZGlzYWJsZWQtdGV4dGFyZWEuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1kaXNhYmxlZC10ZXh0YXJlYS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2Rpc2FibGVkJyBzdGF0ZSBvZiBhIHRl
eHRhcmVhIHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUgZGlzdHJpYnV0aW9u
LjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj5U
ZXh0YXJlYSAxPC90ZXh0YXJlYT4KLSAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVhMiI+VGV4dGFy
ZWEgMjwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPgotICAgIDx0ZXh0YXJl
YSBpZD0idGV4dGFyZWEzIiBkaXNhYmxlZD5UZXh0YXJlYSAzPC90ZXh0YXJlYT4KLSAgICA8dGV4
dGFyZWEgaWQ9InRleHRhcmVhNCIgZGlzYWJsZWQ+VGV4dGFyZWEgNDwvdGV4dGFyZWE+Ci08L2Rp
dj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKLQotaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRN
TCA9ICc8Y29udGVudCBzZWxlY3Q9IjpkaXNhYmxlZCI+PC9jb250ZW50Pic7Ci1ob3N0Mi53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmRpc2Fi
bGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICB0ZXh0YXJl
YTIuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwotICAgIHRleHRhcmVhNC5yZW1vdmVB
dHRyaWJ1dGUoJ2Rpc2FibGVkJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAw
KTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1hbmNob3ItZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xh
c3MtdXBkYXRlLWVuYWJsZWQtYW5jaG9yLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxl
ZC1hbmNob3ItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotCi08Ym9keT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFn
IGNhdGNoICdocmVmJyBhdHRyaWJ1dGUgb3IgcmVsZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0
cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0KLTxkaXY+PGEgaWQ9ImFuY2hvcjEiIGhyZWY9
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIj5BbmNob3IgMTwvYT48L2Rpdj4KLTxkaXY+PGEgaWQ9
ImFuY2hvcjQiIGhyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIj5BbmNob3IgNDwvYT48L2Rp
dj4KLQotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYW5jaG9yLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWFu
Y2hvci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYW5jaG9yLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
PgotCi08cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxl
YXNlICdocmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQot
PGRpdiBpZD0iaG9zdDEiPgotICAgIDxhIGlkPSJhbmNob3IxIiBocmVmPSJodHRwOi8vd3d3LmV4
YW1wbGUuY29tLyI+QW5jaG9yIDE8L2E+Ci0gICAgPGEgaWQ9ImFuY2hvcjIiIGhyZWY9Imh0dHA6
Ly93d3cuZXhhbXBsZS5jb20vIj5BbmNob3IgMjwvYT4KLTwvZGl2PgotCi08ZGl2IGlkPSJob3N0
MiI+Ci0gICAgPGEgaWQ9ImFuY2hvcjMiPkFuY2hvciAzPC9hPgotICAgIDxhIGlkPSJhbmNob3I0
Ij5BbmNob3IgNDwvYT4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQiPjwvY29u
dGVudD4nOwotaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29u
dGVudCBzZWxlY3Q9IjplbmFibGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICBhbmNob3IyLnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpOwotICAgIGFuY2hvcjQu
c2V0QXR0cmlidXRlKCdocmVmJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJyk7Ci0gICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRh
dGUtZW5hYmxlZC1hcmVhLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWFyZWEtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWFyZWEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hl
YWQ+Ci0KLTxib2R5PgotCi08c3R5bGU+Ci1hcmVhIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci19
Ci08L3N0eWxlPgotCi08cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0
ZSBvciByZWxlYXNlICdocmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVu
LjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2Pgot
Ci08c2NyaXB0PgotZnVuY3Rpb24gY3JlYXRlQXJlYShocmVmLCB0ZXh0Q29udGVudCkKLXsKLSAg
ICB2YXIgYXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2FyZWEnKTsKLSAgICBpZiAoaHJl
ZikKLSAgICAgICAgYXJlYS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTsKLSAgICBhcmVhLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHRDb250ZW50KSk7Ci0KLSAgICBy
ZXR1cm4gYXJlYTsKLX0KLQotdmFyIGFyZWExID0gY3JlYXRlQXJlYSgnaHR0cDovL3d3dy5leGFt
cGxlLmNvbS8nLCAnQW5jaG9yIDEnKTsKLXZhciBhcmVhNCA9IGNyZWF0ZUFyZWEoJ2h0dHA6Ly93
d3cuZXhhbXBsZS5jb20vJywgJ0FuY2hvciA0Jyk7Ci0KLWhvc3QxLmFwcGVuZENoaWxkKGFyZWEx
KTsKLWhvc3QyLmFwcGVuZENoaWxkKGFyZWE0KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LWVuYWJsZWQtYXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1hcmVhLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5h
YmxlZC1hcmVhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08c3R5bGU+Ci1hcmVhIHsKLSAgICBk
aXNwbGF5OiBpbmxpbmU7Ci19Ci08L3N0eWxlPgotCi08cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0
Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNlICdocmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1
dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBp
ZD0iaG9zdDIiPjwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1mdW5jdGlvbiBjcmVhdGVBcmVhKGhyZWYs
IHRleHRDb250ZW50KQotewotICAgIHZhciBhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
YXJlYScpOwotICAgIGlmIChocmVmKQotICAgICAgICBhcmVhLnNldEF0dHJpYnV0ZSgnaHJlZics
IGhyZWYpOwotICAgIGFyZWEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4
dENvbnRlbnQpKTsKLQotICAgIHJldHVybiBhcmVhOwotfQotCi12YXIgYXJlYTEgPSBjcmVhdGVB
cmVhKCdodHRwOi8vd3d3LmV4YW1wbGUuY29tLycsICdBbmNob3IgMScpOwotdmFyIGFyZWEyID0g
Y3JlYXRlQXJlYSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8nLCAnQW5jaG9yIDInKTsKLXZhciBh
cmVhMyA9IGNyZWF0ZUFyZWEobnVsbCwgJ0FuY2hvciAzJyk7Ci12YXIgYXJlYTQgPSBjcmVhdGVB
cmVhKG51bGwsICdBbmNob3IgNCcpOwotCi1ob3N0MS5hcHBlbmRDaGlsZChhcmVhMSk7Ci1ob3N0
MS5hcHBlbmRDaGlsZChhcmVhMik7Ci1ob3N0Mi5hcHBlbmRDaGlsZChhcmVhMyk7Ci1ob3N0Mi5h
cHBlbmRDaGlsZChhcmVhNCk7Ci0KLWhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5l
ckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJhcmVhOmVuYWJsZWQiPjwvY29udGVudD4nOwotaG9z
dDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9
ImFyZWE6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0g
ICAgYXJlYTIucmVtb3ZlQXR0cmlidXRlKCdocmVmJyk7Ci0gICAgYXJlYTQuc2V0QXR0cmlidXRl
KCdocmVmJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJyk7Ci0gICAgaWYgKHRlc3RSdW5uZXIp
Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNl
dWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYnV0dG9uLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVk
LWJ1dHRvbi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYnV0dG9uLWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2VuYWJsZWQn
IHN0YXRlIG9mIGEgYnV0dG9uIHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUg
ZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjxidXR0b24+QnV0dG9uIDE8L2J1
dHRvbj48L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPjxidXR0b24+QnV0dG9uIDQ8L2J1dHRvbj48
L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYnV0dG9uLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVk
LWJ1dHRvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtYnV0dG9uLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMzcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5PgotCi08cD5XaGVuIHRoZSAnZW5hYmxlZCcgc3RhdGUgb2YgYSBidXR0b24gdGFnIGlzIGNo
YW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlk
PSJob3N0MSI+Ci0gICAgPGJ1dHRvbiBpZD0iYnV0dG9uMSI+QnV0dG9uIDE8L2J1dHRvbj4KLSAg
ICA8YnV0dG9uIGlkPSJidXR0b24yIj5CdXR0b24gMjwvYnV0dG9uPgotPC9kaXY+Ci0KLTxkaXYg
aWQ9Imhvc3QyIj4KLSAgICA8YnV0dG9uIGlkPSJidXR0b24zIiBkaXNhYmxlZD5CdXR0b24gMzwv
YnV0dG9uPgotICAgIDxidXR0b24gaWQ9ImJ1dHRvbjQiIGRpc2FibGVkPkJ1dHRvbiA0PC9idXR0
b24+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjplbmFibGVkIj48L2NvbnRlbnQ+JzsKLWhv
c3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0
PSI6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAg
YnV0dG9uMi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0gICAgYnV0dG9uNC5yZW1v
dmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19
LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1maWVsZHNldC1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1maWVsZHNldC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LWVuYWJsZWQtZmllbGRzZXQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+Ci0KLTxib2R5
PgotCi08cD5XaGVuIHRoZSAnZW5hYmxlZCcgc3RhdGUgb2YgYSBmaWVsZHNldCB0YWcgaXMgY2hh
bmdlZCwgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9
Imhvc3QxIj48ZmllbGRzZXQgaWQ9ImZpZWxkc2V0MSIgZGlzYWJsZWQ+RmllbGRzZXQgMTwvZmll
bGRzZXQ+PC9kaXY+Ci0KLTxkaXYgaWQ9Imhvc3QyIj48ZmllbGRzZXQgaWQ9ImZpZWxkc2V0NCIg
ZGlzYWJsZWQ+RmllbGRzZXQgNDwvZmllbGRzZXQ+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1l
bmFibGVkLWZpZWxkc2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWZpZWxkc2V0Lmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRh
dGUtZW5hYmxlZC1maWVsZHNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUg
J2VuYWJsZWQnIHN0YXRlIG9mIGEgZmllbGRzZXQgdGFnIGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8g
aW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGZp
ZWxkc2V0IGlkPSJmaWVsZHNldDEiPkZpZWxkc2V0IDE8L2ZpZWxkc2V0PgotICAgIDxmaWVsZHNl
dCBpZD0iZmllbGRzZXQyIj5GaWVsZHNldCAyPC9maWVsZHNldD4KLTwvZGl2PgotCi08ZGl2IGlk
PSJob3N0MiI+Ci0gICAgPGZpZWxkc2V0IGlkPSJmaWVsZHNldDMiIGRpc2FibGVkPkZpZWxkc2V0
IDM8L2ZpZWxkc2V0PgotICAgIDxmaWVsZHNldCBpZD0iZmllbGRzZXQ0IiBkaXNhYmxlZD5GaWVs
ZHNldCA0PC9maWVsZHNldD4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQiPjwv
Y29udGVudD4nOwotaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8
Y29udGVudCBzZWxlY3Q9IjplbmFibGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5j
dGlvbigpIHsKLSAgICBmaWVsZHNldDIuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwot
ICAgIGZpZWxkc2V0NC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7Ci0gICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5h
YmxlZC1pbnB1dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1pbnB1dC1leHBlY3RlZC5odG1s
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWVuYWJsZWQtaW5wdXQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+
Ci0KLTxib2R5PgotCi08cD5XaGVuIHRoZSAnZW5hYmxlZCcgc3RhdGUgb2YgYW4gaW5wdXQgdGFn
IGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08
ZGl2IGlkPSJob3N0MSI+PGlucHV0IHZhbHVlPSJJbnB1dCAxIj48L2Rpdj4KLQotPGRpdiBpZD0i
aG9zdDIiPjxpbnB1dCB2YWx1ZT0iSW5wdXQgNCI+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
LQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1l
bmFibGVkLWlucHV0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLWlucHV0Lmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5h
YmxlZC1pbnB1dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2VuYWJsZWQn
IHN0YXRlIG9mIGFuIGlucHV0IHRhZyBpcyBjaGFuZ2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUg
ZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPgotICAgIDxpbnB1dCBpZD0iaW5w
dXQxIiB2YWx1ZT0iSW5wdXQgMSI+Ci0gICAgPGlucHV0IGlkPSJpbnB1dDIiIHZhbHVlPSJJbnB1
dCAyIj4KLTwvZGl2PgotCi08ZGl2IGlkPSJob3N0MiI+Ci0gICAgPGlucHV0IGlkPSJpbnB1dDMi
IHZhbHVlPSJJbnB1dCAzIiBkaXNhYmxlZD4KLSAgICA8aW5wdXQgaWQ9ImlucHV0NCIgdmFsdWU9
IklucHV0IDQiIGRpc2FibGVkPgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLWhvc3QxLndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZW5hYmxlZCI+
PC9jb250ZW50Pic7Ci1ob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0g
Jzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewotICAgIGlucHV0Mi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7Ci0g
ICAgaW5wdXQ0LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsKLSAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKLX0sIDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVk
LW9wdGdyb3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtb3B0Z3JvdXAtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWVuYWJsZWQtb3B0Z3JvdXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEyICswLDAgQEAKLVdoZW4gYW4gb3B0Z3JvdXAgZWxlbWVudCBiZWNhbWUgJ2VuYWJs
ZWQnIG9yIG5vdC0nZW5hYmxlZCcsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLgotCi1TaW5j
ZSBhbiBvcHRncm91cCBlbGVtZW50IGRvZXMgbm90IGNyZWF0ZSBhIHJlbmRlcmVyLCB3ZSBjYW5u
b3QgY2hlY2sgdGhpcyB1c2luZyByZWZ0ZXN0LgotCi1QQVNTIG5vZGVzMS5sZW5ndGggaXMgMQot
UEFTUyBub2RlczEuaXRlbSgwKS5pbm5lckhUTUwgaXMgIm9wdGdyb3VwIDEiCi1QQVNTIG5vZGVz
Mi5sZW5ndGggaXMgMQotUEFTUyBub2RlczIuaXRlbSgwKS5pbm5lckhUTUwgaXMgIm9wdGdyb3Vw
IDQiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFi
bGVkLW9wdGdyb3VwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9wdGdyb3VwLmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUt
ZW5hYmxlZC1vcHRncm91cC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU4ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFuIG9w
dGdyb3VwIGVsZW1lbnQgYmVjYW1lICdlbmFibGVkJyBvciBub3QtJ2VuYWJsZWQnLCBkaXN0cmli
dXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci08cD5TaW5jZSBhbiBvcHRncm91cCBlbGVtZW50IGRv
ZXMgbm90IGNyZWF0ZSBhIHJlbmRlcmVyLCB3ZSBjYW5ub3QgY2hlY2sgdGhpcyB1c2luZyByZWZ0
ZXN0LjwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJob3N0MSI+Ci0g
ICAgICAgIDxvcHRncm91cCBpZD0ib3B0Z3JvdXAxIj5vcHRncm91cCAxPC9vcHRncm91cD4KLSAg
ICAgICAgPG9wdGdyb3VwIGlkPSJvcHRncm91cDIiPm9wdGdyb3VwIDI8L29wdGdyb3VwPgotICAg
IDwvZGl2PgotCi0gICAgPGRpdiBpZD0iaG9zdDIiPgotICAgICAgICA8b3B0Z3JvdXAgaWQ9Im9w
dGdyb3VwMyIgZGlzYWJsZWQ+b3B0Z3JvdXAgMzwvb3B0Z3JvdXA+Ci0gICAgICAgIDxvcHRncm91
cCBpZD0ib3B0Z3JvdXA0IiBkaXNhYmxlZD5vcHRncm91cCA0PC9vcHRncm91cD4KLSAgICA8L2Rp
dj4KLTwvZGl2PgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWpzVGVz
dElzQXN5bmMgPSB0cnVlOwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci12YXIgc2hhZG93Um9vdDIgPSBob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci0KLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjplbmFi
bGVkIj4nOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJs
ZWQiPic7Ci0KLXZhciBjb250ZW50MSA9IHNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRl
bnQnKTsKLXZhciBjb250ZW50MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQn
KTsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBvcHRncm91cDIuc2V0QXR0cmlidXRl
KCdkaXNhYmxlZCcsIHRydWUpOwotICAgIG9wdGdyb3VwNC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2Fi
bGVkJyk7Ci0KLSAgICBub2RlczEgPSBjb250ZW50MS5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0g
ICAgc2hvdWxkQmUoJ25vZGVzMS5sZW5ndGgnLCAnMScpOwotICAgIHNob3VsZEJlKCdub2RlczEu
aXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGdyb3VwIDEiJyk7Ci0KLSAgICBub2RlczIgPSBjb250
ZW50Mi5nZXREaXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMi5sZW5ndGgn
LCAnMScpOwotICAgIHNob3VsZEJlKCdub2RlczIuaXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGdy
b3VwIDQiJyk7Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1MID0gIiI7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtb3B0
aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtb3B0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVw
ZGF0ZS1lbmFibGVkLW9wdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIg
KzAsMCBAQAotV2hlbiBhbiBvcHRpb24gZWxlbWVudCBiZWNhbWUgJ2VuYWJsZWQnIG9yIG5vdC0n
ZW5hYmxlZCcsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLgotCi1TaW5jZSBhbiBvcHRpb24g
ZWxlbWVudCBkb2VzIG5vdCBjcmVhdGUgYSByZW5kZXJlciwgd2UgY2Fubm90IGNoZWNrIHRoaXMg
dXNpbmcgcmVmdGVzdC4KLQotUEFTUyBub2RlczEubGVuZ3RoIGlzIDEKLVBBU1Mgbm9kZXMxLml0
ZW0oMCkuaW5uZXJIVE1MIGlzICJvcHRpb24gMSIKLVBBU1Mgbm9kZXMyLmxlbmd0aCBpcyAxCi1Q
QVNTIG5vZGVzMi5pdGVtKDApLmlubmVySFRNTCBpcyAib3B0aW9uIDQiCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9wdGlvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRh
dGUtZW5hYmxlZC1vcHRpb24uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLW9wdGlvbi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFuIG9wdGlvbiBlbGVtZW50IGJlY2FtZSAnZW5h
YmxlZCcgb3Igbm90LSdlbmFibGVkJywgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uPC9wPgot
PHA+U2luY2UgYW4gb3B0aW9uIGVsZW1lbnQgZG9lcyBub3QgY3JlYXRlIGEgcmVuZGVyZXIsIHdl
IGNhbm5vdCBjaGVjayB0aGlzIHVzaW5nIHJlZnRlc3QuPC9wPgotCi08ZGl2IGlkPSJjb250YWlu
ZXIiPgotICAgIDxkaXYgaWQ9Imhvc3QxIj4KLSAgICAgICAgPG9wdGlvbiBpZD0ib3B0aW9uMSI+
b3B0aW9uIDE8L29wdGlvbj4KLSAgICAgICAgPG9wdGlvbiBpZD0ib3B0aW9uMiI+b3B0aW9uIDI8
L29wdGlvbj4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9Imhvc3QyIj4KLSAgICAgICAgPG9w
dGlvbiBpZD0ib3B0aW9uMyIgZGlzYWJsZWQ+b3B0aW9uIDM8L29wdGlvbj4KLSAgICAgICAgPG9w
dGlvbiBpZD0ib3B0aW9uNCIgZGlzYWJsZWQ+b3B0aW9uIDQ8L29wdGlvbj4KLSAgICA8L2Rpdj4K
LTwvZGl2PgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLWpzVGVzdElz
QXN5bmMgPSB0cnVlOwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci12YXIgc2hhZG93Um9vdDIgPSBob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0KLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9IjplbmFibGVk
Ij4nOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOmVuYWJsZWQi
Pic7Ci0KLXZhciBjb250ZW50MSA9IHNoYWRvd1Jvb3QxLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQn
KTsKLXZhciBjb250ZW50MiA9IHNoYWRvd1Jvb3QyLnF1ZXJ5U2VsZWN0b3IoJ2NvbnRlbnQnKTsK
LQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBvcHRpb24yLnNldEF0dHJpYnV0ZSgnZGlz
YWJsZWQnLCB0cnVlKTsKLSAgICBvcHRpb240LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTsK
LQotICAgIG5vZGVzMSA9IGNvbnRlbnQxLmdldERpc3RyaWJ1dGVkTm9kZXMoKTsKLSAgICBzaG91
bGRCZSgnbm9kZXMxLmxlbmd0aCcsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMS5pdGVtKDAp
LmlubmVySFRNTCcsICcib3B0aW9uIDEiJyk7Ci0KLSAgICBub2RlczIgPSBjb250ZW50Mi5nZXRE
aXN0cmlidXRlZE5vZGVzKCk7Ci0gICAgc2hvdWxkQmUoJ25vZGVzMi5sZW5ndGgnLCAnMScpOwot
ICAgIHNob3VsZEJlKCdub2RlczIuaXRlbSgwKS5pbm5lckhUTUwnLCAnIm9wdGlvbiA0IicpOwot
Ci0gICAgY29udGFpbmVyLmlubmVySFRNTCA9ICIiOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwg
MCk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFibGVkLXNlbGVjdC1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9j
bGFzcy11cGRhdGUtZW5hYmxlZC1zZWxlY3QtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1lbmFi
bGVkLXNlbGVjdC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxw
PldoZW4gdGhlICdlbmFibGVkJyBzdGF0ZSBvZiBhIHNlbGVjdCB0YWcgaXMgY2hhbmdlZCwgd2Ug
aGF2ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48
c2VsZWN0PjxvcHRpb24+U2VsZWN0IDE8L29wdGlvbj48L3NlbGVjdD48L2Rpdj4KLQotPGRpdiBp
ZD0iaG9zdDIiPjxzZWxlY3Q+PG9wdGlvbj5TZWxlY3QgNDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2
PgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1zZWxlY3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtc2Vs
ZWN0Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC1zZWxlY3QuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+
Ci0KLTxwPldoZW4gdGhlICdlbmFibGVkJyBzdGF0ZSBvZiBhIHNlbGVjdCB0YWcgaXMgY2hhbmdl
ZCwgd2UgaGF2ZSB0byBpbnZhbGlkYXRlIGRpc3RyaWJ1dGlvbi48L3A+Ci0KLTxkaXYgaWQ9Imhv
c3QxIj4KLSAgICA8c2VsZWN0IGlkPSJzZWxlY3QxIj48b3B0aW9uPlNlbGVjdCAxPC9vcHRpb24+
PC9zZWxlY3Q+Ci0gICAgPHNlbGVjdCBpZD0ic2VsZWN0MiI+PG9wdGlvbj5TZWxlY3QgMjwvb3B0
aW9uPjwvc2VsZWN0PgotPC9kaXY+Ci0KLTxkaXYgaWQ9Imhvc3QyIj4KLSAgICA8c2VsZWN0IGlk
PSJzZWxlY3QzIiBkaXNhYmxlZD48b3B0aW9uPlNlbGVjdCAzPC9vcHRpb24+PC9zZWxlY3Q+Ci0g
ICAgPHNlbGVjdCBpZD0ic2VsZWN0NCIgZGlzYWJsZWQ+PG9wdGlvbj5TZWxlY3QgNDwvb3B0aW9u
Pjwvc2VsZWN0PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLWhvc3QxLndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZW5hYmxlZCI+PC9jb250ZW50
Pic7Ci1ob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0gJzxjb250ZW50
IHNlbGVjdD0iOmVuYWJsZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewotICAgIHNlbGVjdDIuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwotICAgIHNlbGVj
dDQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpOwotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtdGV4dGFy
ZWEtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtdGV4dGFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNz
LXVwZGF0ZS1lbmFibGVkLXRleHRhcmVhLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9oZWFkPgot
Ci08Ym9keT4KLQotPHA+V2hlbiB0aGUgJ2VuYWJsZWQnIHN0YXRlIG9mIGEgdGV4dGFyZWEgdGFn
IGlzIGNoYW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08
ZGl2IGlkPSJob3N0MSI+PHRleHRhcmVhPlRleHRhcmVhIDE8L3RleHRhcmVhPjwvZGl2PgotCi08
ZGl2IGlkPSJob3N0MiI+PHRleHRhcmVhPlRleHRhcmVhIDQ8L3RleHRhcmVhPjwvZGl2PgotCi08
L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1
ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC10ZXh0YXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtZW5hYmxlZC10ZXh0YXJl
YS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cHNldWRvY2xhc3MtdXBkYXRlLWVuYWJsZWQtdGV4dGFyZWEuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+
Ci0KLTxwPldoZW4gdGhlICdlbmFibGVkJyBzdGF0ZSBvZiBhIHRleHRhcmVhIHRhZyBpcyBjaGFu
Z2VkLCB3ZSBoYXZlIHRvIGludmFsaWRhdGUgZGlzdHJpYnV0aW9uLjwvcD4KLQotPGRpdiBpZD0i
aG9zdDEiPgotICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj5UZXh0YXJlYSAxPC90ZXh0YXJl
YT4KLSAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVhMiI+VGV4dGFyZWEgMjwvdGV4dGFyZWE+Ci08
L2Rpdj4KLQotPGRpdiBpZD0iaG9zdDIiPgotICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWEzIiBk
aXNhYmxlZD5UZXh0YXJlYSAzPC90ZXh0YXJlYT4KLSAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVh
NCIgZGlzYWJsZWQ+VGV4dGFyZWEgNDwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQot
aG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxl
Y3Q9IjplbmFibGVkIj48L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci0K
LXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgdGV4dGFyZWEyLnNldEF0dHJpYnV0ZSgnZGlz
YWJsZWQnLCB0cnVlKTsKLSAgICB0ZXh0YXJlYTQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcp
OwotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWluZGV0ZXJtaW5hdGUtaW5wdXQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWluZGV0
ZXJtaW5hdGUtaW5wdXQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1pbmRldGVybWluYXRlLWlu
cHV0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotCi08cD5XaGVuIGlucHV0IGJlY2FtZSAnaW5kZXRl
cm1pbmF0ZScgc3RhdGUgb3Igbm90LSdpbmRldGVybWluYXRlJyBzdGF0ZSwgZGlzdHJpYnV0aW9u
IHNob3VsZCBoYXBwZW4uPC9wPgotCi08ZGl2IGlkPSJob3N0Ij48c3Bhbj5zZXBhcmF0b3IgMTwv
c3Bhbj48c3Bhbj5zZXBhcmF0b3IgMjwvc3Bhbj48aW5wdXQgaWQ9ImlucHV0MyIgdHlwZT0iY2hl
Y2tib3giIGluZGV0ZXJtaW5hdGU9InRydWUiPjxzcGFuPnNlcGFyYXRvciAzPC9zcGFuPjxzcGFu
PnNlcGFyYXRvciA0PC9zcGFuPjxpbnB1dCBpZD0iaW5wdXQ1IiB0eXBlPSJjaGVja2JveCIgaW5k
ZXRlcm1pbmF0ZT0idHJ1ZSI+PHNwYW4+c2VwYXJhdG9yIDU8L3NwYW4+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1pbnB1dDMuaW5kZXRlcm1pbmF0ZSA9IHRydWU7Ci1pbnB1dDUuaW5kZXRlcm1pbmF0ZSA9
IHRydWU7Ci08L3NjcmlwdD4KLQotCi08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtaW5kZXRlcm1pbmF0ZS1pbnB1
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9j
bGFzcy11cGRhdGUtaW5kZXRlcm1pbmF0ZS1pbnB1dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWluZGV0ZXJt
aW5hdGUtaW5wdXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxs
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci0KLTxwPldoZW4gaW5wdXQgYmVjYW1l
ICdpbmRldGVybWluYXRlJyBzdGF0ZSBvciBub3QtJ2luZGV0ZXJtaW5hdGUnIHN0YXRlLCBkaXN0
cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QiPgotICAgIDxpbnB1
dCBpZD0iaW5wdXQxIiB0eXBlPSJjaGVja2JveCI+Ci0gICAgPHNwYW4+c2VwYXJhdG9yIDE8L3Nw
YW4+Ci0gICAgPGlucHV0IGlkPSJpbnB1dDIiIHR5cGU9ImNoZWNrYm94Ij4KLSAgICA8c3Bhbj5z
ZXBhcmF0b3IgMjwvc3Bhbj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0MyIgdHlwZT0iY2hlY2tib3gi
PgotICAgIDxzcGFuPnNlcGFyYXRvciAzPC9zcGFuPgotICAgIDxpbnB1dCBpZD0iaW5wdXQ0IiB0
eXBlPSJ0ZXh0Ij4KLSAgICA8c3Bhbj5zZXBhcmF0b3IgNDwvc3Bhbj4KLSAgICA8aW5wdXQgaWQ9
ImlucHV0NSIgdHlwZT0idGV4dCI+Ci0gICAgPHNwYW4+c2VwYXJhdG9yIDU8L3NwYW4+Ci0gICAg
PGlucHV0IGlkPSJpbnB1dDYiIHR5cGU9InRleHQiPgotPC9kaXY+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1pbnB1
dDEuaW5kZXRlcm1pbmF0ZSA9IHRydWU7Ci1pbnB1dDIuaW5kZXRlcm1pbmF0ZSA9IHRydWU7Ci1p
bnB1dDQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7Ci1pbnB1dDUuaW5kZXRlcm1pbmF0ZSA9IHRydWU7
Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFk
b3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9InNwYW4sIGlucHV0OmluZGV0ZXJt
aW5hdGUiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGlucHV0
MS5pbmRldGVybWluYXRlID0gZmFsc2U7Ci0gICAgaW5wdXQzLmluZGV0ZXJtaW5hdGUgPSB0cnVl
OwotICAgIGlucHV0NC5pbmRldGVybWluYXRlID0gZmFsc2U7Ci0gICAgaW5wdXQ2LmluZGV0ZXJt
aW5hdGUgPSB0cnVlOwotICAgIAotICAgIGlucHV0Mi50eXBlID0gJ3RleHQnOwotICAgIGlucHV0
NS50eXBlID0gJ2NoZWNrYm94JzsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDAp
OwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1pbmRldGVybWluYXRlLXByb2dyZXNzLWV4
cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS1pbmRldGVybWluYXRlLXByb2dyZXNzLWV4cGVjdGVkLmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFz
cy11cGRhdGUtaW5kZXRlcm1pbmF0ZS1wcm9ncmVzcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
dHlsZT4KLXByb2dyZXNzIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08L3N0
eWxlPgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiBwcm9ncmVzcyBiZWNhbWUgJ2luZGV0
ZXJtaW5hdGUnIG9yIG5vdC0naW5kZXRlcm1pbmF0ZScsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFw
cGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdCI+PHByb2dyZXNzIGlkPSJwcm9ncmVzczEiPjwvcHJv
Z3Jlc3M+PHNwYW4+c2VwYXJhdG9yPC9zcGFuPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWluZGV0
ZXJtaW5hdGUtcHJvZ3Jlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWluZGV0ZXJtaW5hdGUtcHJvZ3Jlc3MuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2Ns
YXNzLXVwZGF0ZS1pbmRldGVybWluYXRlLXByb2dyZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1wcm9ncmVzcyB7
Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLQot
PGJvZHk+Ci0KLTxwPldoZW4gcHJvZ3Jlc3MgYmVjYW1lICdpbmRldGVybWluYXRlJyBvciBub3Qt
J2luZGV0ZXJtaW5hdGUnLCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBlbi48L3A+Ci0KLTxkaXYg
aWQ9Imhvc3QiPgotICAgIDxwcm9ncmVzcyBpZD0icHJvZ3Jlc3MxIj48L3Byb2dyZXNzPgotICAg
IDxzcGFuPnNlcGFyYXRvcjwvc3Bhbj4KLSAgICA8cHJvZ3Jlc3MgaWQ9InByb2dyZXNzMiI+PC9w
cm9ncmVzcz4KLTwvZGl2PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNl
bGVjdD0ic3Bhbixwcm9ncmVzczppbmRldGVybWluYXRlIj48L2NvbnRlbnQ+JzsKLXByb2dyZXNz
MS52YWx1ZSA9ICczMCc7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgcHJvZ3Jlc3Mx
LnJlbW92ZUF0dHJpYnV0ZSgndmFsdWUnKTsKLSAgICBwcm9ncmVzczIudmFsdWUgPSAnNzAnOwot
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xh
c3MtdXBkYXRlLWxpbmstYW5jaG9yLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1saW5rLWFuY2hvci1leHBl
Y3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWxpbmstYW5jaG9yLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLQotPGJvZHk+
Ci0KLTxwPldoZW4gYW4gYW5jaG9yIHRhZyBjYXRjaCAnaHJlZicgYXR0cmlidXRlIG9yIHJlbGVh
c2UgJ2hyZWYnIGF0dHJpYnV0ZSwgZGlzdHJpYnV0aW9uIHNob3VsZCBoYXBwZW4uPC9wPgotCi08
ZGl2PjxhIGlkPSJhbmNob3IxIiBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+QW5jaG9y
IDE8L2E+PC9kaXY+Ci08ZGl2PjxhIGlkPSJhbmNob3I0IiBocmVmPSJodHRwOi8vd3d3LmV4YW1w
bGUuY29tLyI+QW5jaG9yIDQ8L2E+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1saW5rLWFuY2hv
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9j
bGFzcy11cGRhdGUtbGluay1hbmNob3IuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS1saW5rLWFuY2hvci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBh
dHRyaWJ1dGUgb3IgcmVsZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxk
IGhhcHBlbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8YSBpZD0iYW5jaG9yMSIgaHJl
Zj0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iPkFuY2hvciAxPC9hPgotICAgIDxhIGlkPSJhbmNo
b3IyIiBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+QW5jaG9yIDI8L2E+Ci08L2Rpdj4K
LQotPGRpdiBpZD0iaG9zdDIiPgotICAgIDxhIGlkPSJhbmNob3IzIj5BbmNob3IgMzwvYT4KLSAg
ICA8YSBpZD0iYW5jaG9yNCI+QW5jaG9yIDQ8L2E+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotaG9z
dDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9
IjpsaW5rIj48L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5l
ckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSI6bGluayI+PC9jb250ZW50Pic7Ci0KLXNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7Ci0gICAgYW5jaG9yMi5yZW1vdmVBdHRyaWJ1dGUoJ2hyZWYnKTsKLSAg
ICBhbmNob3I0LnNldEF0dHJpYnV0ZSgnaHJlZicsICdodHRwOi8vd3d3LmV4YW1wbGUuY29tLycp
OwotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRv
Y2xhc3MtdXBkYXRlLWxpbmstYXJlYS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtbGluay1hcmVhLWV4cGVj
dGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9wc2V1ZG9jbGFzcy11cGRhdGUtbGluay1hcmVhLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPC9o
ZWFkPgotCi08Ym9keT4KLQotPHN0eWxlPgotYXJlYSB7Ci0gICAgZGlzcGxheTogaW5saW5lOwot
fQotPC9zdHlsZT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBhdHRyaWJ1
dGUgb3IgcmVsZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxkIGhhcHBl
bi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4KLTxkaXYgaWQ9Imhvc3QyIj48L2Rpdj4K
LQotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZUFyZWEoaHJlZiwgdGV4dENvbnRlbnQpCi17Ci0g
ICAgdmFyIGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhcmVhJyk7Ci0gICAgaWYgKGhy
ZWYpCi0gICAgICAgIGFyZWEuc2V0QXR0cmlidXRlKCdocmVmJywgaHJlZik7Ci0gICAgYXJlYS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0Q29udGVudCkpOwotCi0gICAg
cmV0dXJuIGFyZWE7Ci19Ci0KLXZhciBhcmVhMSA9IGNyZWF0ZUFyZWEoJ2h0dHA6Ly93d3cuZXhh
bXBsZS5jb20vJywgJ0FuY2hvciAxJyk7Ci12YXIgYXJlYTQgPSBjcmVhdGVBcmVhKCdodHRwOi8v
d3d3LmV4YW1wbGUuY29tLycsICdBbmNob3IgNCcpOwotCi1ob3N0MS5hcHBlbmRDaGlsZChhcmVh
MSk7Ci1ob3N0Mi5hcHBlbmRDaGlsZChhcmVhNCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS1saW5rLWFyZWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcHNldWRvY2xhc3MtdXBkYXRlLWxpbmstYXJlYS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLWxpbmstYXJl
YS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHN0eWxlPgotYXJlYSB7Ci0gICAgZGlzcGxheTog
aW5saW5lOwotfQotPC9zdHlsZT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVm
JyBhdHRyaWJ1dGUgb3IgcmVsZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hv
dWxkIGhhcHBlbi48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4KLTxkaXYgaWQ9Imhvc3Qy
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLQotZnVuY3Rpb24gY3JlYXRlQXJlYShocmVmLCB0ZXh0Q29u
dGVudCkKLXsKLSAgICB2YXIgYXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2FyZWEnKTsK
LSAgICBpZiAoaHJlZikKLSAgICAgICAgYXJlYS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTsK
LSAgICBhcmVhLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHRDb250ZW50
KSk7Ci0KLSAgICByZXR1cm4gYXJlYTsKLX0KLQotdmFyIGFyZWExID0gY3JlYXRlQXJlYSgnaHR0
cDovL3d3dy5leGFtcGxlLmNvbS8nLCAnQW5jaG9yIDEnKTsKLXZhciBhcmVhMiA9IGNyZWF0ZUFy
ZWEoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJywgJ0FuY2hvciAyJyk7Ci12YXIgYXJlYTMgPSBj
cmVhdGVBcmVhKG51bGwsICdBbmNob3IgMycpOwotdmFyIGFyZWE0ID0gY3JlYXRlQXJlYShudWxs
LCAnQW5jaG9yIDQnKTsKLQotaG9zdDEuYXBwZW5kQ2hpbGQoYXJlYTEpOwotaG9zdDEuYXBwZW5k
Q2hpbGQoYXJlYTIpOwotaG9zdDIuYXBwZW5kQ2hpbGQoYXJlYTMpOwotaG9zdDIuYXBwZW5kQ2hp
bGQoYXJlYTQpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5uZXJIVE1MID0g
Jzxjb250ZW50IHNlbGVjdD0iYXJlYTpsaW5rIj48L2NvbnRlbnQ+JzsKLWhvc3QyLndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJhcmVhOmxpbmsi
PjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIGFyZWEyLnJlbW92
ZUF0dHJpYnV0ZSgnaHJlZicpOwotICAgIGFyZWE0LnNldEF0dHJpYnV0ZSgnaHJlZicsICdodHRw
Oi8vd3d3LmV4YW1wbGUuY29tLycpOwotICAgIGlmICh0ZXN0UnVubmVyKQotICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS10YXJnZXQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXRhcmdldC1leHBlY3RlZC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBk
YXRlLXRhcmdldC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLQotPHA+V2hlbiA6dGFyZ2V0IGlzIGNo
YW5nZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlk
PSJob3N0Ij4KLSAgICA8ZGl2IGlkPSJ0YXJnZXQyIj50YXJnZXQgMjwvZGl2PgotPC9kaXY+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Bz
ZXVkb2NsYXNzLXVwZGF0ZS10YXJnZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXRhcmdldC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRl
LXRhcmdldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4KLQotPHA+V2hlbiA6dGFyZ2V0IGlzIGNoYW5n
ZWQsIHdlIGhhdmUgdG8gaW52YWxpZGF0ZSBkaXN0cmlidXRpb24uPC9wPgotCi08ZGl2IGlkPSJo
b3N0Ij4KLSAgICA8ZGl2IGlkPSJ0YXJnZXQxIj50YXJnZXQgMTwvZGl2PgotICAgIDxkaXYgaWQ9
InRhcmdldDIiPnRhcmdldCAyPC9kaXY+Ci0gICAgPGRpdiBpZD0idGFyZ2V0MyI+dGFyZ2V0IDM8
L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1sb2NhdGlvbi5oYXNoID0gJyN0YXJnZXQxJzsK
LQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2OnRhcmdldCI+PC9jb250ZW50
Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgbG9jYXRpb24uaGFzaCA9ICcjdGFy
Z2V0Mic7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9w
c2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRlZC1hbmNob3ItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXZpc2l0
ZWQtYW5jaG9yLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRlZC1hbmNob3ItZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotCi08Ym9keT4KLQotPHA+V2hlbiBhbiBhbmNob3IgdGFnIGNhdGNoICdocmVmJyBh
dHRyaWJ1dGUgb3IgcmVsZWFzZSAnaHJlZicgYXR0cmlidXRlLCBkaXN0cmlidXRpb24gc2hvdWxk
IGhhcHBlbi48L3A+Ci0KLTxkaXY+PGEgaWQ9ImFuY2hvcjEiIGhyZWY9Imh0dHA6Ly93d3cuZXhh
bXBsZS5jb20vIj5BbmNob3IgMTwvYT48L2Rpdj4KLTxkaXY+PGEgaWQ9ImFuY2hvcjQiIGhyZWY9
Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIj5BbmNob3IgNDwvYT48L2Rpdj4KLQotPC9ib2R5Pgot
PC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLXZpc2l0ZWQtYW5jaG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0ZS12aXNpdGVkLWFuY2hvci5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3Mt
dXBkYXRlLXZpc2l0ZWQtYW5jaG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzcgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotCi08cD5XaGVuIGFu
IGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNlICdocmVmJyBhdHRy
aWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEi
PgotICAgIDxhIGlkPSJhbmNob3IxIiBocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyI+QW5j
aG9yIDE8L2E+Ci0gICAgPGEgaWQ9ImFuY2hvcjIiIGhyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5j
b20vIj5BbmNob3IgMjwvYT4KLTwvZGl2PgotCi08ZGl2IGlkPSJob3N0MiI+Ci0gICAgPGEgaWQ9
ImFuY2hvcjMiPkFuY2hvciAzPC9hPgotICAgIDxhIGlkPSJhbmNob3I0Ij5BbmNob3IgNDwvYT4K
LTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotCi1ob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkuaW5u
ZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iOnZpc2l0ZWQiPjwvY29udGVudD4nOwotaG9zdDIu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9Ijp2
aXNpdGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICBhbmNo
b3IyLnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpOwotICAgIGFuY2hvcjQuc2V0QXR0cmlidXRlKCdo
cmVmJywgJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vJyk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Ci19LCAwKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRlZC1hcmVh
LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3BzZXVkb2NsYXNzLXVwZGF0ZS12aXNpdGVkLWFyZWEtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3BzZXVkb2NsYXNzLXVwZGF0
ZS12aXNpdGVkLWFyZWEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08L2hlYWQ+Ci0KLTxib2R5Pgot
Ci08c3R5bGU+Ci1hcmVhIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci19Ci08L3N0eWxlPgotCi08
cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJpYnV0ZSBvciByZWxlYXNlICdo
cmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFwcGVuLjwvcD4KLQotPGRpdiBp
ZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgotCi08c2NyaXB0PgotZnVu
Y3Rpb24gY3JlYXRlQXJlYShocmVmLCB0ZXh0Q29udGVudCkKLXsKLSAgICB2YXIgYXJlYSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2FyZWEnKTsKLSAgICBpZiAoaHJlZikKLSAgICAgICAgYXJl
YS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTsKLSAgICBhcmVhLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHRleHRDb250ZW50KSk7Ci0KLSAgICByZXR1cm4gYXJlYTsKLX0K
LQotdmFyIGFyZWExID0gY3JlYXRlQXJlYSgnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8nLCAnQW5j
aG9yIDEnKTsKLXZhciBhcmVhNCA9IGNyZWF0ZUFyZWEoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20v
JywgJ0FuY2hvciA0Jyk7Ci0KLWhvc3QxLmFwcGVuZENoaWxkKGFyZWExKTsKLWhvc3QyLmFwcGVu
ZENoaWxkKGFyZWE0KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcHNldWRvY2xhc3MtdXBkYXRlLXZpc2l0ZWQtYXJlYS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFz
cy11cGRhdGUtdmlzaXRlZC1hcmVhLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9wc2V1ZG9jbGFzcy11cGRhdGUtdmlzaXRlZC1hcmVhLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5PgotCi08c3R5bGU+Ci1hcmVhIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7
Ci19Ci08L3N0eWxlPgotCi08cD5XaGVuIGFuIGFuY2hvciB0YWcgY2F0Y2ggJ2hyZWYnIGF0dHJp
YnV0ZSBvciByZWxlYXNlICdocmVmJyBhdHRyaWJ1dGUsIGRpc3RyaWJ1dGlvbiBzaG91bGQgaGFw
cGVuLjwvcD4KLQotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2
PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotCi1mdW5jdGlvbiBjcmVhdGVBcmVhKGhyZWYsIHRleHRDb250ZW50KQot
ewotICAgIHZhciBhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXJlYScpOwotICAgIGlm
IChocmVmKQotICAgICAgICBhcmVhLnNldEF0dHJpYnV0ZSgnaHJlZicsIGhyZWYpOwotICAgIGFy
ZWEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dENvbnRlbnQpKTsKLQot
ICAgIHJldHVybiBhcmVhOwotfQotCi12YXIgYXJlYTEgPSBjcmVhdGVBcmVhKCdodHRwOi8vd3d3
LmV4YW1wbGUuY29tLycsICdBbmNob3IgMScpOwotdmFyIGFyZWEyID0gY3JlYXRlQXJlYSgnaHR0
cDovL3d3dy5leGFtcGxlLmNvbS8nLCAnQW5jaG9yIDInKTsKLXZhciBhcmVhMyA9IGNyZWF0ZUFy
ZWEobnVsbCwgJ0FuY2hvciAzJyk7Ci12YXIgYXJlYTQgPSBjcmVhdGVBcmVhKG51bGwsICdBbmNo
b3IgNCcpOwotCi1ob3N0MS5hcHBlbmRDaGlsZChhcmVhMSk7Ci1ob3N0MS5hcHBlbmRDaGlsZChh
cmVhMik7Ci1ob3N0Mi5hcHBlbmRDaGlsZChhcmVhMyk7Ci1ob3N0Mi5hcHBlbmRDaGlsZChhcmVh
NCk7Ci0KLWhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKS5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSJhcmVhOnZpc2l0ZWQiPjwvY29udGVudD4nOwotaG9zdDIud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImFyZWE6dmlzaXRlZCI+
PC9jb250ZW50Pic7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgYXJlYTIucmVtb3Zl
QXR0cmlidXRlKCdocmVmJyk7Ci0gICAgYXJlYTQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2h0dHA6
Ly93d3cuZXhhbXBsZS5jb20vJyk7Ci0gICAgaWYgKHRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVtb3ZlLXN0eWxlcy1pbi1z
aGFkb3ctY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9yZW1vdmUtc3R5bGVzLWluLXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZW1vdmUtc3R5
bGVzLWluLXNoYWRvdy1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEgKzAs
MCBAQAotUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlbW92ZS1zdHls
ZXMtaW4tc2hhZG93LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3JlbW92ZS1zdHlsZXMtaW4tc2hhZG93LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZW1vdmUtc3R5bGVzLWluLXNo
YWRvdy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotICAgIHZhciBz
ciA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIC8vIFRlc3QgdGhlIGNhc2U6
IHR3byBzdHlsZXMgYXJlIGluIHNoYWRvdyBkb20gc3VidHJlZSBhbmQgdGhleSBhcmUgbm90Ci0g
ICAgLy8gZGlyZWN0IGNoaWxyZW4gb2YgdGhlIHNoYWRvdyByb290LgotICAgIHNyLmlubmVySFRN
TCA9ICc8ZGl2PjxzdHlsZT5kaXYgeyBjb2xvcjogYmx1ZTsgfTwvc3R5bGU+SGVsbG88L2Rpdj48
ZGl2PjxzdHlsZT5zcGFuIHsgY29sb3I6IHJlZCB9PC9zdHlsZT48c3Bhbj5Xb3JsZDwvc3Bhbj48
L2Rpdj4nOwotICAgIHNyLmlubmVySFRNTCA9ICcnOwotCi0gICAgLy8gVGVzdCB0aGUgY2FzZTog
dHdvIHN0eWxlcyBhcmUgaW4gc2hhZG93IGRvbSBzdWJ0cmVlLCBidXQgb25lIGlzIGEgZGlyZWN0
Ci0gICAgLy8gY2hpbGQgb2Ygc2hhZG93IHJvb3QgYW5kIHNjb3BlZC4gVGhlIG90aGVyIGlzIG5v
dCBhIGRpcmVjdCBjaGlsZCBhbmQKLSAgICAvLyBub3Qgc2NvcGVkLgotICAgIHNyLmlubmVySFRN
TCA9ICc8c3R5bGUgc2NvcGVkPmRpdiB7IGNvbG9yOiBibHVlOyB9PC9zdHlsZT5IZWxsbzxkaXY+
PHN0eWxlPnNwYW4geyBjb2xvcjogcmVkIH08L3N0eWxlPjxzcGFuPldvcmxkPC9zcGFuPjwvZGl2
Pic7Ci0gICAgc3IuaW5uZXJIVE1MID0gJyc7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8IS0tIFtCdWcgMTAwNDU1XSwgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDQ1NSAtLT4KLSAgICA8IS0tIFtTaGFkb3dd
OiByZW1vdmluZyBzdHlsZXMgaW4gc2hhZG93IGRvbSBzdWJ0cmVlIGNhdXNlcyBjcmFzaC4gLS0+
Ci0gICAgPCEtLSBJZiB0aGlzIHRlc3QgcGFzc2VzLCB3ZSBjYW4gc2VlIGp1c3QgIlBBU1MiIHdp
dGhvdXQgYW55IGNyYXNoZXMuIC0tPgotICAgIDxkaXYgaWQ9Imhvc3QiPjwvZGl2PiAgCi0gICAg
PGRpdj5QQVNTPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWF0dHJpYnV0ZS1tb2RpZmllZC1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24t
YXR0cmlidXRlLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24tYXR0cmlidXRlLW1vZGlmaWVk
LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPjxkaXY+Ci0gICAgPGRp
dj5GPC9kaXY+Ci08L2Rpdj48L2Rpdj4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3JlcHJvamVjdGlvbi1hdHRyaWJ1dGUtbW9kaWZpZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWF0dHJpYnV0
ZS1tb2RpZmllZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcmVwcm9qZWN0aW9uLWF0dHJpYnV0ZS1tb2RpZmllZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDM0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08aHRtbD4KLTxib2R5Pgot
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPGRpdiBp
ZD0iaG9zdDEiPgotICAgIDxkaXY+QTwvZGl2PgotICAgIDxkaXY+QjwvZGl2PgotICAgIDxkaXY+
QzwvZGl2PgotICAgIDxkaXY+RDwvZGl2PgotICAgIDxkaXY+RTwvZGl2PgotICAgIDxkaXYgaWQ9
IkYiPkY8L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0
MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRp
diBpZD0iaG9zdDIiPjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+JzsKLQotdmFyIGhvc3QyID0gc2hh
ZG93Um9vdDEuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QyJyk7Ci12YXIgc2hhZG93Um9vdDIgPSBob3N0
Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNv
bnRlbnQgc2VsZWN0PSJkaXZbdGl0bGU9c2VsZWN0ZWRdIj48L2NvbnRlbnQ+JzsKLQotc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICBGLnRpdGxlID0gJ3NlbGVjdGVkJzsKLSAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7
Ci08L3NjcmlwdD4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9y
ZXByb2plY3Rpb24tY2xhc3NOYW1lLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlcHJvamVjdGlvbi1jbGFzc05hbWUtbW9k
aWZpZWQtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3JlcHJvamVjdGlvbi1jbGFzc05hbWUtbW9kaWZpZWQtZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0
bWw+Ci08Ym9keT4KLQotPGRpdiBpZD0iaG9zdCI+PGRpdj4KLSAgICA8ZGl2PkE8L2Rpdj4KLSAg
ICA8ZGl2PkQ8L2Rpdj4KLSAgICA8ZGl2PkY8L2Rpdj4KLTwvZGl2PjwvZGl2PgotCi08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWNsYXNzTmFt
ZS1tb2RpZmllZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9yZXByb2plY3Rpb24tY2xhc3NOYW1lLW1vZGlmaWVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2plY3Rpb24tY2xhc3NOYW1lLW1v
ZGlmaWVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRpdiBjbGFzcz0ic2VsZWN0
ZWQiPkE8L2Rpdj4KLSAgICA8ZGl2PkI8L2Rpdj4KLSAgICA8ZGl2PkM8L2Rpdj4KLSAgICA8ZGl2
IGNsYXNzPSJzZWxlY3RlZCI+RDwvZGl2PgotICAgIDxkaXY+RTwvZGl2PgotICAgIDxkaXYgaWQ9
IkYiPkY8L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0
MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRp
diBpZD0iaG9zdDIiPjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+JzsKLQotdmFyIGhvc3QyID0gc2hh
ZG93Um9vdDEuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QyJyk7Ci12YXIgc2hhZG93Um9vdDIgPSBob3N0
Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Mi5pbm5lckhUTUwgPSAnPGNv
bnRlbnQgc2VsZWN0PSIuc2VsZWN0ZWQiPjwvY29udGVudD4nOwotCi1zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewotICAgIEYuY2xhc3NOYW1lID0gJ3NlbGVjdGVkJzsKLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3Nj
cmlwdD4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2pl
Y3Rpb24taWQtbW9kaWZpZWQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWlkLW1vZGlmaWVkLWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXByb2pl
Y3Rpb24taWQtbW9kaWZpZWQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLQotPGRpdiBpZD0iaG9z
dCI+PGRpdj4KLSAgICA8ZGl2PkY8L2Rpdj4KLTwvZGl2PjwvZGl2PgotCi08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWlkLW1vZGlmaWVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlcHJvamVjdGlv
bi1pZC1tb2RpZmllZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvcmVwcm9qZWN0aW9uLWlkLW1vZGlmaWVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotPGJvZHk+Ci0KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJo
b3N0MSI+Ci0gICAgPGRpdiBpZD0ic2VsZWN0ZWQiPkE8L2Rpdj4KLSAgICA8ZGl2PkI8L2Rpdj4K
LSAgICA8ZGl2PkM8L2Rpdj4KLSAgICA8ZGl2PkQ8L2Rpdj4KLSAgICA8ZGl2PkU8L2Rpdj4KLSAg
ICA8ZGl2IGlkPSJGIj5GPC9kaXY+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotdmFyIHNoYWRvd1Jv
b3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDEuaW5uZXJI
VE1MID0gJzxkaXYgaWQ9Imhvc3QyIj48c2hhZG93Pjwvc2hhZG93PjwvZGl2Pic7Ci0KLXZhciBo
b3N0MiA9IHNoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCdob3N0MicpOwotdmFyIHNoYWRvd1Jv
b3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJI
VE1MID0gJzxjb250ZW50IHNlbGVjdD0iI3NlbGVjdGVkIj48L2NvbnRlbnQ+JzsKLQotc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICBBID0gc2VsZWN0ZWQ7Ci0gICAgQS5pZCA9ICcnOwotICAg
IEYuaWQgPSAnc2VsZWN0ZWQnOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLTwvc2NyaXB0PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc2l6ZS1pbi1zaGFkb3ctZG9tLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzaXpl
LWluLXNoYWRvdy1kb20tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzaXplLWluLXNoYWRvdy1kb20tZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzAsMCBAQAotUEFTUyBib3gub2Zmc2V0V2lkdGggaXMgMTE0
Ci1QQVNTIGJveC5vZmZzZXRIZWlnaHQgaXMgMTE0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3Jlc2l6ZS1pbi1zaGFkb3ctZG9tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3Jlc2l6ZS1pbi1zaGFkb3ctZG9tLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNpemUtaW4tc2hhZG93LWRvbS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLQotPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4K
LQotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZUJveChuYW1lKSB7Ci0gICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53aWR0aCA9ICcxMDBw
eCc7Ci0gICAgZGl2LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0gICAgZGl2LnN0eWxlLnJlc2l6
ZSA9ICdib3RoJzsKLSAgICBkaXYuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsKLSAgICBkaXYu
c3R5bGUuYmFja2dyb3VuZCA9ICdyZWQnOwotCi0gICAgcmV0dXJuIGRpdjsKLX0KLQotdmFyIHNo
YWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBib3ggPSBjcmVh
dGVCb3goJ2RhcmsnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoYm94KTsKLQotdmFyIHggPSBi
b3gub2Zmc2V0TGVmdCArIGJveC5vZmZzZXRXaWR0aDsKLXZhciB5ID0gYm94Lm9mZnNldExlZnQg
KyBib3gub2Zmc2V0V2lkdGg7Ci0KLWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggLSA3LCB5IC0g
Nyk7Ci1ldmVudFNlbmRlci5tb3VzZURvd24oKTsKLWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgg
KyA3LCB5ICsgNyk7Ci1ldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0KLXNob3VsZEJlKCdib3gub2Zm
c2V0V2lkdGgnLCAnMTE0Jyk7Ci1zaG91bGRCZSgnYm94Lm9mZnNldEhlaWdodCcsICcxMTQnKTsK
LQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9l
dmVudC1kaXNwYXRjaGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5n
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3OSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdHMg
dG8gZW5zdXJlIHRoYXQgZXZlbnQgZGlzcGF0Y2hpbmcgYmVoYXZlcyBhcyB0aGUgU2hhZG93IERP
TSBzcGVjIGRlc2NyaWJlcy4iKTsKLQotdmFyIGRlZmF1bHRQYWRkaW5nU2l6ZSA9IDQwOwotCi1m
dW5jdGlvbiBtb3ZlTW91c2VPdmVyKGVsZW1lbnQpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRT
ZW5kZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZhciB4
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFy
IHk7Ci0gICAgaWYgKGVsZW1lbnQuaGFzQ2hpbGROb2RlcygpIHx8IHdpbmRvdy5pbnRlcm5hbHMu
c2hhZG93Um9vdChlbGVtZW50KSkKLSAgICAgICAgeSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZGVm
YXVsdFBhZGRpbmdTaXplIC8gMjsKLSAgICBlbHNlCi0gICAgICAgIHkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyh4LCB5KTsKLX0KLQotZnVuY3Rpb24gdG91Y2hMb2NhdGlvbihub2RlKQotewotICAgIHZh
ciB4ID0gbm9kZS5vZmZzZXRMZWZ0ICsgNTsKLSAgICB2YXIgeSA9IG5vZGUub2Zmc2V0VG9wICsg
ZGVmYXVsdFBhZGRpbmdTaXplICsgNTsKLSAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KHgs
IHkpOwotICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKLSAgICBldmVudFNlbmRlci5sZWFw
Rm9yd2FyZCgxMDApOwotICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7Ci0gICAgZXZlbnRTZW5k
ZXIuY2FuY2VsVG91Y2hQb2ludCgwKTsKLX0KLQotZnVuY3Rpb24gc2VsZWN0VGV4dE5vZGUobm9k
ZSkKLXsKLSAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KG5vZGUsIDAsIG5vZGUs
IG5vZGUubGVuZ3RoKTsKLX0KLQotZnVuY3Rpb24gZHJhZ01vdXNlKG5vZGUpIHsKLSAgICB2YXIg
eCA9IG5vZGUub2Zmc2V0TGVmdCArIDU7Ci0gICAgdmFyIHkgPSBub2RlLm9mZnNldFRvcCArIGRl
ZmF1bHRQYWRkaW5nU2l6ZSArIDU7Ci0KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5sZWFwRm9y
d2FyZCgxMDApOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyAxMDAsIHkgKyAxMDAp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh4LCB5KTsKLX0KLQotZnVuY3Rpb24gc2Nyb2xsTW91c2VXaGVlbChub2RlKSB7Ci0gICAgdmFy
IHggPSBub2RlLm9mZnNldExlZnQgKyA1OwotICAgIHZhciB5ID0gbm9kZS5vZmZzZXRUb3AgKyBk
ZWZhdWx0UGFkZGluZ1NpemUgKyA1OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkoMCwgMTIwKTsKLX0KLQotdmFyIGV2ZW50
UmVjb3JkcyA9IHt9OwotCi1mdW5jdGlvbiBjbGVhckV2ZW50UmVjb3JkcygpCi17Ci0gICAgZXZl
bnRSZWNvcmRzID0ge307Ci19Ci0KLWZ1bmN0aW9uIGRpc3BhdGNoZWRFdmVudChldmVudFR5cGUp
Ci17Ci0gICAgdmFyIGV2ZW50cyA9IGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdOwotICAgIGlmICgh
ZXZlbnRzKQotICAgICAgICByZXR1cm4gW107Ci0gICAgcmV0dXJuIGV2ZW50czsKLX0KLQotZnVu
Y3Rpb24gcmVjb3JkRXZlbnQoZXZlbnQpCi17Ci0gICAgdmFyIGV2ZW50VHlwZSA9IGV2ZW50LnR5
cGU7Ci0gICAgaWYgKCFldmVudFJlY29yZHNbZXZlbnRUeXBlXSkgewotICAgICAgICBldmVudFJl
Y29yZHNbZXZlbnRUeXBlXSA9IFtdOwotICAgIH0KLSAgICB2YXIgZXZlbnRTdHJpbmcgPSAnJzsK
LSAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyBA
JyArIGV2ZW50LmN1cnJlbnRUYXJnZXQuaWQ7Ci0gICAgaWYgKGV2ZW50LnRhcmdldCkKLSAgICAg
ICAgZXZlbnRTdHJpbmcgKz0gJyAodGFyZ2V0OiAnICsgZXZlbnQudGFyZ2V0LmlkICsgJyknOwot
ICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0KQotICAgICAgICBldmVudFN0cmluZyArPSAnIChy
ZWxhdGVkOiAnICsgZXZlbnQucmVsYXRlZFRhcmdldC5pZCArICcpJzsKLSAgICBpZiAoZXZlbnQu
dG91Y2hlcykKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyAodG91Y2hlczogJyArIGR1bXBUb3Vj
aExpc3QoZXZlbnQudG91Y2hlcykgKyAnKSc7Ci0gICAgaWYgKGV2ZW50LnRhcmdldFRvdWNoZXMp
Ci0gICAgICAgIGV2ZW50U3RyaW5nICs9ICcgKHRhcmdldFRvdWNoZXM6ICcgKyBkdW1wVG91Y2hM
aXN0KGV2ZW50LnRhcmdldFRvdWNoZXMpICsgJyknOwotICAgIGlmIChldmVudC5jaGFuZ2VkVG91
Y2hlcykKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyAoY2hhbmdlZFRvdWNoZXM6ICcgKyBkdW1w
VG91Y2hMaXN0KGV2ZW50LmNoYW5nZWRUb3VjaGVzKSArICcpJzsKLSAgICBpZiAoZXZlbnQuZXZl
bnRQaGFzZSA9PSAxKQotICAgICAgICBldmVudFN0cmluZyArPSAnKGNhcHR1cmluZyBwaGFzZSkn
OwotICAgIGlmIChldmVudC50YXJnZXQgJiYgZXZlbnQuY3VycmVudFRhcmdldCAmJiBldmVudC50
YXJnZXQuaWQgPT0gZXZlbnQuY3VycmVudFRhcmdldC5pZCkKLSAgICAgICAgc2hvdWxkQmUoImV2
ZW50LmV2ZW50UGhhc2UiLCAiMiIsIHRydWUpOwotICAgIGV2ZW50UmVjb3Jkc1tldmVudFR5cGVd
LnB1c2goZXZlbnRTdHJpbmcpOwotfQotCi1mdW5jdGlvbiBkdW1wTm9kZShub2RlKQotewotICAg
IHZhciBvdXRwdXQgPSBub2RlLm5vZGVOYW1lICsgIlx0IjsKLSAgICBpZiAobm9kZS5pZCkKLSAg
ICAgICAgb3V0cHV0ICs9ICcgaWQ9JyArIG5vZGUuaWQ7Ci0gICAgaWYgKG5vZGUuY2xhc3NOYW1l
KQotICAgICAgICBvdXRwdXQgKz0gJyBjbGFzcz0nICsgbm9kZS5jbGFzc05hbWU7Ci0gICAgcmV0
dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rpb24gZHVtcFRvdWNoTGlzdCh0b3VjaGVzKSB7Ci0gICAg
dmFyIGlkcyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG91Y2hlcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICBpZiAodG91Y2hlcy5pdGVtKGkpLnRhcmdldCAmJiB0b3VjaGVzLml0ZW0o
aSkudGFyZ2V0LmlkKQotICAgICAgICAgICAgaWRzLnB1c2godG91Y2hlcy5pdGVtKGkpLnRhcmdl
dC5pZCk7Ci0gICAgfQotICAgIGlkcy5zb3J0KCk7Ci0gICAgdmFyIHJlc3VsdCA9ICcnOwotICAg
IGZvciAoaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgIHJlc3VsdCArPSBp
ZHNbaV07Ci0gICAgICAgICBpZiAoaSAhPSBpZHMubGVuZ3RoIC0gMSkKLSAgICAgICAgICAgICBy
ZXN1bHQgKz0gJywgJzsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rpb24g
ZHVtcENvbXBvc2VkU2hhZG93VHJlZShub2RlLCBpbmRlbnQpCi17Ci0gICAgaW5kZW50ID0gaW5k
ZW50IHx8ICIiOwotICAgIHZhciBvdXRwdXQgPSBpbmRlbnQgKyBkdW1wTm9kZShub2RlKSArICJc
biI7Ci0gICAgdmFyIGNoaWxkOwotICAgIGZvciAoY2hpbGQgPSBpbnRlcm5hbHMuZmlyc3RDaGls
ZEJ5V2Fsa2VyKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbnRlcm5hbHMubmV4dFNpYmxpbmdCeVdh
bGtlcihjaGlsZCkpCi0gICAgICAgICBvdXRwdXQgKz0gZHVtcENvbXBvc2VkU2hhZG93VHJlZShj
aGlsZCwgaW5kZW50ICsgIlx0Iik7Ci0gICAgcmV0dXJuIG91dHB1dDsKLX0KLQotZnVuY3Rpb24g
YWRkRXZlbnRMaXN0ZW5lcnMobm9kZXMpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rl
cy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgbm9kZSA9IGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjayhub2Rlc1tpXSk7Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBy
ZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdz
dGFydCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VvdXQnLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAgICAgIG5vZGUu
YWRkRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAg
ICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHJlY29yZEV2ZW50LCBmYWxz
ZSk7Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignZ2VzdHVyZXRhcCcsIHJlY29yZEV2
ZW50LCBmYWxzZSk7Ci0gICAgICAgIC8vIDxjb250ZW50PiBtaWdodCBiZSBhbiBpbmFjdGl2ZSBp
bnNlcnRpb24gcG9pbnQsIHNvIHN0eWxlIGl0IGFsc28uCi0gICAgICAgIGlmIChub2RlLnRhZ05h
bWUgPT0gJ0RJVicgfHwgbm9kZS50YWdOYW1lID09ICdERVRBSUxTJyB8fCBub2RlLnRhZ05hbWUg
PT0gJ1NVTU1BUlknIHx8IG5vZGUudGFnTmFtZSA9PSAnQ09OVEVOVCcpCi0gICAgICAgICAgICBu
b2RlLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAncGFkZGluZy10b3A6ICcgKyBkZWZhdWx0UGFkZGlu
Z1NpemUgKyAncHg7Jyk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBkZWJ1Z0Rpc3BhdGNoZWRFdmVu
dChldmVudFR5cGUpCi17Ci0gICAgZGVidWcoJ1xuICAnICsgZXZlbnRUeXBlKTsKLSAgICB2YXIg
ZXZlbnRzID0gZGlzcGF0Y2hlZEV2ZW50KGV2ZW50VHlwZSk7Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBldmVudHMubGVuZ3RoOyArK2kpCi0gICAgICAgIGRlYnVnKCcgICAgJyArIGV2ZW50c1tp
XSkKLX0KLQotZnVuY3Rpb24gc29ydERpc3BhdGNoZWRFdmVudChldmVudFR5cGUpCi17Ci0gICAg
ZGlzcGF0Y2hlZEV2ZW50KGV2ZW50VHlwZSkuc29ydCgpOwotfQotCi1mdW5jdGlvbiBtb3ZlTW91
c2Uob2xkRWxlbWVudElkLCBuZXdFbGVtZW50SWQpCi17Ci0gICAgY2xlYXJFdmVudFJlY29yZHMo
KTsKLSAgICBkZWJ1ZygnXG4nICsgJ01vdmluZyBtb3VzZSBmcm9tICcgKyBvbGRFbGVtZW50SWQg
KyAnIHRvICcgKyBuZXdFbGVtZW50SWQpOwotICAgIG1vdmVNb3VzZU92ZXIoZ2V0Tm9kZUluU2hh
ZG93VHJlZVN0YWNrKG9sZEVsZW1lbnRJZCkpOwotCi0gICAgY2xlYXJFdmVudFJlY29yZHMoKTsK
LSAgICBtb3ZlTW91c2VPdmVyKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhuZXdFbGVtZW50SWQp
KTsKLQotICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW91dCcpOwotICAgIGRlYnVnRGlz
cGF0Y2hlZEV2ZW50KCdtb3VzZW92ZXInKTsKLX0KLQotZnVuY3Rpb24gc2hvd1NhbmRib3hUcmVl
KCkKLXsKLSAgICB2YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94
Jyk7Ci0gICAgc2FuZGJveC5vZmZzZXRMZWZ0OwotICAgIGRlYnVnKCdcblxuQ29tcG9zZWQgU2hh
ZG93IFRyZWUgd2lsbCBiZTpcbicgKyBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKHNhbmRib3gpKTsK
LX0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvbGluay1pbi1z
aGFkb3ctc3R5bGUuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9yZXNvdXJjZXMvbGluay1pbi1zaGFkb3ctc3R5bGUuY3NzCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2xpbmstaW4tc2hhZG93LXN0
eWxlLmNzcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLS5rb3RvcmkgewotICAgIGJh
Y2tncm91bmQtY29sb3I6ICMwMGZmMDA7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlm
aWxsLmpzCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cmVzb3VyY2VzL3BvbHlmaWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotaWYg
KCFFbGVtZW50LnByb3RvdHlwZS53ZWJraXRDcmVhdGVTaGFkb3dSb290ICYmIHdpbmRvdy5pbnRl
cm5hbHMpIHsKLSAgICBFbGVtZW50LnByb3RvdHlwZS53ZWJraXRDcmVhdGVTaGFkb3dSb290ID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJldHVybiB3aW5kb3cuaW50ZXJuYWxzLmNyZWF0ZVNoYWRv
d1Jvb3QodGhpcyk7Ci0gICAgfTsKLX0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9yZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHls
ZXMuY3NzCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcwkod29ya2luZyBjb3B5KQpAQCAt
MSw0MSArMCwwIEBACi0ucHJvZ3Jlc3MtbGlrZSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBw
cm9ncmVzcy1iYXI7Ci0gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKLSAgICBoZWlnaHQ6IDFlbTsKLSAgICB3aWR0aDogMTBlbTsK
LSAgICB2ZXJ0aWNhbC1hbGlnbjogLTAuMmVtOwotICAgIG1hcmdpbjogMDsKLSAgICBwYWRkaW5n
OiAwOwotfQotCi0ucHJvZ3Jlc3MtaW5uZXItZWxlbWVudC1saWtlIHsKLSAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IHByb2dyZXNzLWJhcjsKLSAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1i
b3g7Ci0gICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC1vbmx5OwotICAgIGRpc3BsYXk6IGJs
b2NrOwotICAgIGhlaWdodDogMTAwJTsKLSAgICB3aWR0aDogMTAwJTsKLSAgICB2ZXJ0aWNhbC1h
bGlnbjogMGVtOwotfQotCi0ubWV0ZXItbGlrZSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZXRlcjsKLSAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgZGlzcGxheTog
aW5saW5lLWJsb2NrOwotICAgIGhlaWdodDogMWVtOwotICAgIHdpZHRoOiA1ZW07Ci0gICAgdmVy
dGljYWwtYWxpZ246IC0wLjJlbTsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLX0K
LQotLm1ldGVyLWlubmVyLWVsZW1lbnQtbGlrZSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZXRlcjsKLSAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0gICAgLXdlYmtpdC11
c2VyLW1vZGlmeTogcmVhZC1vbmx5OwotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIGhlaWdodDog
MTAwJTsKLSAgICB3aWR0aDogMTAwJTsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogMGVtOwotfQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLXV0aWwu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9z
aGFkb3ctZG9tLXV0aWwuanMJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS11dGlsLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM1ICswLDAgQEAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIHNoYWRvdy1kb20tdXRpbC5qcyBp
cyBhIHNldCBvZiB1dGlsaXR5IHRvIHRlc3QgU2hhZG93IERPTS4KLQotZnVuY3Rpb24gZ2V0RWxl
bWVudEJ5SWRDb25zaWRlcmluZ1NoYWRvd0RPTShyb290LCBpZCkgewotICAgIGZ1bmN0aW9uIGl0
ZXIocm9vdCwgaWQpIHsKLSAgICAgICAgaWYgKCFyb290KQotICAgICAgICAgICAgcmV0dXJuIG51
bGw7Ci0KLSAgICAgICAgaWYgKHJvb3QuaWQgPT0gaWQpCi0gICAgICAgICAgICByZXR1cm4gcm9v
dDsKLQotICAgICAgICAvLyBXZSBkb24ndCBjb2xsZWN0IGRpdiBoYXZpbmcgYSBzaGFkb3cgcm9v
dCwgc2luY2Ugd2UgY2Fubm90IHBvaW50IGl0IGNvcnJlY3RseS4KLSAgICAgICAgLy8gU3VjaCBk
aXYgc2hvdWxkIGhhdmUgYW4gaW5uZXIgZGl2IHRvIGJlIHBvaW50ZWQgY29ycmVjdGx5LgotICAg
ICAgICBmb3IgKHZhciBjaGlsZCA9IHJvb3QuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQubmV4dFNpYmxpbmcpIHsKLSAgICAgICAgICAgIHZhciBub2RlID0gaXRlcihjaGlsZCwgaWQp
OwotICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkKLSAgICAgICAgICAgICAgICByZXR1cm4g
bm9kZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChyb290Lm5vZGVUeXBlICE9IDEpCi0gICAg
ICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICBmb3IgKHZhciBzaGFkb3dSb290ID0gaW50
ZXJuYWxzLnlvdW5nZXN0U2hhZG93Um9vdChyb290KTsgc2hhZG93Um9vdDsgc2hhZG93Um9vdCA9
IGludGVybmFscy5vbGRlclNoYWRvd1Jvb3Qoc2hhZG93Um9vdCkpIHsKLSAgICAgICAgICAgIHZh
ciBub2RlID0gaXRlcihzaGFkb3dSb290LCBpZCk7Ci0gICAgICAgICAgICBpZiAobm9kZSAhPSBu
dWxsKQotICAgICAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIG51bGw7Ci0gICAgfTsKLQotICAgIGlmICghd2luZG93LmludGVybmFscykKLSAgICAg
ICAgcmV0dXJuIG51bGw7Ci0gICAgcmV0dXJuIGl0ZXIocm9vdCwgaWQpOwotfQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9zaGFkb3ctZG9tLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5q
cwkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291
cmNlcy9zaGFkb3ctZG9tLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3MSArMCwwIEBACi1mdW5j
dGlvbiBjcmVhdGVTaGFkb3dSb290KCkKLXsKLSAgICByZXR1cm4geydpc1NoYWRvd1Jvb3QnOiB0
cnVlLAotICAgICAgICAgICAgJ2NoaWxkcmVuJzogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJndW1lbnRzKX07Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVNoYWRvd1Jvb3RXaXRoQXR0cmlidXRl
cyhhdHRyaWJ1dGVzLCBjaGlsZHJlbikKLXsKLSAgICByZXR1cm4geydpc1NoYWRvd1Jvb3QnOiB0
cnVlLAotICAgICAgICAgICAgJ2F0dHJpYnV0ZXMnOiBhdHRyaWJ1dGVzLAotICAgICAgICAgICAg
J2NoaWxkcmVuJzogY2hpbGRyZW59OwotfQotCi0vLyBUaGlzIGZ1bmN0aW9uIGNhbiB0YWtlIG9w
dGlvbmFsIGNoaWxkIGVsZW1lbnRzLCB3aGljaCBtaWdodCBiZSBhIHJlc3VsdCBvZiBjcmVhdGVT
aGFkb3dSb290KCksIGFzIGFyZ3VtZW50c1syOl0uCi0vLyBZb3UgbXVzdCBlbmFibGUgU0hBRE9X
X0RPTSBmbGFnIGlmIHlvdSB1c2UgdGhpcyBmdWNudGlvbiB0byBob3N0IG11bHRpcGxlIFNoYWRv
d1Jvb3RzCi0vLyBzaW5jZSB3aW5kb3cuaW50ZXJuYWxzIGRvZXMgbm90IGhhdmUgYSBmdW5jdGlv
biB3aGljaCBjYW4gYmUgdXNlZCB0byBob3N0IG11bHRpcGxlIHNoYWRvdyByb290cy4KLS8vIEZJ
WE1FOiB3aW5kb3cuaW50ZXJuYWxzIHNob3VsZCBoYXZlIHN1Y2ggZnVuY3Rpb24gYW5kIHJlbW92
ZSB0aGUgcmVzdHJpY3Rpb24uCi1mdW5jdGlvbiBjcmVhdGVET00odGFnTmFtZSwgYXR0cmlidXRl
cykKLXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7
Ci0gICAgZm9yICh2YXIgbmFtZSBpbiBhdHRyaWJ1dGVzKQotICAgICAgICBlbGVtZW50LnNldEF0
dHJpYnV0ZShuYW1lLCBhdHRyaWJ1dGVzW25hbWVdKTsKLSAgICB2YXIgY2hpbGRFbGVtZW50cyA9
IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7Ci0gICAgdmFyIHNoYWRv
d1Jvb3RDb3VudCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZEVsZW1lbnRzLmxl
bmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBjaGlsZCA9IGNoaWxkRWxlbWVudHNbaV07Ci0gICAg
ICAgIGlmIChjaGlsZC5pc1NoYWRvd1Jvb3QpIHsKLSAgICAgICAgICAgICsrc2hhZG93Um9vdENv
dW50OwotICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3Q7Ci0gICAgICAgICAgICBpZiAoZWxlbWVu
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KQotICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QgPSBl
bGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoZWxlbWVudCk7Ci0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgc2hhZG93Um9vdCA9IGludGVybmFscy5jcmVhdGVTaGFkb3dSb290
KGVsZW1lbnQpOwotICAgICAgICAgICAgaWYgKGNoaWxkLmF0dHJpYnV0ZXMpIHsKLSAgICAgICAg
ICAgICAgICBmb3IgKHZhciBhdHRyaWJ1dGUgaW4gY2hpbGQuYXR0cmlidXRlcykgewotICAgICAg
ICAgICAgICAgICAgICAvLyBTaGFkb3cgUm9vdCBkb2VzIG5vdCBoYXZlIHNldEF0dHJpYnV0ZS4K
LSAgICAgICAgICAgICAgICAgICAgc2hhZG93Um9vdFthdHRyaWJ1dGVdID0gY2hpbGQuYXR0cmli
dXRlc1thdHRyaWJ1dGVdOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoOyArK2opCi0g
ICAgICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjaGlsZC5jaGlsZHJlbltqXSk7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7
Ci0gICAgfQotICAgIHJldHVybiBlbGVtZW50OwotfQotCi1mdW5jdGlvbiBpc1NoYWRvd0hvc3Qo
bm9kZSkKLXsKLSAgICByZXR1cm4gd2luZG93LmludGVybmFscy5vbGRlc3RTaGFkb3dSb290KG5v
ZGUpOwotfQotCi1mdW5jdGlvbiBpc1NoYWRvd1Jvb3Qobm9kZSkKLXsKLSAgICByZXR1cm4gbm9k
ZSBpbnN0YW5jZW9mIHdpbmRvdy5XZWJLaXRTaGFkb3dSb290OwotfQotCi1mdW5jdGlvbiBpc0lm
cmFtZUVsZW1lbnQoZWxlbWVudCkKLXsKLSAgICByZXR1cm4gZWxlbWVudCAmJiBlbGVtZW50Lm5v
ZGVOYW1lID09ICdJRlJBTUUnOwotfQotCi0vLyBZb3UgY2FuIHNwZWZpZnkgeW91bmdlclNoYWRv
d1Jvb3QgYnkgY29uc2VjdXRpdmUgc2xhc2hlcy4KLS8vIFNlZSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZ2V0LWVsZW1lbnQtYnktaWQtaW4tc2hhZG93LXJvb3QuaHRtbCBmb3IgYWN0dWFs
IHVzYWdlcy4KLWZ1bmN0aW9uIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhwYXRoKQotewotICAg
IHZhciBpZHMgPSBwYXRoLnNwbGl0KCcvJyk7Ci0gICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZHNbMF0pOwotICAgIGZvciAodmFyIGkgPSAxOyBub2RlICE9IG51bGwgJiYg
aSA8IGlkcy5sZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoaXNJZnJhbWVFbGVtZW50KG5vZGUp
KSB7Ci0gICAgICAgICAgICBub2RlID0gbm9kZS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWRzW2ldKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChpc1NoYWRvd1Jvb3Qobm9kZSkpCi0gICAgICAgICAgICBub2RlID0gaW50ZXJuYWxzLnlvdW5n
ZXJTaGFkb3dSb290KG5vZGUpOwotICAgICAgICBlbHNlIGlmIChpbnRlcm5hbHMub2xkZXN0U2hh
ZG93Um9vdChub2RlKSkKLSAgICAgICAgICAgIG5vZGUgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93
Um9vdChub2RlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAg
ICAgIGlmIChpZHNbaV0gIT0gJycpCi0gICAgICAgICAgICBub2RlID0gbm9kZS5nZXRFbGVtZW50
QnlJZChpZHNbaV0pOwotICAgIH0KLSAgICByZXR1cm4gbm9kZTsKLX0KLQotZnVuY3Rpb24gZHVt
cE5vZGUobm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICByZXR1cm4gJ251bGwnOwotICAg
IHZhciBvdXRwdXQgPSAnJyArIG5vZGU7Ci0gICAgaWYgKG5vZGUuaWQpCi0gICAgICAgIG91dHB1
dCArPSAnIGlkPScgKyBub2RlLmlkOwotICAgIHJldHVybiBvdXRwdXQ7Ci19Ci0KLWZ1bmN0aW9u
IGlubmVybW9zdEFjdGl2ZUVsZW1lbnQoZWxlbWVudCkKLXsKLSAgICBlbGVtZW50ID0gZWxlbWVu
dCB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50OwotICAgIGlmIChpc0lmcmFtZUVsZW1lbnQoZWxl
bWVudCkpIHsKLSAgICAgICAgaWYgKGVsZW1lbnQuY29udGVudERvY3VtZW50LmFjdGl2ZUVsZW1l
bnQpCi0gICAgICAgICAgICByZXR1cm4gaW5uZXJtb3N0QWN0aXZlRWxlbWVudChlbGVtZW50LmNv
bnRlbnREb2N1bWVudC5hY3RpdmVFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGVsZW1lbnQ7Ci0g
ICAgfQotICAgIGlmIChpc1NoYWRvd0hvc3QoZWxlbWVudCkpIHsKLSAgICAgICAgdmFyIHNoYWRv
d1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLm9sZGVzdFNoYWRvd1Jvb3QoZWxlbWVudCk7Ci0gICAg
ICAgIHdoaWxlIChzaGFkb3dSb290KSB7Ci0gICAgICAgICAgICBpZiAoc2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50KQotICAgICAgICAgICAgICAgIHJldHVybiBpbm5lcm1vc3RBY3RpdmVFbGVtZW50
KHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCk7Ci0gICAgICAgICAgICBzaGFkb3dSb290ID0gd2lu
ZG93LmludGVybmFscy55b3VuZ2VyU2hhZG93Um9vdChzaGFkb3dSb290KTsKLSAgICAgICAgfQot
ICAgIH0KLSAgICByZXR1cm4gZWxlbWVudDsKLX0KLQotZnVuY3Rpb24gaXNJbm5lcm1vc3RBY3Rp
dmVFbGVtZW50KGlkKQotewotICAgIHZhciBlbGVtZW50ID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0
YWNrKGlkKTsKLSAgICBpZiAoIWVsZW1lbnQpIHsKLSAgICAgICAgZGVidWcoJ0ZBSUw6IFRoZXJl
IGlzIG5vIHN1Y2ggZWxlbWVudCB3aXRoIGlkOiAnKyBmcm9tKTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLSAgICBpZiAoZWxlbWVudCA9PSBpbm5lcm1vc3RBY3RpdmVFbGVtZW50KCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlYnVnKCdFeHBlY3RlZCBpbm5lcm1vc3QgYWN0
aXZlRWxlbWVudCBpcyAnICsgaWQgKyAnLCBidXQgYWN0dWFsIGlubmVybW9zdCBhY3RpdmVFbGVt
ZW50IGlzICcgKyBkdW1wTm9kZShpbm5lcm1vc3RBY3RpdmVFbGVtZW50KCkpKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZE5hdmlnYXRlRm9jdXMoZnJvbSwgdG8sIGRp
cmVjdGlvbikKLXsKLSAgICBkZWJ1ZygnU2hvdWxkIG1vdmUgZnJvbSAnICsgZnJvbSArICcgdG8g
JyArIHRvICsgJyBpbiAnICsgZGlyZWN0aW9uKTsKLSAgICB2YXIgZnJvbUVsZW1lbnQgPSBnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2soZnJvbSk7Ci0gICAgaWYgKCFmcm9tRWxlbWVudCkgewotICAg
ICAgZGVidWcoJ0ZBSUw6IFRoZXJlIGlzIG5vIHN1Y2ggZWxlbWVudCB3aXRoIGlkOiAnKyBmcm9t
KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgZnJvbUVsZW1lbnQuZm9jdXMoKTsKLSAgICBp
ZiAoIWlzSW5uZXJtb3N0QWN0aXZlRWxlbWVudChmcm9tKSkgewotICAgICAgICBkZWJ1ZygnRkFJ
TDogQ2FuIG5vdCBiZSBmb2N1c2VkOiAnKyBmcm9tKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoZGlyZWN0aW9uID09ICdmb3J3YXJkJykKLSAgICAgICAgbmF2aWdhdGVGb2N1c0Zv
cndhcmQoKTsKLSAgICBlbHNlCi0gICAgICAgIG5hdmlnYXRlRm9jdXNCYWNrd2FyZCgpOwotICAg
IGlmIChpc0lubmVybW9zdEFjdGl2ZUVsZW1lbnQodG8pKQotICAgICAgICBkZWJ1ZygnUEFTUycp
OwotICAgIGVsc2UKLSAgICAgICAgZGVidWcoJ0ZBSUwnKTsKLX0KLQotZnVuY3Rpb24gbmF2aWdh
dGVGb2N1c0ZvcndhcmQoKQotewotICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ1x0Jyk7Ci19Ci0K
LWZ1bmN0aW9uIG5hdmlnYXRlRm9jdXNCYWNrd2FyZCgpCi17Ci0gICAgZXZlbnRTZW5kZXIua2V5
RG93bignXHQnLCBbJ3NoaWZ0S2V5J10pOwotfQotCi1mdW5jdGlvbiB0ZXN0Rm9jdXNOYXZpZ2F0
aW9uRm93cmFkKGVsZW1lbnRzKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpICsgMSA8IGVsZW1l
bnRzLmxlbmd0aDsgKytpKQotICAgICAgICBzaG91bGROYXZpZ2F0ZUZvY3VzKGVsZW1lbnRzW2ld
LCBlbGVtZW50c1tpICsgMV0sICdmb3J3YXJkJyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGb2N1c05h
dmlnYXRpb25CYWNrd2FyZChlbGVtZW50cykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSArIDEg
PCBlbGVtZW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAgc2hvdWxkTmF2aWdhdGVGb2N1cyhlbGVt
ZW50c1tpXSwgZWxlbWVudHNbaSArIDFdLCAnYmFja3dhcmQnKTsKLX0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LXRyZWUtbGlzdGVuZXItY2xlYXJh
bmNlLWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3Jlc291cmNlcy9zaGFkb3ctdHJlZS1saXN0ZW5lci1jbGVhcmFuY2UtZnJhbWUuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9z
aGFkb3ctdHJlZS1saXN0ZW5lci1jbGVhcmFuY2UtZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlk
PSJob3N0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHNoYWRvdyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iikud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIHNoYWRvdy5pbm5lckhUTUwgPSAiPGFydGljbGUgaWQ9J3RhcmdldCc+PC9hcnRpY2xl
PiI7Ci0gICAgZG9jdW1lbnQudGFyZ2V0SW5TaGFkb3cgPSBzaGFkb3cuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpOwotfSkoKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Njcm9sbGJhci1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zY3JvbGxiYXItZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Njcm9s
bGJhci1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+PGJvZHk+Ci0KLTxzdHlsZT4KLSNob3N0IHsKLSAgICB3aWR0aDog
MjAwcHg7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwot
fQotCi0jaG9zdDo6LXdlYmtpdC1zY3JvbGxiYXIgewotICAgd2lkdGg6IDIwcHg7Ci19Ci0KLSNk
aXYxIHsKLSAgIHBvc2l0aW9uOiBmaXhlZDsKLSAgIG92ZXJmbG93OiBzY3JvbGw7Ci0gICB3aWR0
aDogODBweDsKLSAgIGhlaWdodDogODBweDsKLSAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKLX0K
LQotI2RpdjE6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKLSAgIHdpZHRoOiAyMHB4OwotfQotPC9zdHls
ZT4KLQotPGRpdiBpZD0iaG9zdCI+PGRpdiBpZD0iZGl2MSI+c29tZSBsb25nIHRleHQgc2hvd2lu
ZyBzY3JvbGxiYXI8L2Rpdj48L2Rpdj4KLQotPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zY3JvbGxiYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2Nyb2xsYmFyLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zY3JvbGxiYXIuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPjxib2R5PgotCi08c3R5
bGU+Ci0jaG9zdCB7Ci0gICAgd2lkdGg6IDIwMHB4OwotICAgIGhlaWdodDogMTAwcHg7Ci0gICAg
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKLX0KLQotI2hvc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHsK
LSAgIHdpZHRoOiA1MHB4OwotfQotCi0jZGl2MSB7Ci0gICBwb3NpdGlvbjogZml4ZWQ7Ci0gICBv
dmVyZmxvdzogc2Nyb2xsOwotICAgd2lkdGg6IDgwcHg7Ci0gICBoZWlnaHQ6IDgwcHg7Ci0gICBi
YWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ci19Ci0KLSNkaXYxOjotd2Via2l0LXNjcm9sbGJhciB7Ci0g
ICB3aWR0aDogMjBweDsKLX0KLTwvc3R5bGU+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotCi08
c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LXNoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMgPSB0cnVlOwotc2hhZG93Um9vdC5pbm5lckhU
TUwgPSAnPGRpdiBpZD0iZGl2MSI+c29tZSBsb25nIHRleHQgc2hvd2luZyBzY3JvbGxiYXI8L2Rp
dj4nOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT48L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2VsZWN0LWluLXNoYWRvd2RvbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NlbGVjdC1pbi1zaGFkb3dkb20tZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2VsZWN0LWluLXNoYWRvd2RvbS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEg
KzAsMCBAQAotV2hlbiBzZWxlY3RpbmcgZnJvbSBub24tYW5jaG9yIE5vZGUgdG8gYW5jaG9yIG5v
ZGUgaW4gU2hhZG93RE9NLCBjbGllbnQgc2hvdWxkIG5vdCBjYXVzZSBwYWdlIGp1bXAuCi0KLVNl
bGVjdGluZyBmcm9tIGEgbm9kZSB0byBhbm90aGVyIG5vZGUgaW4gU2hhZG93RE9NLiBUaGlzIHNo
b3VsZCBub3QgZmlyZSBjbGljayBldmVudAotCi1DbGlja2luZyBhIG5vZGUgaW4gU2hhZG93RE9N
LgotUEFTUyBjbGljayBzaG91bGQgYmUgZmlyZWQuCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2VsZWN0LWluLXNoYWRvd2RvbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3QtaW4tc2hhZG93ZG9tLmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3QtaW4tc2hhZG93ZG9tLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD48Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotCi08cD5XaGVuIHNlbGVjdGluZyBmcm9tIG5vbi1hbmNob3IgTm9kZSB0byBh
bmNob3Igbm9kZSBpbiBTaGFkb3dET00sIGNsaWVudCBzaG91bGQgbm90IGNhdXNlIHBhZ2UganVt
cC48L3A+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+
Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBtb3VzZU1vdmVUbyhlbGVtZW50KQotewotICAgIHZhciB4
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFy
IHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLX0KLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzcGFu
PnNlbGVjdCBmb3JtIGhlcmU8L3NwYW4+PHNwYW4+c2VsZWN0IHRvIGhlcmU8L3NwYW4+JzsKLQot
dmFyIGNsaWNrRXZlbnRTaG91bGROb3RCZUZpcmVkID0gdHJ1ZTsKLQotaG9zdC5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKLSAgICBpZiAoY2xpY2tFdmVudFNob3VsZE5v
dEJlRmlyZWQpCi0gICAgICAgIGRlYnVnKCdGQUlMIGNsaWNrIHNob3VsZCBub3QgYmUgZmlyZWQu
Jyk7Ci0gICAgZWxzZQotICAgICAgICBkZWJ1ZygnUEFTUyBjbGljayBzaG91bGQgYmUgZmlyZWQu
Jyk7Ci19KTsKLQotZGVidWcoJ1NlbGVjdGluZyBmcm9tIGEgbm9kZSB0byBhbm90aGVyIG5vZGUg
aW4gU2hhZG93RE9NLiBUaGlzIHNob3VsZCBub3QgZmlyZSBjbGljayBldmVudCcpOwotbW91c2VN
b3ZlVG8oc2hhZG93Um9vdC5maXJzdENoaWxkKTsKLWV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwot
bW91c2VNb3ZlVG8oc2hhZG93Um9vdC5maXJzdENoaWxkLm5leHRTaWJsaW5nKTsKLWV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKLWRlYnVnKCcnKTsKLQotZGVidWcoJ0NsaWNraW5nIGEgbm9kZSBpbiBT
aGFkb3dET00uJyk7Ci1jbGlja0V2ZW50U2hvdWxkTm90QmVGaXJlZCA9IGZhbHNlOwotbW91c2VN
b3ZlVG8oc2hhZG93Um9vdC5maXJzdENoaWxkKTsKLWV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwot
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotZGVidWcoJycpOwotCi08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PjwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb24t
aW4tbmVzdGVkLXNoYWRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbi1pbi1uZXN0ZWQtc2hhZG93LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NlbGVjdGlv
bi1pbi1uZXN0ZWQtc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiAr
MCwwIEBACi1TZWxlY3QgdGV4dCBpbiBub24tbmVzdGVkIFNoYWRvd0RPTSBhbmQgcmVtb3ZlIGFu
IGVsZW1lbnQgY29udGFpbmluZyBzaGFkb3cgaG9zdC4KLVRoZW4gdGhlIGFuY2hvciBub2RlIG9m
IHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlY29tZSBiZSB0aGUgcGFyZW50IGVsZW1lbnQgb2YgdGhl
IHJlbW92ZWQgZWxlbWVudCAoY29udGFpbmVyKS4KLVBBU1Mgd2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUgaXMgY29udGFpbmVyCi0KLVNlbGVjdCB0ZXh0IGluIG5lc3RlZCBTaGFkb3dE
T00gYW5kIHJlbW92ZSBhbiBlbGVtZW50IGNvbnRhaW5pbmcgc2hhZG93IGhvc3QuCi1JbiB0aGlz
IGNhc2UsIHRoZSBhbmNob3Igbm9kZSBvZiB0aGUgc2VsZWN0aW9uIHNob3VsZCBhbHNvIGJlY29t
ZSBiZSB0aGUgcGFyZW50IGVsZW1lbnQgb2YgdGhlIHJlbW92ZWQgZWxlbWVudCAoY29udGFpbmVy
KS4KLVBBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUgaXMgY29udGFpbmVyCi0K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9uLWluLW5lc3RlZC1zaGFkb3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9u
LWluLW5lc3RlZC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbi1pbi1uZXN0ZWQtc2hhZG93Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0K
LTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iY29udGFpbmVyMSI+PGRpdiBpZD0i
aG9zdDEiPjwvZGl2PjwvZGl2PgotICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjIiPjxkaXYgaWQ9Imhv
c3QyIj48L2Rpdj48L2Rpdj4KLTwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxz
Y3JpcHQ+Ci12YXIgc2hhZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0idGFyZ2V0MSI+RWxlbWVudCBpbiBT
aGFkb3cgRE9NPC9kaXY+JzsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpOwotdmFyIGhvc3QzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci12YXIgc2hhZG93Um9vdDMgPSBob3N0My53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFk
b3dSb290Mi5hcHBlbmRDaGlsZChob3N0Myk7Ci1zaGFkb3dSb290My5pbm5lckhUTUwgPSAnPGRp
diBpZD0idGFyZ2V0MiI+RWxlbWVudCBpbiBuZXN0ZWQgU2hhZG93IERPTTwvZGl2Pic7Ci0KLXZh
ciB0YXJnZXQxID0gc2hhZG93Um9vdDEuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldDEnKTsKLXZhciB0
YXJnZXQyID0gc2hhZG93Um9vdDMuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldDInKTsKLQotLy8gbm9u
LW5lc3RlZCBTaGFkb3dET00gY2FzZS4KLWRlYnVnKCdTZWxlY3QgdGV4dCBpbiBub24tbmVzdGVk
IFNoYWRvd0RPTSBhbmQgcmVtb3ZlIGFuIGVsZW1lbnQgY29udGFpbmluZyBzaGFkb3cgaG9zdC4n
KTsKLWRlYnVnKCdUaGVuIHRoZSBhbmNob3Igbm9kZSBvZiB0aGUgc2VsZWN0aW9uIHNob3VsZCBi
ZWNvbWUgYmUgdGhlIHBhcmVudCBlbGVtZW50IG9mIHRoZSByZW1vdmVkIGVsZW1lbnQgKGNvbnRh
aW5lcikuJyk7Ci1ldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQxLm9mZnNldExlZnQgKyAy
LCB0YXJnZXQxLm9mZnNldFRvcCArIHRhcmdldDEub2Zmc2V0SGVpZ2h0IC8gMik7Ci1ldmVudFNl
bmRlci5tb3VzZURvd24oKTsKLWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldDEub2Zmc2V0
TGVmdCArIHRhcmdldDEub2Zmc2V0V2lkdGggLSAyLCB0YXJnZXQxLm9mZnNldFRvcCArIHRhcmdl
dDEub2Zmc2V0SGVpZ2h0IC8gMik7Ci1ldmVudFNlbmRlci5tb3VzZVVwKCk7Ci1jb250YWluZXIu
cmVtb3ZlQ2hpbGQoY29udGFpbmVyMSk7Ci1zaG91bGRCZSgnd2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUnLCAnY29udGFpbmVyJyk7Ci1kZWJ1ZygnJyk7Ci0KLS8vIG5lc3RlZCBTaGFk
b3dET00gY2FzZS4KLWRlYnVnKCdTZWxlY3QgdGV4dCBpbiBuZXN0ZWQgU2hhZG93RE9NIGFuZCBy
ZW1vdmUgYW4gZWxlbWVudCBjb250YWluaW5nIHNoYWRvdyBob3N0LicpOwotZGVidWcoJ0luIHRo
aXMgY2FzZSwgdGhlIGFuY2hvciBub2RlIG9mIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGFsc28gYmVj
b21lIGJlIHRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgcmVtb3ZlZCBlbGVtZW50IChjb250YWlu
ZXIpLicpOwotZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0Mi5vZmZzZXRMZWZ0ICsgMiwg
dGFyZ2V0Mi5vZmZzZXRUb3AgKyB0YXJnZXQyLm9mZnNldEhlaWdodCAvIDIpOwotZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7Ci1ldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQyLm9mZnNldExl
ZnQgKyB0YXJnZXQyLm9mZnNldFdpZHRoIC0gMiwgdGFyZ2V0Mi5vZmZzZXRUb3AgKyB0YXJnZXQy
Lm9mZnNldEhlaWdodCAvIDIpOwotZXZlbnRTZW5kZXIubW91c2VVcCgpOwotY29udGFpbmVyLnJl
bW92ZUNoaWxkKGNvbnRhaW5lcjIpOwotc2hvdWxkQmUoJ3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5h
bmNob3JOb2RlJywgJ2NvbnRhaW5lcicpOwotZGVidWcoJycpOwotPC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NlbGVj
dGlvbi1zaG91bGRudC1leHBvc2Utc2hhZG93LWRvbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbi1zaG91bGRudC1leHBvc2Ut
c2hhZG93LWRvbS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb24tc2hvdWxkbnQtZXhwb3NlLXNoYWRvdy1kb20tZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzAsMCBAQAotUEFTUyBpbnRlcm5hbHMu
dHJlZVNjb3BlUm9vdE5vZGUoc2VsZWN0aW9uLmFuY2hvck5vZGUpIGlzIGRvY3VtZW50Ci1QQVNT
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZShzZWxlY3Rpb24uZm9jdXNOb2RlKSBpcyBkb2N1
bWVudAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb24tc2hvdWxkbnQtZXhw
b3NlLXNoYWRvdy1kb20uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2VsZWN0aW9uLXNob3VsZG50LWV4cG9zZS1zaGFkb3ctZG9tLmh0bWwJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb24tc2hvdWxk
bnQtZXhwb3NlLXNoYWRvdy1kb20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBtb3ZlVG8oZWxlbWVudCkgewotICAgIHZhciB4ID0gZWxlbWVudC5v
ZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgdmFyIHkgPSBlbGVtZW50
Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKLX0KLQotZnVuY3Rpb24gZHJhZ0Zyb21UbyhlbGVtZW50RnJvbSwg
ZWxlbWVudFRvKSB7Ci0gICAgbW92ZVRvKGVsZW1lbnRGcm9tKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKLSAgICBtb3ZlVG8oZWxlbWVudFRvKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Ci19Ci0KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
dGFpbmVyJyk7Ci0KLXZhciBzaGFkb3dSb290MSA9IGNvbnRhaW5lci53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci1zaGFkb3dSb290MS5pbm5lckhUTUwgPQotICAgICc8ZGl2IGlkPSJkaXYxIiB0
aXRsZT0iZGl2MSI+WW91IFNhdG9oPC9kaXY+JyArCi0gICAgJzxkaXYgaWQ9ImRpdjIiIHRpdGxl
PSJkaXYyIj5TZW4gWWFyaXp1aTwvZGl2PicgKwotICAgICc8ZGl2IGlkPSJkaXYzIiB0aXRsZT0i
ZGl2MyI+QXlhbWUgU2hhZ2E8L2Rpdj4nOwotdmFyIGRpdjEgPSBzaGFkb3dSb290MS5nZXRFbGVt
ZW50QnlJZCgnZGl2MScpOwotdmFyIGRpdjIgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgn
ZGl2MicpOwotdmFyIGRpdjMgPSBzaGFkb3dSb290MS5nZXRFbGVtZW50QnlJZCgnZGl2MycpOwot
Ci12YXIgc2hhZG93Um9vdDIgPSBkaXYyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRv
d1Jvb3QyLmlubmVySFRNTCA9Ci0gICAgJzxkaXYgaWQ9ImRpdjQiIHRpdGxlPSJkaXY0Ij5IYW5h
IE9zaGlyb2k8L2Rpdj4nICsKLSAgICAnPGRpdiBpZD0iZGl2NSIgdGl0bGU9ImRpdjUiPlVtZSBT
aGlyYXVtZTwvZGl2PicgKwotICAgICc8ZGl2IGlkPSJkaXY2IiB0aXRsZT0iZGl2NiI+TWlrb3Rv
IFV6dTwvZGl2Pic7Ci12YXIgZGl2NCA9IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRCeUlkKCdkaXY0
Jyk7Ci12YXIgZGl2NSA9IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRCeUlkKCdkaXY1Jyk7Ci12YXIg
ZGl2NiA9IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRCeUlkKCdkaXY2Jyk7Ci0KLWRyYWdGcm9tVG8o
ZGl2NCwgZGl2Nik7Ci12YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwotCi0v
LyBJZiBhbmNob2RlTm9kZSBhbmQgZm9jdXNOb2RlIGFyZSBub3QgaW4gU2hhZG93IHRyZWUsIGRv
Y3VtZW50IGlzIHJldHVybmVkCi0vLyBieSBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUoKS4K
LXNob3VsZEJlKCdpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUoc2VsZWN0aW9uLmFuY2hvck5v
ZGUpJywgJ2RvY3VtZW50Jyk7Ci1zaG91bGRCZSgnaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHNlbGVjdGlvbi5mb2N1c05vZGUpJywgJ2RvY3VtZW50Jyk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9ucy1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zZWxlY3Rpb25zLWlu
LXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zZWxlY3Rpb25zLWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMjc1ICswLDAgQEAKLQotCi1DT05UQUlORVIxIC0tPiBDT05UQUlORVIxCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05v
ZGUpCi1DT05UQUlORVIxIC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIx
IC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUNP
TlRBSU5FUjEgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIx
IC0tPiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2lu
ZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotQ09OVEFJTkVSMSAtLT4gU1BB
TiAzIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2lu
ZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUNPTlRBSU5FUjEgLS0+IFNQQU4gSU4gTkVT
VEVEIElOIFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBT
UEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBTUEFOIDIg
SU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxIC0tPiBTUEFOIDMgSU5ZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBDT05UQUlORVIxCi1QQVNTIGlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9k
ZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5m
b2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJu
YWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1D
T05UQUlORVIyIC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBT
UEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJl
ZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUNPTlRBSU5F
UjIgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBT
UEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotQ09OVEFJTkVSMiAtLT4gU1BBTiAzIElO
T0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUNPTlRBSU5FUjIgLS0+IFNQQU4gSU4gTkVTVEVEIElO
IFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIDEg
SU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIDIgSU5ZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIyIC0tPiBTUEFOIDMgSU5ZT1VOR0VSCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBDT05UQUlORVIxCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUp
Ci1JTiBIT1NUIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBJ
TiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBT
SEFET1cgT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2lu
ZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUlOIEhPU1QgLS0+IFNQQU4gMSBJTk9MREVS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRl
cm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUp
IGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9j
dXNOb2RlKQotSU4gSE9TVCAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUlO
IEhPU1QgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05v
ZGUpCi1JTiBIT1NUIC0tPiBTUEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2Nv
cGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxz
LnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBI
T1NUIC0tPiBTUEFOIDIgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1JTiBIT1NUIC0tPiBT
UEFOIDMgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBTSEFE
T1cgT0xERVIgLS0+IENPTlRBSU5FUjEKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gSU4gTkVTVEVE
IElOIFNIQURPVyBPTERFUiAtLT4gQ09OVEFJTkVSMgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJ
TiBORVNURUQgSU4gU0hBRE9XIE9MREVSIC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJu
YWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1T
UEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURP
VyBPTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVj
dGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIE9MREVS
IC0tPiBTUEFOIDEgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2lu
ZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290
Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4g
U0hBRE9XIE9MREVSIC0tPiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJ
TiBORVNURUQgSU4gU0hBRE9XIE9MREVSIC0tPiBTUEFOIDMgSU5PTERFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIE9MREVSIC0tPiBTUEFOIElOIE5FU1RFRCBJ
TiBTSEFET1cgWU9VTkdFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hB
RE9XIE9MREVSIC0tPiBTUEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVS
b290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRy
ZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElO
IE5FU1RFRCBJTiBTSEFET1cgT0xERVIgLS0+IFNQQU4gMiBJTllPVU5HRVIKLVBBU1MgaW50ZXJu
YWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBp
cyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3Vz
Tm9kZSkKLVNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBPTERFUiAtLT4gU1BBTiAzIElOWU9VTkdF
UgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElOT0xERVIgLS0+IENPTlRBSU5FUjEKLVBBU1Mg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JO
b2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmZvY3VzTm9kZSkKLVNQQU4gMSBJTk9MREVSIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05v
ZGUpCi1TUEFOIDEgSU5PTERFUiAtLT4gSU4gSE9TVAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAx
IElOT0xERVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBPTERFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiAxIElOT0xERVIgLS0+IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUp
Ci1TUEFOIDEgSU5PTERFUiAtLT4gU1BBTiAyIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVT
Y29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQ
QU4gMSBJTk9MREVSIC0tPiBTUEFOIDMgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAx
IElOT0xERVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1TUEFOIDEgSU5PTERFUiAtLT4gU1BBTiAxIElOWU9VTkdFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiAxIElOT0xERVIgLS0+IFNQQU4gMiBJTllPVU5HRVIKLVBBU1MgaW50ZXJuYWxz
LnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBp
bnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9k
ZSkKLVNQQU4gMSBJTk9MREVSIC0tPiBTUEFOIDMgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUp
Ci1TUEFOIDIgSU5PTERFUiAtLT4gQ09OVEFJTkVSMQotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAy
IElOT0xERVIgLS0+IENPTlRBSU5FUjIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTk9MREVS
IC0tPiBJTiBIT1NUCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERFUiAtLT4gU1BBTiBJ
TiBORVNURUQgSU4gU0hBRE9XIE9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERF
UiAtLT4gU1BBTiAxIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTk9MREVSIC0t
PiBTUEFOIDIgSU5PTERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAyIElOT0xERVIgLS0+IFNQ
QU4gMyBJTk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERFUiAtLT4gU1BBTiBJ
TiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNj
b3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTk9M
REVSIC0tPiBTUEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9k
ZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5PTERF
UiAtLT4gU1BBTiAyIElOWU9VTkdFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUo
d2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVS
b290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAyIElOT0xERVIg
LS0+IFNQQU4gMyBJTllPVU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0t
PiBDT05UQUlORVIxCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5PTERFUiAtLT4gQ09OVEFJ
TkVSMgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAzIElOT0xERVIgLS0+IElOIEhPU1QKLVBBU1Mg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JO
b2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmZvY3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cg
T0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0tPiBTUEFOIDEgSU5PTERF
UgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAzIElOT0xERVIgLS0+IFNQQU4gMiBJTk9MREVSCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5PTERFUiAtLT4gU1BBTiAzIElOT0xERVIKLVBBU1Mg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JO
b2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmZvY3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cg
WU9VTkdFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVj
dGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAzIElOT0xERVIgLS0+IFNQQU4gMSBJTllP
VU5HRVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMyBJTk9MREVSIC0tPiBTUEFOIDIgSU5ZT1VO
R0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5PTERFUiAtLT4gU1BBTiAzIElOWU9VTkdF
UgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+
IENPTlRBSU5FUjEKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2lu
ZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZ
T1VOR0VSIC0tPiBDT05UQUlORVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJ
TiBTSEFET1cgWU9VTkdFUiAtLT4gSU4gSE9TVAotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9v
dE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVl
U2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBO
RVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBPTERF
UgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+
IFNQQU4gMSBJTk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBTSEFE
T1cgWU9VTkdFUiAtLT4gU1BBTiAyIElOT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJv
b3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJl
ZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gSU4g
TkVTVEVEIElOIFNIQURPVyBZT1VOR0VSIC0tPiBTUEFOIDMgSU5PTERFUgotUEFTUyBpbnRlcm5h
bHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlz
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNO
b2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVE
IElOIFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIElOIE5FU1RFRCBJTiBT
SEFET1cgWU9VTkdFUiAtLT4gU1BBTiAxIElOWU9VTkdFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNj
b3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFs
cy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BB
TiBJTiBORVNURUQgSU4gU0hBRE9XIFlPVU5HRVIgLS0+IFNQQU4gMiBJTllPVU5HRVIKLVBBU1Mg
aW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JO
b2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmZvY3VzTm9kZSkKLVNQQU4gSU4gTkVTVEVEIElOIFNIQURPVyBZT1VOR0VSIC0tPiBTUEFOIDMg
SU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBDT05UQUlO
RVIxCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIyCi1Q
QVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5j
aG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBJTiBIT1NUCi1QQVNTIGludGVy
bmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkg
aXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1
c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgT0xE
RVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNl
bGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMSBJTllPVU5HRVIgLS0+IFNQQU4gMSBJTk9MREVS
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5PTERFUgot
UEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFu
Y2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElOWU9VTkdFUiAtLT4gU1BBTiAzIElOT0xERVIKLVBB
U1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNo
b3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmZvY3VzTm9kZSkKLVNQQU4gMSBJTllPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElOIFNI
QURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFO
IDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFO
IDIgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDEgSU5ZT1VOR0VSIC0tPiBTUEFO
IDMgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdp
bmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBDT05U
QUlORVIxCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBDT05UQUlORVIy
Ci1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
YW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBJTiBIT1NUCi1QQVNTIGlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9k
ZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5m
b2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cg
T0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTllPVU5HRVIgLS0+IFNQQU4gMSBJTk9M
REVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5PTERF
UgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAyIElOWU9VTkdFUiAtLT4gU1BBTiAzIElOT0xERVIK
LVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5h
bmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVj
dGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMiBJTllPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVEIElO
IFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBT
UEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBT
UEFOIDIgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSIC0tPiBT
UEFOIDMgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBD
T05UQUlORVIxCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBDT05UQUlO
RVIyCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBJTiBIT1NUCi1QQVNT
IGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9y
Tm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBTUEFOIElOIE5FU1RFRCBJTiBTSEFE
T1cgT0xERVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMyBJTllPVU5HRVIgLS0+IFNQQU4gMSBJ
Tk9MREVSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5n
ZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0tPiBTUEFOIDIgSU5P
TERFUgotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlv
bigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAzIElOWU9VTkdFUiAtLT4gU1BBTiAzIElOT0xE
RVIKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNl
bGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMyBJTllPVU5HRVIgLS0+IFNQQU4gSU4gTkVTVEVE
IElOIFNIQURPVyBZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0t
PiBTUEFOIDEgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0t
PiBTUEFOIDIgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDMgSU5ZT1VOR0VSIC0t
PiBTUEFOIDMgSU5ZT1VOR0VSCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3RO
b2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1DT05UQUlORVIxOiBkb3VibGUg
Y2xpY2sKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLUNPTlRBSU5FUjI6IGRvdWJsZSBjbGljawotUEFTUyBp
bnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5v
ZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
Zm9jdXNOb2RlKQotSU4gSE9TVDogZG91YmxlIGNsaWNrCi1QQVNTIGludGVybmFscy50cmVlU2Nv
cGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxz
LnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFO
IElOIE5FU1RFRCBJTiBTSEFET1cgT0xERVI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMu
dHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGlu
dGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2Rl
KQotU1BBTiAxIElOT0xERVI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3Bl
Um9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50
cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAy
IElOT0xERVI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUo
d2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVS
b290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAzIElOT0xERVI6
IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93Lmdl
dFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiBJTiBORVNURUQgSU4gU0hBRE9X
IFlPVU5HRVI6IGRvdWJsZSBjbGljawotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUo
d2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVS
b290Tm9kZSh3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuZm9jdXNOb2RlKQotU1BBTiAxIElOWU9VTkdF
UjogZG91YmxlIGNsaWNrCi1QQVNTIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZSkgaXMgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2Rl
KHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpCi1TUEFOIDIgSU5ZT1VOR0VSOiBkb3Vi
bGUgY2xpY2sKLVBBU1MgaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5hbmNob3JOb2RlKSBpcyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93
LmdldFNlbGVjdGlvbigpLmZvY3VzTm9kZSkKLVNQQU4gMyBJTllPVU5HRVI6IGRvdWJsZSBjbGlj
awotUEFTUyBpbnRlcm5hbHMudHJlZVNjb3BlUm9vdE5vZGUod2luZG93LmdldFNlbGVjdGlvbigp
LmFuY2hvck5vZGUpIGlzIGludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuZm9jdXNOb2RlKQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQotCi0KLQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2VsZWN0aW9ucy1pbi1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2VsZWN0aW9ucy1pbi1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NlbGVjdGlvbnMtaW4tc2hhZG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRp
bC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRy
aXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJj
b25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZVNoYWRvd0RPTShzaGFk
b3dSb290LCBuYW1lKSB7Ci0gICAgdmFyIGhvc3RJblNoYWRvd1Jvb3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgdmFyIG5lc3RlZFNoYWRvd1Jvb3QgPSBob3N0SW5TaGFk
b3dSb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgc3BhbkluU2hhZG93ID0g
Y3JlYXRlU3BhbldpdGhUZXh0KCdTUEFOIElOIE5FU1RFRCBJTiBTSEFET1cgJyArIG5hbWUpOwot
ICAgIG5lc3RlZFNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc3BhbkluU2hhZG93KTsKLQotICAgIHZh
ciBzcGFuMSA9IGNyZWF0ZVNwYW5XaXRoVGV4dCgnU1BBTiAxIElOJyArIG5hbWUpOwotICAgIHZh
ciBzcGFuMiA9IGNyZWF0ZVNwYW5XaXRoVGV4dCgnU1BBTiAyIElOJyArIG5hbWUpOwotICAgIHZh
ciBzcGFuMyA9IGNyZWF0ZVNwYW5XaXRoVGV4dCgnU1BBTiAzIElOJyArIG5hbWUpOwotCi0gICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChzcGFuMSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChob3N0SW5TaGFkb3dSb290KTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4yKTsK
LSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRv
dycpKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4zKTsKLQotICAgIHJldHVybiBu
ZXcgQXJyYXkoc3BhbkluU2hhZG93LCBzcGFuMSwgc3BhbjIsIHNwYW4zKTsKLX0KLQotdmFyIHNw
YW5JbkNvbnRhaW5lcjEgPSBjcmVhdGVTcGFuV2l0aFRleHQoJ0NPTlRBSU5FUjEnKTsKLXZhciBz
cGFuSW5Db250YWluZXIyID0gY3JlYXRlU3BhbldpdGhUZXh0KCdDT05UQUlORVIyJyk7Ci0KLXZh
ciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc3BhbkluSG9zdCA9
IGNyZWF0ZVNwYW5XaXRoVGV4dCgnSU4gSE9TVCcpOwotaG9zdC5hcHBlbmRDaGlsZChzcGFuSW5I
b3N0KTsKLQotdmFyIG9sZGVyU2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotdmFyIHNwYW5zMSA9IGNyZWF0ZVNoYWRvd0RPTShvbGRlclNoYWRvd1Jvb3QsICdPTERF
UicpOwotCi12YXIgeW91bmdlclNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLXZhciBzcGFuczIgPSBjcmVhdGVTaGFkb3dET00oeW91bmdlclNoYWRvd1Jvb3QsICdZ
T1VOR0VSJyk7Ci0KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
dGFpbmVyJyk7Ci1jb250YWluZXIuYXBwZW5kQ2hpbGQoc3BhbkluQ29udGFpbmVyMSk7Ci1jb250
YWluZXIuYXBwZW5kQ2hpbGQoaG9zdCk7Ci1jb250YWluZXIuYXBwZW5kQ2hpbGQoc3BhbkluQ29u
dGFpbmVyMik7Ci0KLXZhciBhbGxTcGFucyA9IG5ldyBBcnJheShzcGFuSW5Db250YWluZXIxLCBz
cGFuSW5Db250YWluZXIyLCBzcGFuSW5Ib3N0KTsKLWFsbFNwYW5zID0gYWxsU3BhbnMuY29uY2F0
KHNwYW5zMSk7Ci1hbGxTcGFucyA9IGFsbFNwYW5zLmNvbmNhdChzcGFuczIpOwotCi0vLyBEbyBM
YXlvdXQKLWNvbnRhaW5lci5vZmZzZXRMZWZ0OwotCi0vLyBTZWxlY3RzIGFsbCBjb21iaW5hdGlv
bnMgb2Ygc3BhbnMuCi1mb3IgKHZhciBpID0gMDsgaSA8IGFsbFNwYW5zLmxlbmd0aDsgKytpKSB7
Ci0gICAgZm9yICh2YXIgaiA9IDA7IGogPCBhbGxTcGFucy5sZW5ndGg7ICsraikgewotICAgICAg
ICBtb3VzZU1vdmVUb0VsZW0oYWxsU3BhbnNbaV0pOwotICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKLSAgICAgICAgbW91c2VNb3ZlVG9FbGVtKGFsbFNwYW5zW2pdKTsKLSAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgIC8vIENoZWNrcyBoYXZpbmdzIHRoZSBz
YW1lIHNlbGVjdGlvbi4KLSAgICAgICAgZGVidWcoYWxsU3BhbnNbaV0udGV4dENvbnRlbnQgKyAn
IC0tPiAnICsgYWxsU3BhbnNbal0udGV4dENvbnRlbnQpOwotICAgICAgICBzaG91bGRCZSgiaW50
ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
KSIsIAotICAgICAgICAgICAgICAgICAiaW50ZXJuYWxzLnRyZWVTY29wZVJvb3ROb2RlKHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpIik7IAotCi0gICAgICAgIC8vIGNsZWFyIHNlbGVj
aXRvbi4KLSAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOwot
ICAgIH0KLX0KLQotLy8gRG8gZG91YmxlIGNsaWNrIGZvciBhbGwgc3BhbnMuCi1mb3IgKHZhciBp
ID0gMDsgaSA8IGFsbFNwYW5zLmxlbmd0aDsgKytpKSB7Ci0gICAgbW91c2VNb3ZlVG9FbGVtKGFs
bFNwYW5zW2ldKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VVcCgpOwotCi0gICAgLy8gQ2hlY2tzIGhhdmluZ3MgdGhlIHNhbWUgc2VsZWN0aW9u
LgotICAgIGRlYnVnKGFsbFNwYW5zW2ldLnRleHRDb250ZW50ICsgIjogZG91YmxlIGNsaWNrIik7
Ci0gICAgc2hvdWxkQmUoImludGVybmFscy50cmVlU2NvcGVSb290Tm9kZSh3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yTm9kZSkiLCAKLSAgICAgICAgICAgICAiaW50ZXJuYWxzLnRyZWVTY29w
ZVJvb3ROb2RlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5mb2N1c05vZGUpIik7IAotCi0gICAgd2lu
ZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOwotfQotCi0vLyBSZW1vdmVzCi13
aGlsZSAoY29udGFpbmVyLmZpcnN0Q2hpbGQpCi0gICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGNv
bnRhaW5lci5maXJzdENoaWxkKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1hbmQtbGlzdC1lbGVtZW50cy1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYW5kLWxpc3QtZWxlbWVu
dHMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1hbmQtbGlzdC1lbGVtZW50cy1leHBlY3RlZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4K
LTxkaXY+Ci0gIDxvbD4KLSAgICA8bGk+QTwvbGk+Ci0gICAgPGxpIGlkPSJob3N0RXF1aXZhbGVu
dCI+PC9saT4KLSAgICA8bGk+QzwvbGk+Ci0gIDwvb2w+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci0vLyBX
ZSBjYW5ub3QgdXNlIGhvc3RFcXVpdmFsZW50LmlubmVySFRNTCBpbnN0ZWFkIG9mIGFwcGVuZENo
aWxkKClzIGJlY3Vhc2UKLS8vIHRoZSBwYXJzZXIgcHJldmVudHMgdG8gY3JlYXRlIGV4cGVjdGVk
IHRyZWU6Ci0vLwotLy8gPG9sPgotLy8gICA8bGk+QTwvbGk+Ci0vLyAgIDxsaT4KLS8vICAgICAg
PGxpPlg8L2xpPgotLy8gICAgICA8dWw+QjwvdWw+Ci0vLyAgICAgIDxsaT5ZPC9saT4KLS8vICAg
PC9saT4KLS8vICAgPGxpPkM8L2xpPgotLy8gPC9vbD4gICAKLXZhciBob3N0RXF1aXZhbGVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0RXF1aXZhbGVudCIpOwotdmFyIHNoYWRvd0xp
c3RSb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKLXNoYWRvd0xpc3RSb290LnN0
eWxlLnBhZGRpbmdMZWZ0ID0gIjBweCI7Ci1ob3N0RXF1aXZhbGVudC5hcHBlbmRDaGlsZChzaGFk
b3dMaXN0Um9vdCk7Ci0KLXZhciBjaGlsZFggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIp
OwotY2hpbGRYLmlubmVySFRNTCA9ICJYIjsKLWNoaWxkWC5zdHlsZS5saXN0U3R5bGVQb3NpdGlv
biA9ICJpbnNpZGUiOwotc2hhZG93TGlzdFJvb3QuYXBwZW5kQ2hpbGQoY2hpbGRYKTsKLQotdmFy
IGNoaWxkVWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpOwotY2hpbGRVbC5pbm5lckhU
TUwgPSAiQiI7Ci1zaGFkb3dMaXN0Um9vdC5hcHBlbmRDaGlsZChjaGlsZFVsKTsKLQotdmFyIGNo
aWxkWSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Ci1jaGlsZFkuaW5uZXJIVE1MID0g
IlkiOwotY2hpbGRZLnN0eWxlLmxpc3RTdHlsZVBvc2l0aW9uID0gImluc2lkZSI7Ci1zaGFkb3dM
aXN0Um9vdC5hcHBlbmRDaGlsZChjaGlsZFkpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWFuZC1saXN0LWVsZW1l
bnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1hbmQtbGlzdC1lbGVtZW50cy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWFuZC1saXN0LWVsZW1lbnRzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHN0eWxlPgotLyogCi0gKiBUbyBmaWxsIG1pc3NpbmcgVUEgc3R5bGVzIHdoaWNoIGFwcGVhcnMg
aW4gdGhlIGV4cGVjdGVkLmh0bWwgdGhyb3VnaCB0aGUgImxpIHVsIiBzZWxlY3RvciBpbiBodG1s
LmNzcy4KLSAqIEZvbGxvd2luZyA8dWw+IGNyb3NzZXMgc2hhZG93IGJvdW5kYXJ5IGFuZCBkb2Vz
bid0IG1hdGNoIGl0LgotICogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkyMTkyCi0gKi8KLXVsIHsKLSAgIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogMHB4OwotICAgLXdl
YmtpdC1tYXJnaW4tYWZ0ZXI6IDBweDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxk
aXY+Ci0gIDxvbD4KLSAgICA8bGk+QTwvbGk+Ci0gICAgPGxpIGlkPSJob3N0Ij5CPC9saT4KLSAg
ICA8bGk+QzwvbGk+Ci0gIDwvb2w+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci0vLyBUaGUgdHJlZSB0byBi
ZSBjcmVhdGVkOgotLy8KLS8vIDxvbD4KLS8vICAgPGxpPkE8L2xpPgotLy8gICA8bGk+QgotLy8g
ICAgICAjZG9jdW1lbnQtZnJhZ21lbnQKLS8vICAgICAgICA8bGk+WDwvbGk+Ci0vLyAgICAgICAg
PHVsPjxzaGFkb3c+PC9zaGFkb3c+PC91bD4KLS8vICAgICAgICA8bGk+WTwvbGk+Ci0vLyAgIDwv
bGk+Ci0vLyAgIDxsaT5DPC9saT4KLS8vIDwvb2w+ICAgCi12YXIgaG9zdCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJob3N0Iik7Ci12YXIgc2hhZG93ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci1zaGFkb3cuYXBwbHlBdXRob3JTdHlsZXMgPSB0cnVlOwotc2hhZG93LmlubmVy
SFRNTCA9ICI8bGk+WDwvbGk+PHVsPjxzaGFkb3c+PC9zaGFkb3c+PC91bD48bGk+WTwvbGk+IjsK
LTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1hd2FyZS1jcmVhdGUtc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYXdhcmUtY3JlYXRl
LXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hd2FyZS1jcmVhdGUtc2hhZG93LXJvb3QtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIGZvciBTaGFkb3dB
d2FyZSBKUyBBUElzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyByb290
MSBpcyBub3Qgcm9vdDIKLVBBU1Mgcm9vdDEgaXMgd2luZG93LmludGVybmFscy5vbGRlc3RTaGFk
b3dSb290KGhvc3QpCi1QQVNTIHJvb3QyIGlzIHdpbmRvdy5pbnRlcm5hbHMueW91bmdlc3RTaGFk
b3dSb290KGhvc3QpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hd2FyZS1j
cmVhdGUtc2hhZG93LXJvb3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWF3YXJlLWNyZWF0ZS1zaGFkb3ctcm9vdC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWF3YXJlLWNyZWF0
ZS1zaGFkb3ctcm9vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlRlc3RzIGZvciBTaGFkb3dBd2FyZSBKUyBBUElzLiIpOwotRWxlbWVudC5w
cm90b3R5cGUuY3JlYXRlU2hhZG93Um9vdCA9IEVsZW1lbnQucHJvdG90eXBlLmNyZWF0ZVNoYWRv
d1Jvb3QgfHwgRWxlbWVudC5wcm90b3R5cGUud2Via2l0Q3JlYXRlU2hhZG93Um9vdDsKLQotLy8g
U2hhZG93QXdhcmUuY3JlYXRlU2hhZG93Um9vdCgpCi12YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotdmFyIHJvb3QxID0gaG9zdC5jcmVhdGVTaGFkb3dSb290KCk7Ci12
YXIgcm9vdDIgPSBob3N0LmNyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNob3VsZE5vdEJlKCJyb290MSIs
ICJyb290MiIpOwotc2hvdWxkQmUoInJvb3QxIiwgIndpbmRvdy5pbnRlcm5hbHMub2xkZXN0U2hh
ZG93Um9vdChob3N0KSIpOwotc2hvdWxkQmUoInJvb3QyIiwgIndpbmRvdy5pbnRlcm5hbHMueW91
bmdlc3RTaGFkb3dSb290KGhvc3QpIik7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hd2FyZS1zaGFkb3ct
cm9vdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1hd2FyZS1zaGFkb3ctcm9vdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYXdhcmUtc2hhZG93LXJv
b3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLVRlc3RzIGZv
ciBTaGFkb3dBd2FyZS5zaGFkb3dSb290IHByb3BlcnR5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotUEFTUyBob3N0LndlYmtpdFNoYWRvd1Jvb3QgaXMgbnVsbAotUEFTUyByb290
MSBpcyBob3N0LndlYmtpdFNoYWRvd1Jvb3QKLVBBU1Mgcm9vdDIgaXMgaG9zdC53ZWJraXRTaGFk
b3dSb290Ci1QQVNTIGhvc3RXaXRoVUFTaGFkb3cud2Via2l0U2hhZG93Um9vdCBpcyBudWxsCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hd2FyZS1zaGFkb3ctcm9vdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYXdhcmUt
c2hhZG93LXJvb3QuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1hd2FyZS1zaGFkb3ctcm9vdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIGZvciBTaGFkb3dBd2FyZS5z
aGFkb3dSb290IHByb3BlcnR5LiIpOwotCi12YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotc2hvdWxkQmVOdWxsKCJob3N0LndlYmtpdFNoYWRvd1Jvb3QiKTsKLXZhciBy
b290MSA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hvdWxkQmUoInJvb3QxIiwg
Imhvc3Qud2Via2l0U2hhZG93Um9vdCIpOwotdmFyIHJvb3QyID0gaG9zdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaG91bGRCZSgicm9vdDIiLCAiaG9zdC53ZWJraXRTaGFkb3dSb290Iik7
Ci0KLXZhciBob3N0V2l0aFVBU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQn
KTsKLXNob3VsZEJlTnVsbCgiaG9zdFdpdGhVQVNoYWRvdy53ZWJraXRTaGFkb3dSb290Iik7Ci0K
LTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1jcm9zc2luZy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1jcm9zc2lu
Zy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctYm91bmRhcnktY3Jvc3NpbmctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE1ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IHNoYWRvdyBET00gYm91
bmRhcnkgaXMgbm90IGNyb3NzZWQgZHVyaW5nIGV2ZW50IHByb3BhZ2F0aW9uLiBDYW4gb25seSBy
dW4gd2l0aGluIERSVC4KLQotU2VlIGJ1ZyA0NjAxNSBmb3IgZGV0YWlscy4KLQotTXV0YXRpb24g
ZXZlbnRzIHNob3VsZCBub3QgcHJvcGFnYXRlIG91dCBvZiB0aGUgc2hhZG93IERPTTogUEFTUwot
VGhlIHNlbGVjdHN0YXJ0IGV2ZW50IHNob3VsZCBub3QgcHJvcGFnYXRlIG91dCBvZiB0aGUgc2hh
ZG93IERPTTogUEFTUwotVGhlIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudCBiZXR3ZWVuIHR3byBl
bGVtZW50cyBpbnNpZGUgdGhlIHNhbWUgc2hhZG93IHN1YnRyZWUgc2hvdWxkIG5vdCBwcm9wYWdh
dGUgb3V0IG9mIHRoZSBzaGFkb3cgRE9NOiBQQVNTCi1UaGUgbW91c2VvdmVyIGV2ZW50IGluIGEg
c2hhZG93IHN1YnRyZWUsIHdoZXJlIHJlbGF0ZWQgdGFyZ2V0IGlzIHRoZSB0cmVlIGhvc3Qgc2hv
dWxkIG5vdCBlc2NhcGUgb3V0IG9mIHNoYWRvdyBET006IFBBU1MKLUV2ZW50cyB3aXRoIHJlbGF0
ZWRUYXJnZXQgc2hvdWxkIG5vdCBlc2NhcGUgb3V0IG9mIHNoYWRvdyBzdWJ0cmVlIHdoZW4gaXRz
IGhvc3QgaXMgdGhlIHRhcmdldDogUEFTUwotVGhlIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudCBv
biBhIHNoYWRvdyBzdWJ0cmVlIGhvc3Qgc2hvdWxkIHByb3BhZ2F0ZSBvdXQgb2YgdGhlIHNoYWRv
dyBET006IFBBU1MKLUxhYmVsIHNob3VsZCBsb29rIGJleW9uZCBzaGFkb3cgYm91bmRhcnkgdG8g
ZGV0ZWN0IGlmIGl0IGVuY2xvc2VzIGl0cyBhc3NvY2lhdGVkIGVsZW1lbnQ6IFBBU1MKLUV2ZW50
J3MgcmVsYXRlZFRhcmdldCBzaG91bGQgYmUgcmV0YXJnZXRlZDogUEFTUwotT3RoZXIgZXZlbnRz
IHNob3VsZCBiZSByZXRhcmdldGVkOiBQQVNTCi1BZnRlciBldmVudCBkaXNwYXRjaCwgdGhlIGV2
ZW50IG9iamVjdCBzaG91bGQgbm90IHJldmVhbCBzaGFkb3cgRE9NOiBQQVNTCi1Gb2N1c2luZyBz
YW1lIHNoYWRvdyBET00gZWxlbWVudCByZXBlYXRlZGx5IHNob3VsZCBub3QgdHJpZ2dlciBtdWx0
aXBsZSBmb2N1cy9ibHVyIGV2ZW50czogUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1ib3VuZGFyeS1jcm9zc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktY3Jvc3NpbmcuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3Vu
ZGFyeS1jcm9zc2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI4NyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdD4KLQotdmFyIGxvZ0RpdjsKLQotZnVuY3Rpb24gbG9nKG1zZywg
c3VjY2VzcykKLXsKLSAgICBsb2dEaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2JykpLnRleHRDb250ZW50ID0gbXNnICsgJzogJyArIChzdWNjZXNzID8gJ1BBU1MnIDog
J0ZBSUwnKTsKLX0KLQotZnVuY3Rpb24gbW92ZU92ZXIoZWxlbWVudCkKLXsKLSAgICBpZiAoIXdp
bmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmFyIHggPSBlbGVtZW50
Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICB2YXIgeSA9IGVsZW1l
bnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOwotfQotCi1mdW5jdGlvbiBtb3ZlT3ZlckxlZnRRdWFydGVyT2Yo
ZWxlbWVudCkKLXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgdmFyIHggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRo
IC8gNDsKLSAgICB2YXIgeSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWln
aHQgLyAyOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotfQotCi1mdW5jdGlv
biBtb3ZlT3ZlclJpZ2h0UXVhcnRlck9mKGVsZW1lbnQpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZl
bnRTZW5kZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZhciB4ID0gZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAqIDMgLyA0OwotICAgIHZhciB5ID0gZWxlbWVudC5v
ZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oeCwgeSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT24oZWxlbWVudCkKLXsKLSAgICBt
b3ZlT3ZlcihlbGVtZW50KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25MZWZ0UXVhcnRlck9mKGVs
ZW1lbnQpCi17Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1vdmVPdmVyTGVmdFF1YXJ0ZXJPZihlbGVtZW50KTsKLSAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGxl
YXBGb3J3YXJkKCkKLXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwMCk7Ci19Ci0KLXZhciB0ZXN0
cyA9IHsKLSAgICBtdXRhdGlvbkV2ZW50UHJvcGFnYXRpb246IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHZhciB0ZXh0YXJlYSA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKSk7Ci0gICAgICAgIHZhciBtdXRhdGlvbkV2ZW50Rmly
ZWQ7Ci0gICAgICAgIHRleHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoJ0RPTVN1YnRyZWVNb2RpZmll
ZCcsIGZ1bmN0aW9uKGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG11dGF0aW9uRXZlbnRGaXJl
ZCA9IHRydWU7Ci0gICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgdGV4dGFyZWEudmFsdWUgPSAn
dGVzdCc7Ci0gICAgICAgIC8vIFRyaWdnZXIgc3R5bGUgcmVjYWxjIGFuZCBzYWRseSwgdGhlIGFj
dHVhbCBtdXRhdGlvbiBvZiB0aGUgdGV4dGFyZWEgc2hhZG93IERPTS4KLSAgICAgICAgdGV4dGFy
ZWEub2Zmc2V0SGVpZ2h0OwotICAgICAgICBsb2coJ011dGF0aW9uIGV2ZW50cyBzaG91bGQgbm90
IHByb3BhZ2F0ZSBvdXQgb2YgdGhlIHNoYWRvdyBET00nLCAhbXV0YXRpb25FdmVudEZpcmVkKTsK
LSAgICAgICAgdGV4dGFyZWEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZXh0YXJlYSk7Ci0gICAg
fSwKLSAgICBzZWxlY3RzdGFydEV2ZW50UHJvcGFnYXRpb246IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHZhciB0ZXh0SW5wdXQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykpOwotICAgICAgICB2YXIgc2VsZWN0c3RhcnRFdmVudEZp
cmVkID0gZmFsc2U7Ci0gICAgICAgIGRvY3VtZW50LnNlbGVjdHN0YXJ0ID0gZnVuY3Rpb24oKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBzZWxlY3RzdGFydEV2ZW50RmlyZWQgPSB0cnVlOwotICAg
ICAgICB9Ci0gICAgICAgIGNsaWNrT24odGV4dElucHV0KTsKLSAgICAgICAgbG9nKCdUaGUgc2Vs
ZWN0c3RhcnQgZXZlbnQgc2hvdWxkIG5vdCBwcm9wYWdhdGUgb3V0IG9mIHRoZSBzaGFkb3cgRE9N
JywgIXNlbGVjdHN0YXJ0RXZlbnRGaXJlZCk7Ci0gICAgICAgIHRleHRJbnB1dC5wYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKHRleHRJbnB1dCk7Ci0gICAgICAgIGRvY3VtZW50LnNlbGVjdHN0YXJ0ID0g
bnVsbDsKLSAgICB9LAotICAgIG1vdXNlT3ZlckFuZE91dFByb3BhZ2F0aW9uOiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICB2YXIgZmlsZUlucHV0ID0g
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcp
KTsKLSAgICAgICAgZmlsZUlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7Ci0gICAg
ICAgIHZhciBjb3VudEV2ZW50RGlzcGF0Y2ggPSBmdW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0KLSAgICAgICAgbW92ZU92ZXJMZWZ0UXVhcnRlck9m
KGZpbGVJbnB1dCk7Ci0KLSAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZW92ZXInLCBjb3VudEV2ZW50RGlzcGF0Y2gsIGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQu
Ym9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGNvdW50RXZlbnREaXNwYXRjaCwgZmFs
c2UpOwotCi0gICAgICAgIG1vdmVPdmVyUmlnaHRRdWFydGVyT2YoZmlsZUlucHV0KTsKLQotICAg
ICAgICBsb2coIlRoZSBtb3VzZW92ZXIvbW91c2VvdXQgZXZlbnQgYmV0d2VlbiB0d28gZWxlbWVu
dHMgaW5zaWRlIHRoZSBzYW1lIHNoYWRvdyBzdWJ0cmVlIHNob3VsZCBub3QgcHJvcGFnYXRlIG91
dCBvZiB0aGUgc2hhZG93IERPTSIsIGNvdW50ID09IDApOwotCi0gICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgY291bnRFdmVudERpc3BhdGNoLCBm
YWxzZSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vv
dXQnLCBjb3VudEV2ZW50RGlzcGF0Y2gsIGZhbHNlKTsKLSAgICAgICAgZmlsZUlucHV0LnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsKLSAgICB9LAotICAgIHJlbGF0ZWRUYXJnZXRB
c0hvc3Q6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAg
IHZhciByZWxhdGVkVGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
ICAgIHJlbGF0ZWRUYXJnZXQuc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDogNTBweDsgaGVpZ2h0OiA1
MHB4OyBwYWRkaW5nLWxlZnQ6IDUwcHg7JzsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChyZWxhdGVkVGFyZ2V0KTsKLSAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICB0YXJnZXQuc3R5bGUuY3NzVGV4dCA9ICd3aWR0aDog
NTBweDsgaGVpZ2h0OiA1MHB4JzsKLSAgICAgICAgaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qo
cmVsYXRlZFRhcmdldCkuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICAgICAgbW92ZU92ZXJMZWZ0
UXVhcnRlck9mKHJlbGF0ZWRUYXJnZXQpOwotICAgICAgICB2YXIgY291bnRFdmVudERpc3BhdGNo
ID0gZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9
Ci0gICAgICAgIHJlbGF0ZWRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgY291
bnRFdmVudERpc3BhdGNoLCBmYWxzZSkKLSAgICAgICAgbW92ZU92ZXJSaWdodFF1YXJ0ZXJPZihy
ZWxhdGVkVGFyZ2V0KTsKLQotICAgICAgICBsb2coIlRoZSBtb3VzZW92ZXIgZXZlbnQgaW4gYSBz
aGFkb3cgc3VidHJlZSwgd2hlcmUgcmVsYXRlZCB0YXJnZXQgaXMgdGhlIHRyZWUgaG9zdCBzaG91
bGQgbm90IGVzY2FwZSBvdXQgb2Ygc2hhZG93IERPTSIsIGNvdW50ID09IDApOwotCi0gICAgICAg
IHJlbGF0ZWRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgY291bnRFdmVu
dERpc3BhdGNoLCBmYWxzZSk7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocmVs
YXRlZFRhcmdldCk7Ci0gICAgfSwKLSAgICB0YXJnZXRBc0hvc3Q6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgdGFyZ2V0LnN0eWxlLmNzc1RleHQgPSAnd2lk
dGg6IDUwcHg7IGhlaWdodDogNTBweDsgcGFkZGluZy1sZWZ0OiA1MHB4Oyc7Ci0gICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICAgICAgdmFyIHJlbGF0ZWRUYXJn
ZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgcmVsYXRlZFRhcmdl
dC5zdHlsZS5jc3NUZXh0ID0gJ3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHgnOwotICAgICAgICBp
bnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpLmFwcGVuZENoaWxkKHJlbGF0ZWRUYXJn
ZXQpOwotICAgICAgICBtb3ZlT3ZlclJpZ2h0UXVhcnRlck9mKHRhcmdldCk7Ci0gICAgICAgIHZh
ciBjb3VudEV2ZW50RGlzcGF0Y2ggPSBmdW5jdGlvbihldnQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGNvdW50Kys7Ci0gICAgICAgIH0KLSAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlb3ZlcicsIGNvdW50RXZlbnREaXNwYXRjaCwgZmFsc2UpCi0gICAgICAgIG1vdmVPdmVy
TGVmdFF1YXJ0ZXJPZih0YXJnZXQpOwotCi0gICAgICAgIGxvZygiRXZlbnRzIHdpdGggcmVsYXRl
ZFRhcmdldCBzaG91bGQgbm90IGVzY2FwZSBvdXQgb2Ygc2hhZG93IHN1YnRyZWUgd2hlbiBpdHMg
aG9zdCBpcyB0aGUgdGFyZ2V0IiwgY291bnQgPT0gMCk7Ci0KLSAgICAgICAgdGFyZ2V0LnJlbW92
ZUV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgY291bnRFdmVudERpc3BhdGNoLCBmYWxzZSk7Ci0g
ICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGFyZ2V0KTsKLSAgICB9LAotICAgIG1v
dXNlT3Zlck9uSG9zdDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGNvdW50ID0gMDsK
LSAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKLSAgICAgICAgdmFyIGNvdW50RXZlbnREaXNwYXRjaCA9
IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfQot
Ci0gICAgICAgIG1vdmVPdmVyKGRvY3VtZW50LmJvZHkpOwotICAgICAgICBpbnB1dC5hZGRFdmVu
dExpc3RlbmVyKCdtb3VzZW92ZXInLCBjb3VudEV2ZW50RGlzcGF0Y2gsIGZhbHNlKTsKLSAgICAg
ICAgbW92ZU92ZXIoaW5wdXQpOwotCi0gICAgICAgIGxvZygiVGhlIG1vdXNlb3Zlci9tb3VzZW91
dCBldmVudCBvbiBhIHNoYWRvdyBzdWJ0cmVlIGhvc3Qgc2hvdWxkIHByb3BhZ2F0ZSBvdXQgb2Yg
dGhlIHNoYWRvdyBET00iLCBjb3VudCA9PSAxKTsKLQotICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGNvdW50RXZlbnREaXNwYXRjaCwgZmFsc2Up
OwotICAgICAgICBpbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGlucHV0KTsKLSAgICB9LAot
ICAgIGxhYmVsU3ludGhldGljQ2xpY2s6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBj
b3VudCA9IDA7Ci0gICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKSk7Ci0gICAgICAgIHZhciBzZWFyY2hJbnB1
dCA9IGxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykpOwot
ICAgICAgICBzZWFyY2hJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnc2VhcmNoJyk7Ci0gICAg
ICAgIHNlYXJjaElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAnYmF6Jyk7Ci0gICAgICAgIGxhYmVs
LnNldEF0dHJpYnV0ZSgnZm9yJywgJ2JheicpOwotICAgICAgICBzZWFyY2hJbnB1dC5hZGRFdmVu
dExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNv
dW50Kys7Ci0gICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgY2xpY2tPbihzZWFyY2hJbnB1dCk7
Ci0gICAgICAgIGxvZygiTGFiZWwgc2hvdWxkIGxvb2sgYmV5b25kIHNoYWRvdyBib3VuZGFyeSB0
byBkZXRlY3QgaWYgaXQgZW5jbG9zZXMgaXRzIGFzc29jaWF0ZWQgZWxlbWVudCIsIGNvdW50ID09
IDEpOwotICAgICAgICBsYWJlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxhYmVsKTsKLSAgICB9
LAotICAgIC8qIFRoaXMgc3VidGVzdCBzdGFydGVkIGNyYXNoaW5nIGFmdGVyIHI4OTAwNzoKLSAg
ICAgKiAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjc4OAotICAg
ICAqIEknbSBkaXNhYmxpbmcgdGhpcyB0ZXN0IGZvciBub3cgd2hpbGUgSSBhc2sgZm9yIGhlbHAg
dW5kZXJzdGFuZGluZyB0aGUgcHJvYmxlbS4KLSAgICBkZWZhdWx0RXZlbnRSZXRhcmdldGluZzog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgdmFyIGZp
bGVJbnB1dCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaW5wdXQnKSk7Ci0gICAgICAgIGZpbGVJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmls
ZScpOwotICAgICAgICB2YXIgY291bnRlciA9IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgY291bnQrKzsKLSAgICAgICAgfQotICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50
TGlzdGVuZXIoJ0RPTUFjdGl2YXRlJywgY291bnRlciwgZmFsc2UpOwotICAgICAgICBjbGlja09u
TGVmdFF1YXJ0ZXJPZihmaWxlSW5wdXQpOwotICAgICAgICBsb2coIkV2ZW50cyBmb3IgZGVmYXVs
dCBldmVudCBoYW5kbGVyIHNob3VsZCBub3QgYmUgcmV0YXJnZXRlZCIsIGNvdW50ID09IDEpOwot
ICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0RPTUFjdGl2YXRlJywg
Y291bnRlciwgZmFsc2UpOwotICAgICAgICBmaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChmaWxlSW5wdXQpOwotICAgIH0sCi0gICAgKi8KLSAgICByZWxhdGVkVGFyZ2V0UmV0YXJnZXRp
bmc6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgIHZh
ciB0ZXh0SW5wdXQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lucHV0JykpOwotICAgICAgICB2YXIgY291bnRlciA9IGZ1bmN0aW9uKGV2dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgaWYgKGV2dC5yZWxhdGVkVGFyZ2V0ICYmICFldnQucmVsYXRl
ZFRhcmdldC5wYXJlbnROb2RlKQotICAgICAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgIH0K
LSAgICAgICAgbW92ZU92ZXIodGV4dElucHV0KTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLCBjb3VudGVyLCBmYWxzZSk7Ci0gICAgICAgIG1vdmVP
dmVyKGRvY3VtZW50LmJvZHkpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlz
dGVuZXIoIm1vdXNlb3ZlciIsIGNvdW50ZXIsIGZhbHNlKTsKLSAgICAgICAgbG9nKCJFdmVudCdz
IHJlbGF0ZWRUYXJnZXQgc2hvdWxkIGJlIHJldGFyZ2V0ZWQiLCBjb3VudCA9PSAwKTsKLSAgICAg
ICAgdGV4dElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGV4dElucHV0KTsKLSAgICB9LAot
ICAgIGV2ZW50SW5Qcm9ncmVzczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHRleHRJ
bnB1dCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aW5wdXQnKSk7Ci0gICAgICAgIHRleHRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1
bmN0aW9uKGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGxvZygnT3RoZXIgZXZlbnRzIHNob3Vs
ZCBiZSByZXRhcmdldGVkJywgZS50YXJnZXQgPT0gdGV4dElucHV0KTsKLSAgICAgICAgfSwgZmFs
c2UpOwotICAgICAgICBjbGlja09uKHRleHRJbnB1dCk7Ci0gICAgICAgIHRleHRJbnB1dC5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKHRleHRJbnB1dCk7Ci0gICAgfSwKLSAgICBmaW5hbEV2ZW50T2Jq
ZWN0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgdGV4dElucHV0ID0gZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKLSAgICAg
ICAgdmFyIHN0b3JlZEV2ZW50OwotICAgICAgICB0ZXh0SW5wdXQuYWRkRXZlbnRMaXN0ZW5lcign
Y2xpY2snLCBmdW5jdGlvbihlKQotICAgICAgICB7Ci0gICAgICAgICAgICBzdG9yZWRFdmVudCA9
IGU7Ci0gICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgY2xpY2tPbih0ZXh0SW5wdXQpOwotICAg
ICAgICBsb2coJ0FmdGVyIGV2ZW50IGRpc3BhdGNoLCB0aGUgZXZlbnQgb2JqZWN0IHNob3VsZCBu
b3QgcmV2ZWFsIHNoYWRvdyBET00nLCBzdG9yZWRFdmVudCAmJiBzdG9yZWRFdmVudC50YXJnZXQg
PT0gdGV4dElucHV0KTsKLSAgICAgICAgdGV4dElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
dGV4dElucHV0KTsKLSAgICB9LAotICAgIGZvY3VzRXZlbnRQcm9wYWdhdGlvbjogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgdmFyIHNlYXJjaElucHV0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpKTsKLSAgICAgICAgc2VhcmNoSW5w
dXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3NlYXJjaCcpOwotICAgICAgICB2YXIgY291bnQgPSAw
OwotICAgICAgICBzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9u
KGV2dCkKLSAgICAgICAgewotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfSk7Ci0gICAg
ICAgIGNsaWNrT24oc2VhcmNoSW5wdXQpOwotICAgICAgICBsZWFwRm9yd2FyZCgpOwotICAgICAg
ICBjbGlja09uKHNlYXJjaElucHV0KTsKLSAgICAgICAgbG9nKCdGb2N1c2luZyBzYW1lIHNoYWRv
dyBET00gZWxlbWVudCByZXBlYXRlZGx5IHNob3VsZCBub3QgdHJpZ2dlciBtdWx0aXBsZSBmb2N1
cy9ibHVyIGV2ZW50cycsIGNvdW50ID09IDEpOwotICAgICAgICBzZWFyY2hJbnB1dC5wYXJlbnRO
b2RlLnJlbW92ZUNoaWxkKHNlYXJjaElucHV0KTsKLSAgICB9Ci19OwotCi1mdW5jdGlvbiBydW5U
ZXN0KCkKLXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotCi0gICAgbG9nRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xv
ZycpOwotICAgIGZvcih2YXIgdGVzdE5hbWUgaW4gdGVzdHMpIHsKLSAgICAgICAgdGVzdHNbdGVz
dE5hbWVdKCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLSAgICA8cD5UZXN0cyB0byBlbnN1cmUgdGhhdCBzaGFkb3cgRE9NIGJvdW5k
YXJ5IGlzIG5vdCBjcm9zc2VkIGR1cmluZyBldmVudCBwcm9wYWdhdGlvbi4gQ2FuIG9ubHkgcnVu
IHdpdGhpbiBEUlQuCi0gICAgPHA+U2VlIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NjAxNSI+YnVnIDQ2MDE1PC9hPiBmb3IgZGV0YWlscy4KLSAgICA8
ZGl2IGlkPSJsb2ciPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZl
bnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDg0ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IHNoYWRvdyBET00gYm91
bmRhcnkgaXMgbm90IGNyb3NzZWQgZHVyaW5nIGV2ZW50IHByb3BhZ2F0aW9uLiBDYW4gb25seSBy
dW4gd2l0aGluIERSVC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotTW92ZSBt
b3VzZSBmcm9tIGEgbm9kZSB0byBpdHMgc2libGluZyBub2RlLiBBbGwgbm9kZXMgYXJlIG91dHNp
ZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LgotTW92aW5nIG1vdXNlIGZyb20gZGl2QiB0byBkaXZDCi1Q
QVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIikgaXMgWyJkaXZDKDwtZGl2QikoQGRpdkMp
IiwgImRpdkMoPC1kaXZCKShAZGl2QSkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0
IikgaXMgWyJkaXZCKDwtZGl2QykoQGRpdkIpIiwgImRpdkIoPC1kaXZDKShAZGl2QSkiXQotCi1U
YXJnZXQgaXMgYW4gYW5jZXN0b3Igb2YgcmVsYXRlZFRhcmdldC4gQWxsIG5vZGVzIGFyZSBvdXRz
aWRlIG9mIHNoYWRvdyBib3VuZGFyeS4KLU1vdmluZyBtb3VzZSBmcm9tIGRpdkIgdG8gZGl2QQot
UEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpIGlzIFsiZGl2QSg8LWRpdkIpKEBkaXZB
KSJdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKSBpcyBbImRpdkIoPC1kaXZBKShA
ZGl2QikiLCAiZGl2Qig8LWRpdkEpKEBkaXZBKSJdCi0KLVJlbGF0ZWRUYXJnZXQgaXMgYW4gYW5j
ZXN0b3Igb2YgdGFyZ2V0LiBBbGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5
LgotTW92aW5nIG1vdXNlIGZyb20gZGl2QSB0byBkaXZCCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgi
bW91c2VvdmVyIikgaXMgWyJkaXZCKDwtZGl2QSkoQGRpdkIpIiwgImRpdkIoPC1kaXZBKShAZGl2
QSkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJkaXZBKDwtZGl2Qiko
QGRpdkEpIl0KLQotQm90aCB0YXJnZXQgYW5kIHJlbGF0ZWRUYXJnZXQgYXJlIGltbWVkaWF0ZSBj
aGlsZHJlbiBvZiB0aGUgc2FtZSBzaGFkb3cgcm9vdC4KLU1vdmluZyBtb3VzZSBmcm9tIHNoYWRv
d0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkggdG8gc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SQot
UEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpIGlzIFsiZGl2SSg8LWRpdkgpKEBkaXZJ
KSJdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKSBpcyBbImRpdkgoPC1kaXZJKShA
ZGl2SCkiXQotCi1UYXJnZXQgaXMgYW4gYW5jZXN0b3Igb2YgcmVsYXRlZFRhcmdldC4KLU1vdmlu
ZyBtb3VzZSBmcm9tIHNoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkkgdG8gc2hhZG93RC9kaXZF
Ci1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIikgaXMgWyJkaXZFKDwtc2hhZG93Riko
QGRpdkUpIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91dCIpIGlzIFsiZGl2SSg8LWRp
dkUpKEBkaXZJKSIsICJzaGFkb3dHKDwtZGl2RSkoQHNoYWRvd0cpIiwgInNoYWRvd0YoPC1kaXZF
KShAc2hhZG93RikiLCAic2hhZG93Rig8LWRpdkUpKEBkaXZFKSJdCi0KLVRhcmdldCAoc2hhZG93
IGhvc3QpIGlzIGFuIGFuY2VzdG9yIG9mIHJlbGF0ZWRUYXJnZXQuCi1Nb3ZpbmcgbW91c2UgZnJv
bSBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZJIHRvIHNoYWRvd0Qvc2hhZG93RgotUEFTUyBk
aXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpIGlzIFtdCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgi
bW91c2VvdXQiKSBpcyBbImRpdkkoPC1zaGFkb3dGKShAZGl2SSkiLCAic2hhZG93Ryg8LXNoYWRv
d0YpKEBzaGFkb3dHKSJdCi0KLVRhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFuIGFuY2VzdG9yIG9m
IHJlbGF0ZWRUYXJnZXQgKHNoYWRvdyBob3N0KS4KLU1vdmluZyBtb3VzZSBmcm9tIHNoYWRvd0Qv
c2hhZG93Ri9zaGFkb3dHIHRvIHNoYWRvd0QKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92
ZXIiKSBpcyBbXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJzaGFkb3dH
KDwtc2hhZG93RCkoQHNoYWRvd0cpIiwgInNoYWRvd0YoPC1zaGFkb3dEKShAc2hhZG93RikiLCAi
c2hhZG93Rig8LXNoYWRvd0QpKEBkaXZFKSJdCi0KLVJlbGF0ZWRUYXJnZXQgaXMgYW5jZXN0b3Ig
b2YgdGFyZ2V0LgotTW92aW5nIG1vdXNlIGZyb20gc2hhZG93RC9kaXZFIHRvIHNoYWRvd0Qvc2hh
ZG93Ri9zaGFkb3dHL2RpdkkKLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKSBpcyBb
ImRpdkkoPC1kaXZFKShAZGl2SSkiLCAic2hhZG93Ryg8LWRpdkUpKEBzaGFkb3dHKSIsICJzaGFk
b3dGKDwtZGl2RSkoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1kaXZFKShAZGl2RSkiXQotUEFTUyBk
aXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJkaXZFKDwtc2hhZG93RikoQGRpdkUpIl0K
LQotUmVsYXRlZFRhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFuY2VzdG9yIG9mIHRhcmdldC4KLU1v
dmluZyBtb3VzZSBmcm9tIHNoYWRvd0Qvc2hhZG93RiB0byBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93
Ry9kaXZJCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIikgaXMgWyJkaXZJKDwtc2hh
ZG93RikoQGRpdkkpIiwgInNoYWRvd0coPC1zaGFkb3dGKShAc2hhZG93RykiXQotUEFTUyBkaXNw
YXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgW10KLQotUmVsYXRlZFRhcmdldCAoc2hhZG93IGhv
c3QpIGlzIGFuIGFuY2VzdG9yIG9mIHRhcmdldCAoc2hhZG93IGhvc3QpLgotTW92aW5nIG1vdXNl
IGZyb20gc2hhZG93RCB0byBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93RwotUEFTUyBkaXNwYXRjaGVk
RXZlbnQoIm1vdXNlb3ZlciIpIGlzIFsic2hhZG93Ryg8LXNoYWRvd0QpKEBzaGFkb3dHKSIsICJz
aGFkb3dGKDwtc2hhZG93RCkoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1zaGFkb3dEKShAZGl2RSki
XQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgW10KLQotVGFyZ2V0IGFuZCBy
ZWxhdGVkVGFyZ2V0IGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlLCBjcm9zc2luZyBzaGFkb3cg
Ym91bmRhcmllcy4gTWFraW5nIHN1cmUgdGhhdCBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlv
bmQgdGhlIGxvd2VzdCBjb21tb24gYm91bmRhcnkuCi1Nb3ZpbmcgbW91c2UgZnJvbSBzaGFkb3dE
L3NoYWRvd0Yvc2hhZG93Ry9kaXZIIHRvIHNoYWRvd0Qvc2hhZG93Sy9kaXZMCi1QQVNTIGRpc3Bh
dGNoZWRFdmVudCgibW91c2VvdmVyIikgaXMgWyJkaXZMKDwtc2hhZG93RikoQGRpdkwpIiwgInNo
YWRvd0soPC1zaGFkb3dGKShAc2hhZG93SykiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBkaXZKKSJd
Ci1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKSBpcyBbImRpdkgoPC1zaGFkb3dLKShA
ZGl2SCkiLCAic2hhZG93Ryg8LXNoYWRvd0spKEBzaGFkb3dHKSIsICJzaGFkb3dGKDwtc2hhZG93
SykoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1zaGFkb3dLKShAZGl2RSkiXQotCi1Nb3ZlIGZvY3Vz
IGZyb20gYSBub2RlIHRvIGl0cyBzaWJsaW5nIG5vZGUuIEFsbCBub2RlcyBhcmUgb3V0c2lkZSBv
ZiBzaGFkb3cgYm91bmRhcnkuCi1Nb3ZpbmcgZm9jdXMgZnJvbSBkaXZCIHRvIGRpdkMKLVBBU1Mg
ZGlzcGF0Y2hlZEV2ZW50KCJmb2N1c2luIikgaXMgWyJkaXZDKDwtZGl2QikoQGRpdkMpIiwgImRp
dkMoPC1kaXZCKShAZGl2QSkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3Vzb3V0IikgaXMg
WyJkaXZCKDwtZGl2QykoQGRpdkIpIiwgImRpdkIoPC1kaXZDKShAZGl2QSkiXQotCi1PbGQgZm9j
dXNlZCBub2RlIGFuZCBuZXcgZm9jdXNlZCBub2RlIGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVl
cywgY3Jvc3Npbmcgc2hhZG93IGJvdW5kYXJpZXMuIE1ha2luZyBzdXJlIHRoYXQgYW4gZXZlbnQg
aXMgbm90IGRpc3BhdGNoZWQgYmV5b25kIHRoZSBsb3dlc3QgY29tbW9uIGJvdW5kYXJ5LgotTW92
aW5nIGZvY3VzIGZyb20gc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SCB0byBzaGFkb3dEL3No
YWRvd0svZGl2TAotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzaW4iKSBpcyBbImRpdkwoPC1z
aGFkb3dGKShAZGl2TCkiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBzaGFkb3dLKSIsICJzaGFkb3dL
KDwtc2hhZG93RikoQGRpdkopIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1c291dCIpIGlz
IFsiZGl2SCg8LXNoYWRvd0spKEBkaXZIKSIsICJzaGFkb3dHKDwtc2hhZG93SykoQHNoYWRvd0cp
IiwgInNoYWRvd0YoPC1zaGFkb3dLKShAc2hhZG93RikiLCAic2hhZG93Rig8LXNoYWRvd0spKEBk
aXZFKSJdCi0KLU1vdmUgZm9jdXMgZnJvbSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxs
IG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNoYWRvdyBib3VuZGFyeS4KLU1vdmluZyBmb2N1cyBmcm9t
IGRpdkIgdG8gZGl2QwotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJkaXZDKDwt
ZGl2QikoQGRpdkEpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZDKSJdCi1Q
QVNTIGRpc3BhdGNoZWRFdmVudCgiYmx1ciIpIGlzIFsiZGl2Qig8LWRpdkMpKEBkaXZBKShjYXB0
dXJpbmcgcGhhc2UpIiwgImRpdkIoPC1kaXZDKShAZGl2QikiXQotCi1PbGQgZm9jdXNlZCBub2Rl
IGFuZCBuZXcgZm9jdXNlZCBub2RlIGV4aXN0IGluIHNlcGFyYXRlZCBzdWJ0cmVlcywgY3Jvc3Np
bmcgc2hhZG93IGJvdW5kYXJpZXMuIE1ha2luZyBzdXJlIHRoYXQgYW4gZXZlbnQgaXMgbm90IGRp
c3BhdGNoZWQgYmV5b25kIHRoZSBsb3dlc3QgY29tbW9uIGJvdW5kYXJ5LgotTW92aW5nIGZvY3Vz
IGZyb20gc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SCB0byBzaGFkb3dEL3NoYWRvd0svZGl2
TAotUEFTUyBkaXNwYXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJzaGFkb3dLKDwtc2hhZG93Riko
QGRpdkopKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2TCg8LXNoYWRvd0YpKEBkaXZMKSIsICJzaGFk
b3dLKDwtc2hhZG93RikoQHNoYWRvd0spIl0KLVBBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikg
aXMgWyJzaGFkb3dGKDwtc2hhZG93SykoQGRpdkUpKGNhcHR1cmluZyBwaGFzZSkiLCAiZGl2SCg8
LXNoYWRvd0spKEBkaXZIKSIsICJzaGFkb3dHKDwtc2hhZG93SykoQHNoYWRvd0cpIiwgInNoYWRv
d0YoPC1zaGFkb3dLKShAc2hhZG93RikiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYg
aWQ9InNhbmRib3giPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IHNoYWRvdyBET00gYm91bmRhcnkgaXMg
bm90IGNyb3NzZWQgZHVyaW5nIGV2ZW50IHByb3BhZ2F0aW9uLiBDYW4gb25seSBydW4gd2l0aGlu
IERSVC4iKTsKLQotZnVuY3Rpb24gbW92ZU1vdXNlT3ZlcihlbGVtZW50KQotewotICAgIGlmICgh
d2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICByZXR1cm47
Ci0KLSAgICB2YXIgZGVmYXVsdFBhZGRpbmdTaXplID0gMjA7Ci0gICAgdmFyIHggPSBlbGVtZW50
Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICB2YXIgeTsKLSAgICBp
ZiAoZWxlbWVudC5oYXNDaGlsZE5vZGVzKCkgfHwgd2luZG93LmludGVybmFscy5zaGFkb3dSb290
KGVsZW1lbnQpKQotICAgICAgICB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBkZWZhdWx0UGFkZGlu
Z1NpemU7Ci0gICAgZWxzZQotICAgICAgICB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50
Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci19
Ci0KLXZhciBldmVudFJlY29yZHMgPSB7fTsKLQotZnVuY3Rpb24gY2xlYXJFdmVudFJlY29yZHMo
KQotewotICAgIGV2ZW50UmVjb3JkcyA9IHt9OwotfQotCi1mdW5jdGlvbiBkaXNwYXRjaGVkRXZl
bnQoZXZlbnRUeXBlKQotewotICAgIHZhciBldmVudHMgPSBldmVudFJlY29yZHNbZXZlbnRUeXBl
XTsKLSAgICBpZiAoIWV2ZW50cykKLSAgICAgICAgcmV0dXJuIFtdOwotICAgIHJldHVybiBldmVu
dHM7Ci19Ci0KLWZ1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KQotewotICAgIHZhciBldmVudFR5
cGUgPSBldmVudC50eXBlCi0gICAgaWYgKCFldmVudFJlY29yZHNbZXZlbnRUeXBlXSkgewotICAg
ICAgICBldmVudFJlY29yZHNbZXZlbnRUeXBlXSA9IFtdCi0gICAgfQotICAgIC8vIFJlY29yZHMg
ZWFjaCBldmVudCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdCBwZXIgZXZlbnQgdHlwZToKLSAgICAv
LyAgIGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdID0gWyd0YXJnZXQuaWQoPC1yZWxhdGVkVGFyZ2V0
LmlkKShAY3VycmVudFRhcmdldC5pZCknLCwsXQotICAgIC8vICAgKiBSZWxhdGVkVGFyZ2V0IGFu
ZCBjdXJyZW50VGFyZ2V0IG1heSBiZSBvbWl0dGVkIGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkLgot
ICAgIC8vIEEgbmV3IGV2ZW50IGlzIHB1c2hlZCBiYWNrIHRvIHRoZSBhcnJheSBvZiBpdHMgZXZl
bnQgdHlwZS4KLSAgICB2YXIgZXZlbnRTdHJpbmcgPSAnJzsKLSAgICBldmVudFN0cmluZyArPSBl
dmVudC50YXJnZXQuaWQ7Ci0gICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQpCi0gICAgICAgIGV2
ZW50U3RyaW5nICs9ICcoPC0nICsgZXZlbnQucmVsYXRlZFRhcmdldC5pZCArICcpJzsKLSAgICBp
ZiAoZXZlbnQuY3VycmVudFRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyhAJyArIGV2
ZW50LmN1cnJlbnRUYXJnZXQuaWQgKyAnKSc7Ci0gICAgaWYgKGV2ZW50LmV2ZW50UGhhc2UgPT0g
MSkKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyhjYXB0dXJpbmcgcGhhc2UpJzsKLSAgICBpZiAo
ZXZlbnQudGFyZ2V0ICYmIGV2ZW50LmN1cnJlbnRUYXJnZXQgJiYgZXZlbnQudGFyZ2V0LmlkID09
IGV2ZW50LmN1cnJlbnRUYXJnZXQuaWQpCi0gICAgICAgIHNob3VsZEJlKCJldmVudC5ldmVudFBo
YXNlIiwgIjIiLCB0cnVlKTsKLSAgICBldmVudFJlY29yZHNbZXZlbnRUeXBlXS5wdXNoKGV2ZW50
U3RyaW5nKTsKLX0KLQotZnVuY3Rpb24gcHJlcGFyZURPTVRyZWUocGFyZW50KQotewotICAgIHBh
cmVudC5hcHBlbmRDaGlsZCgKLSAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdkEn
LCAnc3R5bGUnOiAncGFkZGluZy10b3A6IDQwcHgnfSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdkaXZCJywgJ3N0eWxlJzogJ3dpZHRoOiA0MHB4OyBoZWlnaHQ6
IDQwcHgnLCAndGFiaW5kZXgnOiAwfSksCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnZGl2QycsICdzdHlsZSc6ICd3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4Jywg
J3RhYmluZGV4JzogMH0pLAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ3NoYWRvd0QnLCAnc3R5bGUnOiAncGFkZGluZy10b3A6IDQwcHgnfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2RScsICdzdHlsZSc6ICdwYWRk
aW5nLXRvcDogNDBweCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3NoYWRvd0YnLCAnc3R5bGUnOiAncGFkZGluZy10
b3A6IDQwcHgnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93
RycsICdzdHlsZSc6ICdwYWRkaW5nLXRvcDogNDBweCd9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93
Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2SCcsICdzdHls
ZSc6ICd3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4JywgJ3RhYmluZGV4JzogMH0pLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXZJJywgJ3N0eWxlJzogJ3dpZHRoOiA0
MHB4OyBoZWlnaHQ6IDQwcHgnLCAndGFiaW5kZXgnOiAwfSkpKSkpKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdkonLCAnc3R5bGUn
OiAncGFkZGluZy10b3A6IDQwcHgnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdzaGFkb3dLJywgJ3N0eWxlJzogJ3Bh
ZGRpbmctdG9wOiA0MHB4J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2RpdkwnLCAnc3R5bGUnOiAnd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweCcsICd0YWJpbmRleCc6
IDB9KSkpKSkpKSk7Ci0KLSAgICB2YXIgaWRzID0gWydkaXZBJywgJ2RpdkInLCAnZGl2QycsCi0g
ICAgICAgICAgICAgICAnc2hhZG93RCcsICdzaGFkb3dEL2RpdkUnLCAnc2hhZG93RC9zaGFkb3dG
JywgJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHJywKLSAgICAgICAgICAgICAgICdzaGFkb3dEL3No
YWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLAotICAg
ICAgICAgICAgICAgJ3NoYWRvd0QvZGl2SicsICdzaGFkb3dEL3NoYWRvd0snLCAnc2hhZG93RC9z
aGFkb3dLL2RpdkwnXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsraSkg
ewotICAgICAgICB2YXIgZWxlbWVudCA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhpZHNbaV0p
OwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHJlY29yZEV2
ZW50LCBmYWxzZSk7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQn
LCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
J2ZvY3VzaW4nLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKLSAgICAgICAgZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHJlY29yZEV2ZW50LCB0cnVlKTsgIC8vIGNhcHR1
cmluZyBwaGFzZQotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCByZWNv
cmRFdmVudCwgdHJ1ZSk7ICAvLyBjYXB0dXJpbmcgcGhhc2UKLSAgICB9Ci19Ci0KLWZ1bmN0aW9u
IG1vdmVNb3VzZShvbGRFbGVtZW50SWQsIG5ld0VsZW1lbnRJZCwgbWVzc2FnZSkKLXsKLSAgICBk
ZWJ1ZygnXG4nICsgbWVzc2FnZSArICdcbicgKyAnTW92aW5nIG1vdXNlIGZyb20gJyArIG9sZEVs
ZW1lbnRJZCArICcgdG8gJyArIG5ld0VsZW1lbnRJZCk7Ci0gICAgbW92ZU1vdXNlT3ZlcihnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2sob2xkRWxlbWVudElkKSk7Ci0gICAgY2xlYXJFdmVudFJlY29y
ZHMoKTsKLSAgICBtb3ZlTW91c2VPdmVyKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhuZXdFbGVt
ZW50SWQpKTsKLX0KLQotZnVuY3Rpb24gbW92ZUZvY3VzKG9sZEVsZW1lbnRJZCwgbmV3RWxlbWVu
dElkLCBtZXNzYWdlKQotewotICAgIGRlYnVnKCdcbicgKyBtZXNzYWdlICsgJ1xuJyArICdNb3Zp
bmcgZm9jdXMgZnJvbSAnICsgb2xkRWxlbWVudElkICsgJyB0byAnICsgbmV3RWxlbWVudElkKTsK
LSAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2sob2xkRWxlbWVudElkKS5mb2N1cygpOwotICAg
IGNsZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKG5ld0Vs
ZW1lbnRJZCkuZm9jdXMoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBwcmVw
YXJlRE9NVHJlZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpKTsKLQotICAgIC8v
IFRlc3QgZm9yIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudHMuCi0gICAgbW92ZU1vdXNlKCdkaXZC
JywgJ2RpdkMnLAotICAgICAgICAgICAgICAnTW92ZSBtb3VzZSBmcm9tIGEgbm9kZSB0byBpdHMg
c2libGluZyBub2RlLiBBbGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5Licp
OwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpJywgJ1siZGl2Qyg8
LWRpdkIpKEBkaXZDKSIsICJkaXZDKDwtZGl2QikoQGRpdkEpIl0nKTsKLSAgICBzaG91bGRCZSgn
ZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91dCIpJywgJ1siZGl2Qig8LWRpdkMpKEBkaXZCKSIsICJk
aXZCKDwtZGl2QykoQGRpdkEpIl0nKTsKLQotICAgIG1vdmVNb3VzZSgnZGl2QicsICdkaXZBJywK
LSAgICAgICAgICAgICAgJ1RhcmdldCBpcyBhbiBhbmNlc3RvciBvZiByZWxhdGVkVGFyZ2V0LiBB
bGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJl
KCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpJywgJ1siZGl2QSg8LWRpdkIpKEBkaXZBKSJd
Jyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKScsICdbImRpdkIo
PC1kaXZBKShAZGl2QikiLCAiZGl2Qig8LWRpdkEpKEBkaXZBKSJdJyk7Ci0KLSAgICBtb3ZlTW91
c2UoJ2RpdkEnLCAnZGl2QicsCi0gICAgICAgICAgICAgICdSZWxhdGVkVGFyZ2V0IGlzIGFuIGFu
Y2VzdG9yIG9mIHRhcmdldC4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNoYWRvdyBib3VuZGFy
eS4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScsICdbImRp
dkIoPC1kaXZBKShAZGl2QikiLCAiZGl2Qig8LWRpdkEpKEBkaXZBKSJdJyk7Ci0gICAgc2hvdWxk
QmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKScsICdbImRpdkEoPC1kaXZCKShAZGl2QSki
XScpOwotCi0gICAgbW92ZU1vdXNlKCdzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3No
YWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLAotICAgICAgICAgICAgICAnQm90aCB0YXJnZXQg
YW5kIHJlbGF0ZWRUYXJnZXQgYXJlIGltbWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUgc2FtZSBzaGFk
b3cgcm9vdC4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScs
ICdbImRpdkkoPC1kaXZIKShAZGl2SSkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZl
bnQoIm1vdXNlb3V0IiknLCAnWyJkaXZIKDwtZGl2SSkoQGRpdkgpIl0nKTsKLQotICAgIG1vdmVN
b3VzZSgnc2hhZG93RC9zaGFkb3dGL3NoYWRvd0cvZGl2SScsICdzaGFkb3dEL2RpdkUnLAotICAg
ICAgICAgICAgICAnVGFyZ2V0IGlzIGFuIGFuY2VzdG9yIG9mIHJlbGF0ZWRUYXJnZXQuJyk7Ci0g
ICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIiknLCAnWyJkaXZFKDwtc2hh
ZG93RikoQGRpdkUpIl0nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91
dCIpJywgJ1siZGl2SSg8LWRpdkUpKEBkaXZJKSIsICJzaGFkb3dHKDwtZGl2RSkoQHNoYWRvd0cp
IiwgInNoYWRvd0YoPC1kaXZFKShAc2hhZG93RikiLCAic2hhZG93Rig8LWRpdkUpKEBkaXZFKSJd
Jyk7Ci0KLSAgICBtb3ZlTW91c2UoJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLCAnc2hh
ZG93RC9zaGFkb3dGJywKLSAgICAgICAgICAgICAgJ1RhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFu
IGFuY2VzdG9yIG9mIHJlbGF0ZWRUYXJnZXQuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRF
dmVudCgibW91c2VvdmVyIiknLCAnW10nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50
KCJtb3VzZW91dCIpJywgJ1siZGl2SSg8LXNoYWRvd0YpKEBkaXZJKSIsICJzaGFkb3dHKDwtc2hh
ZG93RikoQHNoYWRvd0cpIl0nKTsKLQotICAgIG1vdmVNb3VzZSgnc2hhZG93RC9zaGFkb3dGL3No
YWRvd0cnLCAnc2hhZG93RCcsCi0gICAgICAgICAgICAgICdUYXJnZXQgKHNoYWRvdyBob3N0KSBp
cyBhbiBhbmNlc3RvciBvZiByZWxhdGVkVGFyZ2V0IChzaGFkb3cgaG9zdCkuJyk7Ci0gICAgc2hv
dWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIiknLCAnW10nKTsKLSAgICBzaG91bGRC
ZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91dCIpJywgJ1sic2hhZG93Ryg8LXNoYWRvd0QpKEBz
aGFkb3dHKSIsICJzaGFkb3dGKDwtc2hhZG93RCkoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1zaGFk
b3dEKShAZGl2RSkiXScpOwotCi0gICAgbW92ZU1vdXNlKCdzaGFkb3dEL2RpdkUnLCAnc2hhZG93
RC9zaGFkb3dGL3NoYWRvd0cvZGl2SScsCi0gICAgICAgICAgICAgICdSZWxhdGVkVGFyZ2V0IGlz
IGFuY2VzdG9yIG9mIHRhcmdldC4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJt
b3VzZW92ZXIiKScsICdbImRpdkkoPC1kaXZFKShAZGl2SSkiLCAic2hhZG93Ryg8LWRpdkUpKEBz
aGFkb3dHKSIsICJzaGFkb3dGKDwtZGl2RSkoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1kaXZFKShA
ZGl2RSkiXScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IiknLCAn
WyJkaXZFKDwtc2hhZG93RikoQGRpdkUpIl0nKTsKLQotICAgIG1vdmVNb3VzZSgnc2hhZG93RC9z
aGFkb3dGJywgJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkknLAotICAgICAgICAgICAgICAn
UmVsYXRlZFRhcmdldCAoc2hhZG93IGhvc3QpIGlzIGFuY2VzdG9yIG9mIHRhcmdldC4nKTsKLSAg
ICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIiKScsICdbImRpdkkoPC1zaGFk
b3dGKShAZGl2SSkiLCAic2hhZG93Ryg8LXNoYWRvd0YpKEBzaGFkb3dHKSJdJyk7Ci0gICAgc2hv
dWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdXQiKScsICdbXScpOwotCi0gICAgbW92ZU1v
dXNlKCdzaGFkb3dEJywgJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHJywKLSAgICAgICAgICAgICAg
J1JlbGF0ZWRUYXJnZXQgKHNoYWRvdyBob3N0KSBpcyBhbiBhbmNlc3RvciBvZiB0YXJnZXQgKHNo
YWRvdyBob3N0KS4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW92ZXIi
KScsICdbInNoYWRvd0coPC1zaGFkb3dEKShAc2hhZG93RykiLCAic2hhZG93Rig8LXNoYWRvd0Qp
KEBzaGFkb3dGKSIsICJzaGFkb3dGKDwtc2hhZG93RCkoQGRpdkUpIl0nKTsKLSAgICBzaG91bGRC
ZSgnZGlzcGF0Y2hlZEV2ZW50KCJtb3VzZW91dCIpJywgJ1tdJyk7Ci0KLSAgICBtb3ZlTW91c2Uo
J3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkgnLCAnc2hhZG93RC9zaGFkb3dLL2RpdkwnLAot
ICAgICAgICAgICAgICAnVGFyZ2V0IGFuZCByZWxhdGVkVGFyZ2V0IGV4aXN0IGluIHNlcGFyYXRl
ZCBzdWJ0cmVlLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFraW5nIHN1cmUgdGhhdCBl
dmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2VzdCBjb21tb24gYm91bmRhcnku
Jyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIiknLCAnWyJkaXZM
KDwtc2hhZG93RikoQGRpdkwpIiwgInNoYWRvd0soPC1zaGFkb3dGKShAc2hhZG93SykiLCAic2hh
ZG93Syg8LXNoYWRvd0YpKEBkaXZKKSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVu
dCgibW91c2VvdXQiKScsICdbImRpdkgoPC1zaGFkb3dLKShAZGl2SCkiLCAic2hhZG93Ryg8LXNo
YWRvd0spKEBzaGFkb3dHKSIsICJzaGFkb3dGKDwtc2hhZG93SykoQHNoYWRvd0YpIiwgInNoYWRv
d0YoPC1zaGFkb3dLKShAZGl2RSkiXScpOwotCi0gICAgLy8gVGVzdCBmb3IgZm9jdXNpbi9mb2N1
c291dCBldmVudHMuCi0gICAgbW92ZUZvY3VzKCdkaXZCJywgJ2RpdkMnLAotICAgICAgICAgICAg
ICAnTW92ZSBmb2N1cyBmcm9tIGEgbm9kZSB0byBpdHMgc2libGluZyBub2RlLiBBbGwgbm9kZXMg
YXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJlKCdkaXNwYXRj
aGVkRXZlbnQoImZvY3VzaW4iKScsICdbImRpdkMoPC1kaXZCKShAZGl2QykiLCAiZGl2Qyg8LWRp
dkIpKEBkaXZBKSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXNvdXQi
KScsICdbImRpdkIoPC1kaXZDKShAZGl2QikiLCAiZGl2Qig8LWRpdkMpKEBkaXZBKSJdJyk7Ci0K
LSAgICBtb3ZlRm9jdXMoJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkgnLCAnc2hhZG93RC9z
aGFkb3dLL2RpdkwnLAotICAgICAgICAgICAgICAnT2xkIGZvY3VzZWQgbm9kZSBhbmQgbmV3IGZv
Y3VzZWQgbm9kZSBleGlzdCBpbiBzZXBhcmF0ZWQgc3VidHJlZXMsIGNyb3NzaW5nIHNoYWRvdyBi
b3VuZGFyaWVzLiBNYWtpbmcgc3VyZSB0aGF0IGFuIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIGJl
eW9uZCB0aGUgbG93ZXN0IGNvbW1vbiBib3VuZGFyeS4nKTsKLSAgICBzaG91bGRCZSgnZGlzcGF0
Y2hlZEV2ZW50KCJmb2N1c2luIiknLCAnWyJkaXZMKDwtc2hhZG93RikoQGRpdkwpIiwgInNoYWRv
d0soPC1zaGFkb3dGKShAc2hhZG93SykiLCAic2hhZG93Syg8LXNoYWRvd0YpKEBkaXZKKSJdJyk7
Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXNvdXQiKScsICdbImRpdkgoPC1z
aGFkb3dLKShAZGl2SCkiLCAic2hhZG93Ryg8LXNoYWRvd0spKEBzaGFkb3dHKSIsICJzaGFkb3dG
KDwtc2hhZG93SykoQHNoYWRvd0YpIiwgInNoYWRvd0YoPC1zaGFkb3dLKShAZGl2RSkiXScpOwot
Ci0gICAgLy8gT21pdHRlZCB0ZXN0IGNhc2VzIHdoZXJlIGVpdGhlciBhIG9sZEZvY3VzZWROb2Rl
IG9yIG5ld0ZvY3VzZWROb2RlIGlzIGFuIGFuY2VzdG9yIG9mIHRoZSBvdGhlci4KLSAgICAvLyBE
dWUgdG8gYSBmb2N1cyB0cmFuc2ZlciBtZWNoYW5pc20gb24gc2hhZG93IGhvc3RzLCBhIGZvY3Vz
ZWQgbm9kZSBzaG91bGQgYmUgYSBsZWFmIG5vZGUgaW4gZ2VuZXJhbC4KLQotICAgIC8vIFRlc3Qg
Zm9yIGZvY3VzL2JsdXIgZXZlbnRzLiBFdmVudCBsaXN0bmVycyBzaG91bGQgYmUgcmVnaXN0ZXJk
IG9uIGNhcHR1cmVpbmcgcGhhc2UuCi0gICAgbW92ZUZvY3VzKCdkaXZCJywgJ2RpdkMnLAotICAg
ICAgICAgICAgICAnTW92ZSBmb2N1cyBmcm9tIGEgbm9kZSB0byBpdHMgc2libGluZyBub2RlLiBB
bGwgbm9kZXMgYXJlIG91dHNpZGUgb2Ygc2hhZG93IGJvdW5kYXJ5LicpOwotICAgIHNob3VsZEJl
KCdkaXNwYXRjaGVkRXZlbnQoImZvY3VzIiknLCAnWyJkaXZDKDwtZGl2QikoQGRpdkEpKGNhcHR1
cmluZyBwaGFzZSkiLCAiZGl2Qyg8LWRpdkIpKEBkaXZDKSJdJyk7Ci0gICAgc2hvdWxkQmUoJ2Rp
c3BhdGNoZWRFdmVudCgiYmx1ciIpJywgJ1siZGl2Qig8LWRpdkMpKEBkaXZBKShjYXB0dXJpbmcg
cGhhc2UpIiwgImRpdkIoPC1kaXZDKShAZGl2QikiXScpOwotCi0gICAgbW92ZUZvY3VzKCdzaGFk
b3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIJywgJ3NoYWRvd0Qvc2hhZG93Sy9kaXZMJywKLSAgICAg
ICAgICAgICAgJ09sZCBmb2N1c2VkIG5vZGUgYW5kIG5ldyBmb2N1c2VkIG5vZGUgZXhpc3QgaW4g
c2VwYXJhdGVkIHN1YnRyZWVzLCBjcm9zc2luZyBzaGFkb3cgYm91bmRhcmllcy4gTWFraW5nIHN1
cmUgdGhhdCBhbiBldmVudCBpcyBub3QgZGlzcGF0Y2hlZCBiZXlvbmQgdGhlIGxvd2VzdCBjb21t
b24gYm91bmRhcnkuJyk7Ci0gICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiZm9jdXMiKScs
ICdbInNoYWRvd0soPC1zaGFkb3dGKShAZGl2SikoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZMKDwt
c2hhZG93RikoQGRpdkwpIiwgInNoYWRvd0soPC1zaGFkb3dGKShAc2hhZG93SykiXScpOwotICAg
IHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoImJsdXIiKScsICdbInNoYWRvd0YoPC1zaGFkb3dL
KShAZGl2RSkoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZIKDwtc2hhZG93SykoQGRpdkgpIiwgInNo
YWRvd0coPC1zaGFkb3dLKShAc2hhZG93RykiLCAic2hhZG93Rig8LXNoYWRvd0spKEBzaGFkb3dG
KSJdJyk7Ci19Ci0KLXRlc3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50LWNyYXNoLWV4cGVj
dGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1jb250ZW50LWNyYXNoLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC1leHBlY3RlZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLSAgICA8dGl0bGU+U2hhZG93IENvbnRlbnQgRWxlbWVudCBDcmFzaDwvdGl0bGU+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBjb25maXJtcyBhZGRpbmcgYSBjb250ZW50
IGVsZW1lbnQgaW50byBhIHNoYWRvdyByb290IGRvZXMgbm90IGNhdXNlIGNyYXNoLjwvcD4KLQot
PGRpdj5QQVNTPGRpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudC1jcmFzaC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnQt
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHRpdGxlPlNoYWRvdyBDb250ZW50IEVsZW1lbnQgQ3Jh
c2g8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08cD5UaGlzIHRlc3QgY29uZmlybXMgYWRkaW5n
IGEgY29udGVudCBlbGVtZW50IGludG8gYSBzaGFkb3cgcm9vdCBkb2VzIG5vdCBjYXVzZSBjcmFz
aC48L3A+Ci0KLTxkaXYgaWQ9J2NvbnRhaW5lcic+RkFJTDwvZGl2PgotCi08c2NyaXB0PgotdmFy
IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKLXZhciByb290ID0g
ZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXJvb3QuaW5uZXJIVE1MID0gIjxjb250ZW50
IHNlbGVjdD0nc3Bhbic+UEFTUzwvY29udGVudD4iOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMt
ZXZlbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctY29udGVudHMtZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWV2ZW50LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi1UZXN0cyB0byBlbnN1
cmUgdGhhdCBtb3ZpbmcgbW91c2UgZnJvbSAnc3VtbWFyeScgdG8gJ2RldGFpbHMnIHNob3VsZCBk
aXNwYXRjaCBldmVudHMgY29ycmVjdGx5LiBOb3RlIHRoYXQgJ2RldGFpbHMnIGlzIGEgc2hhZG93
IGhvc3QgYW5kIGhhcyBhICdzdW1tYXJ5JyBlbGVtZW50IGFzIGEgaW1tZWRpYXRlIGNoaWxkIGVs
ZW1lbnQuIFRoZXJlIGlzIG5vIHNoYWRvdyByb290IGJldHdlZW4gdGhlbS4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLXN1bW1hcnkKLWRldGFpbHMKLQotTW92aW5nIG1vdXNlIGZy
b20gc3VtbWFyeSB0byBkZXRhaWxzCi1QQVNTIGRpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIikg
aXMgWyJkZXRhaWxzKDwtc3VtbWFyeSkoQGRldGFpbHMpIiwgImRldGFpbHMoPC1zdW1tYXJ5KShA
c2FuZGJveCkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IikgaXMgWyJzdW1tYXJ5
KDwtZGV0YWlscykoQHN1bW1hcnkpIiwgInN1bW1hcnkoPC1kZXRhaWxzKShAZGV0YWlscykiLCAi
c3VtbWFyeSg8LWRldGFpbHMpKEBzYW5kYm94KSJdCi0KLU1vdmluZyBtb3VzZSBmcm9tIGRldGFp
bHMgdG8gc3VtbWFyeQotUEFTUyBkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpIGlzIFsic3Vt
bWFyeSg8LWRldGFpbHMpKEBzdW1tYXJ5KSIsICJzdW1tYXJ5KDwtZGV0YWlscykoQGRldGFpbHMp
IiwgInN1bW1hcnkoPC1kZXRhaWxzKShAc2FuZGJveCkiXQotUEFTUyBkaXNwYXRjaGVkRXZlbnQo
Im1vdXNlb3V0IikgaXMgWyJkZXRhaWxzKDwtc3VtbWFyeSkoQGRldGFpbHMpIiwgImRldGFpbHMo
PC1zdW1tYXJ5KShAc2FuZGJveCkiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZXZlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWV2ZW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZXZlbnQuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw5NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2
IGlkPSJzYW5kYm94Ij4KLSAgICA8ZGV0YWlscyBvcGVuIGlkPSJkZXRhaWxzIiBzdHlsZT0iaGVp
Z2h0OiAyMDBweCI+Ci0gICAgICA8c3VtbWFyeSBpZD0ic3VtbWFyeSI+c3VtbWFyeTwvc3VtbWFy
eT4KLSAgICAgIGRldGFpbHMKLSAgICA8L2RldGFpbHM+Ci08L2Rpdj4KLTxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUgdGhhdCBt
b3ZpbmcgbW91c2UgZnJvbSAnc3VtbWFyeScgdG8gJ2RldGFpbHMnIHNob3VsZCBkaXNwYXRjaCBl
dmVudHMgY29ycmVjdGx5LiAiCi0gICAgKyAiTm90ZSB0aGF0ICdkZXRhaWxzJyBpcyBhIHNoYWRv
dyBob3N0IGFuZCBoYXMgYSAnc3VtbWFyeScgZWxlbWVudCBhcyBhIGltbWVkaWF0ZSBjaGlsZCBl
bGVtZW50LiAiCi0gICAgKyAiVGhlcmUgaXMgbm8gc2hhZG93IHJvb3QgYmV0d2VlbiB0aGVtLiIp
OwotCi1mdW5jdGlvbiBtb3ZlTW91c2VPdmVyKGVsZW1lbnQpCi17Ci0gICAgaWYgKCF3aW5kb3cu
ZXZlbnRTZW5kZXIpCi0gICAgICAgIHJldHVybjsKLSAgICB2YXIgeCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgIHZhciB5ID0gZWxlbWVudC5vZmZz
ZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oeCwgeSk7Ci19Ci0KLXZhciBldmVudFJlY29yZHMgPSB7fTsKLQotZnVuY3Rpb24gY2xl
YXJFdmVudFJlY29yZHMoKQotewotICAgIGV2ZW50UmVjb3JkcyA9IHt9OwotfQotCi1mdW5jdGlv
biBkaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQotewotICAgIHZhciBldmVudHMgPSBldmVudFJl
Y29yZHNbZXZlbnRUeXBlXTsKLSAgICBpZiAoIWV2ZW50cykKLSAgICAgICAgcmV0dXJuIFtdOwot
ICAgIHJldHVybiBldmVudHM7Ci19Ci0KLWZ1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KQotewot
ICAgIHZhciBldmVudFR5cGUgPSBldmVudC50eXBlCi0gICAgaWYgKCFldmVudFJlY29yZHNbZXZl
bnRUeXBlXSkgewotICAgICAgICBldmVudFJlY29yZHNbZXZlbnRUeXBlXSA9IFtdCi0gICAgfQot
ICAgIC8vIFJlY29yZHMgZWFjaCBldmVudCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdCBwZXIgZXZl
bnQgdHlwZToKLSAgICAvLyAgIGV2ZW50UmVjb3Jkc1tldmVudFR5cGVdID0gWyd0YXJnZXQuaWQo
PC1yZWxhdGVkVGFyZ2V0LmlkKShAY3VycmVudFRhcmdldC5pZCknLCwsXQotICAgIC8vICAgKiBS
ZWxhdGVkVGFyZ2V0IGFuZCBjdXJyZW50VGFyZ2V0IG1heSBiZSBvbWl0dGVkIGlmIHRoZXkgYXJl
IG5vdCBkZWZpbmVkLgotICAgIC8vIEEgbmV3IGV2ZW50IGlzIHB1c2hlZCBiYWNrIHRvIHRoZSBh
cnJheSBvZiBpdHMgZXZlbnQgdHlwZS4KLSAgICB2YXIgZXZlbnRTdHJpbmcgPSAnJzsKLSAgICBl
dmVudFN0cmluZyArPSBldmVudC50YXJnZXQuaWQ7Ci0gICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJn
ZXQpCi0gICAgICAgIGV2ZW50U3RyaW5nICs9ICcoPC0nICsgZXZlbnQucmVsYXRlZFRhcmdldC5p
ZCArICcpJzsKLSAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJp
bmcgKz0gJyhAJyArIGV2ZW50LmN1cnJlbnRUYXJnZXQuaWQgKyAnKSc7Ci0gICAgZXZlbnRSZWNv
cmRzW2V2ZW50VHlwZV0ucHVzaChldmVudFN0cmluZyk7Ci19Ci0KLWZ1bmN0aW9uIG1vdmVNb3Vz
ZShvbGRFbGVtZW50SWQsIG5ld0VsZW1lbnRJZCkKLXsKLSAgICBkZWJ1ZygnXG4nICsgJ01vdmlu
ZyBtb3VzZSBmcm9tICcgKyBvbGRFbGVtZW50SWQgKyAnIHRvICcgKyBuZXdFbGVtZW50SWQpOwot
ICAgIG1vdmVNb3VzZU92ZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob2xkRWxlbWVudElkKSk7
Ci0gICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICBtb3ZlTW91c2VPdmVyKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKG5ld0VsZW1lbnRJZCkpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIHZhciBpZHMgPSBbJ3NhbmRib3gnLCAnZGV0YWlscycsICdzdW1tYXJ5J107Ci0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZHNbaV0pOwotICAgICAgICBlbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHJlY29yZEV2ZW50LCBmYWxzZSk7Ci0gICAgICAg
IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCByZWNvcmRFdmVudCwgZmFsc2Up
OwotICAgIH0KLQotICAgIG1vdmVNb3VzZSgnc3VtbWFyeScsICdkZXRhaWxzJyk7Ci0gICAgc2hv
dWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgibW91c2VvdmVyIiknLCAnWyJkZXRhaWxzKDwtc3VtbWFy
eSkoQGRldGFpbHMpIiwgImRldGFpbHMoPC1zdW1tYXJ5KShAc2FuZGJveCkiXScpOwotICAgIHNo
b3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IiknLCAnWyJzdW1tYXJ5KDwtZGV0YWls
cykoQHN1bW1hcnkpIiwgInN1bW1hcnkoPC1kZXRhaWxzKShAZGV0YWlscykiLCAic3VtbWFyeSg8
LWRldGFpbHMpKEBzYW5kYm94KSJdJyk7Ci0KLSAgICBtb3ZlTW91c2UoJ2RldGFpbHMnLCAnc3Vt
bWFyeScpOwotICAgIHNob3VsZEJlKCdkaXNwYXRjaGVkRXZlbnQoIm1vdXNlb3ZlciIpJywgJ1si
c3VtbWFyeSg8LWRldGFpbHMpKEBzdW1tYXJ5KSIsICJzdW1tYXJ5KDwtZGV0YWlscykoQGRldGFp
bHMpIiwgInN1bW1hcnkoPC1kZXRhaWxzKShAc2FuZGJveCkiXScpOwotICAgIHNob3VsZEJlKCdk
aXNwYXRjaGVkRXZlbnQoIm1vdXNlb3V0IiknLCAnWyJkZXRhaWxzKDwtc3VtbWFyeSkoQGRldGFp
bHMpIiwgImRldGFpbHMoPC1zdW1tYXJ5KShAc2FuZGJveCkiXScpOwotfQotCi10ZXN0KCk7Ci08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2stZHluYW1pYy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1m
YWxsYmFjay1keW5hbWljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1keW5hbWljLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi10ZXN0QXBwZW5kRmFs
bGJhY2sKLVBBU1MKLXRlc3RBcHBlbmRGYWxsYmFja0RlZXAKLVBBU1MKLXRlc3RSZW1vdmVGYWxs
YmFjawotUEFTUwotdGVzdFJlbW92ZUZhbGxiYWNrRGVlcAotUEFTUwotdGVzdFJlbW92ZTEKLVBB
U1MKLXRlc3RSZW1vdmUyCi1QQVNTCi10ZXN0UmVtb3ZlMwotUEFTUwotdGVzdFJlcGxhY2VGYWxs
YmFjawotUEFTUwotdGVzdEZhbGxiYWNrQ29udGVudENoYW5nZWQKLVBBU1MKLXRlc3RDb21wbGV4
QXBwZW5kCi1QQVNTCi10ZXN0Q29tcGxleFJlbW92ZQotUEFTUwotdGVzdENvbXBsZXhSZXBsYWNl
Ci1QQVNTCi10ZXN0Q29udGVudEluQ29udGVudAotUEFTUwotdGVzdENvbnRlbnRJbkNvbnRlbnRG
YWxsYmFjawotUEFTUwotdGVzdENvbnRlbnRJbkNvbnRlbnRGYWxsYmFja0RpcmVjdAotUEFTUwot
VEVTVCBDT01QTEVURUQKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1jb250ZW50cy1mYWxsYmFjay1keW5hbWljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1keW5hbWljLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudHMtZmFsbGJhY2stZHluYW1pYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5MSAr
MCwwIEBACi0gPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVs
YXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0uY29u
dGFpbmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci0KLS5zcGFuIHsKLSAgICBkaXNw
bGF5OiBib3hlZC1pbmxpbmU7Ci0gICAgbWFyZ2luOiAycHg7Ci0gICAgYm9yZGVyOiBzb2xpZDsK
LX0KLTwvc3R5bGU+Ci08c2NyaXB0PgotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJc
biIpOwotfQotCi1mdW5jdGlvbiByZW1vdmVBbGxDaGlsZHJlbihlbGVtKSB7Ci0gICAgd2hpbGUg
KGVsZW0uZmlyc3RDaGlsZCkKLSAgICAgICAgZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hp
bGQpOwotfQotCi1mdW5jdGlvbiBjbGVhblVwKCkgewotICAgIHJlbW92ZUFsbENoaWxkcmVuKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykpOwotICAgIHJlbW92ZUFs
bENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwot
fQotCi1mdW5jdGlvbiByZW1vdmVDb250YWluZXJMaW5lcyh0ZXh0KSB7Ci0gICAgdmFyIGxpbmVz
ID0gdGV4dC5zcGxpdCgnXG4nKTsKLSAgICBsaW5lcy5zcGxpY2UoMCwgMik7Ci0gICAgcmV0dXJu
IGxpbmVzLmpvaW4oJ1xuJyk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrKCkgewotICAgIHZhciByZWZD
b250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOwotICAgIHZhciByZWZS
ZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7
Ci0KLSAgICB2YXIgdGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50
UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpKTsKLSAgICB2YXIgdGFyZ2V0UmVuZGVyVHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRh
cmdldENvbnRhaW5lclJlbmRlclRyZWUpOwotCi0gICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0g
cmVmUmVuZGVyVHJlZSkKLSAgICAgICAgbG9nKCJQQVNTIik7Ci0gICAgZWxzZSB7Ci0gICAgICAg
IGxvZygiRkFJTCIpOwotICAgICAgICBsb2coIkV4cGVjdGVkOiAiKTsKLSAgICAgICAgbG9nKHJl
ZlJlbmRlclRyZWUpOwotICAgICAgICBsb2coIkFjdHVhbDogIik7Ci0gICAgICAgIGxvZyh0YXJn
ZXRSZW5kZXJUcmVlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0
ZXh0KSB7Ci0gICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0g
ICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAg
cmV0dXJuIHNwYW47Ci19Ci0KLWZ1bmN0aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkg
ewotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLQot
ICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAg
Y29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7Ci0gICAgY29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOwotCi0gICAgcm9vdC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikpOwotICAgIHJvb3Qu
YXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgifSIpKTsKLX0KLQotZnVuY3Rpb24gYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQs
IHNlbGVjdCkgewotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFy
Z2V0KTsKLQotICAgIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
LSAgICB7Ci0gICAgICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVt
ZW50KCk7Ci0gICAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOwot
ICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0si
KSk7Ci0KLSAgICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IntJTk5FUjogIikpOwotICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICAg
ICAgY2hpbGQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7Ci0gICAg
fQotCi0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURP
VzogIikpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgIHJvb3QuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBcHBl
bmRGYWxsYmFjayhjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+Y29udGVudDwv
c3Bhbj4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNhcHBlbmQiKTsKLQotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFy
Z2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgY2FsbElmRG9uZSkgewotICAg
ICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0YXJnZXQuaW5uZXJIVE1MID0g
IjxzcGFuIGlkPSdhcHBlbmQnPmFwcGVuZGVkPC9zcGFuPiI7Ci0gICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PntT
SEFET1c6IDxzcGFuPmFwcGVuZGVkPC9zcGFuPn08L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElm
RG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHRhcmdldCwgY2FsbElmRG9uZSk7Ci0KLSAgICBz
ZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0QXBwZW5kRmFsbGJhY2tEZWVwKGNh
bGxJZkRvbmUpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Ci0gICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3Bhbj5jb250ZW50PC9zcGFuPiI7Ci0KLSAg
ICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgIiNhcHBlbmQtZGVlcCIpOwotCi0gICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQp
OwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBjYWxsSWZEb25lKSB7Ci0gICAgICAg
IHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNw
YW4gaWQ9J2FwcGVuZC1kZWVwJz5hcHBlbmRlZDwvc3Bhbj4iOwotICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj57
U0hBRE9XOiA8c3Bhbj57SU5ORVI6IDxzcGFuPmFwcGVuZGVkPC9zcGFuPn08L3NwYW4+fTwvZGl2
PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkodGFyZ2V0
LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RSZW1vdmVGYWxsYmFjayhjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9
J3JlbW92ZSc+Y29udGVudDwvc3Bhbj4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNy
ZW1vdmUiKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVy
JykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwg
Y2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0
YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8L3NwYW4+IgotICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRp
dj57U0hBRE9XOiA8c3Bhbj5GQUxMQkFDSzwvc3Bhbj59PC9kaXY+IjsKLSAgICAgICAgICAgIGNh
bGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KSh0YXJnZXQsIGNhbGxJZkRvbmUpOwotCi0g
ICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZUZhbGxiYWNrRGVl
cChjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3JlbW92ZS1kZWVwJz5j
b250ZW50PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgIiNyZW1vdmUt
ZGVlcCIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXIn
KS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBj
YWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRh
cmdldC5pbm5lckhUTUwgPSAiPHNwYW4+Y29udGVudDwvc3Bhbj4iCi0gICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2
PntTSEFET1c6IDxzcGFuPntJTk5FUjogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+fTwvc3Bhbj59PC9k
aXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KSh0YXJn
ZXQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24g
dGVzdFJlbW92ZTEoY2FsbElmRG9uZSkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdyZW1v
dmUxLTEnPmNvbnRlbnQgMTwvc3Bhbj48c3BhbiBpZD0ncmVtb3ZlMS0yJz5jb250ZW50IDI8L3Nw
YW4+IjsKLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAic3BhbiIpOwotCi0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwot
Ci0gICAgdmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJl
dHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRhcmdldC5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlMS0xJykpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj57U0hBRE9X
OiA8c3Bhbj5jb250ZW50IDI8L3NwYW4+fTwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25l
KCk7Ci0gICAgICAgIH07Ci0gICAgfSkodGFyZ2V0LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRp
bWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZW1vdmUyKGNhbGxJZkRvbmUpIHsKLSAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0
LmlubmVySFRNTCA9ICI8c3BhbiBpZD0ndGVzdHJlbW92ZTItMSc+Y29udGVudCAxPC9zcGFuPjxz
cGFuIGlkPSd0ZXN0cmVtb3ZlMi0yJz5jb250ZW50IDI8L3NwYW4+IjsKLSAgICBhcHBlbmRTaGFk
b3codGFyZ2V0LCAic3BhbiIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVh
bC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rp
b24odGFyZ2V0LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgIHRhcmdldC5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dHJlbW92ZTItMicpKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+e1NIQURPVzogPHNwYW4+Y29udGVudCAx
PC9zcGFuPn08L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9Owot
ICAgIH0pKHRhcmdldCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQot
Ci1mdW5jdGlvbiB0ZXN0UmVtb3ZlMyhjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNw
YW4gaWQ9J3Rlc3RyZW1vdmUzLTEnPmNvbnRlbnQgMTwvc3Bhbj48c3BhbiBpZD0ndGVzdHJlbW92
ZTMtMic+Y29udGVudCAyPC9zcGFuPiI7Ci0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgInNwYW4i
KTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgY2FsbElm
RG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB0YXJnZXQu
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RyZW1vdmUzLTEnKSk7Ci0g
ICAgICAgICAgICB0YXJnZXQucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3RyZW1vdmUzLTInKSk7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PntTSEFET1c6IDxzcGFuPkZBTExCQUNL
PC9zcGFuPn08L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9Owot
ICAgIH0pKHRhcmdldCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQot
Ci1mdW5jdGlvbiB0ZXN0UmVwbGFjZUZhbGxiYWNrKGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmlubmVySFRN
TCA9ICI8c3BhbiBpZD0ndG8tcmVwbGFjZSc+Y29udGVudDwvc3Bhbj4iOwotCi0gICAgYXBwZW5k
U2hhZG93KHRhcmdldCwgIiN0by1yZXBsYWNlIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0KLSAgICB2YXIg
ZiA9IChmdW5jdGlvbih0YXJnZXQsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0ndG8tcmVw
bGFjZSc+cmVwbGFjZWQ8L3NwYW4+IjsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+e1NIQURPVzogPHNwYW4+
cmVwbGFjZWQ8L3NwYW4+fTwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAg
ICAgIH07Ci0gICAgfSkodGFyZ2V0LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwg
MCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGYWxsYmFja0NvbnRlbnRDaGFuZ2VkKGNhbGxJZkRvbmUp
IHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
dGFyZ2V0LmlubmVySFRNTCA9ICI8c3Bhbj5jb250ZW50PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRT
aGFkb3codGFyZ2V0LCAiI25vbi1lbGVtZW50Iik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0KLSAgICB2YXIg
ZiA9IChmdW5jdGlvbih0YXJnZXQsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgnYXBwZW5kZWQgY29udGVudCcpKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+e1NIQURPVzogPHNwYW4+
RkFMTEJBQ0s8L3NwYW4+fTwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAg
ICAgIH07Ci0gICAgfSkodGFyZ2V0LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwg
MCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb21wbGV4QXBwZW5kKGNhbGxJZkRvbmUpIHsKLSAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgYXBwZW5kU2hh
ZG93KHRhcmdldCwgJyNjb21wbGV4LTEnKTsKLQotICAgIHZhciBzZWxlY3RDb250ZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHNlbGVjdENvbnRlbnQuc2V0QXR0cmli
dXRlKCdpZCcsICdjb21wbGV4LTEnKTsKLSAgICBhcHBlbmRTaGFkb3coc2VsZWN0Q29udGVudCwg
J3NwYW4nKTsKLQotICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgnW1dPTlQgU0VMRUNURURdJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChzZWxlY3RDb250
ZW50KTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tX
T05UIFNFTEVDVEVEXScpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwt
Y29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9u
KHRhcmdldCwgc2VsZWN0Q29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgnU0VMRUNURUQnKSk7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICAgICAgICAgIjxk
aXY+e1NIQURPVzogPHNwYW4+e1NIQURPVzogPHNwYW4+U0VMRUNURUQ8L3NwYW4+fTwvc3Bhbj59
PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KSh0
YXJnZXQsIHNlbGVjdENvbnRlbnQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAw
KTsKLX0KLQotZnVuY3Rpb24gdGVzdENvbXBsZXhSZW1vdmUoY2FsbElmRG9uZSkgewotICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBhcHBlbmRTaGFk
b3codGFyZ2V0LCAnI2NvbXBsZXgtMicpOwotCi0gICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1
dGUoJ2lkJywgJ2NvbXBsZXgtMicpOwotICAgIHsKLSAgICAgICAgc2VsZWN0Q29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NFTEVDVEVEJykpOwotICAgIH0KLSAgICBhcHBl
bmRTaGFkb3coc2VsZWN0Q29udGVudCwgJ3NwYW4nKTsKLQotICAgIHRhcmdldC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOwotICAgIHRhcmdl
dC5hcHBlbmRDaGlsZChzZWxlY3RDb250ZW50KTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
LQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgc2VsZWN0Q29udGVudCwgY2FsbElmRG9u
ZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZW1vdmVBbGxD
aGlsZHJlbihzZWxlY3RDb250ZW50KTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgICAgICAgICAiPGRp
dj57U0hBRE9XOiA8c3Bhbj57U0hBRE9XOiA8c3Bhbj5GQUxMQkFDSzwvc3Bhbj59PC9zcGFuPn08
L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHRh
cmdldCwgc2VsZWN0Q29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDAp
OwotfQotCi1mdW5jdGlvbiB0ZXN0Q29tcGxleFJlcGxhY2UoY2FsbElmRG9uZSkgewotICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBhcHBlbmRTaGFk
b3codGFyZ2V0LCAnI2NvbXBsZXgtMycpOwotCi0gICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7Ci0gICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1
dGUoJ2lkJywgJ2NvbXBsZXgtMycpOwotICAgIGFwcGVuZFNoYWRvdyhzZWxlY3RDb250ZW50LCAn
c3BhbicpOwotCi0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCdbV09OVCBTRUxFQ1RFRF0nKSk7Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRl
bnQpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dP
TlQgU0VMRUNURURdJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1j
b250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24o
dGFyZ2V0LCBzZWxlY3RDb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIHJlbW92ZUFsbENoaWxkcmVuKHNlbGVjdENvbnRlbnQpOwot
ICAgICAgICAgICAgc2VsZWN0Q29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J1JFUExBQ0VEJykpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVj
dC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAgICAgICAgICI8ZGl2PntTSEFET1c6
IDxzcGFuPntTSEFET1c6IDxzcGFuPlJFUExBQ0VEPC9zcGFuPn08L3NwYW4+fTwvZGl2PiI7Ci0g
ICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkodGFyZ2V0LCBzZWxl
Y3RDb250ZW50LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RDb250ZW50SW5Db250ZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8
ZGl2PntTSEFET1c6IDxjb250ZW50PjxzcGFuPkNPTlRFTlQgMiBGQUxMQkFDSzwvc3Bhbj48L2Nv
bnRlbnQ+fTwvZGl2PiI7Ci0KLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnUzEn
KSk7Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnUzInKSk7Ci0K
LSAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7Ci0gICAg
dmFyIGNvbnRlbnQxID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgY29u
dGVudDEuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnZGl2Jyk7Ci0KLSAgICByb290LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBl
bmRDaGlsZChjb250ZW50MSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgifSIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29u
dGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRh
cmdldCwgY29udGVudDEsIGNhbGxJZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgdmFyIGNvbnRlbnQyID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVt
ZW50KCk7Ci0gICAgICAgICAgICBjb250ZW50Mi5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFu
Jyk7Ci0gICAgICAgICAgICBjb250ZW50Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0NPTlRFTlQgMiBGQUxMQkFDSycpKTsKLSAgICAgICAgICAgIGNvbnRlbnQxLmFwcGVuZENoaWxk
KGNvbnRlbnQyKTsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9
KSh0YXJnZXQsIGNvbnRlbnQxLCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb250ZW50SW5Db250ZW50RmFsbGJhY2soY2FsbElmRG9uZSkg
ewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJI
VE1MID0KLSAgICAgICAgIjxkaXY+e1NIQURPVzogPGNvbnRlbnQ+PHNwYW4+Q09OVEVOVCAyIEZB
TExCQUNLPC9zcGFuPjwvY29udGVudD59PC9kaXY+IjsKLQotICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdTMScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCdTMicpKTsKLQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jv
b3QodGFyZ2V0KTsKLSAgICB2YXIgY29udGVudDEgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVs
ZW1lbnQoKTsKLSAgICBjb250ZW50MS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLQot
ICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIp
KTsKLSAgICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICByb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotCi0gICAgdmFy
IGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBjb250ZW50MSwgY2FsbElmRG9uZSkgewotICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICB2YXIgY29udGVudDIgPSBpbnRlcm5hbHMu
Y3JlYXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICAgICAgICAgIGNvbnRlbnQyLnNldEF0dHJpYnV0
ZSgnc2VsZWN0JywgJ2RpdicpOwotICAgICAgICAgICAgY29udGVudDIuYXBwZW5kQ2hpbGQoY3Jl
YXRlU3BhbldpdGhUZXh0KCdDT05URU5UIDIgRkFMTEJBQ0snKSk7Ci0gICAgICAgICAgICBjb250
ZW50MS5hcHBlbmRDaGlsZChjb250ZW50Mik7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0g
ICAgICAgIH07Ci0gICAgfSkodGFyZ2V0LCBjb250ZW50MSwgY2FsbElmRG9uZSk7Ci0KLSAgICBz
ZXRUaW1lb3V0KGYsIDApOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29udGVudEluQ29udGVudEZhbGxi
YWNrRGlyZWN0KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2Pjxjb250ZW50PjxzcGFu
PkNPTlRFTlQgMiBGQUxMQkFDSzwvc3Bhbj48L2NvbnRlbnQ+PC9kaXY+IjsKLQotICAgIHZhciB0
YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTMScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdTMicpKTsKLQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVu
c3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLSAgICB2YXIgY29udGVudDEgPSBpbnRlcm5hbHMuY3Jl
YXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICBjb250ZW50MS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcs
ICdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
LQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHRhcmdldCwgY29udGVudDEsIGNhbGxJZkRvbmUpIHsK
LSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdmFyIGNvbnRlbnQyID0g
aW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgICAgICAgICBjb250ZW50Mi5z
ZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLSAgICAgICAgICAgIGNvbnRlbnQyLmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQ09OVEVOVCAyIEZBTExCQUNLJykpOwotICAgICAg
ICAgICAgY29udGVudDEuYXBwZW5kQ2hpbGQoY29udGVudDIpOwotICAgICAgICAgICAgY2FsbElm
RG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHRhcmdldCwgY29udGVudDEsIGNhbGxJZkRvbmUp
OwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotdmFyIHRlc3RGdW5jcyA9IFsKLSAgICB0
ZXN0QXBwZW5kRmFsbGJhY2ssCi0gICAgdGVzdEFwcGVuZEZhbGxiYWNrRGVlcCwKLSAgICB0ZXN0
UmVtb3ZlRmFsbGJhY2ssCi0gICAgdGVzdFJlbW92ZUZhbGxiYWNrRGVlcCwKLSAgICB0ZXN0UmVt
b3ZlMSwKLSAgICB0ZXN0UmVtb3ZlMiwKLSAgICB0ZXN0UmVtb3ZlMywKLSAgICB0ZXN0UmVwbGFj
ZUZhbGxiYWNrLAotICAgIHRlc3RGYWxsYmFja0NvbnRlbnRDaGFuZ2VkLAotICAgIHRlc3RDb21w
bGV4QXBwZW5kLAotICAgIHRlc3RDb21wbGV4UmVtb3ZlLAotICAgIHRlc3RDb21wbGV4UmVwbGFj
ZSwKLSAgICB0ZXN0Q29udGVudEluQ29udGVudCwKLSAgICB0ZXN0Q29udGVudEluQ29udGVudEZh
bGxiYWNrLAotICAgIHRlc3RDb250ZW50SW5Db250ZW50RmFsbGJhY2tEaXJlY3QKLV07Ci0KLWZ1
bmN0aW9uIGRvVGVzdElmTGVmdCgpIHsKLSAgICB2YXIgdGVzdCA9IHRlc3RGdW5jcy5zaGlmdCgp
OwotICAgIGlmICh0ZXN0ID09IG51bGwpCi0gICAgICAgIHJldHVybiBkb25lVGVzdCgpOwotCi0g
ICAgdmFyIGNhbGxJZkRvbmUgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIGNoZWNrKCk7Ci0gICAgICAgICAgICBjbGVhblVwKCk7Ci0g
ICAgICAgICAgICBkb1Rlc3RJZkxlZnQoKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgfTsKLQotICAg
IGxvZyh0ZXN0Lm5hbWUpOwotICAgIHRlc3QoY2FsbElmRG9uZSk7Ci19Ci0KLWZ1bmN0aW9uIGRv
bmVUZXN0KCkgewotICAgIGxvZygiVEVTVCBDT01QTEVURUQiKTsKLSAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gZG9UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgfQotCi0gICAgY2xlYW5VcCgpOwotICAgIGRv
VGVzdElmTGVmdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImRvVGVz
dCgpIj4KLQotPGRpdiBpZD0iYWN0dWFsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9k
aXY+Ci08ZGl2IGlkPSJleHBlY3QtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4K
LTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNv
bnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotUEFTUwotUEFTUwotUEFTUwotUEFT
UwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwot
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxi
YWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1jb250ZW50cy1mYWxsYmFjay5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzc4ICswLDAgQEAKLSA8IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c3R5bGU+Ci0vKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVu
ZGVyTGF5ZXIgKi8KLS5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0KLQot
LnNwYW4gewotICAgIGRpc3BsYXk6IGJveGVkLWlubGluZTsKLSAgICBtYXJnaW46IDJweDsKLSAg
ICBib3JkZXI6IHNvbGlkOwotfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2cobWVz
c2FnZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1M
ICs9IChtZXNzYWdlICsgIlxuIik7Ci19Ci0KLWZ1bmN0aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVs
ZW0pIHsKLSAgICB3aGlsZSAoZWxlbS5maXJzdENoaWxkKQotICAgICAgICBlbGVtLnJlbW92ZUNo
aWxkKGVsZW0uZmlyc3RDaGlsZCk7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuVXAoKSB7Ci0gICAgcmVt
b3ZlQWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXIn
KSk7Ci0gICAgcmVtb3ZlQWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVj
dC1jb250YWluZXInKSk7Ci19Ci0KLWZ1bmN0aW9uIHJlbW92ZUNvbnRhaW5lckxpbmVzKHRleHQp
IHsKLSAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcbicpOwotICAgIGxpbmVzLnNwbGljZSgw
LCAyKTsKLSAgICByZXR1cm4gbGluZXMuam9pbignXG4nKTsKLX0KLQotZnVuY3Rpb24gY2hlY2so
KSB7Ci0gICAgdmFyIHJlZkNvbnRhaW5lclJlbmRlclRyZWUgPSBpbnRlcm5hbHMuZWxlbWVudFJl
bmRlclRyZWVBc1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXIn
KSk7Ci0gICAgdmFyIHJlZlJlbmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyhyZWZDb250
YWluZXJSZW5kZXJUcmVlKTsKLQotICAgIHZhciB0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlID0g
aW50ZXJuYWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykpOwotICAgIHZhciB0YXJnZXRSZW5kZXJUcmVlID0gcmVtb3Zl
Q29udGFpbmVyTGluZXModGFyZ2V0Q29udGFpbmVyUmVuZGVyVHJlZSk7Ci0KLSAgICBpZiAodGFy
Z2V0UmVuZGVyVHJlZSA9PSByZWZSZW5kZXJUcmVlKQotICAgICAgICBsb2coIlBBU1MiKTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgbG9nKCJGQUlMIik7Ci0gICAgICAgIGxvZygiRXhwZWN0ZWQ6ICIp
OwotICAgICAgICBsb2cocmVmUmVuZGVyVHJlZSk7Ci0gICAgICAgIGxvZygiQWN0dWFsOiAiKTsK
LSAgICAgICAgbG9nKHRhcmdldFJlbmRlclRyZWUpOwotICAgIH0KLQotfQotCi1mdW5jdGlvbiBj
cmVhdGVTcGFuV2l0aFRleHQodGV4dCkgewotICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc3BhbicpOwotICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUodGV4dCkpOwotICAgIHJldHVybiBzcGFuOwotfQotCi1mdW5jdGlvbiBhcHBlbmRTaGFk
b3codGFyZ2V0LCBzZWxlY3QpIHsKLSAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFk
b3dSb290KHRhcmdldCk7Ci0KLSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250
ZW50RWxlbWVudCgpOwotICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3Qp
OwotICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJGQUxMQkFDSyIp
KTsKLQotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntTSEFE
T1c6ICIpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHJvb3QuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7Ci19Ci0KLWZ1bmN0aW9uIGFwcGVu
ZFNoYWRvd0RlZXAodGFyZ2V0LCBzZWxlY3QpIHsKLSAgICB2YXIgcm9vdCA9IGludGVybmFscy5l
bnN1cmVTaGFkb3dSb290KHRhcmdldCk7Ci0KLSAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7Ci0gICAgewotICAgICAgICB2YXIgY29udGVudCA9IGludGVybmFs
cy5jcmVhdGVDb250ZW50RWxlbWVudCgpOwotICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgn
c2VsZWN0Jywgc2VsZWN0KTsKLSAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoIkZBTExCQUNLIikpOwotCi0gICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJ7SU5ORVI6ICIpKTsKLSAgICAgICAgY2hpbGQuYXBwZW5kQ2hp
bGQoY29udGVudCk7Ci0gICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJ9IikpOwotICAgIH0KLQotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNoaWxkKTsK
LSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0RmFsbGJhY2soKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+U0VMRUNU
RUQ8L3NwYW4+IjsKLQotICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjbm9uLWVsZW1lbnQiKTsK
LQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5k
Q2hpbGQodGFyZ2V0KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRh
aW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPkZBTExCQUNL
PC9zcGFuPn08L2Rpdj4iOwotfQotCi1mdW5jdGlvbiB0ZXN0RmFsbGJhY2tEZWVwKCkgewotICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQu
aW5uZXJIVE1MID0gIjxzcGFuPlNFTEVDVEVEPC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3dE
ZWVwKHRhcmdldCwgIiNub24tZWxlbWVudCIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAg
IjxkaXY+e1NIQURPVzogPHNwYW4+e0lOTkVSOiA8c3Bhbj5GQUxMQkFDSzwvc3Bhbj59PC9zcGFu
Pn08L2Rpdj4iOwotfQotCi1mdW5jdGlvbiB0ZXN0Tm9uRmFsbGJhY2tXaXRoTGlnaHRDaGlsZHJl
bigpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0g
ICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nc2VsZWN0ZWQtMSc+U0VMRUNURUQ8L3Nw
YW4+IjsKLQotICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjc2VsZWN0ZWQtMSIpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0
YXJnZXQpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJyku
aW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+e1NIQURPVzogPHNwYW4+U0VMRUNURUQ8L3NwYW4+
fTwvZGl2PiI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3ROb25GYWxsYmFja0RlZXBXaXRoTGlnaHRDaGls
ZHJlbigpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nc2VsZWN0ZWQtMic+U0VMRUNURUQ8
L3NwYW4+IjsKLQotICAgIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCAiI3NlbGVjdGVkLTIiKTsK
LQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5k
Q2hpbGQodGFyZ2V0KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRh
aW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPntJTk5FUjog
PHNwYW4+U0VMRUNURUQ8L3NwYW4+fTwvc3Bhbj59PC9kaXY+IjsKLX0KLQotZnVuY3Rpb24gdGVz
dENvbXBsZXhGYWxsYmFjaygpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgJyNjb21wbGV4LTEnKTsKLQot
ICAgIHZhciBzZWxlY3RDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwot
ICAgIHNlbGVjdENvbnRlbnQuc2V0QXR0cmlidXRlKCdpZCcsICdjb21wbGV4LTEnKTsKLSAgICB7
Ci0gICAgICAgIHNlbGVjdENvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdT
RUxFQ1RFRCcpKTsKLSAgICB9Ci0gICAgYXBwZW5kU2hhZG93KHNlbGVjdENvbnRlbnQsICdzcGFu
Jyk7Ci0KLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tX
T05UIFNFTEVDVEVEXScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoc2VsZWN0Q29udGVudCk7
Ci0gICAgdGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09OVCBT
RUxFQ1RFRF0nKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRh
aW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj57U0hBRE9XOiA8
c3Bhbj57U0hBRE9XOiA8c3Bhbj5TRUxFQ1RFRDwvc3Bhbj59PC9zcGFuPn08L2Rpdj4iOwotfQot
Ci1mdW5jdGlvbiB0ZXN0Q29tcGxleEZhbGxiYWNrRGVlcCgpIHsKLSAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgYXBwZW5kU2hhZG93RGVlcCh0YXJn
ZXQsICcjY29tcGxleC0yJyk7Ci0KLSAgICB2YXIgc2VsZWN0Q29udGVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKLSAgICBzZWxlY3RDb250ZW50LnNldEF0dHJpYnV0ZSgnaWQn
LCAnY29tcGxleC0yJyk7Ci0gICAgewotICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VMRUNURUQnKSk7Ci0gICAgfQotICAgIGFwcGVuZFNoYWRv
d0RlZXAoc2VsZWN0Q29udGVudCwgJ3NwYW4nKTsKLQotICAgIHRhcmdldC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOwotICAgIHRhcmdldC5h
cHBlbmRDaGlsZChzZWxlY3RDb250ZW50KTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKLQotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9
Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPntJTk5FUjogPHNwYW4+e1NIQURPVzogPHNw
YW4+e0lOTkVSOiA8c3Bhbj5TRUxFQ1RFRDwvc3Bhbj59PC9zcGFuPn08L3NwYW4+fTwvc3Bhbj59
PC9zcGFuPjwvZGl2PiI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb21wbGV4RmFsbGJhY2tBZ2Fpbigp
IHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
YXBwZW5kU2hhZG93KHRhcmdldCwgJyNjb21wbGV4LTMnKTsKLQotICAgIHZhciBzZWxlY3RDb250
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHNlbGVjdENvbnRlbnQu
c2V0QXR0cmlidXRlKCdpZCcsICdjb21wbGV4LTMnKTsKLSAgICB7Ci0gICAgICAgIHNlbGVjdENv
bnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTRUxFQ1RFRCcpKTsKLSAgICB9
Ci0gICAgYXBwZW5kU2hhZG93KHNlbGVjdENvbnRlbnQsICcjbm9uLWVsZW1lbnQnKTsKLQotICAg
IHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNU
RURdJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChzZWxlY3RDb250ZW50KTsKLSAgICB0YXJn
ZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScp
KTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNv
bnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPntTSEFE
T1c6IDxzcGFuPkZBTExCQUNLPC9zcGFuPn08L3NwYW4+fTwvc3Bhbj48L2Rpdj4iOwotfQotCi1m
dW5jdGlvbiB0ZXN0Q29tcGxleEZhbGxiYWNrRGVlcEFnYWluKCkgewotICAgIHZhciB0YXJnZXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBhcHBlbmRTaGFkb3dEZWVwKHRh
cmdldCwgJyNjb21wbGV4LTQnKTsKLQotICAgIHZhciBzZWxlY3RDb250ZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgIHNlbGVjdENvbnRlbnQuc2V0QXR0cmlidXRlKCdp
ZCcsICdjb21wbGV4LTQnKTsKLSAgICB7Ci0gICAgICAgIHNlbGVjdENvbnRlbnQuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTRUxFQ1RFRCcpKTsKLSAgICB9Ci0gICAgYXBwZW5kU2hh
ZG93RGVlcChzZWxlY3RDb250ZW50LCAnI25vbi1lbGVtZW50Jyk7Ci0KLSAgICB0YXJnZXQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKLSAg
ICB0YXJnZXQuYXBwZW5kQ2hpbGQoc2VsZWN0Q29udGVudCk7Ci0gICAgdGFyZ2V0LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RFRF0nKSk7Ci0KLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRh
cmdldCk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5p
bm5lckhUTUwgPQotICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj57SU5ORVI6IDxzcGFuPntT
SEFET1c6IDxzcGFuPntJTk5FUjogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+fTwvc3Bhbj59PC9zcGFu
Pn08L3NwYW4+fTwvc3Bhbj48L2Rpdj4iOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29udGVudGtXaXRo
RGlzcGxheU5vbmUoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotCi0gICAgdmFyIHNwYW4xID0gY3JlYXRlU3BhbldpdGhUZXh0KCdOT1QgUkVOREVS
RUQnKTsKLSAgICBzcGFuMS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwotICAgIHZhciBzcGFuMiA9
IGNyZWF0ZVNwYW5XaXRoVGV4dCgnTk9UIFJFTkRFUkVEJyk7Ci0gICAgc3BhbjIuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKLSAgICB2YXIgc3BhbjMgPSBjcmVhdGVTcGFuV2l0aFRleHQoJ05PVCBS
RU5ERVJFRCcpOwotICAgIHNwYW4zLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0KLSAgICB0YXJn
ZXQuYXBwZW5kQ2hpbGQoc3BhbjEpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ1MxJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChzcGFuMik7Ci0gICAgdGFy
Z2V0LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnUzInKSk7Ci0gICAgdGFyZ2V0LmFw
cGVuZENoaWxkKHNwYW4zKTsKLQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRv
d1Jvb3QodGFyZ2V0KTsKLSAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50
RWxlbWVudCgpOwotICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnc3BhbicpOwot
ICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdGQUxMQkFDSycpKTsK
LQotICAgIHZhciBzID0gY3JlYXRlU3BhbldpdGhUZXh0KCdOT1QgUkVOREVSRUQnKTsKLSAgICBz
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChzKTsKLSAgICBy
b290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0g
ICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJ9IikpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxk
aXY+e1NIQURPVzogPHNwYW4+UzE8L3NwYW4+PHNwYW4+UzI8L3NwYW4+fTwvZGl2PiI7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3RDb250ZW50SW5Db250ZW50KCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdTMScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCdTMicpKTsKLQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jv
b3QodGFyZ2V0KTsKLSAgICB2YXIgY29udGVudDIgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVs
ZW1lbnQoKTsKLSAgICBjb250ZW50Mi5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdzcGFuJyk7Ci0g
ICAgY29udGVudDIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdDT05URU5UIDIgRkFM
TEJBQ0snKSk7Ci0KLSAgICB2YXIgY29udGVudDEgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVs
ZW1lbnQoKTsKLSAgICBjb250ZW50MS5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLSAg
ICBjb250ZW50MS5hcHBlbmRDaGlsZChjb250ZW50Mik7Ci0KLSAgICByb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRD
aGlsZChjb250ZW50MSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgifSIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFp
bmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxj
b250ZW50PjxzcGFuPkNPTlRFTlQgMiBGQUxMQkFDSzwvc3Bhbj48L2NvbnRlbnQ+fTwvZGl2PiI7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb250ZW50SW5Db250ZW50RmFsbGJhY2soKSB7Ci0gICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1MxJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ1MyJykpOwotCi0gICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMu
ZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOwotICAgIHZhciBjb250ZW50MiA9IGludGVybmFscy5j
cmVhdGVDb250ZW50RWxlbWVudCgpOwotICAgIGNvbnRlbnQyLnNldEF0dHJpYnV0ZSgnc2VsZWN0
JywgJ2RpdicpOwotICAgIGNvbnRlbnQyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgn
Q09OVEVOVCAyIEZBTExCQUNLJykpOwotCi0gICAgdmFyIGNvbnRlbnQxID0gaW50ZXJuYWxzLmNy
ZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgY29udGVudDEuc2V0QXR0cmlidXRlKCdzZWxlY3Qn
LCAnZGl2Jyk7Ci0gICAgY29udGVudDEuYXBwZW5kQ2hpbGQoY29udGVudDIpOwotCi0gICAgcm9v
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikpOwotICAg
IHJvb3QuYXBwZW5kQ2hpbGQoY29udGVudDEpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRp
dj57U0hBRE9XOiA8Y29udGVudD48c3Bhbj5DT05URU5UIDIgRkFMTEJBQ0s8L3NwYW4+PC9jb250
ZW50Pn08L2Rpdj4iOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29udGVudEluQ29udGVudEZhbGxiYWNr
V2l0aERpc3BsYXlOb25lKCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdT
MScpKTsKLSAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTMicpKTsK
LQotICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLSAg
ICB2YXIgY29udGVudDIgPSBpbnRlcm5hbHMuY3JlYXRlQ29udGVudEVsZW1lbnQoKTsKLSAgICBj
b250ZW50Mi5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsICdkaXYnKTsKLSAgICBjb250ZW50Mi5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0NPTlRFTlQgMiBGQUxMQkFDSycpKTsKLQotICAg
IHZhciBjb250ZW50MSA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudCgpOwotICAgIGNv
bnRlbnQxLnNldEF0dHJpYnV0ZSgnc2VsZWN0JywgJ2RpdicpOwotICAgIGNvbnRlbnQxLmFwcGVu
ZENoaWxkKGNvbnRlbnQyKTsKLQotICAgIHZhciBzID0gY3JlYXRlU3BhbldpdGhUZXh0KCdOT1Qg
UkVOREVSRUQnKTsKLSAgICBzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0gICAgcm9vdC5hcHBl
bmRDaGlsZChzKTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJ7U0hBRE9XOiAiKSk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50MSk7Ci0gICAgcm9v
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKLQotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVy
SFRNTCA9Ci0gICAgICAgICI8ZGl2PntTSEFET1c6IDxjb250ZW50PjxzcGFuPkNPTlRFTlQgMiBG
QUxMQkFDSzwvc3Bhbj48L2NvbnRlbnQ+fTwvZGl2PiI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb250
ZW50SW5Db250ZW50RmFsbGJhY2tEaXJlY3QoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ1MxJykpOwotICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ1MyJykpOwotCi0gICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0
YXJnZXQpOwotICAgIHZhciBjb250ZW50MiA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVu
dCgpOwotICAgIGNvbnRlbnQyLnNldEF0dHJpYnV0ZSgnc2VsZWN0JywgJ2RpdicpOwotICAgIGNv
bnRlbnQyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQ09OVEVOVCAyIEZBTExCQUNL
JykpOwotCi0gICAgdmFyIGNvbnRlbnQxID0gaW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50
KCk7Ci0gICAgY29udGVudDEuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCAnZGl2Jyk7Ci0gICAgY29u
dGVudDEuYXBwZW5kQ2hpbGQoY29udGVudDIpOwotCi0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250
ZW50MSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicp
LmFwcGVuZENoaWxkKHRhcmdldCk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVj
dC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48Y29udGVudD48c3Bhbj5D
T05URU5UIDIgRkFMTEJBQ0s8L3NwYW4+PC9jb250ZW50PjwvZGl2PiI7Ci19Ci0KLXZhciB0ZXN0
RnVuY3MgPSBbCi0gICAgdGVzdEZhbGxiYWNrLAotICAgIHRlc3RGYWxsYmFja0RlZXAsCi0gICAg
dGVzdE5vbkZhbGxiYWNrV2l0aExpZ2h0Q2hpbGRyZW4sCi0gICAgdGVzdE5vbkZhbGxiYWNrRGVl
cFdpdGhMaWdodENoaWxkcmVuLAotICAgIHRlc3RDb21wbGV4RmFsbGJhY2ssCi0gICAgdGVzdENv
bXBsZXhGYWxsYmFja0RlZXAsCi0gICAgdGVzdENvbXBsZXhGYWxsYmFja0FnYWluLAotICAgIHRl
c3RDb21wbGV4RmFsbGJhY2tEZWVwQWdhaW4sCi0gICAgdGVzdENvbnRlbnRrV2l0aERpc3BsYXlO
b25lLAotICAgIHRlc3RDb250ZW50SW5Db250ZW50LAotICAgIHRlc3RDb250ZW50SW5Db250ZW50
RmFsbGJhY2ssCi0gICAgdGVzdENvbnRlbnRJbkNvbnRlbnRGYWxsYmFja1dpdGhEaXNwbGF5Tm9u
ZSwKLSAgICB0ZXN0Q29udGVudEluQ29udGVudEZhbGxiYWNrRGlyZWN0Ci1dOwotCi1mdW5jdGlv
biBkb1Rlc3QoKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgY2xlYW5VcCgp
OwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0RnVuY3MubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgdGVzdEZ1bmNzW2ldKCk7Ci0gICAgICAgIGNoZWNrKCk7Ci0gICAgICAgIGNsZWFuVXAo
KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iZG9UZXN0KCki
PgotCi08ZGl2IGlkPSJhY3R1YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4K
LTxkaXYgaWQ9ImV4cGVjdC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgotPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0LWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50
cy1zZWxlY3QtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c3R5bGU+Ci0vKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcg
UmVuZGVyTGF5ZXIgKi8KLS5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLX0K
LTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci08IS0tIHRl
c3RTZWxlY3RJc051bGwgLS0+Ci08ZGl2PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50
PC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bhbj48L2Rpdj4KLTwhLS0gdGVzdFNlbGVjdElzSWQgLS0+
Ci08ZGl2PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPldvcmxk
Ljwvc3Bhbj48L2Rpdj4KLTwhLS0gdGVzdFNlbGVjdElzSWRCdXROb3RNYXRjaGVkIC0tPgotPGRp
dj48c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2PgotPCEtLSB0ZXN0
U2VsZWN0SXNJZEJ1dE5vdENoaWxkIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+
V29ybGQuPC9zcGFuPjwvZGl2PgotPCEtLSB0ZXN0U2VsZWN0SXNNdWx0aUlkIC0tPgotPGRpdj48
c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFu
PjxzcGFuPldvcmxkLjwvc3Bhbj48L2Rpdj4KLTwhLS0gdGVzdFNlbGVjdElzVHlwZSAtLT4KLTxk
aXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9z
cGFuPjwvZGl2PgotPCEtLSB0ZXN0U2VsZWN0SXNUeXBlV2l0aEF0dHJpYnV0ZSAtLT4KLTxkaXY+
PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFu
PjwvZGl2PgotPCEtLSB0ZXN0U2VsZWN0SXNUeXBlV2l0aEZpcnN0T2ZUeXBlIC0tPgotPGRpdj48
c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+
PC9kaXY+Ci08IS0tIHRlc3RTZWxlY3RJc1R5cGVXaXRoRmlyc3RPZlR5cGUyIC0tPgotPGRpdj48
c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+
PC9kaXY+Ci08IS0tIHRlc3RTZWxlY3RJc1R5cGVXaXRoTGFzdE9mVHlwZSAtLT4KLTxkaXY+PHNw
YW4+SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFuPjwv
ZGl2PgotPCEtLSB0ZXN0U2VsZWN0SXNEZXRhaWxzIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3Nw
YW4+PGRldGFpbHM+Y29udGVudDwvZGV0YWlscz48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Ci08
IS0tIHRlc3RTZWxlY3RJc0RldGFpbHMyIC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PGRl
dGFpbHM+PHN1bW1hcnk+Y29udGVudDwvc3VtbWFyeT48L2RldGFpbHM+PHNwYW4+V29ybGQuPC9z
cGFuPjwvZGl2PgotPCEtLSB0ZXN0U2VsZWN0V2hlbkR5bmFtaWNhbGx5Q2hpbGRyZW5DaGFuZ2Vk
IC0tPgotPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5X
b3JsZC48L3NwYW4+PC9kaXY+Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxl
Y3QuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNzQgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVsYXRp
dmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0uY29udGFp
bmVyIHsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLWZ1
bmN0aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkgewotICAgIHZhciByb290ID0gaW50
ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKLQotICAgIHZhciBjaGlsZDAgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgY2hpbGQwLmlubmVySFRNTCA9ICJIZWxs
bywiOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQwKTsKLQotICAgIHZhciBjb250ZW50ID0g
aW50ZXJuYWxzLmNyZWF0ZUNvbnRlbnRFbGVtZW50KCk7Ci0gICAgY29udGVudC5zZXRBdHRyaWJ1
dGUoJ3NlbGVjdCcsIHNlbGVjdCk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKLQot
ICAgIHZhciBjaGlsZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgY2hp
bGQxLmlubmVySFRNTCA9ICJXb3JsZC4iOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsK
LX0KLQotZnVuY3Rpb24gdGVzdFNlbGVjdElzTnVsbCgpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3Bh
bj5jb250ZW50PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiIik7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKLX0KLQotZnVuY3Rpb24gdGVzdFNlbGVjdElzSWQoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNw
YW4gaWQ9J2Zvbyc+Y29udGVudDwvc3Bhbj48c3BhbiBpZD0nYXp1bnlhbic+cGVyb3Blcm88L3Nw
YW4+IjsKLQotICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjZm9vIik7Ci0KLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQot
ZnVuY3Rpb24gdGVzdFNlbGVjdElzSWRCdXROb3RNYXRjaGVkKCkgewotICAgIHZhciB0YXJnZXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0g
IjxzcGFuIGlkPSdmb28nPmNvbnRlbnQ8L3NwYW4+PHNwYW4gaWQ9J2F6dW55YW4nPnBlcm9wZXJv
PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiI2Zvb2JhciIpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc0lkQnV0Tm90Q2hpbGQoKSB7Ci0gICAgdmFyIHRh
cmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhU
TUwgPSAiPHNwYW4+PHNwYW4gaWQ9J2Zvbyc+Y29udGVudDwvc3Bhbj48c3BhbiBpZD0nYXp1bnlh
bic+cGVyb3Blcm88L3NwYW4+PC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAi
I2ZvbyIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVu
ZENoaWxkKHRhcmdldCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc011bHRpSWQoKSB7Ci0g
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdl
dC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J2Zvbyc+Y29udGVudDwvc3Bhbj48c3BhbiBpZD0nYXp1
bnlhbic+cGVyb3Blcm88L3NwYW4+PHNwYW4gaWQ9J2Zvbyc+Y29udGVudDwvc3Bhbj4iOwotCi0g
ICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNmb28iKTsKLQotICAgIC8vIEFsbCBtYXRjaGVkIGVs
ZW1lbnRzIHdpbGwgYmUgc2VsZWN0ZWQuCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJ
c1R5cGUoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPGRpdj5henVueWFuPC9kaXY+PHNwYW4+Y29udGVu
dDwvc3Bhbj48ZGl2PnBlcm9wZXJvPC9kaXY+IjsKLQotICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQs
ICJzcGFuIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQotZnVuY3Rpb24gdGVzdFNlbGVjdElzVHlwZVdpdGhBdHRy
aWJ1dGUoKSB7Ci0gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+YXp1bnlhbjwvc3Bhbj48c3BhbiB0aXRs
ZT0nY29udGVudCc+Y29udGVudDwvc3Bhbj48c3Bhbj5wZXJvcGVybzwvc3Bhbj4iOwotCi0gICAg
YXBwZW5kU2hhZG93KHRhcmdldCwgInNwYW5bdGl0bGU9J2NvbnRlbnQnXSIpOwotCi0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc1R5cGVXaXRoRmlyc3RPZlR5cGUoKSB7Ci0gICAgdmFy
IHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5l
ckhUTUwgPSAiPGRpdj5henVueWFuPC9kaXY+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5wZXJv
cGVybzwvc3Bhbj4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgInNwYW46Zmlyc3Qtb2Yt
dHlwZSIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVu
ZENoaWxkKHRhcmdldCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc1R5cGVXaXRoRmlyc3RP
ZlR5cGUyKCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+YXp1bnlhbjwvc3Bhbj48L2Rp
dj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPnBlcm9wZXJvPC9zcGFuPiI7Ci0KLSAgICBhcHBl
bmRTaGFkb3codGFyZ2V0LCAic3BhbjpmaXJzdC1vZi10eXBlIik7Ci0KLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKLX0KLQotZnVu
Y3Rpb24gdGVzdFNlbGVjdElzVHlwZVdpdGhMYXN0T2ZUeXBlKCkgewotICAgIHZhciB0YXJnZXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0g
IjxzcGFuPmF6dW55YW48L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48ZGl2PnBlcm9wZXJvPC9k
aXY+IjsKLQotICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICJzcGFuOmxhc3Qtb2YtdHlwZSIpOwot
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRh
cmdldCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTZWxlY3RJc0RldGFpbHMoKSB7Ci0gICAgdmFyIHRh
cmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHRhcmdldC5pbm5lckhU
TUwgPSAiPGRldGFpbHM+Y29udGVudDwvZGV0YWlscz4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRh
cmdldCwgImRldGFpbHMiKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWlu
ZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwotfQotCi1mdW5jdGlvbiB0ZXN0U2VsZWN0SXNEZXRh
aWxzMigpIHsKLSAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8ZGV0YWlscz48c3VtbWFyeT5jb250ZW50PC9zdW1t
YXJ5PjwvZGV0YWlscz4iOwotCi0gICAgYXBwZW5kU2hhZG93KHRhcmdldCwgImRldGFpbHMiKTsK
LQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0
YXJnZXQpOwotfQotCi1mdW5jdGlvbiB0ZXN0U2VsZWN0V2hlbkR5bmFtaWNhbGx5Q2hpbGRyZW5D
aGFuZ2VkKCkgewotICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4gaWQ9
J3RvYmVyZW1vdmVkJz5hbnVueWFuIHBlcm9wZXJvPC9zcGFuPiI7Ci0KLSAgICBhcHBlbmRTaGFk
b3codGFyZ2V0LCAic3BhbiIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRh
aW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Ci0KLSAgICB2YXIgZWxlbSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0b2JlcmVtb3ZlZCcpOwotICAgIGVsZW0ucGFyZW50Tm9kZS5yZW1vdmVD
aGlsZChlbGVtKTsKLX0KLQotdmFyIHRlc3RGdW5jcyA9IFsKLSAgICB0ZXN0U2VsZWN0SXNOdWxs
LAotICAgIHRlc3RTZWxlY3RJc0lkLAotICAgIHRlc3RTZWxlY3RJc0lkQnV0Tm90TWF0Y2hlZCwK
LSAgICB0ZXN0U2VsZWN0SXNJZEJ1dE5vdENoaWxkLAotICAgIHRlc3RTZWxlY3RJc011bHRpSWQs
Ci0gICAgdGVzdFNlbGVjdElzVHlwZSwKLSAgICB0ZXN0U2VsZWN0SXNUeXBlV2l0aEF0dHJpYnV0
ZSwKLSAgICB0ZXN0U2VsZWN0SXNUeXBlV2l0aEZpcnN0T2ZUeXBlLAotICAgIHRlc3RTZWxlY3RJ
c1R5cGVXaXRoRmlyc3RPZlR5cGUyLAotICAgIHRlc3RTZWxlY3RJc1R5cGVXaXRoTGFzdE9mVHlw
ZSwKLSAgICB0ZXN0U2VsZWN0SXNEZXRhaWxzLAotICAgIHRlc3RTZWxlY3RJc0RldGFpbHMyLAot
ICAgIHRlc3RTZWxlY3RXaGVuRHluYW1pY2FsbHlDaGlsZHJlbkNoYW5nZWQsCi1dCi0KLWZ1bmN0
aW9uIGRvVGVzdCgpIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RGdW5jcy5sZW5ndGg7
ICsraSkgewotICAgICAgIHRlc3RGdW5jc1tpXSgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+Ci08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1kaXNhYmxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUxICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0
IHNoYWRvdyBlbGVtZW50IGNhbm5vdCBiZSBjcmVhdGVkIGluIGVsZW1lbnRzIGhhdmluZyBkeW5h
bWljYWxseSBjcmVhdGVkIHNoYWRvdyByb290LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotRElWCi1QQVNTIGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBu
dWxsCi1TUEFOCi1QQVNTIGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBu
dWxsCi1BCi1QQVNTIGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBudWxs
Ci1TRUNUSU9OCi1QQVNTIGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIGlzIG5vdCBu
dWxsCi1JTlBVVAotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgot
dHJlZgotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotQVVESU8K
LVBBU1MgZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLVZJREVPCi1QQVNT
IGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCi1TRUxFQ1QKLVBBU1MgZWxl
bWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVy
YXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLUlNRwotUEFTUyBlbGVtZW50Lndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJl
cXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotVEVYVEFSRUEKLVBBU1MgZWxlbWVudC53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1
ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLUlGUkFNRQotUEFTUyBlbGVtZW50LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RF
cnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotQ0FOVkFTCi1QQVNTIGVsZW1lbnQud2Via2l0Q3JlYXRl
U2hhZG93Um9vdCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9y
OiBET00gRXhjZXB0aW9uIDMuCi1NRVRFUgotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9N
IEV4Y2VwdGlvbiAzLgotUFJPR1JFU1MKLVBBU1MgZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBF
eGNlcHRpb24gMy4KLU9CSkVDVAotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAzLgotRU1CRUQKLVBBU1MgZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24g
My4KLUtFWUdFTgotUEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgot
VklERU8KLVBBU1MgZWxlbWVudC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6IERPTSBFeGNlcHRpb24gMy4KLUFVRElP
Ci1QQVNTIGVsZW1lbnQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSGllcmFyY2h5UmVxdWVzdEVycm9yOiBET00gRXhjZXB0aW9uIDMuCi1GSUVMRFNFVAot
UEFTUyBlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAzLgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+
PHRyZWYgaWQ9InRyZWYiIC8+PC9zdmc+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdG8gZW5zdXJlIHRoYXQgc2hhZG93IGVsZW1lbnQgY2Fu
bm90IGJlIGNyZWF0ZWQgaW4gZWxlbWVudHMgaGF2aW5nIGR5bmFtaWNhbGx5IGNyZWF0ZWQgc2hh
ZG93IHJvb3QuIik7Ci0KLWZ1bmN0aW9uIHRlc3RUb0FkZFNoYWRvd1Jvb3QoZWxlbWVudCwgc3Vj
Y2VzcykgewotICAgIGRlYnVnKGVsZW1lbnQubm9kZU5hbWUpOwotCi0gICAgaWYgKHN1Y2Nlc3Mp
Ci0gICAgICAgIHNob3VsZE5vdEJlKCJlbGVtZW50LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKSIs
ICJudWxsIik7Ci0gICAgZWxzZQotICAgICAgICBzaG91bGRUaHJvdygiZWxlbWVudC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCkiKTsKLX0KLQotdmFyIGVsZW1lbnRzVG9TdWNjZXNzID0gWwotICAg
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAotICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NwYW4nKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyksCi0gICAgZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2VjdGlvbicpLAotXTsKLQotdmFyIGVsZW1lbnRzVG9GYWlsID0g
WwotICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JyksCi0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RyZWYnKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhdWRpbycp
LAotICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyksCi0gICAgZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc2VsZWN0JyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyks
Ci0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKSwKLSAgICBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpZnJhbWUnKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52
YXMnKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdtZXRlcicpLAotICAgIGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3Byb2dyZXNzJyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
b2JqZWN0JyksCi0gICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZW1iZWQnKSwKLSAgICBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdrZXlnZW4nKSwKLSAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCd2aWRlbycpLAotICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJyksCi0gICAgZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZmllbGRzZXQnKSwKLV07Ci0KLWZvciAodmFyIGkgPSAwOyBp
IDwgZWxlbWVudHNUb1N1Y2Nlc3MubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZWxlbWVudCA9IGVs
ZW1lbnRzVG9TdWNjZXNzW2ldOwotICAgIHRlc3RUb0FkZFNoYWRvd1Jvb3QoZWxlbWVudCwgdHJ1
ZSk7Ci19Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHNUb0ZhaWwubGVuZ3RoOyArK2kp
IHsKLSAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRzVG9GYWlsW2ldOwotICAgIHRlc3RUb0FkZFNo
YWRvd1Jvb3QoZWxlbWVudCwgZmFsc2UpOwotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXYtcmVmbG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXYtcmVmbG93LWV4cGVj
dGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZGl2LXJlZmxvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNob3N0
IHsKLSAgICB3aWR0aDogMjAwcHg7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2
PgotICAgIDxkaXY+Ci0gICAgICAgIDxkaXY+PGRpdj5GaXJzdCBsaW5lIGxlYWRzLDwvZGl2Pjwv
ZGl2PgotICAgICAgICA8ZGl2PnNlY29uZCBsaW5lIGZvbGxvd3MuPC9kaXY+Ci0gICAgPC9kaXY+
Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZGl2LXJlZmxvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZGl2LXJlZmxvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpdi1yZWZsb3cuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c3R5bGU+Ci0jaG9zdCB7Ci0gICAgd2lkdGg6IDIwMHB4OwotfQotPC9zdHlsZT4KLTwv
aGVhZD4KLTxib2R5PgotPGRpdiBpZD0iaG9zdCIgdGFiaW5kZXg9MD4KLSAgICA8ZGl2PgotICAg
ICAgICA8ZGl2PjxkaXY+Rmlyc3QgbGluZSBsZWFkcyw8L2Rpdj48L2Rpdj4KLSAgICA8L2Rpdj4K
LTwvZGl2PgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12
YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci12YXIgc2hhZG93MSA9
IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93MS5pbm5lckhUTUwgPSAiPGRp
dj48c2hhZG93Pjwvc2hhZG93PjxkaXY+PC9kaXY+PC9kaXY+IjsKLXZhciBzaGFkb3cyID0gaG9z
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3cyLmlubmVySFRNTCA9ICI8c2VjdGlv
bj4iCi0gICAgICAgICAgICAgICAgICsgICAiPHNoYWRvdz48L3NoYWRvdz4iCi0gICAgICAgICAg
ICAgICAgICsgICAiPGRpdj5zZWNvbmQgbGluZSBmb2xsb3dzLjwvZGl2PiIKLSAgICAgICAgICAg
ICAgICAgKyAiPC9zZWN0aW9uPiI7Ci1ob3N0LmZvY3VzKCk7Ci1ob3N0LmJsdXIoKTsKLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1kb20tZW5hYmxlZC1mbGFnLXdoaXRlbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZW5hYmxlZC1mbGFn
LXdoaXRlbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWVuYWJsZWQtZmxhZy13aGl0ZWxpc3QtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLUVuc3VyZSB0aGF0IHNldFNo
YWRvd0RPTUVuYWJsZWQoKSBpcyBvbmx5IGFsbG93ZWQgZm9yIGEgc2V0IG9mIHRlc3RzLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNoYWRvd0RPTUVuYWJsZWQoZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52
YWxpZEFjY2Vzc0Vycm9yOiBET00gRXhjZXB0aW9uIDE1LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZG9tLWVuYWJsZWQtZmxhZy13aGl0ZWxpc3QuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1lbmFibGVkLWZsYWct
d2hpdGVsaXN0Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZG9tLWVuYWJsZWQtZmxhZy13aGl0ZWxpc3QuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBzZXRT
aGFkb3dET01FbmFibGVkKCkgaXMgb25seSBhbGxvd2VkIGZvciBhIHNldCBvZiB0ZXN0cy4iKQot
c2hvdWxkVGhyb3coIndpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hhZG93RE9NRW5hYmxl
ZChmYWxzZSkiLCAiJ0Vycm9yOiBJbnZhbGlkQWNjZXNzRXJyb3I6IERPTSBFeGNlcHRpb24gMTUn
Iik7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxkLW9mLWluYWN0
aXZlLWNvbnRlbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxkLW9mLWluYWN0aXZl
LWNvbnRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1jaGlsZC1vZi1pbmFj
dGl2ZS1jb250ZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBA
Ci1UZXN0cyB0byBlbnN1cmUgdGhhdCBldmVudCBkaXNwYXRjaGluZyBiZWhhdmVzIGFzIHRoZSBT
aGFkb3cgRE9NIHNwZWMgZGVzY3JpYmVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotCi0KLUNvbXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6Ci1ESVYJIGlkPXNhbmRib3gKLQlE
SVYJIGlkPXRvcAotCQlESVYJIGlkPUEKLQkJRElWCSBpZD1CCi0JCQlESVYJIGlkPXBhcmVudC1v
Zi1pbmFjdGl2ZS1jb250ZW50Ci0JCQkJQ09OVEVOVAkgaWQ9aW5hY3RpdmUtY29udGVudAotCQkJ
CQlESVYJIGlkPWNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQKLQotCi1Nb3ZpbmcgbW91c2UgZnJv
bSBBIHRvIGNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQKLQotICBtb3VzZW91dAotICAgICBAQSAo
dGFyZ2V0OiBBKSAocmVsYXRlZDogY2hpbGQtb2YtaW5hY3RpdmUtY29udGVudCkKLSAgICAgQHRv
cCAodGFyZ2V0OiBBKSAocmVsYXRlZDogY2hpbGQtb2YtaW5hY3RpdmUtY29udGVudCkKLQotICBt
b3VzZW92ZXIKLSAgICAgQGNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQgKHRhcmdldDogY2hpbGQt
b2YtaW5hY3RpdmUtY29udGVudCkgKHJlbGF0ZWQ6IEEpCi0gICAgIEBpbmFjdGl2ZS1jb250ZW50
ICh0YXJnZXQ6IGNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQpIChyZWxhdGVkOiBBKQotICAgICBA
cGFyZW50LW9mLWluYWN0aXZlLWNvbnRlbnQgKHRhcmdldDogY2hpbGQtb2YtaW5hY3RpdmUtY29u
dGVudCkgKHJlbGF0ZWQ6IEEpCi0gICAgIEBhY3RpdmUtY29udGVudCAodGFyZ2V0OiBjaGlsZC1v
Zi1pbmFjdGl2ZS1jb250ZW50KSAocmVsYXRlZDogQSkKLSAgICAgQHNoYWRvdy1yb290LUIgKHRh
cmdldDogY2hpbGQtb2YtaW5hY3RpdmUtY29udGVudCkgKHJlbGF0ZWQ6IEEpCi0gICAgIEBCICh0
YXJnZXQ6IGNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQpIChyZWxhdGVkOiBBKQotICAgICBAdG9w
ICh0YXJnZXQ6IGNoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQpIChyZWxhdGVkOiBBKQotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxk
LW9mLWluYWN0aXZlLWNvbnRlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1jaGlsZC1vZi1pbmFjdGl2
ZS1jb250ZW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWNoaWxkLW9mLWluYWN0aXZlLWNv
bnRlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFk
b3ctZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRp
c3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLQotICAgICAgICBzYW5kYm94LmFwcGVu
ZENoaWxkKAotICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAotICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdBJ30pLAotICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdCJ30sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2FjdGl2ZS1j
b250ZW50JywgJ3NlbGVjdCc6ICcjcGFyZW50LW9mLWluYWN0aXZlLWNvbnRlbnQnfSkpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAncGFy
ZW50LW9mLWluYWN0aXZlLWNvbnRlbnQnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnaW5hY3RpdmUtY29udGVu
dCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZC1vZi1pbmFjdGl2ZS1jb250ZW50J30pKSkp
KSk7Ci0KLSAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnQScsICdCJywgJ0IvJywg
J0IvYWN0aXZlLWNvbnRlbnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcmVudC1v
Zi1pbmFjdGl2ZS1jb250ZW50JywgJ2luYWN0aXZlLWNvbnRlbnQnLCAnY2hpbGQtb2YtaW5hY3Rp
dmUtY29udGVudCddKTsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdCLycpLmlk
ID0gJ3NoYWRvdy1yb290LUInOwotICAgICAgICBzaG93U2FuZGJveFRyZWUoKTsKLSAgICAgICAg
bW92ZU1vdXNlKCdBJywgJ2NoaWxkLW9mLWluYWN0aXZlLWNvbnRlbnQnKTsKLSAgICA8L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRldGFpbHMtc3VtbWFyeS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGV0YWlscy1zdW1tYXJ5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20t
ZXZlbnQtZGlzcGF0Y2hpbmctZGV0YWlscy1zdW1tYXJ5LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw0MCArMCwwIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBldmVudCBkaXNwYXRj
aGluZyBiZWhhdmVzIGFzIHRoZSBTaGFkb3cgRE9NIHNwZWMgZGVzY3JpYmVzLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi0KLUNvbXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6
Ci1ESVYJIGlkPXNhbmRib3gKLQlESVYJIGlkPXRvcAotCQlERVRBSUxTCSBpZD1kZXRhaWxzCi0J
CQlTVU1NQVJZCSBpZD1zdW1tYXJ5Ci0JCQkJRElWCQotCi0KLU1vdmluZyBtb3VzZSBmcm9tIGRl
dGFpbHMgdG8gc3VtbWFyeQotCi0gIG1vdXNlb3V0Ci0gICAgIEBkZXRhaWxzICh0YXJnZXQ6IGRl
dGFpbHMpIChyZWxhdGVkOiBzdW1tYXJ5KQotICAgICBAdG9wICh0YXJnZXQ6IGRldGFpbHMpIChy
ZWxhdGVkOiBzdW1tYXJ5KQotCi0gIG1vdXNlb3ZlcgotICAgICBAc3VtbWFyeSAodGFyZ2V0OiBz
dW1tYXJ5KSAocmVsYXRlZDogZGV0YWlscykKLSAgICAgQGRldGFpbHMgKHRhcmdldDogc3VtbWFy
eSkgKHJlbGF0ZWQ6IGRldGFpbHMpCi0gICAgIEB0b3AgKHRhcmdldDogc3VtbWFyeSkgKHJlbGF0
ZWQ6IGRldGFpbHMpCi0KLU1vdmluZyBtb3VzZSBmcm9tIHN1bW1hcnkgdG8gZGV0YWlscwotCi0g
IG1vdXNlb3V0Ci0gICAgIEBzdW1tYXJ5ICh0YXJnZXQ6IHN1bW1hcnkpIChyZWxhdGVkOiBkZXRh
aWxzKQotICAgICBAZGV0YWlscyAodGFyZ2V0OiBzdW1tYXJ5KSAocmVsYXRlZDogZGV0YWlscykK
LSAgICAgQHRvcCAodGFyZ2V0OiBzdW1tYXJ5KSAocmVsYXRlZDogZGV0YWlscykKLQotICBtb3Vz
ZW92ZXIKLSAgICAgQGRldGFpbHMgKHRhcmdldDogZGV0YWlscykgKHJlbGF0ZWQ6IHN1bW1hcnkp
Ci0gICAgIEB0b3AgKHRhcmdldDogZGV0YWlscykgKHJlbGF0ZWQ6IHN1bW1hcnkpCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGV0YWls
cy1zdW1tYXJ5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGV0YWlscy1zdW1tYXJ5Lmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2
ZW50LWRpc3BhdGNoaW5nLWRldGFpbHMtc3VtbWFyeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci0gICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0gICAgPGRpdiBpZD0ic2Fu
ZGJveCI+PC9kaXY+Ci0gICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0gICAgPHNjcmlwdD4K
LSAgICAgICAgdmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcp
OwotCi0gICAgICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAndG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgLy8gJ2RldGFpbHMv
c3VtbWFyeScgZWxlbWVudHMgdXNlIFNoYWRvdyBET00gaW4gaXRzIGltcGxlbWVudGF0aW9uLgot
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGV0YWlscycsIHsnaWQnOiAnZGV0YWls
cycsICdvcGVuJzogdHJ1ZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnc3VtbWFyeScsIHsnaWQnOiAnc3VtbWFyeSd9KSkpKTsKLQotICAgICAgICBhZGRFdmVu
dExpc3RlbmVycyhbJ3RvcCcsICdkZXRhaWxzJywgJ3N1bW1hcnknXSk7Ci0gICAgICAgIHNob3dT
YW5kYm94VHJlZSgpOwotCi0gICAgICAgIG1vdmVNb3VzZSgnZGV0YWlscycsICdzdW1tYXJ5Jyk7
Ci0gICAgICAgIG1vdmVNb3VzZSgnc3VtbWFyeScsICdkZXRhaWxzJyk7Ci0gICAgPC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC1jaGlsZC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJpYnV0ZWQtY2hpbGQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRv
bS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC1jaGlsZC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNjAgKzAsMCBAQAotVGVzdHMgdG8gZW5zdXJlIHRoYXQgZXZlbnQgZGlz
cGF0Y2hpbmcgYmVoYXZlcyBhcyB0aGUgU2hhZG93IERPTSBzcGVjIGRlc2NyaWJlcy4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotCi1Db21wb3NlZCBTaGFkb3cgVHJlZSB3aWxs
IGJlOgotRElWCSBpZD1zYW5kYm94Ci0JRElWCSBpZD10b3AKLQkJRElWCSBpZD1zaGFkb3ctaG9z
dAotCQkJRElWCSBpZD1kaXN0cmlidXRlZC1saWdodC1jaGlsZAotCQkJRElWCSBpZD1zaGFkb3ct
cm9vdC1jaGlsZAotCi0KLU1vdmluZyBtb3VzZSBmcm9tIHNoYWRvdy1ob3N0IHRvIHNoYWRvdy1o
b3N0L3NoYWRvdy1yb290LWNoaWxkCi0KLSAgbW91c2VvdXQKLQotICBtb3VzZW92ZXIKLSAgICAg
QHNoYWRvdy1yb290LWNoaWxkICh0YXJnZXQ6IHNoYWRvdy1yb290LWNoaWxkKSAocmVsYXRlZDog
c2hhZG93LWhvc3QpCi0gICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiBzaGFkb3ctcm9vdC1jaGls
ZCkgKHJlbGF0ZWQ6IHNoYWRvdy1ob3N0KQotCi1Nb3ZpbmcgbW91c2UgZnJvbSBzaGFkb3ctaG9z
dC9zaGFkb3ctcm9vdC1jaGlsZCB0byBzaGFkb3ctaG9zdAotCi0gIG1vdXNlb3V0Ci0gICAgIEBz
aGFkb3ctcm9vdC1jaGlsZCAodGFyZ2V0OiBzaGFkb3ctcm9vdC1jaGlsZCkgKHJlbGF0ZWQ6IHNo
YWRvdy1ob3N0KQotICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogc2hhZG93LXJvb3QtY2hpbGQp
IChyZWxhdGVkOiBzaGFkb3ctaG9zdCkKLQotICBtb3VzZW92ZXIKLQotTW92aW5nIG1vdXNlIGZy
b20gc2hhZG93LWhvc3QgdG8gZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQKLQotICBtb3VzZW91dAot
ICAgICBAc2hhZG93LWhvc3QgKHRhcmdldDogc2hhZG93LWhvc3QpCi0gICAgIEB0b3AgKHRhcmdl
dDogc2hhZG93LWhvc3QpCi0KLSAgbW91c2VvdmVyCi0KLU1vdmluZyBtb3VzZSBmcm9tIGRpc3Ry
aWJ1dGVkLWxpZ2h0LWNoaWxkIHRvIHNoYWRvdy1ob3N0Ci0KLSAgbW91c2VvdXQKLQotICBtb3Vz
ZW92ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gc2hhZG93LWhvc3Qvc2hhZG93LXJvb3QtY2hpbGQg
dG8gZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQKLQotICBtb3VzZW91dAotCi0gIG1vdXNlb3Zlcgot
Ci1Nb3ZpbmcgbW91c2UgZnJvbSBkaXN0cmlidXRlZC1saWdodC1jaGlsZCB0byBzaGFkb3ctaG9z
dC9zaGFkb3ctcm9vdC1jaGlsZAotCi0gIG1vdXNlb3V0Ci0KLSAgbW91c2VvdmVyCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlzdHJp
YnV0ZWQtY2hpbGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC1jaGlsZC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRv
bS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC1jaGlsZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci0gICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0gICAgPGRpdiBp
ZD0ic2FuZGJveCI+PC9kaXY+Ci0gICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0gICAgPHNj
cmlwdD4KLSAgICAgICAgdmFyIHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Fu
ZGJveCcpOwotCi0gICAgICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAndG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ3NoYWRvdy1ob3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ2NvbnRlbnQnLCAnc2VsZWN0Jzog
JyNkaXN0cmlidXRlZC1saWdodC1jaGlsZCcsfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93LXJvb3QtY2hpbGQnfSkp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdub24tZGlzdHJpYnV0ZWQtbGlnaHQtY2hp
bGQnfSkpKSk7Ci0KLSAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnc2hhZG93LWhv
c3QnLCAnc2hhZG93LWhvc3QvJywgJ3NoYWRvdy1ob3N0L2NvbnRlbnQnLCAnc2hhZG93LWhvc3Qv
c2hhZG93LXJvb3QtY2hpbGQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3RyaWJ1
dGVkLWxpZ2h0LWNoaWxkJywgJ25vbi1kaXN0cmlidXRlZC1saWdodC1jaGlsZCddKTsKLSAgICAg
ICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3ctaG9zdC8nKS5pZCA9ICdzaGFkb3ct
cm9vdCc7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAgICAgIG1vdmVNb3VzZSgn
c2hhZG93LWhvc3QnLCAnc2hhZG93LWhvc3Qvc2hhZG93LXJvb3QtY2hpbGQnKTsKLSAgICAgICAg
bW92ZU1vdXNlKCdzaGFkb3ctaG9zdC9zaGFkb3ctcm9vdC1jaGlsZCcsICdzaGFkb3ctaG9zdCcp
OwotCi0gICAgICAgIG1vdmVNb3VzZSgnc2hhZG93LWhvc3QnLCAnZGlzdHJpYnV0ZWQtbGlnaHQt
Y2hpbGQnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdkaXN0cmlidXRlZC1saWdodC1jaGlsZCcsICdz
aGFkb3ctaG9zdCcpOwotCi0gICAgICAgIG1vdmVNb3VzZSgnc2hhZG93LWhvc3Qvc2hhZG93LXJv
b3QtY2hpbGQnLCAnZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQnKTsKLSAgICAgICAgbW92ZU1vdXNl
KCdkaXN0cmlidXRlZC1saWdodC1jaGlsZCcsICdzaGFkb3ctaG9zdC9zaGFkb3ctcm9vdC1jaGls
ZCcpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZGlz
dHJpYnV0ZWQtdGV4dC1ub2RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRl
ZC10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRl
ZC10ZXh0LW5vZGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAK
LVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNo
YWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAotCURJ
VgkgaWQ9dG9wCi0JCURJVgkgaWQ9c2hhZG93LWhvc3QKLQkJCSN0ZXh0CQotCi0KLU1vdmluZyBt
b3VzZSBmcm9tIGEgZGlzdHJpYnV0ZWQgdGV4dCBub2RlIHRvIHRvcAotCi0gIG1vdXNlb3V0Ci0g
ICAgIEBzaGFkb3ctaG9zdCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkgKHJlbGF0ZWQ6IHRvcCkKLSAg
ICAgQHRvcCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkgKHJlbGF0ZWQ6IHRvcCkKLQotICBtb3VzZW92
ZXIKLSAgICAgQHRvcCAodGFyZ2V0OiB0b3ApIChyZWxhdGVkOiBzaGFkb3ctaG9zdCkKLQotICBt
b3VzZXdoZWVsCi0gICAgIEBjb250ZW50ICh0YXJnZXQ6IGNvbnRlbnQpCi0gICAgIEBzaGFkb3ct
cm9vdCAodGFyZ2V0OiBjb250ZW50KQotICAgICBAc2hhZG93LWhvc3QgKHRhcmdldDogc2hhZG93
LWhvc3QpCi0gICAgIEB0b3AgKHRhcmdldDogc2hhZG93LWhvc3QpCi0KLSAgdG91Y2hzdGFydAot
ICAgICBAY29udGVudCAodGFyZ2V0OiBjb250ZW50KSAodG91Y2hlczogY29udGVudCkgKHRhcmdl
dFRvdWNoZXM6IGNvbnRlbnQpIChjaGFuZ2VkVG91Y2hlczogY29udGVudCkKLSAgICAgQHNoYWRv
dy1yb290ICh0YXJnZXQ6IGNvbnRlbnQpICh0b3VjaGVzOiBjb250ZW50KSAodGFyZ2V0VG91Y2hl
czogY29udGVudCkgKGNoYW5nZWRUb3VjaGVzOiBjb250ZW50KQotICAgICBAc2hhZG93LWhvc3Qg
KHRhcmdldDogc2hhZG93LWhvc3QpICh0b3VjaGVzOiBzaGFkb3ctaG9zdCkgKHRhcmdldFRvdWNo
ZXM6IHNoYWRvdy1ob3N0KSAoY2hhbmdlZFRvdWNoZXM6IHNoYWRvdy1ob3N0KQotICAgICBAdG9w
ICh0YXJnZXQ6IHNoYWRvdy1ob3N0KSAodG91Y2hlczogc2hhZG93LWhvc3QpICh0YXJnZXRUb3Vj
aGVzOiBzaGFkb3ctaG9zdCkgKGNoYW5nZWRUb3VjaGVzOiBzaGFkb3ctaG9zdCkKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotVGV4dCBOb2RlCi0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLWRpc3RyaWJ1dGVkLXRleHQtbm9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWRpc3RyaWJ1dGVk
LXRleHQtbm9kZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1kaXN0cmlidXRlZC10ZXh0LW5v
ZGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ct
ZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3Bh
dGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNv
bnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLQotICAgICAgICAvLyBNYWtlcyBzdXJlIGFu
IGluc2VydGlvbiBwb2ludCBjYW4gcmVjZWl2ZSBhIGV2ZW50IHdoZW4gYSBkaXN0cmlidXRlZCB0
ZXh0IG5vZGUgaXMgY2xpY2tlZC4KLSAgICAgICAgc2FuZGJveC5hcHBlbmRDaGlsZCgKLSAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICd0b3AnfSwKLSAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93LWhvc3QnfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnaWQnOiAnY29udGVudCd9
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCdUZXh0IE5vZGUnKSkpKTsKLSAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBnZXROb2RlSW5T
aGFkb3dUcmVlU3RhY2soJ3NoYWRvdy1ob3N0LycpLmlkID0gJ3NoYWRvdy1yb290JzsKLSAgICAg
ICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnc2hhZG93LWhvc3QnLCAnc2hhZG93LWhvc3Qv
JywgJ3NoYWRvdy1ob3N0L2NvbnRlbnQnXSk7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwot
Ci0gICAgICAgIC8vIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0ZXh0IG5vZGUuCi0g
ICAgICAgIHZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NoYWRvdy1ob3N0Jyk7
Ci0gICAgICAgIHZhciB4ID0gaG9zdC5vZmZzZXRMZWZ0ICsgNTsKLSAgICAgICAgdmFyIHkgPSBo
b3N0Lm9mZnNldFRvcCArIGRlZmF1bHRQYWRkaW5nU2l6ZSArIDU7Ci0gICAgICAgIGRlYnVnKCdc
bicgKyAnTW92aW5nIG1vdXNlIGZyb20gYSBkaXN0cmlidXRlZCB0ZXh0IG5vZGUgdG8gdG9wJyk7
Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotICAgICAgICBjbGVhckV2
ZW50UmVjb3JkcygpOwotCi0gICAgICAgIG1vdmVNb3VzZU92ZXIoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RvcCcpKTsKLSAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3V0Jyk7
Ci0gICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW92ZXInKTsKLQotICAgICAgICBj
bGVhckV2ZW50UmVjb3JkcygpOwotICAgICAgICBzY3JvbGxNb3VzZVdoZWVsKGhvc3QpOwotICAg
ICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2V3aGVlbCcpOwotCi0gICAgICAgIGNsZWFy
RXZlbnRSZWNvcmRzKCk7Ci0gICAgICAgIHRvdWNoTG9jYXRpb24oaG9zdCk7Ci0gICAgICAgIGRl
YnVnRGlzcGF0Y2hlZEV2ZW50KCd0b3VjaHN0YXJ0Jyk7Ci0gICAgPC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZmFsbGJhY2stbm9kZXMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRp
c3BhdGNoaW5nLWZhbGxiYWNrLW5vZGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hp
bmctZmFsbGJhY2stbm9kZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICsw
LDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMg
dGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJv
eAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9QQotCQkJRElWCSBpZD11c2VkLWZhbGxiYWNrCi0J
CQlESVYJIGlkPUIKLQotCi1Nb3ZpbmcgbW91c2UgZnJvbSBBL3VzZWQtZmFsbGJhY2sgdG8gQQot
Ci0gIG1vdXNlb3V0Ci0gICAgIEB1c2VkLWZhbGxiYWNrICh0YXJnZXQ6IHVzZWQtZmFsbGJhY2sp
IChyZWxhdGVkOiBBKQotICAgICBAY29udGVudDEgKHRhcmdldDogdXNlZC1mYWxsYmFjaykgKHJl
bGF0ZWQ6IEEpCi0gICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiB1c2VkLWZhbGxiYWNrKSAocmVs
YXRlZDogQSkKLQotICBtb3VzZW92ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gQSB0byBBL3VzZWQt
ZmFsbGJhY2sKLQotICBtb3VzZW91dAotCi0gIG1vdXNlb3ZlcgotICAgICBAdXNlZC1mYWxsYmFj
ayAodGFyZ2V0OiB1c2VkLWZhbGxiYWNrKSAocmVsYXRlZDogQSkKLSAgICAgQGNvbnRlbnQxICh0
YXJnZXQ6IHVzZWQtZmFsbGJhY2spIChyZWxhdGVkOiBBKQotICAgICBAc2hhZG93LXJvb3QgKHRh
cmdldDogdXNlZC1mYWxsYmFjaykgKHJlbGF0ZWQ6IEEpCi0KLUNsaWNrIG5vbi11c2VkLWZhbGxi
YWNrIG5vZGUKLQotICBjbGljawotICAgICBAbm9uLXVzZWQtZmFsbGJhY2sgKHRhcmdldDogbm9u
LXVzZWQtZmFsbGJhY2spCi0gICAgIEBjb250ZW50MiAodGFyZ2V0OiBub24tdXNlZC1mYWxsYmFj
aykKLSAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IG5vbi11c2VkLWZhbGxiYWNrKQotICAgICBA
QSAodGFyZ2V0OiBBKQotICAgICBAdG9wICh0YXJnZXQ6IEEpCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZmFsbGJhY2stbm9kZXMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1l
dmVudC1kaXNwYXRjaGluZy1mYWxsYmFjay1ub2Rlcy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGlu
Zy1mYWxsYmFjay1ub2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0gICAg
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0gICAgPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci0g
ICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFyIHNh
bmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotCi0gICAgICAgIHNh
bmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
dG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ0En
fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsn
aWQnOiAnY29udGVudDEnLCAnc2VsZWN0JzogJyNub25lJ30sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3VzZWQt
ZmFsbGJhY2snfSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdjb250ZW50JywgeydpZCc6ICdjb250ZW50Mid9LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdub24tdXNl
ZC1mYWxsYmFjayd9KSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnQid9KSkpKTsKLQotICAgICAgICBhZGRFdmVudExpc3RlbmVycyhb
J3RvcCcsICdBJywgJ0InLCAnQS8nLCAnQS9jb250ZW50MScsICdBL3VzZWQtZmFsbGJhY2snLCAn
QS9jb250ZW50MicsICdBL25vbi11c2VkLWZhbGxiYWNrJ10pOwotICAgICAgICBnZXROb2RlSW5T
aGFkb3dUcmVlU3RhY2soJ0EvJykuaWQgPSAnc2hhZG93LXJvb3QnOwotICAgICAgICBzaG93U2Fu
ZGJveFRyZWUoKTsKLQotICAgICAgICBtb3ZlTW91c2UoJ0EvdXNlZC1mYWxsYmFjaycsICdBJyk7
Ci0gICAgICAgIG1vdmVNb3VzZSgnQScsICdBL3VzZWQtZmFsbGJhY2snKTsKLQotICAgICAgICBj
bGVhckV2ZW50UmVjb3JkcygpOwotICAgICAgICBkZWJ1ZygnXG5DbGljayBub24tdXNlZC1mYWxs
YmFjayBub2RlJyk7Ci0gICAgICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnQS9ub24tdXNl
ZC1mYWxsYmFjaycpLmNsaWNrKCk7Ci0gICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdjbGlj
aycpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbWFu
dWFsbHktZmlyZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1hbnVhbGx5LWZpcmVkLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFsbHktZmlyZWQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI0ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0
IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmli
ZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93
IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9
aG9zdAotCQkJRElWCSBpZD1kaXYxCi0JCQlESVYJIGlkPWRpdjIKLQotCi0gIG1vdXNlb3V0Ci0K
LSAgbW91c2VvdmVyCi0gICAgIEBkaXYyICh0YXJnZXQ6IGRpdjIpIChyZWxhdGVkOiBkaXYxKQot
ICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRpdjEpCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFs
bHktZmlyZWQtd2l0aC1zYW1lLXJlbGF0ZWQtdGFyZ2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy1tYW51YWxseS1maXJlZC13aXRoLXNhbWUtcmVsYXRlZC10YXJnZXQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy1tYW51YWxseS1maXJlZC13aXRoLXNhbWUtcmVsYXRlZC10
YXJnZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLVRlc3Rz
IHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBE
T00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQot
Q29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9
dG9wCi0JCURJVgkgaWQ9aG9zdAotCQkJRElWCSBpZD1kaXYxCi0KLQotICBtb3VzZW91dAotCi0g
IG1vdXNlb3ZlcgotICAgICBAZGl2MSAodGFyZ2V0OiBkaXYxKSAocmVsYXRlZDogZGl2MSkKLSAg
ICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IGRpdjEpIChyZWxhdGVkOiBkaXYxKQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1hbnVhbGx5
LWZpcmVkLXdpdGgtc2FtZS1yZWxhdGVkLXRhcmdldC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1hbnVh
bGx5LWZpcmVkLXdpdGgtc2FtZS1yZWxhdGVkLXRhcmdldC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy1tYW51YWxseS1maXJlZC13aXRoLXNhbWUtcmVsYXRlZC10YXJnZXQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAg
IDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgot
ICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3NhbmRib3gnKTsKLQotICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAotICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSkpKSk7Ci0KLSAgICAgICAg
YWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnaG9zdCcsICdob3N0LycsICdob3N0L2RpdjEnXSk7
Ci0gICAgICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC8nKS5pZCA9ICdzaGFkb3ct
cm9vdCc7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAgICAgIHZhciBkaXYxID0g
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0L2RpdjEnKTsKLQotICAgICAgICBjbGVhckV2
ZW50UmVjb3JkcygpOwotICAgICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgi
TW91c2VFdmVudHMiKTsKLSAgICAgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlb3ZlciIs
IHRydWUsIGZhbHNlLCB3aW5kb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEw
LCAxMCwgMTAsIDEwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgZGl2MSk7Ci0gICAg
ICAgIGRpdjEuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0KLSAgICAgICAgZGVidWdEaXNwYXRjaGVk
RXZlbnQoJ21vdXNlb3V0Jyk7Ci0gICAgICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW92
ZXInKTsKLSAgICA8L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW1h
bnVhbGx5LWZpcmVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFsbHktZmlyZWQuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20t
ZXZlbnQtZGlzcGF0Y2hpbmctbWFudWFsbHktZmlyZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNh
bmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+
Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gn
KTsKLQotICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ3RvcCd9LAotICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdob3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXYyJ30pKSkpKTsKLQotICAgICAg
ICBhZGRFdmVudExpc3RlbmVycyhbJ3RvcCcsICdob3N0JywgJ2hvc3QvJywgJ2hvc3QvZGl2MScs
ICdob3N0L2RpdjInXSk7Ci0gICAgICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC8n
KS5pZCA9ICdzaGFkb3ctcm9vdCc7Ci0gICAgICAgIHNob3dTYW5kYm94VHJlZSgpOwotCi0gICAg
ICAgIHZhciBkaXYxID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0L2RpdjEnKTsKLSAg
ICAgICAgdmFyIGRpdjIgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvZGl2MicpOwot
Ci0gICAgICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgICAgIHZhciBldmVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpOwotICAgICAgICBldmVudC5pbml0TW91c2VF
dmVudCgibW91c2VvdmVyIiwgdHJ1ZSwgZmFsc2UsIHdpbmRvdywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwgMTAsIDEwLCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCAwLCBkaXYxKTsKLSAgICAgICAgZGl2Mi5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLQotICAgICAg
ICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsKLSAgICAgICAgZGVidWdEaXNwYXRj
aGVkRXZlbnQoJ21vdXNlb3ZlcicpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZl
bnQtZGlzcGF0Y2hpbmctbXVsdGlwbGUtc2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNw
YXRjaGluZy1tdWx0aXBsZS1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNw
YXRjaGluZy1tdWx0aXBsZS1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQ2ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5n
IGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJ
VgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9QQotCQkJRElWCSBpZD1CCi0J
CQlESVYJIGlkPUQKLQkJCURJVgkgaWQ9RgotCi0KLU1vdmluZyBtb3VzZSBmcm9tIEIgdG8gQQot
Ci0gIG1vdXNlb3V0Ci0gICAgIEBCICh0YXJnZXQ6IEIpIChyZWxhdGVkOiBBKQotICAgICBAQyAo
dGFyZ2V0OiBCKSAocmVsYXRlZDogQSkKLSAgICAgQG9sZGVyLXNoYWRvdy1yb290ICh0YXJnZXQ6
IEIpIChyZWxhdGVkOiBBKQotICAgICBARSAodGFyZ2V0OiBCKSAocmVsYXRlZDogQSkKLSAgICAg
QHlvdW5nZXItc2hhZG93LXJvb3QgKHRhcmdldDogQikgKHJlbGF0ZWQ6IEEpCi0gICAgIEBBICh0
YXJnZXQ6IEIpIChyZWxhdGVkOiBBKQotICAgICBAdG9wICh0YXJnZXQ6IEIpIChyZWxhdGVkOiBB
KQotCi0gIG1vdXNlb3ZlcgotICAgICBAQSAodGFyZ2V0OiBBKSAocmVsYXRlZDogQikKLSAgICAg
QHRvcCAodGFyZ2V0OiBBKSAocmVsYXRlZDogQikKLQotTW92aW5nIG1vdXNlIGZyb20gQS9EIHRv
IEEvL0YKLQotICBtb3VzZW91dAotCi0gIG1vdXNlb3ZlcgotCi1Nb3ZpbmcgbW91c2UgZnJvbSBC
IHRvIEEvL0YKLQotICBtb3VzZW91dAotCi0gIG1vdXNlb3ZlcgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW11bHRpcGxlLXNoYWRvdy1y
b290cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW11bHRpcGxlLXNoYWRvdy1yb290cy5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1l
dmVudC1kaXNwYXRjaGluZy1tdWx0aXBsZS1zaGFkb3ctcm9vdHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAgIDxkaXYg
aWQ9InNhbmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotICAgIDxz
Y3JpcHQ+Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nh
bmRib3gnKTsKLQotICAgICAgICBzYW5kYm94LmFwcGVuZENoaWxkKAotICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAotICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdBJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ0MnfSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnRCd9KSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycsIHsnaWQnOiAnRSd9KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdGJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ0InfSkpKSk7Ci0KLSAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAn
QScsICdCJywgJ0EvJywgJ0EvQycsICdBL0QnLCAnQS8vJywgJ0EvL0UnLCAnQS8vRiddKTsKLSAg
ICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdBLycpLmlkID0gJ29sZGVyLXNoYWRvdy1y
b290JzsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdBLy8nKS5pZCA9ICd5b3Vu
Z2VyLXNoYWRvdy1yb290JzsKLSAgICAgICAgc2hvd1NhbmRib3hUcmVlKCk7Ci0KLSAgICAgICAg
bW92ZU1vdXNlKCdCJywgJ0EnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdBL0QnLCAnQS8vRicpOwot
ICAgICAgICBtb3ZlTW91c2UoJ0InLCAnQS8vRicpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbmVzdGVkLXNoYWRvdy1yb290cy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZl
bnQtZGlzcGF0Y2hpbmctbmVzdGVkLXNoYWRvdy1yb290cy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50
LWRpc3BhdGNoaW5nLW5lc3RlZC1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDU0ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNo
aW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToK
LURJVgkgaWQ9c2FuZGJveAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9QQotCQkJRElWCSBpZD1C
Ci0JCQkJRElWCSBpZD1HCi0JCQkJCURJVgkgaWQ9SgotCQkJCQkJRElWCSBpZD1DCi0JCQkJCQkJ
RElWCSBpZD1ECi0JCQkJCURJVgkgaWQ9TAotCQkJCQkJRElWCSBpZD1FCi0JCQkJCQkJRElWCSBp
ZD1GCi0KLQotTW92aW5nIG1vdXNlIGZyb20gRiB0byBECi0KLSAgbW91c2VvdXQKLQotICBtb3Vz
ZW92ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gQi9HL0wgdG8gRAotCi0gIG1vdXNlb3V0Ci0KLSAg
bW91c2VvdmVyCi0KLU1vdmluZyBtb3VzZSBmcm9tIEIvRy9MIHRvIEIvRy9KCi0KLSAgbW91c2Vv
dXQKLQotICBtb3VzZW92ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gQSB0byBECi0KLSAgbW91c2Vv
dXQKLQotICBtb3VzZW92ZXIKLQotTW92aW5nIG1vdXNlIGZyb20gRCB0byBBCi0KLSAgbW91c2Vv
dXQKLQotICBtb3VzZW92ZXIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRv
bS1ldmVudC1kaXNwYXRjaGluZy1uZXN0ZWQtc2hhZG93LXJvb3RzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hp
bmctbmVzdGVkLXNoYWRvdy1yb290cy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1uZXN0ZWQt
c2hhZG93LXJvb3RzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9l
dmVudC1kaXNwYXRjaGluZy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICA8ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KLSAgICA8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLSAgICA8c2NyaXB0PgotICAgICAgICB2YXIgc2FuZGJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyk7Ci0KLSAgICAgICAgc2FuZGJv
eC5hcHBlbmRDaGlsZCgKLSAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICd0b3An
fSwKLSAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnQSd9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
Qid9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hh
ZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnRyd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ0onfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ04nLCAnc2VsZWN0
JzogJyNDJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ0sn
LCAnc2VsZWN0JzogJyNDJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdMJ30sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JywgeydpZCc6ICdPJywgJ3NlbGVjdCc6ICcjRSd9KSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6ICdNJywgJ3NlbGVjdCc6ICcjRSd9KSkpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2NvbnRlbnQnLCB7J2lkJzogJ0gnLCAnc2VsZWN0JzogJyNDJ30pLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2NvbnRlbnQnLCB7J2lkJzogJ0knLCAnc2VsZWN0JzogJyNFJ30pKSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnQyd9
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdEJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdFJ30sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ0YnfSkpKSkpKTsKLQotICAgICAgICBhZGRFdmVudExpc3RlbmVycyhbJ3RvcCcs
ICdBJywgJ0InLCAnQycsICdEJywgJ0UnLCAnRicsICdCLycsICdCL0cnLCAnQi9IJywgJ0IvSScs
ICdCL0cvJywgJ0IvRy9KJywgJ0IvRy9LJywgJ0IvRy9MJywgJ0IvRy9NJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdCL0cvSi8nLCAnQi9HL0ovTicsICdCL0cvTC8nLCAnQi9HL0wvTydd
KTsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdCLycpLmlkID0gJ3NoYWRvdy1y
b290LUInOwotICAgICAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ0IvRy8nKS5pZCA9ICdz
aGFkb3ctcm9vdC1HJzsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdCL0cvSi8n
KS5pZCA9ICdzaGFkb3ctcm9vdC1KJzsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNr
KCdCL0cvTC8nKS5pZCA9ICdzaGFkb3ctcm9vdC1MJzsKLSAgICAgICAgc2hvd1NhbmRib3hUcmVl
KCk7Ci0KLSAgICAgICAgbW92ZU1vdXNlKCdGJywgJ0QnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdC
L0cvTCcsICdEJyk7Ci0gICAgICAgIG1vdmVNb3VzZSgnQi9HL0wnLCAnQi9HL0onKTsKLSAgICAg
ICAgbW92ZU1vdXNlKCdBJywgJ0QnKTsKLSAgICAgICAgbW92ZU1vdXNlKCdEJywgJ0EnKTsKLSAg
ICA8L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW5vbi1kaXN0cmli
dXRlZC1ub2Rlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbm9uLWRpc3RyaWJ1dGVkLW5v
ZGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctbm9uLWRpc3RyaWJ1dGVkLW5v
ZGVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi1UZXN0cyB0
byBlbnN1cmUgdGhhdCBldmVudCBkaXNwYXRjaGluZyBiZWhhdmVzIGFzIHRoZSBTaGFkb3cgRE9N
IHNwZWMgZGVzY3JpYmVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi0KLUNv
bXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6Ci1ESVYJIGlkPXNhbmRib3gKLQlESVYJIGlkPXRv
cAotCQlESVYJIGlkPUEKLQkJCURJVgkgaWQ9RAotCi0KLUNsaWNrIEMKLQotICBjbGljawotICAg
ICBAQyAodGFyZ2V0OiBDKQotICAgICBAQiAodGFyZ2V0OiBDKQotICAgICBAb3JwaGFuZWQtc2hh
ZG93LXJvb3QgKHRhcmdldDogQykKLSAgICAgQEEgKHRhcmdldDogQSkKLSAgICAgQHRvcCAodGFy
Z2V0OiBBKQotCi1DbGljayBub24tZGlzdHJpYnV0ZWQtbm9kZQotCi0gIGNsaWNrCi0gICAgIEBu
b24tZGlzdHJpYnV0ZWQtbm9kZSAodGFyZ2V0OiBub24tZGlzdHJpYnV0ZWQtbm9kZSkKLSAgICAg
QEEgKHRhcmdldDogbm9uLWRpc3RyaWJ1dGVkLW5vZGUpCi0gICAgIEB0b3AgKHRhcmdldDogbm9u
LWRpc3RyaWJ1dGVkLW5vZGUpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1k
b20tZXZlbnQtZGlzcGF0Y2hpbmctbm9uLWRpc3RyaWJ1dGVkLW5vZGVzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0
Y2hpbmctbm9uLWRpc3RyaWJ1dGVkLW5vZGVzLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLW5v
bi1kaXN0cmlidXRlZC1ub2Rlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0g
ICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci0gICAgPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+
Ci0gICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgdmFy
IHNhbmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotCi0gICAgICAg
IHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAndG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J0EnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdCJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ0MnfSkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdEJ30pKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ25vbi1kaXN0cmlidXRlZC1u
b2RlJ30pKSkpOwotCi0gICAgICAgIGFkZEV2ZW50TGlzdGVuZXJzKFsndG9wJywgJ0EnLCAnQS8n
LCAnQS9CJywgJ0EvQycsICdBLy8nLCAnQS8vRCcsICdub24tZGlzdHJpYnV0ZWQtbm9kZSddKTsK
LSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdBLycpLmlkID0gJ29ycGhhbmVkLXNo
YWRvdy1yb290JzsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdBLy8nKS5pZCA9
ICd5b3VuZ2VzdC1zaGFkb3ctcm9vdCc7Ci0gICAgICAgIHBhcmVudC5vZmZzZXRMZWZ0OwotICAg
ICAgICBzaG93U2FuZGJveFRyZWUoKTsKLQotICAgICAgICBjbGVhckV2ZW50UmVjb3JkcygpOwot
ICAgICAgICBkZWJ1ZygnXG5DbGljayBDJyk7Ci0gICAgICAgIGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnQS9DJykuY2xpY2soKTsKLSAgICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ2NsaWNr
Jyk7Ci0KLSAgICAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLSAgICAgICAgZGVidWcoJ1xuQ2xp
Y2sgbm9uLWRpc3RyaWJ1dGVkLW5vZGUnKTsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ25vbi1kaXN0cmlidXRlZC1ub2RlJykuY2xpY2soKTsKLSAgICAgICAgZGVidWdEaXNwYXRj
aGVkRXZlbnQoJ2NsaWNrJyk7Ci0gICAgPC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1k
aXNwYXRjaGluZy1zdmctaW4tc2hhZG93LXN1YnRyZWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLXN2Zy1pbi1zaGFkb3ctc3VidHJlZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLXN2Zy1pbi1zaGFkb3ctc3VidHJlZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMjQgKzAsMCBAQAotVGVzdHMgdG8gZW5zdXJlIHRoYXQgZXZlbnQgZGlzcGF0Y2hpbmcgYmVo
YXZlcyBhcyB0aGUgU2hhZG93IERPTSBzcGVjIGRlc2NyaWJlcy4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLQotCi0KLUNvbXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6Ci1ESVYJ
IGlkPXNhbmRib3gKLQlESVYJIGlkPXRvcAotCQlESVYJIGlkPXNoYWRvdy1ob3N0Ci0JCQlzdmcJ
IGlkPXN2Zy1pbi1zaGFkb3ctdHJlZSBjbGFzcz1bb2JqZWN0IFNWR0FuaW1hdGVkU3RyaW5nXQot
Ci0KLU1vdmluZyBtb3VzZSBmcm9tIHNoYWRvdy1ob3N0L3N2Zy1pbi1zaGFkb3ctdHJlZSB0byB0
b3AKLQotICBtb3VzZW91dAotCi0gIG1vdXNlb3ZlcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLXN2Zy1pbi1zaGFkb3ctc3VidHJlZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9t
LWV2ZW50LWRpc3BhdGNoaW5nLXN2Zy1pbi1zaGFkb3ctc3VidHJlZS5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1k
aXNwYXRjaGluZy1zdmctaW4tc2hhZG93LXN1YnRyZWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotICAgIDxkaXYgaWQ9InNh
bmRib3giPjwvZGl2PgotICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotICAgIDxzY3JpcHQ+
Ci0gICAgICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gn
KTsKLQotICAgICAgICBkZWJ1ZygiPHN2Zz4gaW4gc2hhZG93IERPTSBzdWJ0cmVlIGlzIG5vdCBz
dXBwb3J0ZWQgY3VycmVudGx5OiB0aGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2gu
Iik7Ci0gICAgICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAndG9wJ30sCi0gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ3NoYWRvdy1ob3N0J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpKTsKLSAgICAgICAgdmFyIHN2ZyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnc3ZnJyk7Ci0gICAg
ICAgIHN2Zy5pZCA9ICdzdmctaW4tc2hhZG93LXRyZWUnOwotICAgICAgICBnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ3NoYWRvdy1ob3N0LycpLmFwcGVuZENoaWxkKHN2Zyk7Ci0KLSAgICAgICAg
YWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnc2hhZG93LWhvc3QvJywgJ3NoYWRvdy1ob3N0L3N2
Zy1pbi1zaGFkb3ctdHJlZSddKTsKLSAgICAgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdz
aGFkb3ctaG9zdC8nKS5pZCA9ICdzaGFkb3ctcm9vdCc7Ci0gICAgICAgIHNob3dTYW5kYm94VHJl
ZSgpOwotCi0gICAgICAgIG1vdmVNb3VzZSgnc2hhZG93LWhvc3Qvc3ZnLWluLXNoYWRvdy10cmVl
JywgJ3RvcCcpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hp
bmctdGV4dC1ub2RlLWluLXNoYWRvdy1yb290LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10
ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGlu
Zy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDM2ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2ZW50IGRpc3BhdGNoaW5nIGJl
aGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi0KLQotQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKLURJVgkg
aWQ9c2FuZGJveAotCURJVgkgaWQ9dG9wCi0JCURJVgkgaWQ9c2hhZG93LWhvc3QKLQkJCSN0ZXh0
CQotCi0KLU1vdmluZyBtb3VzZSBmcm9tIGEgZGlyZWN0IGNoaWxkIHRleHQgbm9kZSBvZiB0aGUg
c2hhZG93IHJvb3QgdG8gdG9wCi0KLSAgbW91c2VvdXQKLSAgICAgQHNoYWRvdy1ob3N0ICh0YXJn
ZXQ6IHNoYWRvdy1ob3N0KSAocmVsYXRlZDogdG9wKQotICAgICBAdG9wICh0YXJnZXQ6IHNoYWRv
dy1ob3N0KSAocmVsYXRlZDogdG9wKQotCi0gIG1vdXNlb3ZlcgotICAgICBAdG9wICh0YXJnZXQ6
IHRvcCkgKHJlbGF0ZWQ6IHNoYWRvdy1ob3N0KQotCi0gIHRvdWNoc3RhcnQKLSAgICAgQHNoYWRv
dy1yb290ICh0YXJnZXQ6IHNoYWRvdy1yb290KSAodG91Y2hlczogc2hhZG93LXJvb3QpICh0YXJn
ZXRUb3VjaGVzOiBzaGFkb3ctcm9vdCkgKGNoYW5nZWRUb3VjaGVzOiBzaGFkb3ctcm9vdCkKLSAg
ICAgQHNoYWRvdy1ob3N0ICh0YXJnZXQ6IHNoYWRvdy1ob3N0KSAodG91Y2hlczogc2hhZG93LWhv
c3QpICh0YXJnZXRUb3VjaGVzOiBzaGFkb3ctaG9zdCkgKGNoYW5nZWRUb3VjaGVzOiBzaGFkb3ct
aG9zdCkKLSAgICAgQHRvcCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkgKHRvdWNoZXM6IHNoYWRvdy1o
b3N0KSAodGFyZ2V0VG91Y2hlczogc2hhZG93LWhvc3QpIChjaGFuZ2VkVG91Y2hlczogc2hhZG93
LWhvc3QpCi0KLSAgbW91c2V3aGVlbAotICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogc2hhZG93
LXJvb3QpCi0gICAgIEBzaGFkb3ctaG9zdCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKLSAgICAgQHRv
cCAodGFyZ2V0OiBzaGFkb3ctaG9zdCkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVu
dC1kaXNwYXRjaGluZy10ZXh0LW5vZGUtaW4tc2hhZG93LXJvb3QuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmctdGV4dC1ub2RlLWluLXNoYWRvdy1yb290Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9ldmVudC1kaXNwYXRjaGluZy5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLSAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLSAgICA8ZGl2IGlkPSJz
YW5kYm94Ij48L2Rpdj4KLSAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLSAgICA8c2NyaXB0
PgotICAgICAgICB2YXIgc2FuZGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94
Jyk7Ci0KLSAgICAgICAgc2FuZGJveC5hcHBlbmRDaGlsZCgKLSAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICd0b3AnfSwKLSAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnc2hhZG93LWhvc3QnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdCgpKSkpOwotICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGdl
dE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93LWhvc3QvJyk7Ci0gICAgICAgIHNoYWRvd1Jv
b3QuaWQgPSAnc2hhZG93LXJvb3QnOwotICAgICAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICdU
ZXh0IE5vZGVzJzsKLSAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnc2hhZG93LWhv
c3QnLCAnc2hhZG93LWhvc3QvJ10pOwotICAgICAgICBzaG93U2FuZGJveFRyZWUoKTsKLQotICAg
ICAgICAvLyBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGV4dCBub2RlIGluIHRoZSBz
aGFkb3cgcm9vdC4KLSAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c2hhZG93LWhvc3QnKTsKLSAgICAgICAgdmFyIHggPSBob3N0Lm9mZnNldExlZnQgKyA1OwotICAg
ICAgICB2YXIgeSA9IGhvc3Qub2Zmc2V0VG9wICsgZGVmYXVsdFBhZGRpbmdTaXplICsgNTsKLSAg
ICAgICAgZGVidWcoJ1xuJyArICdNb3ZpbmcgbW91c2UgZnJvbSBhIGRpcmVjdCBjaGlsZCB0ZXh0
IG5vZGUgb2YgdGhlIHNoYWRvdyByb290IHRvIHRvcCcpOwotICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKLSAgICAgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKLQotICAgICAg
ICBtb3ZlTW91c2VPdmVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKSk7Ci0gICAgICAg
IGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW91dCcpOwotICAgICAgICBkZWJ1Z0Rpc3BhdGNo
ZWRFdmVudCgnbW91c2VvdmVyJyk7Ci0KLSAgICAgICAgdG91Y2hMb2NhdGlvbihob3N0KTsKLSAg
ICAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ3RvdWNoc3RhcnQnKTsKLQotICAgICAgICBzY3Jv
bGxNb3VzZVdoZWVsKGhvc3QpOwotICAgICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2V3
aGVlbCcpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tbW91c2UtZXZlbnQtYWRqdXN0
LW9mZnNldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1kb20tbW91c2UtZXZlbnQtYWRqdXN0LW9mZnNldC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
ZG9tLW1vdXNlLWV2ZW50LWFkanVzdC1vZmZzZXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDE1ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IE1vdXNlRXZlbnQncyBvZmZz
ZXRYIGFuZCBvZmZzZXRZIGFyZSBhZGp1c3RlZCBpbiByZS10YXJnZXRpbmcuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGV2ZW50UmVjb3Jkc1sncGFyZW50J11bJ29mZnNl
dFknXSBpcyA1Ci1QQVNTIGV2ZW50UmVjb3Jkc1snc2hhZG93LWhvc3QnXVsnb2Zmc2V0WSddIGlz
IDUgKyAyMAotUEFTUyBldmVudFJlY29yZHNbJ3RvcCddWydvZmZzZXRZJ10gaXMgNSArIDIwCi1Q
QVNTIGV2ZW50UmVjb3Jkc1sncGFyZW50J11bJ29mZnNldFgnXSBpcyA4MCAvIDIKLVBBU1MgZXZl
bnRSZWNvcmRzWydzaGFkb3ctaG9zdCddWydvZmZzZXRYJ10gaXMgODAgLyAyICsgMTAwCi1QQVNT
IGV2ZW50UmVjb3Jkc1sndG9wJ11bJ29mZnNldFgnXSBpcyA4MCAvIDIgKyAxMDAKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1tb3VzZS1ldmVudC1hZGp1c3Qtb2Zmc2V0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1k
b20tbW91c2UtZXZlbnQtYWRqdXN0LW9mZnNldC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1tb3VzZS1ldmVudC1hZGp1c3Qt
b2Zmc2V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsODAgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IE1vdXNlRXZlbnQncyBvZmZz
ZXRYIGFuZCBvZmZzZXRZIGFyZSBhZGp1c3RlZCBpbiByZS10YXJnZXRpbmcuIik7Ci0KLWZ1bmN0
aW9uIG1vdmVNb3VzZU92ZXIoZWxlbWVudCkKLXsKLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
ciB8fCAhd2luZG93LmludGVybmFscykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmFyIHggPSBl
bGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKLSAgICB2YXIgeSA9
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotfQotCi12YXIgZXZlbnRSZWNvcmRzID0ge307Ci0K
LWZ1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KQotewotICAgIHZhciBldmVudFR5cGUgPSBldmVu
dC50eXBlCi0gICAgdmFyIGV2ZW50UmVjb3JkID0ge30KLSAgICBldmVudFJlY29yZFsnY3VycmVu
dFRhcmdldCddID0gZXZlbnQuY3VycmVudFRhcmdldC5pZAotICAgIGV2ZW50UmVjb3JkWyd0YXJn
ZXQnXSA9IGV2ZW50LnRhcmdldC5pZAotICAgIGV2ZW50UmVjb3JkWydvZmZzZXRYJ10gPSBldmVu
dC5vZmZzZXRYOwotICAgIGV2ZW50UmVjb3JkWydvZmZzZXRZJ10gPSBldmVudC5vZmZzZXRZOwot
ICAgIGV2ZW50UmVjb3Jkc1tldmVudC5jdXJyZW50VGFyZ2V0LmlkXSA9IGV2ZW50UmVjb3JkOwot
fQotCi1mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVycyhub2RlcykKLXsKLSAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBub2RlID0gZ2V0Tm9k
ZUluU2hhZG93VHJlZVN0YWNrKG5vZGVzW2ldKTsKLSAgICAgICAgbm9kZS5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZW92ZXInLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgIH0KLX0KLQotZnVuY3Rp
b24gdGVzdE1vdXNlRXZlbnRPZmZzZXQoKQotewotICAgIHZhciBzYW5kYm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3NhbmRib3gnKTsKLSAgICBzYW5kYm94LmlubmVySFRNTCA9ICcnOwot
ICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCi0gICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICd0b3AnLCAnc3R5bGUnOiAncGFkZGluZy10b3A6IDc3cHg7J30sCi0gICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnc2hhZG93LWhvc3QnLCAnc3R5bGUnOiAncGFkZGlu
Zy1sZWZ0OiAxMDBweDsgcGFkZGluZy10b3A6IDIwcHgnfSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAncGFyZW50J30sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAndGFyZ2V0Jywg
J3N0eWxlJzogJ3BhZGRpbmctdG9wOiAxMHB4OyB3aWR0aDogODBweCd9KSkpKSkpOwotICAgIGFk
ZEV2ZW50TGlzdGVuZXJzKFsndG9wJywgJ3NoYWRvdy1ob3N0JywgJ3NoYWRvdy1ob3N0L3BhcmVu
dCddKTsKLSAgICBzYW5kYm94Lm9mZnNldExlZnQ7Ci0gICAgbW92ZU1vdXNlT3ZlcihnZXROb2Rl
SW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvdy1ob3N0L3RhcmdldCcpKTsKLQotICAgIHNob3VsZEJl
KCJldmVudFJlY29yZHNbJ3BhcmVudCddWydvZmZzZXRZJ10iLCAiNSIpOwotICAgIHNob3VsZEJl
KCJldmVudFJlY29yZHNbJ3NoYWRvdy1ob3N0J11bJ29mZnNldFknXSIsICI1ICsgMjAiKTsKLSAg
ICBzaG91bGRCZSgiZXZlbnRSZWNvcmRzWyd0b3AnXVsnb2Zmc2V0WSddIiwgIjUgKyAyMCIpOwot
Ci0gICAgc2hvdWxkQmUoImV2ZW50UmVjb3Jkc1sncGFyZW50J11bJ29mZnNldFgnXSIsICI4MCAv
IDIiKTsKLSAgICBzaG91bGRCZSgiZXZlbnRSZWNvcmRzWydzaGFkb3ctaG9zdCddWydvZmZzZXRY
J10iLCAiODAgLyAyICsgMTAwIik7Ci0gICAgc2hvdWxkQmUoImV2ZW50UmVjb3Jkc1sndG9wJ11b
J29mZnNldFgnXSIsICI4MCAvIDIgKyAxMDAiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLQotICAgIHRlc3RNb3VzZUV2ZW50T2Zmc2V0KCk7Ci19Ci0KLXRlc3QoKTsKLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1keW5hbWljLXN0eWxlLWNoYW5nZS12aWEtbXV0YXRpb24tYW5kLXNlbGVjdG9yLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWR5bmFtaWMtc3R5bGUtY2hhbmdlLXZpYS1tdXRhdGlvbi1hbmQtc2VsZWN0b3ItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWR5bmFtaWMtc3R5bGUtY2hhbmdlLXZpYS1tdXRhdGlvbi1hbmQtc2VsZWN0b3ItZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1keW5hbWljLXN0eWxlLWNoYW5nZS12aWEtbXV0YXRp
b24tYW5kLXNlbGVjdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1keW5hbWljLXN0eWxlLWNoYW5nZS12aWEtbXV0YXRpb24tYW5kLXNlbGVj
dG9yLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZHluYW1pYy1zdHlsZS1jaGFuZ2UtdmlhLW11dGF0aW9uLWFuZC1zZWxlY3Rvci5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLTxzdHlsZT4KLS5iYXo6bnRoLWxh
c3QtY2hpbGQob2RkKSB7IGRpc3BsYXk6IGJsb2NrOyAgfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiB0ZXN0KCkgewotICAgIHZhciBmb28gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZm9vKTsKLQot
ICAgIHZhciBiYXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgYmFy
U2hhZG93ID0gYmFyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBiYXIuc2V0QXR0cmli
dXRlKCdjbGFzcycsICdiYXInKTsKLSAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoYmFyKTsKLQotICAgIGJheiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsK
LSAgICBiYXouc2V0QXR0cmlidXRlKCdjbGFzcycsICdiYXonKTsKLSAgICBiYXIuYXBwZW5kQ2hp
bGQoYmF6KTsKLQotICAgIHZhciBxdXggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICBiYXIuYXBwZW5kQ2hpbGQocXV4KTsKLQotICAgIHZhciBpcCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIGJhclNoYWRvdy5hcHBlbmRDaGlsZChpcCk7Ci0KLSAg
ICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0TGVmdDsKLSAgICBmb28uYXBwZW5kQ2hp
bGQocXV4KTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLXdpbmRvdy5vbmxvYWQg
PSB0ZXN0OwotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotVGhpcyB0ZXN0IGVuc3VyZXMgdGhh
dCB0aGUgc2hhZG93IGVsZW1lbnQgaXMgYXZhaWxhYmxlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotUEFTUyBzaGFkb3cubm9kZU5hbWUgaXMgJ1NIQURPVycKLVBBU1MgMCA8PSBz
aGFkb3cuY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdIVE1MU2hhZG93RWxlbWVudCcp
IGlzIHRydWUKLVBBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1
Y3RvcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJp
bmctbXVsdGlwbGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctbXVsdGlwbGUtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWVsZW1lbnQtcmVuZGVyaW5nLW11bHRpcGxlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwzMiArMCwwIEBACi1yZW5kZXJpbmdEb3VibGVTaGFkb3dSb290Ci1QQVNTCi1yZW5kZXJp
bmdEb3VibGVTaGFkb3dSb290V2l0aE9uZVNoYWRvd0VsZW1lbnQKLVBBU1MKLXJlbmRlcmluZ1Ry
aXBsZVNoYWRvd1Jvb3QKLVBBU1MKLXJlbmRlcmluZ1R3b1NoYWRvd1Jvb3RzCi1QQVNTCi10ZXN0
V2l0aERvdWJsZVNoYWRvd1Jvb3RXaXRoQ29udGVudDEKLVBBU1MKLXRlc3RXaXRoRG91YmxlU2hh
ZG93Um9vdFdpdGhDb250ZW50MgotUEFTUwotcmVuZGVyaW5nRG91YmxlU2hhZG93Um9vdER5bmFt
aWNhbGx5QWRkZWQxCi1QQVNTCi1yZW5kZXJpbmdEb3VibGVTaGFkb3dSb290RHluYW1pY2FsbHlB
ZGRlZDIKLVBBU1MKLXJlbmRlcmluZ0RvdWJsZVNoYWRvd1Jvb3REeW5hbWljYWxseUFkZGVkMwot
UEFTUwotcmVuZGVyaW5nRG91YmxlU2hhZG93Um9vdER5bmFtaWNhbGx5UmVtb3ZlZDEKLVBBU1MK
LXJlbmRlcmluZ0RvdWJsZVNoYWRvd1Jvb3REeW5hbWljYWxseVJlbW92ZWQyCi1QQVNTCi1yZW5k
ZXJpbmdMaWdodENoaWxkcmVuRHluYW1pY2FsbHlBZGRlZAotUEFTUwotcmVuZGVyaW5nT2xkZXJT
aGFkb3dSb290Q29udGVudER5bmFtaWNhbGx5QWRkZWQKLVBBU1MKLXJlbmRlcmluZ0xpZ2h0Q2hp
bGRyZW5EeW5hbWljYWxseVJlbW92ZWQKLVBBU1MKLXJlbmRlcmluZ09sZGVyU2hhZG93Um9vdENv
bnRlbnREeW5hbWljYWxseVJlbW92ZWQKLVBBU1MKLVRFU1QgQ09NUExFVEVECi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctbXVsdGlw
bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWVsZW1lbnQtcmVuZGVyaW5nLW11bHRpcGxlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctbXVsdGlw
bGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0MzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJl
cyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCi0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjog
cmVsYXRpdmU7Ci19Ci0KLS5zcGFuIHsKLSAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7Ci0gICAg
bWFyZ2luOiAycHg7Ci0gICAgYm9yZGVyOiBzb2xpZDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3NoYWRvdy10ZXN0LWRyaXZlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotdmFyIHRlc3RGdW5jcyA9IFtdOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5kZXJp
bmdEb3VibGVTaGFkb3dSb290KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFu
PkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bh
bj5BRlRFUiAxPC9zcGFuPjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciBy
b290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdCRUZPUkUgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2hhZG93JykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0FGVEVSIDEnKSk7Ci0KLSAgICB2YXIgc3IyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDInKSk7
Ci0gICAgc3IyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsK
LSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAyJykpOwotCi0g
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGls
ZChyb290KTsKLSAgICBjYWxsSWZEb25lKCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rp
b24gcmVuZGVyaW5nRG91YmxlU2hhZG93Um9vdFdpdGhPbmVTaGFkb3dFbGVtZW50KGNhbGxJZkRv
bmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlu
bmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9S
RSAxPC9zcGFuPjxzcGFuPkFGVEVSIDE8L3NwYW4+PHNwYW4+QUZURVIgMjwvc3Bhbj48L2Rpdj4i
OwotCi0gICAgLy8gTUlEIHdvbid0IGJlIHJlbmRlcmVkLgotICAgIHZhciByb290ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUg
MScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAxJykp
OwotCi0gICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNy
Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFw
cGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0g
ICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmlu
Z1RyaXBsZVNoYWRvd1Jvb3QoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+
QkVGT1JFIDM8L3NwYW4+PHNwYW4+QkVGT1JFIDI8L3NwYW4+PHNwYW4+QkVGT1JFIDE8L3NwYW4+
IiArCi0gICAgICAgICI8c3Bhbj5NSUQ8L3NwYW4+IiArCi0gICAgICAgICI8c3Bhbj5BRlRFUiAx
PC9zcGFuPjxzcGFuPkFGVEVSIDI8L3NwYW4+PHNwYW4+QUZURVIgMzwvc3Bhbj48L2Rpdj4iOwot
Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNyMSA9
IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAxJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdC
RUZPUkUgMicpKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2hhZG93JykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVS
IDInKSk7Ci0KLSAgICB2YXIgc3IzID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0g
ICAgc3IzLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDMnKSk7Ci0gICAg
c3IzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBz
cjMuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAzJykpOwotCi0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290
KTsKLSAgICBjYWxsSWZEb25lKCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gcmVu
ZGVyaW5nVHdvU2hhZG93Um9vdHMoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNw
YW4+QkVGT1JFIDI8L3NwYW4+IiArCi0gICAgICAgICAgICAiPHNwYW4+QkVGT1JFIDE8L3NwYW4+
PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVSIDE8L3NwYW4+IiArCi0gICAgICAgICAgICAiPHNw
YW4+RkFMTEJBQ0sgMi0yPC9zcGFuPiIgKwotICAgICAgICAiPHNwYW4+QUZURVIgMjwvc3Bhbj48
L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAg
dmFyIHNyMSA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRD
aGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAxJykpOwotICAgIHNyMS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAgIHZhciBzcjIgPSByb290Lndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgc2hhZG93MjEgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0ZBTExCQUNLIDItMScpKTsKLSAgICB2YXIgc2hhZG93MjIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cyMi5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoJ0ZBTExCQUNLIDItMicpKTsKLQotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChzaGFkb3cy
MSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKHNoYWRvdzIyKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAyJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLSAgICBjYWxsSWZE
b25lKCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gdGVzdFdpdGhEb3VibGVTaGFk
b3dSb290V2l0aENvbnRlbnQxKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFu
PkJFRk9SRSAyPC9zcGFuPjxzcGFuPk1JRCAyPC9zcGFuPiIgKwotICAgICAgICAiPHNwYW4+QkVG
T1JFIDE8L3NwYW4+PHNwYW4+TUlEIDE8L3NwYW4+PHNwYW4+TUlEIDM8L3NwYW4+PHNwYW4+QUZU
RVIgMTwvc3Bhbj4iICsKLSAgICAgICAgIjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQot
ICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5h
cHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCAzJywgJ3NyMycpKTsKLSAgICByb290
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEIDEnLCAnc3IxJykpOwotICAgIHJv
b3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQgMicsICdzcjInKSk7Ci0KLSAg
ICB2YXIgc2hhZG93MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIHNo
YWRvdzEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSEFET1cgRkFMTEJBQ0sgMScp
KTsKLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3Ix
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7Ci0gICAgdmFyIGNv
bnRlbnQxID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5zcjEnLCAnQ09OVEVOVCBGQUxMQkFD
SyAxJyk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNvbnRlbnQxKTsKLSAgICBzcjEuYXBwZW5kQ2hp
bGQoc2hhZG93MSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZU
RVIgMScpKTsKLQotICAgIHZhciBzaGFkb3cyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hh
ZG93Jyk7Ci0gICAgc2hhZG93Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NIQURP
VyBGQUxMQkFDSyAyJykpOwotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicp
KTsKLSAgICB2YXIgY29udGVudDsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY29udGVudCA9IGNyZWF0
ZUNvbnRlbnRXaXRoU2VsZWN0KCcuc3IyJywgJ0NPTlRFTlQgRkFMTEJBQ0sgMicpKTsKLSAgICBj
b250ZW50LnRpdGxlID0gImRlYnVnc3RvcCI7Ci0gICAgc3IyLmFwcGVuZENoaWxkKHNoYWRvdzIp
OwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDInKSk7Ci0K
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENo
aWxkKHJvb3QpOwotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5j
dGlvbiB0ZXN0V2l0aERvdWJsZVNoYWRvd1Jvb3RXaXRoQ29udGVudDIoY2FsbElmRG9uZSkgewot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1M
ID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFIDI8L3NwYW4+PHNwYW4+TUlEIDI8L3NwYW4+
PHNwYW4+TUlEIDM8L3NwYW4+PHNwYW4+TUlEIDE8L3NwYW4+IiArCi0gICAgICAgICI8c3Bhbj5C
RUZPUkUgMTwvc3Bhbj48c3Bhbj5DT05URU5UIEZBTExCQUNLIDE8L3NwYW4+PHNwYW4+U0hBRE9X
IEZBTExCQUNLIDE8L3NwYW4+PHNwYW4+QUZURVIgMTwvc3Bhbj4iICsKLSAgICAgICAgIjxzcGFu
PkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J01JRCAzJywgJ3NyMycpKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgnTUlEIDEnLCAnc3IxJykpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdNSUQgMicsICdzcjInKSk7Ci0KLSAgICB2YXIgc2hhZG93MSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgIHNoYWRvdzEuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCdTSEFET1cgRkFMTEJBQ0sgMScpKTsKLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgnQkVGT1JFIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2Vs
ZWN0KCcuc3IxJywgJ0NPTlRFTlQgRkFMTEJBQ0sgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQo
c2hhZG93MSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIg
MScpKTsKLQotICAgIHZhciBzaGFkb3cyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93
Jyk7Ci0gICAgc2hhZG93Mi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NIQURPVyBG
QUxMQkFDSyAyJykpOwotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3Qo
KTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicpKTsK
LSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5zcjInLCAnQ09O
VEVOVCBGQUxMQkFDSyAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVDb250ZW50V2l0
aFNlbGVjdCgnc3BhbicsICdDT05URU5UIEZBTExCQUNLIDMnKSk7Ci0gICAgc3IyLmFwcGVuZENo
aWxkKHNoYWRvdzIpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FG
VEVSIDInKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpLmFwcGVuZENoaWxkKHJvb3QpOwotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVu
Y3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdEb3VibGVTaGFkb3dSb290RHluYW1pY2FsbHlBZGRl
ZDEoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29u
dGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFIDI8L3NwYW4+
PHNwYW4+QkVGT1JFIDE8L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVSIDE8L3NwYW4+
PHNwYW4+QUZURVIgMjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAxJykp
OwotICAgIHNyMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7
Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hp
bGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjYWxsSWZEb25lKSB7IHJl
dHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotICAgICAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdC
RUZPUkUgMicpKTsKLSAgICAgICAgc3IyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NoYWRvdycpKTsKLSAgICAgICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgnQUZURVIgMicpKTsKLQotICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgfTt9KShyb290LCBj
YWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1
c2goZnVuY3Rpb24gcmVuZGVyaW5nRG91YmxlU2hhZG93Um9vdER5bmFtaWNhbGx5QWRkZWQyKGNh
bGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5l
cicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFu
PkJFRk9SRSAxPC9zcGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5BRlRFUiAxPC9zcGFuPjxzcGFu
PkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J01JRCcpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMScpKTsKLSAg
ICBzcjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93JykpOwotICAg
IHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDEnKSk7Ci0KLSAgICB2
YXIgc3IyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IyLmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDInKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIg
ZiA9IChmdW5jdGlvbihzcjIsIGNhbGxJZkRvbmUpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAg
ICAgICB2YXIgc2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAg
ICAgIHNyMi5pbnNlcnRCZWZvcmUoc2hhZG93LCBzcjIubGFzdENoaWxkKTsKLQotICAgICAgICBj
YWxsSWZEb25lKCkKLSAgICB9O30pKHNyMiwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0
KGYsIDApOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ0RvdWJsZVNo
YWRvd1Jvb3REeW5hbWljYWxseUFkZGVkMyhjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRp
dj48c3Bhbj5CRUZPUkUgMjwvc3Bhbj48c3Bhbj5CRUZPUkUgMTwvc3Bhbj48c3Bhbj5NSUQ8L3Nw
YW4+PHNwYW4+QUZURVIgMTwvc3Bhbj48c3Bhbj5BRlRFUiAyPC9zcGFuPjwvZGl2PiI7Ci0KLSAg
ICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9v
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAgIHZhciBzcjIgPSByb290LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZP
UkUgMicpKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2hh
ZG93JykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSIDIn
KSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFw
cGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24oc3IxLCBjYWxsSWZEb25l
KSB7IHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAgICAgICBzcjEuaW5zZXJ0QmVmb3JlKHNoYWRvdywg
c3IxLmxhc3RDaGlsZCk7Ci0KLSAgICAgICAgY2FsbElmRG9uZSgpCi0gICAgfTt9KShzcjEsIGNh
bGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVz
aChmdW5jdGlvbiByZW5kZXJpbmdEb3VibGVTaGFkb3dSb290RHluYW1pY2FsbHlSZW1vdmVkMShj
YWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWlu
ZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkUgMjwvc3Bhbj48c3Bh
bj5BRlRFUiAyPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCdNSUQnKSk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7Ci0g
ICAgc3IxLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAg
ICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAxJykpOwotCi0gICAg
dmFyIHNyMiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMi5hcHBlbmRD
aGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIg
ZiA9IChmdW5jdGlvbihzcjIsIGNhbGxJZkRvbmUpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAg
ICAgICBzcjIucmVtb3ZlQ2hpbGQoc3IyLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmcpOwotICAgICAg
ICBjYWxsSWZEb25lKCk7Ci0gICAgfTt9KShzcjIsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGlt
ZW91dChmLCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdEb3Vi
bGVTaGFkb3dSb290RHluYW1pY2FsbHlSZW1vdmVkMihjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAg
ICAiPGRpdj48c3Bhbj5CRUZPUkUgMjwvc3Bhbj48c3Bhbj5CRUZPUkUgMTwvc3Bhbj48c3Bhbj5B
RlRFUiAxPC9zcGFuPjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBzcjEgPSByb290LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCdCRUZPUkUgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2hhZG93JykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FG
VEVSIDEnKSk7Ci0KLSAgICB2YXIgc3IyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDInKSk7Ci0g
ICAgc3IyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAg
ICBzcjIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAyJykpOwotCi0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChy
b290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHNyMSwgY2FsbElmRG9uZSkgeyByZXR1cm4g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHNyMS5yZW1vdmVDaGlsZChzcjEuZmlyc3RDaGlsZC5uZXh0
U2libGluZyk7Ci0gICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICB9O30pKHNyMSwgY2FsbElmRG9u
ZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0
aW9uIHJlbmRlcmluZ0xpZ2h0Q2hpbGRyZW5EeW5hbWljYWxseUFkZGVkKGNhbGxJZkRvbmUpIHsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRN
TCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9z
cGFuPjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5BRlRFUiAxPC9zcGFuPjxzcGFuPkFGVEVSIDI8L3Nw
YW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Ci0KLSAgICB2YXIgc3IxID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAg
c3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFIDEnKSk7Ci0gICAgc3Ix
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsKLSAgICBzcjEu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAxJykpOwotCi0gICAgdmFyIHNy
MiA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0
ZVNwYW5XaXRoVGV4dCgnQUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChm
dW5jdGlvbihyb290LCBjYWxsSWZEb25lKSB7IHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAg
cm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLSAgICAgICAgY2Fs
bElmRG9uZSgpOwotICAgIH07fSkocm9vdCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0
KGYsIDApOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ09sZGVyU2hh
ZG93Um9vdENvbnRlbnREeW5hbWljYWxseUFkZGVkKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAg
ICI8ZGl2PjxzcGFuPkJFRk9SRSAyPC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9zcGFuPjxzcGFuPk1J
RDwvc3Bhbj48c3Bhbj5BRlRFUiAxPC9zcGFuPjxzcGFuPkFGVEVSIDI8L3NwYW4+PC9kaXY+IjsK
LQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9v
dC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBzcjEg
PSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3Jl
YXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2hhZG93JykpOwotCi0gICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgn
QUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFp
bmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihzcjEsIGNh
bGxJZkRvbmUpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBzcjEuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUiAxJykpOwotICAgICAgICBjYWxsSWZEb25lKCk7Ci0g
ICAgfTt9KShzcjEsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0pOwot
Ci10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdMaWdodENoaWxkcmVuRHluYW1pY2Fs
bHlSZW1vdmVkKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRSAy
PC9zcGFuPjxzcGFuPkJFRk9SRSAxPC9zcGFuPjxzcGFuPkFGVEVSIDE8L3NwYW4+PHNwYW4+QUZU
RVIgMjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlE
JykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAg
IHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9SRSAxJykpOwotICAgIHNy
MS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3Ix
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVIgMScpKTsKLQotICAgIHZhciBz
cjIgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUgMicpKTsKLSAgICBzcjIuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93JykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoJ0FGVEVSIDInKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAo
ZnVuY3Rpb24ocm9vdCwgY2FsbElmRG9uZSkgeyByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAg
IHJvb3QucmVtb3ZlQ2hpbGQocm9vdC5maXJzdENoaWxkKTsKLSAgICAgICAgY2FsbElmRG9uZSgp
OwotICAgIH07fSkocm9vdCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwot
fSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ09sZGVyU2hhZG93Um9vdENv
bnRlbnREeW5hbWljYWxseVJlbW92ZWQoY2FsbElmRG9uZSkgewotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KLSAgICAgICAgIjxkaXY+
PHNwYW4+QkVGT1JFIDI8L3NwYW4+PHNwYW4+QkVGT1JFIDE8L3NwYW4+PHNwYW4+TUlEPC9zcGFu
PjxzcGFuPkFGVEVSIDE8L3NwYW4+PHNwYW4+QUZURVIgMjwvc3Bhbj48L2Rpdj4iOwotCi0gICAg
dmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVu
ZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNyMSA9IHJvb3Qu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMS5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0JFRk9SRSAxJykpOwotICAgIHNyMS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnQUZURVIgMScpKTsKLSAgICBzcjEuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCdTSE9VTEQgTk9UIEJFIFJFTkRFUkVEJykpOwotCi0gICAgdmFyIHNyMiA9IHJvb3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNyMi5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ0JFRk9SRSAyJykpOwotICAgIHNyMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgn
QUZURVIgMicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFp
bmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihzcjEsIGNh
bGxJZkRvbmUpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBzcjEucmVtb3ZlQ2hpbGQo
c3IxLmxhc3RDaGlsZCk7Ci0gICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICB9O30pKHNyMSwgY2Fs
bElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfSk7Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJkb1Rlc3QodGVzdEZ1bmNzKSI+Ci0KLTxkaXYgaWQ9ImFjdHVh
bC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgotPGRpdiBpZD0iZXhwZWN0LWNv
bnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3By
ZT4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1lbGVtZW50LXJlbmRlcmluZy1zaW5nbGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmct
c2luZ2xlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1lbGVtZW50LXJlbmRlcmluZy1zaW5nbGUtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAKLXJlbmRlcmluZ1NpbmdsZVNoYWRvd1Jv
b3QKLVBBU1MKLXJlbmRlcmluZ05vdEZhbGxiYWNrZWQKLVBBU1MKLXJlbmRlcmluZ0ZhbGxiYWNr
ZWQKLVBBU1MKLXJlbmRlcmluZ01peGVkT2ZGYWxsYmFja0FuZE5vbkZhbGxiYWNrCi1QQVNTCi1y
ZW5kZXJpbmdTaGFkb3dSb290QmVmb3JlQ29udGVudAotUEFTUwotcmVuZGVyaW5nU2hhZG93Um9v
dEFmdGVyQ29udGVudAotUEFTUwotcmVuZGVyaW5nU2hhZG93RWxlbWVudER5bmFtaWNhbGx5QWRk
ZWQKLVBBU1MKLXJlbmRlcmluZ1NoYWRvd0VsZW1lbnREeW5hbWljYWxseVJlbW92ZWQKLVBBU1MK
LXJlbmRlcmluZ0xpZ2h0Q2hpbGRyZW5EeW5hbWljYWxseUFkZGVkCi1QQVNTCi1yZW5kZXJpbmdM
aWdodENoaWxkcmVuRHluYW1pY2FsbHlSZW1vdmVkCi1QQVNTCi1URVNUIENPTVBMRVRFRAotCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWVsZW1lbnQtcmVuZGVyaW5n
LXNpbmdsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZWxlbWVudC1yZW5kZXJpbmctc2luZ2xlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVudC1yZW5kZXJpbmctc2lu
Z2xlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS8qIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVuc3Vy
ZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLwotLmNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246
IHJlbGF0aXZlOwotfQotCi0uc3BhbiB7Ci0gICAgZGlzcGxheTogYm94ZWQtaW5saW5lOwotICAg
IG1hcmdpbjogMnB4OwotICAgIGJvcmRlcjogc29saWQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9zaGFkb3ctdGVzdC1kcml2ZXIuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLXZhciB0ZXN0RnVuY3MgPSBbXTsKLQotdGVzdEZ1bmNzLnB1c2goZnVuY3Rpb24gcmVuZGVy
aW5nU2luZ2xlU2hhZG93Um9vdChjYWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bh
bj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7
Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJv
b3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0KLSAgICB2YXIgc3Ig
PSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoJ0JFRk9SRScpKTsKLSAgICBzci5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCdBRlRFUicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwt
Y29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0K
LXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ05vdEZhbGxiYWNrZWQoY2FsbElmRG9u
ZSkgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5u
ZXJIVE1MID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPk1JRDwvc3Bh
bj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRo
VGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NoYWRvdycpOwotICAgIHNoYWRvdy5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0ZB
TExCQUNLJykpOwotICAgIHZhciBzciA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
ICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFJykpOwotICAgIHNy
LmFwcGVuZENoaWxkKHNoYWRvdyk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhU
ZXh0KCdBRlRFUicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29u
dGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgpOwotfSk7Ci0KLXRl
c3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ0ZhbGxiYWNrZWQoY2FsbElmRG9uZSkgewot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1M
ID0KLSAgICAgICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkZBTExCQUNLPC9zcGFu
PjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiI7Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3NoYWRvdycpOwotICAgIHNoYWRvdy5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ0ZBTExCQUNLJykpOwotICAgIHZhciBzciA9IHJvb3Qud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQkVGT1JFJykpOwot
ICAgIHNyLmFwcGVuZENoaWxkKHNoYWRvdyk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCdBRlRFUicpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2FsbElmRG9uZSgpOwotfSk7
Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ01peGVkT2ZGYWxsYmFja0FuZE5v
bkZhbGxiYWNrKGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhw
ZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwv
c3Bhbj48c3Bhbj5NSUQ8L3NwYW4+PHNwYW4+RkFMTEJBQ0sgMjwvc3Bhbj48c3Bhbj5BRlRFUjwv
c3Bhbj48L2Rpdj4iOwotCi0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwot
Ci0gICAgdmFyIHNoYWRvdzEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAg
ICBzaGFkb3cxLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnRkFMTEJBQ0sgMScpKTsK
LSAgICB2YXIgc2hhZG93MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpOwotICAg
IHNoYWRvdzIuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdGQUxMQkFDSyAyJykpOwot
Ci0gICAgdmFyIHNyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hp
bGQoc2hhZG93MSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoc2hhZG93Mik7Ci0gICAgc3IuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUicpKTsKLQotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0gICAgY2Fs
bElmRG9uZSgpOwotfSk7Ci0KLXRlc3RGdW5jcy5wdXNoKGZ1bmN0aW9uIHJlbmRlcmluZ1NoYWRv
d1Jvb3RCZWZvcmVDb250ZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAgICAgICI8ZGl2PjxzcGFu
PkJFRk9SRTwvc3Bhbj48c3Bhbj5TSEFET1cgRkFMTEJBQ0s8L3NwYW4+PHNwYW4+TSAxPC9zcGFu
PjxzcGFuPk1JRDwvc3Bhbj48c3Bhbj5NIDI8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+
IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
cm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcpKTsKLQotICAgIHZhciBz
aGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsKLSAgICBzaGFkb3cuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSEFET1cgRkFMTEJBQ0snKSk7Ci0gICAgdmFy
IHNyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoc2hhZG93
KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ00gMScpKTsKLSAgICBz
ci5hcHBlbmRDaGlsZChjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdDT05URU5UIEZB
TExCQUNLJykpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnTSAyJykp
OwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnQUZURVInKSk7Ci0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxk
KHJvb3QpOwotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlv
biByZW5kZXJpbmdTaGFkb3dSb290QWZ0ZXJDb250ZW50KGNhbGxJZkRvbmUpIHsKLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0gICAg
ICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5NSUQ8L3NwYW4+PHNwYW4+TSAxPC9z
cGFuPjxzcGFuPlNIQURPVyBGQUxMQkFDSzwvc3Bhbj48c3Bhbj5NIDI8L3NwYW4+PHNwYW4+QUZU
RVI8L3NwYW4+PC9kaXY+IjsKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ01JRCcp
KTsKLQotICAgIHZhciBzaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKTsK
LSAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSEFET1cgRkFMTEJB
Q0snKSk7Ci0gICAgdmFyIHNyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAg
c3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJ3NwYW4nLCAnQ09OVEVOVCBGQUxMQkFD
SycpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ00gMScpKTsKLSAg
ICBzci5hcHBlbmRDaGlsZChzaGFkb3cpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgnTSAyJykpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgn
QUZURVInKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpLmFwcGVuZENoaWxkKHJvb3QpOwotICAgIGNhbGxJZkRvbmUoKTsKLX0pOwotCi10ZXN0RnVu
Y3MucHVzaChmdW5jdGlvbiByZW5kZXJpbmdTaGFkb3dFbGVtZW50RHluYW1pY2FsbHlBZGRlZChj
YWxsSWZEb25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWlu
ZXInKS5pbm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+
TUlEPC9zcGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiIKLQotICAgIHZhciByb290ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoJ0FGVEVSJykpOwotCi0gICAgdmFyIHNyID0gcm9vdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZP
UkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdNSUQnKSk7Ci0K
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENo
aWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24oY2FsbElmRG9uZSwgcm9vdCwgc3Ip
IHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgc2hhZG93ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgICAgIHNyLmFwcGVuZENoaWxkKHNoYWRvdyk7Ci0g
ICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICB9fSkoY2FsbElmRG9uZSwgcm9vdCwgc3IpOwotCi0g
ICAgc2V0VGltZW91dChmLCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVzaChmdW5jdGlvbiByZW5k
ZXJpbmdTaGFkb3dFbGVtZW50RHluYW1pY2FsbHlSZW1vdmVkKGNhbGxJZkRvbmUpIHsKLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9Ci0g
ICAgICAgICI8ZGl2PjxzcGFuPkJFRk9SRTwvc3Bhbj48c3Bhbj5BRlRFUjwvc3Bhbj48L2Rpdj4i
Ci0KLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJv
b3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTSE9VTEQgTk9UIEJFIFJFTkRFUkVE
JykpOwotCi0gICAgdmFyIHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycp
OwotCi0gICAgdmFyIHNyID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc3Iu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdCRUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5k
Q2hpbGQoc2hhZG93KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FG
VEVSJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXIn
KS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKGNhbGxJZkRvbmUs
IHNyLCBzaGFkb3cpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICBzci5yZW1vdmVDaGls
ZChzaGFkb3cpOwotICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgfX0pKGNhbGxJZkRvbmUsIHNy
LCBzaGFkb3cpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0pOwotCi10ZXN0RnVuY3MucHVz
aChmdW5jdGlvbiByZW5kZXJpbmdMaWdodENoaWxkcmVuRHluYW1pY2FsbHlBZGRlZChjYWxsSWZE
b25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5p
bm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9z
cGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiIKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICB2YXIgc3IgPSByb290LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0JFRk9S
RScpKTsKLSAgICBzci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cn
KSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdBRlRFUicpKTsKLQot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hp
bGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihjYWxsSWZEb25lLCByb290KSB7IHJl
dHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0
aFRleHQoJ01JRCcpKTsKLSAgICAgICAgY2FsbElmRG9uZSgpOwotICAgIH19KShjYWxsSWZEb25l
LCByb290KTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19KTsKLQotdGVzdEZ1bmNzLnB1c2go
ZnVuY3Rpb24gcmVuZGVyaW5nTGlnaHRDaGlsZHJlbkR5bmFtaWNhbGx5UmVtb3ZlZChjYWxsSWZE
b25lKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5p
bm5lckhUTUwgPQotICAgICAgICAiPGRpdj48c3Bhbj5CRUZPUkU8L3NwYW4+PHNwYW4+TUlEPC9z
cGFuPjxzcGFuPkFGVEVSPC9zcGFuPjwvZGl2PiIKLQotICAgIHZhciByb290ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0
aFRleHQoJ1NIT1VMRCBOT1QgQkUgUkVOREVSRUQnKSk7Ci0KLSAgICB2YXIgc2hhZG93ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc2hhZG93Jyk7Ci0gICAgc2hhZG93LmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnTUlEJykpOwotCi0gICAgdmFyIHNyID0gcm9vdC53ZWJraXRDcmVh
dGVTaGFkb3dSb290KCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdC
RUZPUkUnKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoc2hhZG93KTsKLSAgICBzci5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSJykpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLQotICAgIHZhciBm
ID0gKGZ1bmN0aW9uKGNhbGxJZkRvbmUsIHJvb3QpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAg
ICAgICByb290LnJlbW92ZUNoaWxkKHJvb3QuZmlyc3RDaGlsZCk7Ci0gICAgICAgIGNhbGxJZkRv
bmUoKTsKLSAgICB9fSkoY2FsbElmRG9uZSwgcm9vdCk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDAp
OwotfSk7Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJkb1Rlc3QodGVzdEZ1
bmNzKSI+Ci0KLTxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwv
ZGl2PgotPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1lbGVtZW50Lmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZWxlbWVu
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2PgotICA8c2hhZG93IGlkPSJz
aGFkb3ciPjwvc2hhZG93PgotPC9kaXY+Ci08c2NyaXB0PgotIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IHRoZSBzaGFkb3cgZWxlbWVudCBpcyBhdmFpbGFibGUuIikKLXZhciBz
aGFkb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hhZG93Iik7Ci1zaG91bGRCZSgic2hh
ZG93Lm5vZGVOYW1lIiwgIidTSEFET1cnIik7Ci1zaG91bGRCZVRydWUoIjAgPD0gc2hhZG93LmNv
bnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignSFRNTFNoYWRvd0VsZW1lbnQnKSIpOwotc2hv
dWxkQmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3IiKTsK
LQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWhpZXJhcmNoeS1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctaGllcmFyY2h5LWV4
Y2VwdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctaGllcmFyY2h5LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotQXBwZW5kaW5nIGFuIGFuY2VzdG9yIHRvIGEg
c2hhZG93IHRyZWUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dEaXYuYXBwZW5kQ2hpbGQoY29udGFpbmVyKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IEhpZXJhcmNoeVJlcXVlc3RFcnJvcjogRE9NIEV4Y2VwdGlvbiAz
LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctaGllcmFyY2h5LWV4Y2VwdGlv
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
aGllcmFyY2h5LWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWhpZXJhcmNoeS1leGNlcHRpb24uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGRpdiBpZD1jb250
YWluZXI+Ci0gIDxkaXY+Ci0gICAgICA8c3Bhbj48L3NwYW4+Ci0gIDwvZGl2PgotPC9kaXY+Ci08
c2NyaXB0PgotZGVzY3JpcHRpb24oJ0FwcGVuZGluZyBhbiBhbmNlc3RvciB0byBhIHNoYWRvdyB0
cmVlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24nKTsKLXZhciBjb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7Ci12YXIgc3BhbiA9IGNvbnRhaW5lci5xdWVy
eVNlbGVjdG9yKCdzcGFuJyk7Ci12YXIgc2hhZG93ID0gc3Bhbi53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci12YXIgc2hhZG93RGl2ID0gc2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpKTsKLXNob3VsZFRocm93KCdzaGFkb3dEaXYuYXBwZW5kQ2hpbGQoY29u
dGFpbmVyKScpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8taWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctbmVzdGVkLXBzZXVkby1pZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTIgKzAsMCBAQAotTmVzdGVkIHBzZXVkbyBpZCBzaG91bGQgYmUgbWF0Y2hhYmxlCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHR1
cGxlLnNoYWRvd0NoaWxkKS5jb2xvciBpcyAncmdiKDI1NSwgMCwgMCknCi1QQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHNoYWRvd1R1cGxlLnNoYWRvd0NoaWxkKS5jb2xvciBpcyAncmdiKDAs
IDAsIDI1NSknCi1QQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNoYWRvd1R1cGxlLnNoYWRv
d0NoaWxkKS5iYWNrZ3JvdW5kQ29sb3IgaXMgJ3JnYigwLCAxMjgsIDApJwotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LW5lc3RlZC1wc2V1ZG8taWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLQotcDo6eC1zaGFk
b3ctY2hpbGQgewotICBjb2xvcjogcmVkOwotfQotCi1hOjp4LW5lc3RlZC1zaGFkb3ctY2hpbGQg
ewotICBjb2xvcjogYmx1ZTsKLX0KLQotcDo6eC1zaGFkb3ctY2hpbGQ6OngtbmVzdGVkLXNoYWRv
dy1jaGlsZCB7Ci0gIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwotfQotCi08L3N0eWxlPgotPC9o
ZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHAgaWQ9Imhvc3QiPjwv
ZGl2PgotCi08c2NyaXB0PgotZnVuY3Rpb24gYnVpbGRTaGFkb3dXaXRoT25lQ2hpbGQoaG9zdCwg
Y2hpbGRUYWdOYW1lLCBjaGlsZFBzZXVkb0lkKQotewotICAgIHZhciBzaGFkb3cgPSBob3N0Lndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgc2hhZG93Q2hpbGQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KGNoaWxkVGFnTmFtZSk7Ci0gICAgc2hhZG93LmFwcGVuZENoaWxkKHNoYWRv
d0NoaWxkKTsKLSAgICBpbnRlcm5hbHMuc2V0U2hhZG93UHNldWRvSWQoc2hhZG93Q2hpbGQsIGNo
aWxkUHNldWRvSWQpOwotICAgIHJldHVybiB7IGhvc3Q6IGhvc3QsIHNoYWRvdzogc2hhZG93LCBz
aGFkb3dDaGlsZDogc2hhZG93Q2hpbGQgfTsKLX0KLQotZGVzY3JpcHRpb24oIk5lc3RlZCBwc2V1
ZG8gaWQgc2hvdWxkIGJlIG1hdGNoYWJsZSIpOwotCi1pZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgZmFpbCgiWW91IG5lZWQgd2luZG93LmludGVybmFscyB0byBydW4gdGhpcyB0ZXN0Iik7Ci0g
ICAgCi12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci12YXIgdHVw
bGUgPSBidWlsZFNoYWRvd1dpdGhPbmVDaGlsZChob3N0LCAiYSIsICJ4LXNoYWRvdy1jaGlsZCIp
Owotc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHR1cGxlLnNoYWRvd0NoaWxkKS5j
b2xvciIsICIncmdiKDI1NSwgMCwgMCknIik7Ci12YXIgc2hhZG93VHVwbGUgPSBidWlsZFNoYWRv
d1dpdGhPbmVDaGlsZCh0dXBsZS5zaGFkb3dDaGlsZCwgImIiLCAieC1uZXN0ZWQtc2hhZG93LWNo
aWxkIik7Ci1zaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93VHVwbGUuc2hh
ZG93Q2hpbGQpLmNvbG9yIiwgIidyZ2IoMCwgMCwgMjU1KSciKTsKLXNob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShzaGFkb3dUdXBsZS5zaGFkb3dDaGlsZCkuYmFja2dyb3VuZENvbG9y
IiwgIidyZ2IoMCwgMTI4LCAwKSciKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctb24taW1hZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LW9uLWltYWdlLWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
b24taW1hZ2UtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0ud2l0aC1pbWFnZSB7Ci0g
ICAgY29udGVudDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBQWdBQUFBSUNBSUFBQUJMYlNuY0FBQUFGa2xFUVZRSUhXUFVGUHpQZ0Ewd1lSTUVpUTFP
Q1FENFNBRkpaYUVrS1FBQUFBQkpSVTVFcmtKZ2dnPT0pOwotfQotPC9zdHlsZT4KLTwvaGVhZD4K
LTxib2R5PgotPGRpdiBjbGFzcz0id2l0aC1pbWFnZSI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3aXRo
LWltYWdlIj48L2Rpdj4KLTxkaXYgY2xhc3M9IndpdGgtaW1hZ2UiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1vbi1pbWFn
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
b24taW1hZ2UuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1vbi1pbWFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFyIGltYWdlQ29udGVudFN0
eWxlID0gImNvbnRlbnQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFB
TlNVaEVVZ0FBQUFnQUFBQUlDQUlBQUFCTGJTbmNBQUFBRmtsRVFWUUlIV1BVRlB6UGdBMHdZUk1F
aVExT0NRRDRTQUZKWmFFa0tRQUFBQUJKUlU1RXJrSmdnZz09KTsiCi0KLWZ1bmN0aW9uIGNyZWF0
ZUltYWdlRGl2V2l0aFNoYWRvdygpIHsKLSAgdmFyIGltYWdlRGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gIGltYWdlRGl2LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBpbWFnZUNv
bnRlbnRTdHlsZSk7Ci0gIHZhciBzaGFkb3cgPSBpbWFnZURpdi53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7IAotICBzaGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
JykpOwotICByZXR1cm4gaW1hZ2VEaXY7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUltYWdlRGl2V2l0
aENvbnRlbnRTaGFkb3coKSB7Ci0gIHZhciBpbWFnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotICBpbWFnZURpdi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgaW1hZ2VDb250ZW50
U3R5bGUpOwotICBpbWFnZURpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKSk7Ci0gIHZhciBzaGFkb3cgPSBpbWFnZURpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
IAotICBzaGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwot
ICBzaGFkb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29udGVudCcpKTsK
LSAgcmV0dXJuIGltYWdlRGl2OwotfQotCi1mdW5jdGlvbiBjcmVhdGVJbWFnZURpdldpdGhGYWxs
YmFja0NvbnRlbnRTaGFkb3coKSB7Ci0gIHZhciBpbWFnZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOwotICBpbWFnZURpdi5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgaW1hZ2VDb250
ZW50U3R5bGUpOwotICB2YXIgc2hhZG93ID0gaW1hZ2VEaXYud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOyAKLSAgc2hhZG93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
KTsKLSAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50Jyk7Ci0g
IGNvbnRlbnQuaW5uZXJIVE1MID0gIjxkaXY+PC9kaXY+IjsKLSAgc2hhZG93LmFwcGVuZENoaWxk
KGNvbnRlbnQpOwotICByZXR1cm4gaW1hZ2VEaXY7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0g
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZURpdldpdGhTaGFkb3coKSk7
Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVJbWFnZURpdldpdGhDb250ZW50
U2hhZG93KCkpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlSW1hZ2VEaXZX
aXRoRmFsbGJhY2tDb250ZW50U2hhZG93KCkpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1wc2V1ZG8taWQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC1leHBlY3RlZC5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXBzZXVkby1pZC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTwvaGVhZD4KLTxib2R5PgotCi08
cD5UaGlzIHRlc3QgY2hlY2tzIGEgY3VzdG9tIHBzZXVkbyBlbGVtZW50IHNlbGVjdG9yIGlzIHZh
bGlkIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggJ3gtJzwvcD4KLQotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08ZGl2IGlkPSJob3N0MSI+PGRpdiBzdHlsZT0iY29sb3I6cmVkIj5wc2V1ZG8gaXMg
eC1zaGFkb3c6IFRoaXMgc2hvdWxkIGJlIHJlZC48L2Rpdj48L2Rpdj4KLTxkaXYgaWQ9Imhvc3Qy
Ij48ZGl2PnBzZXVkbyBpcyAtdGVzdDogVGhpcyBzaG91bGQgbm90IGJlIHJlZC48L2Rpdj48L2Rp
dj4KLTxkaXYgaWQ9Imhvc3QyIj48ZGl2PnBzZXVkbyBpcyBmb29iYXI6IFRoaXMgc2hvdWxkIG5v
dCBiZSByZWQuPC9kaXY+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1wc2V1ZG8taWQuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1wc2V1ZG8t
aWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1kaXY6Ongtc2hhZG93IHsKLSAgICBjb2xvcjogcmVk
OwotfQotCi1kaXY6Oi10ZXN0IHsKLSAgICBjb2xvcjogcmVkOwotfQotCi1kaXY6OmZvb2JhciB7
Ci0gICAgY29sb3I6IHJlZDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+VGhp
cyB0ZXN0IGNoZWNrcyBhIGN1c3RvbSBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvciBpcyB2YWxpZCBv
bmx5IGlmIGl0IHN0YXJ0cyB3aXRoICd4LSc8L3A+Ci0KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgotPGRpdiBp
ZD0iaG9zdDMiPjwvZGl2PgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLWRpdjEuaW5uZXJIVE1MID0gInBzZXVkbyBpcyB4LXNoYWRvdzogVGhpcyBzaG91
bGQgYmUgcmVkLiI7Ci1kaXYxLndlYmtpdFBzZXVkbyA9ICJ4LXNoYWRvdyI7Ci1zaGFkb3dSb290
MS5hcHBlbmRDaGlsZChkaXYxKTsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLWRpdjIuaW5uZXJIVE1MID0gInBzZXVkbyBpcyAtdGVzdDogVGhpcyBzaG91bGQgbm90IGJl
IHJlZC4iOwotZGl2Mi53ZWJraXRQc2V1ZG8gPSAiLXRlc3QiOwotc2hhZG93Um9vdDIuYXBwZW5k
Q2hpbGQoZGl2Mik7Ci0KLXZhciBzaGFkb3dSb290MyA9IGhvc3QzLndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLXZhciBkaXYzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1kaXYz
LmlubmVySFRNTCA9ICJwc2V1ZG8gaXMgZm9vYmFyOiBUaGlzIHNob3VsZCBub3QgYmUgcmVkLiI7
Ci1kaXYzLndlYmtpdFBzZXVkbyA9ICJmb29iYXIiOwotc2hhZG93Um9vdDMuYXBwZW5kQ2hpbGQo
ZGl2Myk7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZW1vdmVjaGlsZC1hbmQtYmx1ci1ldmVudC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
ZW1vdmVjaGlsZC1hbmQtYmx1ci1ldmVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVtb3ZlY2hpbGQtYW5kLWJs
dXItZXZlbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLUNo
ZWNrIGZvY3VzZWQgc2hhZG93IG5vZGUgZGlzcGF0Y2hzIGJsdXIgZXZlbnQgb24gcmVtb3ZlQ2hp
bGQgb2YgaG9zdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgbG9ncy50
b1N0cmluZygpIGlzICJzdGFydC1yZW1vdmVDaGlsZCxibHVyLGVuZC1yZW1vdmVDaGlsZCIKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlbW92ZWNoaWxkLWFuZC1ibHVyLWV2
ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yZW1vdmVjaGlsZC1hbmQtYmx1ci1ldmVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlbW92ZWNoaWxkLWFuZC1ibHVyLWV2
ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzcGFuIGlkPXRlc3Q+PC9zcGFu
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oJ0NoZWNr
IGZvY3VzZWQgc2hhZG93IG5vZGUgZGlzcGF0Y2hzIGJsdXIgZXZlbnQgb24gcmVtb3ZlQ2hpbGQg
b2YgaG9zdC4nKTsKLXZhciBsb2dzID0gW107Ci12YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0Jyk7Ci12YXIgc2hhZG93ID0gdGVzdC53ZWJraXRDcmVhdGVTaGFkb3dSb290
KCk7Ci12YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwotc2hhZG93
LmFwcGVuZENoaWxkKGlucHV0KTsKLWlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5j
dGlvbiAoKSB7IGxvZ3MucHVzaCgnYmx1cicpOyB9KTsKLWlucHV0LmZvY3VzKCk7Ci1sb2dzLnB1
c2goJ3N0YXJ0LXJlbW92ZUNoaWxkJyk7Ci10ZXN0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGVz
dCk7Ci1sb2dzLnB1c2goJ2VuZC1yZW1vdmVDaGlsZCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdsb2dzLnRvU3RyaW5nKCknLCAnc3RhcnQtcmVtb3ZlQ2hpbGQsYmx1cixlbmQtcmVtb3ZlQ2hp
bGQnKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24yLWV4cGVjdGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24y
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uMi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0KLTxkaXYgaWQ9Imhv
c3QxIj4KLSAgICA8ZGl2IGlkPSJob3N0MyI+Ci0gICAgICAgIDxkaXY+QTwvZGl2PgotICAgICAg
ICA8ZGl2PkI8L2Rpdj4KLSAgICAgICAgPGRpdj5DPC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4K
LQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXBy
b2plY3Rpb24yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yZXByb2plY3Rpb24yLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uMi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9zdDEiPjxk
aXY+QjwvZGl2PjwvZGl2PgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDEuaW5uZXJIVE1MID0gJzxzaGFkb3c+
PC9zaGFkb3c+JzsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QzIj48c2hhZG93
Pjwvc2hhZG93PjwvZGl2Pic7Ci0KLXZhciBob3N0MyA9IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRC
eUlkKCdob3N0MycpOwotdmFyIHNoYWRvd1Jvb3QzID0gaG9zdDMud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotc2hhZG93Um9vdDMuaW5uZXJIVE1MID0gJzxkaXY+QTwvZGl2Pjxjb250ZW50IHNl
bGVjdD0iZGl2Ij48L2NvbnRlbnQ+PGRpdj5DPC9kaXY+JzsKLTwvc2NyaXB0PgotCi08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1j
bGljay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yZXByb2plY3Rpb24tY2xpY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1j
bGljay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi1UaGlzIHRl
c3QgY29uZmlybXMgdGhhdCBjbGlja2luZyBhIHNoYWRvdyByZXByb2plY3RlZCBlbGVtZW50IGRv
ZXMgbm90IGNhdXNlIGEgY3Jhc2guCi0KLVBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWNsaWNrLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24tY2xpY2suaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
ZXByb2plY3Rpb24tY2xpY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci0KLTxwPlRoaXMgdGVzdCBjb25maXJtcyB0aGF0IGNsaWNraW5nIGEgc2hh
ZG93IHJlcHJvamVjdGVkIGVsZW1lbnQgZG9lcyBub3QgY2F1c2UgYSBjcmFzaC48L3A+Ci0KLTxk
aXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaG9zdDEiPjxkaXY+SG9zdCBDaGlsZDwv
ZGl2PjwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLXZhciBzaGFkb3dSb290MSA9IGhvc3QxLndl
YmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICc8ZGl2IGlk
PSJ0YXJnZXQiPk9sZGVzdCBTaGFkb3dSb290IENoaWxkPC9kaXY+JzsKLQotdmFyIHNoYWRvd1Jv
b3QyID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJI
VE1MID0gJzxkaXYgaWQ9Imhvc3QzIj48c2hhZG93Pjwvc2hhZG93Pjxjb250ZW50PjwvY29udGVu
dD48ZGl2PllvdW5nZXN0IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj48L2Rpdj4nOwotCi12YXIgaG9z
dDMgPSBzaGFkb3dSb290Mi5nZXRFbGVtZW50QnlJZCgnaG9zdDMnKTsKLXZhciBzaGFkb3dSb290
MyA9IGhvc3QzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QzLmlubmVySFRN
TCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdiI+PC9jb250ZW50Pic7Ci0KLWNvbnRhaW5lci5vZmZz
ZXRMZWZ0OwotCi12YXIgdGFyZ2V0ID0gc2hhZG93Um9vdDEuZ2V0RWxlbWVudEJ5SWQoJ3Rhcmdl
dCcpOwotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHRhcmdldC5vZmZzZXRMZWZ0ICsgMTAsIHRhcmdldC5vZmZzZXRUb3AgKyAyKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0K
LWNvbnRhaW5lci5pbm5lckhUTUwgPSAiUEFTUyI7Ci08L3NjcmlwdD4KLQotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24tZHluYW1p
Yy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcmVwcm9qZWN0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24t
ZHluYW1pYy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8ZGl2IGlkPSJo
b3N0MyI+Ci0gICAgICAgIDxkaXY+VXBkYXRlZCBPbGRlc3QgU2hhZG93Um9vdCBDaGlsZDwvZGl2
PgotICAgICAgICA8ZGl2PkFkZGVkIE9sZGVzdCBTaGFkb3dSb290IENoaWxkPC9kaXY+Ci0gICAg
ICAgIDxkaXY+SG9zdCBDaGlsZDwvZGl2PgotICAgICAgICA8ZGl2PllvdW5nZXN0IFNoYWRvd1Jv
b3QgQ2hpbGQ8L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1keW5hbWljLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2pl
Y3Rpb24tZHluYW1pYy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1keW5hbWljLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08ZGl2IGlkPSJob3N0MSI+PGRp
dj5Ib3N0IENoaWxkPC9kaXY+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLXZhciBzaGFkb3dSb290MSA9
IGhvc3QxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9
ICc8ZGl2IGlkPSJob3N0MiI+T2xkZXN0IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj4nOwotCi12YXIg
c2hhZG93Um9vdDIgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290
Mi5pbm5lckhUTUwgPSAnPGRpdiBpZD0iaG9zdDMiPjxzaGFkb3c+PC9zaGFkb3c+PGNvbnRlbnQ+
PC9jb250ZW50PjxkaXY+WW91bmdlc3QgU2hhZG93Um9vdCBDaGlsZDwvZGl2PjwvZGl2Pic7Ci0K
LXZhciBob3N0MyA9IHNoYWRvd1Jvb3QyLmdldEVsZW1lbnRCeUlkKCdob3N0MycpOwotdmFyIHNo
YWRvd1Jvb3QzID0gaG9zdDMud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDMu
aW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+JzsKLQotc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICBzaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPGRpdiBpZD0i
aG9zdDIiPlVwZGF0ZWQgT2xkZXN0IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj48ZGl2PkFkZGVkIE9s
ZGVzdCBTaGFkb3dSb290IENoaWxkPC9kaXY+JzsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfSwgMCk7Ci08L3NjcmlwdD4KLQot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2pl
Y3Rpb24tZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci0KLTxkaXYgaWQ9Imhvc3QxIj4KLSAgICA8ZGl2IGlkPSJob3N0MyI+Ci0gICAg
ICAgIDxkaXY+T2xkZXN0IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj4KLSAgICAgICAgPGRpdj5Ib3N0
IENoaWxkPC9kaXY+Ci0gICAgICAgIDxkaXY+WW91bmdlc3QgU2hhZG93Um9vdCBDaGlsZDwvZGl2
PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rp
b24tZmFsbGJhY2stZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yZXByb2plY3Rpb24tZmFsbGJhY2stZXhwZWN0ZWQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotCi08ZGl2IGlkPSJob3N0MSI+Ci0gICAgPGRpdiBpZD0iaG9zdDQiPgotICAgICAgIDxk
aXY+T2xkZXN0IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj4KLSAgICAgICA8ZGl2Pkhvc3QgQ2hpbGQ8
L2Rpdj4KLSAgICAgICA8ZGl2PlNoYWRvdyBGYWxsYmFjayBFbGVtZW50ICgxKTwvZGl2PgotICAg
ICAgIDxkaXY+U2hhZG93IEZhbGxiYWNrIEVsZW1lbnQgKDIpPC9kaXY+Ci0gICAgPC9kaXY+Ci08
L2Rpdj4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yZXByb2plY3Rpb24tZmFsbGJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVjdGlvbi1mYWxsYmFjay5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJlcHJvamVj
dGlvbi1mYWxsYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KLQotPGRpdiBpZD0iaG9zdDEiPjxkaXY+SG9zdCBDaGlsZDwvZGl2PjwvZGl2Pgot
Ci08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotc2hhZG93Um9vdDEuaW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QyIj5PbGRlc3QgU2hh
ZG93Um9vdCBDaGlsZDwvZGl2Pic7Ci0KLXZhciBzaGFkb3dSb290MiA9IGhvc3QxLndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QyLmlubmVySFRNTCA9ICc8c2hhZG93Pjwvc2hh
ZG93Pjxjb250ZW50PjwvY29udGVudD48c2hhZG93PjxkaXYgdGl0bGU9ImRlYnVnc3RvcCI+U2hh
ZG93IEZhbGxiYWNrIEVsZW1lbnQgKDEpPC9kaXY+PC9zaGFkb3c+JzsKLQotdmFyIHNoYWRvd1Jv
b3QzID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDMuaW5uZXJI
VE1MID0gJzxkaXYgaWQ9Imhvc3Q0Ij48c2hhZG93Pjwvc2hhZG93PjxzaGFkb3c+PGRpdj5TaGFk
b3cgRmFsbGJhY2sgRWxlbWVudCAoMik8L2Rpdj48L3NoYWRvdz48c3Bhbj5Ob3QgcmVuZGVyZWQg
KDEpPC9zcGFuPjxzaGFkb3c+PHNwYW4+Tm90IHJlbmRlcmVkICgyKTwvc3Bhbj48L3NoYWRvdz48
L2Rpdj4nOwotCi12YXIgaG9zdDQgPSBzaGFkb3dSb290My5nZXRFbGVtZW50QnlJZCgnaG9zdDQn
KTsKLXZhciBzaGFkb3dSb290NCA9IGhvc3Q0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLQot
c2hhZG93Um9vdDQuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iZGl2Ij48L2NvbnRlbnQ+
JzsKLTwvc2NyaXB0PgotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJlcHJvamVjdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcmVwcm9qZWN0aW9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08ZGl2IGlk
PSJob3N0MSI+PGRpdj5Ib3N0IENoaWxkPC9kaXY+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci12YXIgc2hh
ZG93Um9vdDEgPSBob3N0MS53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290MS5p
bm5lckhUTUwgPSAnPGRpdiBpZD0iaG9zdDIiPk9sZGVzdCBTaGFkb3dSb290IENoaWxkPC9kaXY+
JzsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
c2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxkaXYgaWQ9Imhvc3QzIj48c2hhZG93Pjwvc2hhZG93
Pjxjb250ZW50PjwvY29udGVudD48ZGl2PllvdW5nZXN0IFNoYWRvd1Jvb3QgQ2hpbGQ8L2Rpdj48
L2Rpdj4nOwotCi12YXIgaG9zdDMgPSBzaGFkb3dSb290Mi5nZXRFbGVtZW50QnlJZCgnaG9zdDMn
KTsKLXZhciBzaGFkb3dSb290MyA9IGhvc3QzLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNo
YWRvd1Jvb3QzLmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImRpdiI+PC9jb250ZW50Pic7
Ci08L3NjcmlwdD4KLQotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDI3ICswLDAgQEAKLVRoaXMgdGVzdHMgdGhlIGFjdGl2ZUVsZW1lbnQgcHJvcGVydHkgb2Yg
YSBTaGFkb3dSb290LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFk
b3dSb290MS5hY3RpdmVFbGVtZW50IGlzIGRlZmluZWQuCi1QQVNTIHNoYWRvd1Jvb3QyLmFjdGl2
ZUVsZW1lbnQgaXMgZGVmaW5lZC4KLVBBU1Mgbm9kZUluRG9jdW1lbnQuZm9jdXMoKTsgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCBpcyBub2RlSW5Eb2N1bWVudAotUEFTUyBub2RlSW5Eb2N1bWVudC5m
b2N1cygpOyBzaGFkb3dSb290MS5hY3RpdmVFbGVtZW50IGlzIG51bGwKLVBBU1Mgbm9kZUluRG9j
dW1lbnQuZm9jdXMoKTsgc2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCBpcyBudWxsCi1QQVNTIGRp
c3RyaWJ1dGVkTGlnaHRDaGlsZC5mb2N1cygpOyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIGRp
c3RyaWJ1dGVkTGlnaHRDaGlsZAotUEFTUyBkaXN0cmlidXRlZExpZ2h0Q2hpbGQuZm9jdXMoKTsg
c2hhZG93Um9vdDEuYWN0aXZlRWxlbWVudCBpcyBkaXN0cmlidXRlZExpZ2h0Q2hpbGQKLVBBU1Mg
ZGlzdHJpYnV0ZWRMaWdodENoaWxkLmZvY3VzKCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQg
aXMgbnVsbAotUEFTUyBjaGlsZEluU2hhZG93Um9vdDEuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudCBpcyBzaGFkb3dIb3N0MQotUEFTUyBjaGlsZEluU2hhZG93Um9vdDEuZm9jdXMoKTsg
c2hhZG93Um9vdDEuYWN0aXZlRWxlbWVudCBpcyBjaGlsZEluU2hhZG93Um9vdDEKLVBBU1MgY2hp
bGRJblNoYWRvd1Jvb3QxLmZvY3VzKCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQgaXMgbnVs
bAotUEFTUyBjaGlsZEluU2hhZG93Um9vdDIuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCBpcyBzaGFkb3dIb3N0MQotUEFTUyBjaGlsZEluU2hhZG93Um9vdDIuZm9jdXMoKTsgc2hhZG93
Um9vdDEuYWN0aXZlRWxlbWVudCBpcyBzaGFkb3dIb3N0MgotUEFTUyBjaGlsZEluU2hhZG93Um9v
dDIuZm9jdXMoKTsgc2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCBpcyBjaGlsZEluU2hhZG93Um9v
dDIKLWNoaWxkSW5TaGFkb3dSb290Mi5ibHVyKCk7Ci1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQgaXMgZG9jdW1lbnQuYm9keQotUEFTUyBzaGFkb3dSb290MS5hY3RpdmVFbGVtZW50IGlzIG51
bGwKLVBBU1Mgc2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCBpcyBudWxsCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVu
dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcwICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08ZGl2IGlkPSJzYW5kYm94Ij4KLTwvZGl2PgotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhY3RpdmVFbGVtZW50IHByb3BlcnR5IG9mIGEg
U2hhZG93Um9vdC4iKTsKLQotaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQotICAgIGRlYnVnKCdUaGlz
IHRlc3QgcnVucyBvbiBEUlQgb25seScpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5k
Ym94JykuYXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ25vZGUtaW4tZG9jdW1lbnQnLCAndGFiaW5kZXgn
OiAxfSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdzaGFkb3ctaG9z
dC0xJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdzaGFkb3ctaG9z
dC0yJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRv
d1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnY2hpbGQtaW4tc2hhZG93LXJvb3QtMicsICd0YWJpbmRleCc6IDF9
KSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdjaGlsZC1pbi1zaGFkb3ctcm9vdC0xJywgJ3RhYmluZGV4JzogMX0pLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNkaXN0cmli
dXRlZC1saWdodC1jaGlsZCd9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZGlzdHJpYnV0ZWQtbGlnaHQtY2hpbGQnLCAndGFiaW5kZXgnOiAxfSkp
KSk7Ci0KLXZhciBzaGFkb3dIb3N0MSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93
LWhvc3QtMScpOwotdmFyIHNoYWRvd0hvc3QyID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdz
aGFkb3ctaG9zdC0xL3NoYWRvdy1ob3N0LTInKTsKLXZhciBzaGFkb3dSb290MSA9IGdldE5vZGVJ
blNoYWRvd1RyZWVTdGFjaygnc2hhZG93LWhvc3QtMS8nKTsKLXZhciBzaGFkb3dSb290MiA9IGdl
dE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93LWhvc3QtMS9zaGFkb3ctaG9zdC0yLycpOwot
Ci12YXIgbm9kZUluRG9jdW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9kZS1pbi1k
b2N1bWVudCcpOwotdmFyIGRpc3RyaWJ1dGVkTGlnaHRDaGlsZCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkaXN0cmlidXRlZC1saWdodC1jaGlsZCcpOwotdmFyIGNoaWxkSW5TaGFkb3dSb290
MSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93LWhvc3QtMS9jaGlsZC1pbi1zaGFk
b3ctcm9vdC0xJyk7Ci12YXIgY2hpbGRJblNoYWRvd1Jvb3QyID0gZ2V0Tm9kZUluU2hhZG93VHJl
ZVN0YWNrKCdzaGFkb3ctaG9zdC0xL3NoYWRvdy1ob3N0LTIvY2hpbGQtaW4tc2hhZG93LXJvb3Qt
MicpOwotCi1zaG91bGRCZURlZmluZWQoInNoYWRvd1Jvb3QxLmFjdGl2ZUVsZW1lbnQiKTsKLXNo
b3VsZEJlRGVmaW5lZCgic2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCIpOwotCi1zaG91bGRCZSgi
bm9kZUluRG9jdW1lbnQuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJub2RlSW5E
b2N1bWVudCIpOwotc2hvdWxkQmUoIm5vZGVJbkRvY3VtZW50LmZvY3VzKCk7IHNoYWRvd1Jvb3Qx
LmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotc2hvdWxkQmUoIm5vZGVJbkRvY3VtZW50LmZvY3Vz
KCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotCi1zaG91bGRCZSgiZGlz
dHJpYnV0ZWRMaWdodENoaWxkLmZvY3VzKCk7IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQiLCAiZGlz
dHJpYnV0ZWRMaWdodENoaWxkIik7Ci1zaG91bGRCZSgiZGlzdHJpYnV0ZWRMaWdodENoaWxkLmZv
Y3VzKCk7IHNoYWRvd1Jvb3QxLmFjdGl2ZUVsZW1lbnQiLCAiZGlzdHJpYnV0ZWRMaWdodENoaWxk
Iik7Ci1zaG91bGRCZSgiZGlzdHJpYnV0ZWRMaWdodENoaWxkLmZvY3VzKCk7IHNoYWRvd1Jvb3Qy
LmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotCi1zaG91bGRCZSgiY2hpbGRJblNoYWRvd1Jvb3Qx
LmZvY3VzKCk7IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQiLCAic2hhZG93SG9zdDEiKTsKLXNob3Vs
ZEJlKCJjaGlsZEluU2hhZG93Um9vdDEuZm9jdXMoKTsgc2hhZG93Um9vdDEuYWN0aXZlRWxlbWVu
dCIsICJjaGlsZEluU2hhZG93Um9vdDEiKTsKLXNob3VsZEJlKCJjaGlsZEluU2hhZG93Um9vdDEu
Zm9jdXMoKTsgc2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci0KLXNob3VsZEJl
KCJjaGlsZEluU2hhZG93Um9vdDIuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJz
aGFkb3dIb3N0MSIpOwotc2hvdWxkQmUoImNoaWxkSW5TaGFkb3dSb290Mi5mb2N1cygpOyBzaGFk
b3dSb290MS5hY3RpdmVFbGVtZW50IiwgInNoYWRvd0hvc3QyIik7Ci1zaG91bGRCZSgiY2hpbGRJ
blNoYWRvd1Jvb3QyLmZvY3VzKCk7IHNoYWRvd1Jvb3QyLmFjdGl2ZUVsZW1lbnQiLCAiY2hpbGRJ
blNoYWRvd1Jvb3QyIik7Ci0KLWV2YWxBbmRMb2coImNoaWxkSW5TaGFkb3dSb290Mi5ibHVyKCk7
Iik7Ci1zaG91bGRCZSgiZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVudC5ib2R5Iik7
Ci1zaG91bGRCZSgic2hhZG93Um9vdDEuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci1zaG91bGRC
ZSgic2hhZG93Um9vdDIuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci0KLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwZW5kLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
YXBwZW5kLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGVuZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTEgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGFwcGVuZGluZyBzaGFk
b3cgcm9vdCBhcyBhIGNoaWxkIGRvZXMgbm90IGNyYXNoLgotCi1QQVNTIHJvb3QuZmlyc3RDaGls
ZCBpcyBudWxsCi1QQVNTIGNvbnRhaW5lci5maXJzdENoaWxkLnRleHRDb250ZW50IGlzICJTUyIK
LVBBU1Mgcm9vdC5maXJzdENoaWxkIGlzIG51bGwKLVBBU1MgY29udGFpbmVyLmZpcnN0Q2hpbGQu
dGV4dENvbnRlbnQgaXMgIlBBIgotUEFTUyBjb250YWluZXIuZmlyc3RDaGlsZCBpcyBub3QgY29u
dGFpbmVyLmxhc3RDaGlsZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi1QQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtYXBwZW5kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LWFwcGVuZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwZW5kLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhcHBlbmRpbmcgc2hhZG93
IHJvb3QgYXMgYSBjaGlsZCBkb2VzIG5vdCBjcmFzaC48L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBk
b1Rlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIGRlYnVnKCdU
aGlzIHRlc3QgcnVucyBvbiBEUlQgb25seScpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHJvb3QgPSBk
aXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJ1NTJykpOwotCi0gICAgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwotICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChyb290
KTsKLQotICAgIHNob3VsZEJlTnVsbCgncm9vdC5maXJzdENoaWxkJyk7Ci0gICAgc2hvdWxkQmUo
J2NvbnRhaW5lci5maXJzdENoaWxkLnRleHRDb250ZW50JywgJyJTUyInKTsKLQotICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICByb290ID0gZGl2LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCdQQScpKTsKLQotICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUocm9vdCwgY29u
dGFpbmVyLmZpcnN0Q2hpbGQpOwotCi0gICAgc2hvdWxkQmVOdWxsKCdyb290LmZpcnN0Q2hpbGQn
KTsKLSAgICBzaG91bGRCZSgnY29udGFpbmVyLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQnLCAnIlBB
IicpOwotICAgIHNob3VsZE5vdEJlKCdjb250YWluZXIuZmlyc3RDaGlsZCcsICdjb250YWluZXIu
bGFzdENoaWxkJyk7Ci19Ci0KLWRvVGVzdCgpOwotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hcHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1h
cHBseUF1dGhvclN0eWxlcy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMtZXhw
ZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJhcHBseS1hdXRob3Itc3R5bGUiPjxzcGFuIHN0
eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNlZWY7Ym9yZGVyOnNvbGlkO2NvbG9yOiNmZWU7ZGlzcGxh
eTpib3hlZC1pbmxpbmU7Zm9udC1zaXplOjI0cHg7bWFyZ2luOjJweDtvdXRsaW5lLWNvbG9yOiNm
MDA7cGFkZGluZy1sZWZ0OjVweDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjp1bmRl
cmxpbmU7Ij48L3NwYW4+PC9kaXY+Ci08ZGl2IGlkPSJuby1hcHBseS1hdXRob3Itc3R5bGUiPjxz
cGFuPjwvc3Bhbj48L2Rpdj4KLTxkaXYgaWQ9IndpdGgtaW5saW5lLXN0eWxlLWRlY2xhcmF0aW9u
Ij48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZWVmO2JvcmRlcjpub25lO2NvbG9yOiNk
YWE7ZGlzcGxheTpib3hlZC1pbmxpbmU7Zm9udC1zaXplOjE4cHg7bWFyZ2luOjJweDtvdXRsaW5l
LWNvbG9yOiNmMDA7cGFkZGluZy1sZWZ0OjVweDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3Jh
dGlvbjpub25lOyI+PC9zcGFuPjwvZGl2PgotPGRpdiBpZD0idHJ5LXRvLW92ZXJpZGUtaW1wb3J0
YW50Ij48aW5wdXQgdHlwZT0iZmlsZSIgLz48L2Rpdj4KLTxkaXYgaWQ9ImNoYW5nZS1hcHBseS1h
dXRob3Itc3R5bGUtZnJvbS10cnVlLXRvLWZhbHNlIj48ZGl2PjxzcGFuPjwvc3Bhbj48L2Rpdj48
L2Rpdj4KLTxkaXYgaWQ9ImNoYW5nZS1hcHBseS1hdXRob3Itc3R5bGUtZnJvbS1mYWxzZS10by10
cnVlIj48ZGl2PjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNlZWY7Ym9yZGVyOnNvbGlk
O2NvbG9yOiNmZWU7ZGlzcGxheTpib3hlZC1pbmxpbmU7Zm9udC1zaXplOjI0cHg7bWFyZ2luOjJw
eDtvdXRsaW5lLWNvbG9yOiNmMDA7cGFkZGluZy1sZWZ0OjVweDt0ZXh0LWFsaWduOnN0YXJ0O3Rl
eHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Ij48L3NwYW4+PC9kaXY+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXBw
bHlBdXRob3JTdHlsZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtYXBwbHlBdXRob3JTdHlsZXMuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFwcGx5QXV0aG9y
U3R5bGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTUxICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLXNwYW4gewotICAgIGJhY2tncm91bmQtY29s
b3I6ICNlZWY7Ci0gICAgYm9yZGVyOiBzb2xpZDsKLSAgICBjb2xvcjogI2ZlZTsKLSAgICBkaXNw
bGF5OiBib3hlZC1pbmxpbmU7Ci0gICAgZm9udC1zaXplOiAyNHB4OwotICAgIG1hcmdpbjogMnB4
OwotICAgIG91dGxpbmUtY29sb3I6ICNmMDA7Ci0gICAgcGFkZGluZy1sZWZ0OiA1cHg7Ci0gICAg
dGV4dC1hbGlnbjogc3RhcnQ7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ci19Ci1p
bnB1dFt0eXBlPSJmaWxlIl0gewotICAgIHRleHQtYWxpZ246IGVuZDsKLX0KLTwvc3R5bGU+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPGRpdiBpZD0iYXBwbHktYXV0aG9yLXN0eWxlIj48L2Rpdj4KLTxkaXYgaWQ9Im5vLWFw
cGx5LWF1dGhvci1zdHlsZSI+PC9kaXY+Ci08ZGl2IGlkPSJ3aXRoLWlubGluZS1zdHlsZS1kZWNs
YXJhdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJ0cnktdG8tb3ZlcnJpZGUtaW1wb3J0YW50Ij48L2Rp
dj4KLTxkaXYgaWQ9ImNoYW5nZS1hcHBseS1hdXRob3Itc3R5bGUtZnJvbS10cnVlLXRvLWZhbHNl
Ij48L2Rpdj4KLTxkaXYgaWQ9ImNoYW5nZS1hcHBseS1hdXRob3Itc3R5bGUtZnJvbS1mYWxzZS10
by10cnVlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIHNob3VsZEJlKGEsIGIpCi17Ci0g
ICBpZiAoYSAhPSBiKSB7Ci0gICAgICB0aHJvdyAiZmFpbHVyZToiICsgYSArICI6IHNob3VsZCBi
ZSAiICsgYjsKLSAgIH0KLX0KLQotZnVuY3Rpb24gc2hvdWxkTm90QmUoYSwgYikKLXsKLSAgIGlm
IChhID09IGIpIHsKLSAgICAgIHRocm93ICJmYWlsdXJlOiIgKyBhICsgIjogc2hvdWxkIG5vdCBi
ZSAiICsgYjsKLSAgIH0KLX0KLQotZnVuY3Rpb24gYXNzZXJ0VHJ1ZShpZCwgYWN0dWFsKSB7Ci0g
ICBpZiAoIWFjdHVhbCkgewotICAgICAgIHRocm93ICJmYWlsdXJlOiIgKyBpZCArICAiOiBhc3Nl
cnRUcnVlIGZhaWxlZCI7Ci0gICB9Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEZhbHNlKGlkLCBhY3R1
YWwpIHsKLSAgIGlmIChhY3R1YWwpIHsKLSAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgaWQgKyAg
IjogYXNzZXJ0RmFsc2UgZmFpbGVkIjsKLSAgIH0KLX0KLQotZnVuY3Rpb24gcmVuZGVyQXBwbHlB
dXRob3JTdHlsZUNhc2UoKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHBseS1hdXRob3Itc3R5bGUn
KS5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5
bGVzJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBs
eUF1dGhvclN0eWxlcyA9IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMg
c2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFk
b3dSb290LmlubmVySFRNTCA9ICc8c3Bhbj48L3NwYW4+JzsKLX0KLQotZnVuY3Rpb24gcmVuZGVy
Tm9BcHBseUF1dGhvclN0eWxlQ2FzZSgpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25vLWFwcGx5LWF1
dGhvci1zdHlsZScpLmFwcGVuZENoaWxkKGRpdik7Ci0KLSAgICB2YXIgc2hhZG93Um9vdCA9IGRp
di53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgYXBw
bHlBdXRob3JTdHlsZXMnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFk
b3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gZmFsc2U7Ci0gICAgYXNzZXJ0RmFsc2UoJ2FwcGx5
QXV0aG9yU3R5bGVzIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHls
ZXMpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxzcGFuPjwvc3Bhbj4nOwotfQotCi1m
dW5jdGlvbiByZW5kZXJBcHBseUF1dGhvclN0eWxlV2l0aElubGluZVN0eWxlRGVjbGFyYXRpb25D
YXNlKCkgewotICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aC1pbmxpbmUtc3R5bGUtZGVjbGFyYXRpb24n
KS5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5
bGVzJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBs
eUF1dGhvclN0eWxlcyA9IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMg
c2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFk
b3dSb290LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT0iYm9yZGVyOm5vbmU7IGNvbG9yOiNkYWE7
IGZvbnQtc2l6ZToxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZSI+PC9zcGFuPic7Ci19Ci0KLWZ1
bmN0aW9uIHJlbmRlckFwcGx5QXV0aG9yU3R5bGVXaXRoT3ZlcnJpZGluZ0ltcG9ydGFudFByb3Bl
cnR5Q2FzZSgpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyeS10by1vdmVycmlkZS1pbXBvcnRhbnQn
KS5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5
bGVzJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBs
eUF1dGhvclN0eWxlcyA9IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMg
c2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFk
b3dSb290LmlubmVySFRNTCA9ICc8aW5wdXQgdHlwZT0iZmlsZSIgLz4nOwotfQotCi1mdW5jdGlv
biB0ZXN0Q2hhbmdpbmdBcHBseUF1dGhvclN0eWxlRnJvbVRydWVUb0ZhbHNlKCkgewotICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY2hhbmdlLWFwcGx5LWF1dGhvci1zdHlsZS1mcm9tLXRydWUtdG8tZmFsc2Un
KS5hcHBlbmRDaGlsZChkaXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotICAgIGFzc2VydEZhbHNlKCdkZWZhdWx0IGFwcGx5QXV0aG9yU3R5
bGVzJywgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5hcHBs
eUF1dGhvclN0eWxlcyA9IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMg
c2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzKTsKLSAgICBzaGFk
b3dSb290LmlubmVySFRNTCA9ICc8ZGl2PjxzcGFuIGlkPSJ0ZXN0MSI+PC9zcGFuPjwvZGl2Pic7
Ci0gICAgZGl2Lm9mZnNldExlZnQ7Ci0gICAgdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3QxJyk7Ci0gICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXNpemUnKSwgIjI0cHgiKTsKLSAgICBzaG91
bGRCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ3Rl
eHQtZGVjb3JhdGlvbicpLCAidW5kZXJsaW5lIik7Ci0KLSAgICBzaGFkb3dSb290LmFwcGx5QXV0
aG9yU3R5bGVzID0gZmFsc2U7Ci0gICAgYXNzZXJ0RmFsc2UoJ2FwcGx5QXV0aG9yU3R5bGVzIHNo
b3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMpOwotICAgIGRpdi5v
ZmZzZXRMZWZ0OwotICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdl
dCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyksICIyNHB4Iik7Ci0gICAgc2hvdWxkTm90
QmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0
LWRlY29yYXRpb24nKSwgInVuZGVybGluZSIpOwotfQotCi1mdW5jdGlvbiB0ZXN0Q2hhbmdpbmdB
cHBseUF1dGhvclN0eWxlRnJvbUZhbHNlVG9UcnVlKCkgewotICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hh
bmdlLWFwcGx5LWF1dGhvci1zdHlsZS1mcm9tLWZhbHNlLXRvLXRydWUnKS5hcHBlbmRDaGlsZChk
aXYpOwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotICAgIHNoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMgPSBmYWxzZTsKLSAgICBhc3NlcnRG
YWxzZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5hcHBs
eUF1dGhvclN0eWxlcyk7Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdj48c3BhbiBp
ZD0idGVzdDIiPjwvc3Bhbj48L2Rpdj4nOwotICAgIGRpdi5vZmZzZXRMZWZ0OwotICAgIHZhciB0
YXJnZXQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpOwotICAgIHNob3VsZE5v
dEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnZm9u
dC1zaXplJyksICIyNHB4Iik7Ci0gICAgc2hvdWxkTm90QmUod2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWRlY29yYXRpb24nKSwgInVuZGVybGlu
ZSIpOwotCi0gICAgc2hhZG93Um9vdC5hcHBseUF1dGhvclN0eWxlcyA9IHRydWU7Ci0gICAgYXNz
ZXJ0VHJ1ZSgnYXBwbHlBdXRob3JTdHlsZXMgc2hvdWxkIGJlIHRydWUnLCBzaGFkb3dSb290LmFw
cGx5QXV0aG9yU3R5bGVzKTsKLSAgICBkaXYub2Zmc2V0TGVmdDsKLSAgICBzaG91bGRCZSh3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScp
LCAiMjRweCIpOwotICAgIHNob3VsZEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCku
Z2V0UHJvcGVydHlWYWx1ZSgndGV4dC1kZWNvcmF0aW9uJyksICJ1bmRlcmxpbmUiKTsKLX0KLQot
cmVuZGVyQXBwbHlBdXRob3JTdHlsZUNhc2UoKTsKLXJlbmRlck5vQXBwbHlBdXRob3JTdHlsZUNh
c2UoKTsKLXJlbmRlckFwcGx5QXV0aG9yU3R5bGVXaXRoSW5saW5lU3R5bGVEZWNsYXJhdGlvbkNh
c2UoKTsKLXJlbmRlckFwcGx5QXV0aG9yU3R5bGVXaXRoT3ZlcnJpZGluZ0ltcG9ydGFudFByb3Bl
cnR5Q2FzZSgpOwotdGVzdENoYW5naW5nQXBwbHlBdXRob3JTdHlsZUZyb21UcnVlVG9GYWxzZSgp
OwotdGVzdENoYW5naW5nQXBwbHlBdXRob3JTdHlsZUZyb21GYWxzZVRvVHJ1ZSgpOwotPC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYXR0YWNoZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1hdHRhY2hlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAot
VGhpcyB0ZXN0IGNoZWNrcyBub2RlcyBhcmUgcmVhbGx5ZWQgYXR0YWNoZWQuCi0KLVBBU1MgaW50
ZXJuYWxzLmF0dGFjaGVkKGxpZ2h0KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuYXR0YWNoZWQo
bGlnaHQpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmF0dGFjaGVkKGxpZ2h0KSBpcyBmYWxzZQot
UEFTUyBpbnRlcm5hbHMuYXR0YWNoZWQobGlnaHQpIGlzIHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotTElHSFQKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtYXR0YWNoZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hh
ZG93LXRlc3QtZHJpdmVyLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGhpcyB0
ZXN0IGNoZWNrcyBub2RlcyBhcmUgcmVhbGx5ZWQgYXR0YWNoZWQuPC9wPgotPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Ci08ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgotCi08c2NyaXB0PgotdmFy
IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKLQotKGZ1
bmN0aW9uIHRlc3RBdHRhY2hlZEluTGlnaHRDaGlsZHJlbigpIHsKLSAgICB2YXIgcm9vdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHdpbmRvdy5saWdodCA9IGNyZWF0ZVNw
YW5XaXRoVGV4dCgnTElHSFQnKTsKLSAgICByb290LmFwcGVuZENoaWxkKGxpZ2h0KTsKLQotICAg
IHZhciBzaGFkb3dSb290ID0gcm9vdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLSAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmF0dGFjaGVkKGxpZ2h0KScsICdmYWxzZScpOwotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZChyb290KTsKLSAgICBz
aG91bGRCZSgnaW50ZXJuYWxzLmF0dGFjaGVkKGxpZ2h0KScsICd0cnVlJyk7Ci19KSgpOwotCi0o
ZnVuY3Rpb24gdGVzdE5vdERpc3RyaWJ1dGVkRWxlbWVudEF0dGFjaGVkKCkgewotICAgIHZhciBy
b290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgd2luZG93LmxpZ2h0ID0g
Y3JlYXRlU3BhbldpdGhUZXh0KCdMSUdIVCcpOwotICAgIHJvb3QuYXBwZW5kQ2hpbGQobGlnaHQp
OwotCi0gICAgdmFyIHNoYWRvd1Jvb3QgPSByb290LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFu
JykpOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5hdHRhY2hlZChsaWdodCknLCAnZmFsc2Un
KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQo
cm9vdCk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5hdHRhY2hlZChsaWdodCknLCAndHJ1ZScp
OwotfSkoKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1ibHVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYmx1ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1ibHVyLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi1UaGlzIHRlc3RzIHRoZSBi
bHVyKCkgb24gb24gc2hhZG93IGhvc3Qgc2hvdWxkIHdvcmsgd2hlbiBhIHNoYWRvdyBob3N0IGNv
bnRhaW5zIGEgZm9jdXNlZCBlbGVtZW50IGluIGl0cyBzaGFkb3cgRE9NIHN1YnRyZWVzIHByb3Bl
cnR5IChidWcgODExMDIpCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLWdldE5v
ZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEvY2hpbGRJblRyZWVPbmUnKS5mb2N1cygp
Ci1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgInNoYWRvd0hvc3RBIgotZ2V0Tm9k
ZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QScpLmJsdXIoKTsKLXNoYWRvd0hvc3RBIG9u
Ymx1ciBjYWxsZWQhCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQuYm9k
eQotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVs
ZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RB
L3NoYWRvd0hvc3RCLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RDLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotZ2V0Tm9k
ZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QS9zaGFkb3dIb3N0Qi9jaGlsZEluVHJlZVR3
bycpLmZvY3VzKCkKLVBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAic2hhZG93SG9z
dEEiCi1nZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCJyku
Ymx1cigpOwotc2hhZG93SG9zdEIgb25ibHVyIGNhbGxlZCEKLXNoYWRvd0hvc3RBIG9uYmx1ciBj
YWxsZWQhCi1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQuYm9keQotUEFT
UyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQg
aXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRv
d0hvc3RCLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soJ3NoYWRvd0hvc3RDLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotZ2V0Tm9kZUluU2hh
ZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QS9zaGFkb3dIb3N0Qi9jaGlsZEluVHJlZVR3bycpLmZv
Y3VzKCkKLVBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAic2hhZG93SG9zdEEiCi1n
ZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBJykuYmx1cigpOwotc2hhZG93SG9z
dEIgb25ibHVyIGNhbGxlZCEKLXNoYWRvd0hvc3RBIG9uYmx1ciBjYWxsZWQhCi1QQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQuYm9keQotUEFTUyBnZXROb2RlSW5TaGFkb3dU
cmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCLycpLmFjdGl2ZUVs
ZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RD
LycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFk
b3dIb3N0Qy9jaGlsZEluVHJlZVRocmVlJykuZm9jdXMoKQotUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmlkIGlzICJzaGFkb3dIb3N0QyIKLWdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hh
ZG93SG9zdEEnKS5ibHVyKCk7Ci1QQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgInNo
YWRvd0hvc3RDIgotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBLycp
LmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3No
YWRvd0hvc3RBL3NoYWRvd0hvc3RCLycpLmFjdGl2ZUVsZW1lbnQgaXMgbnVsbAotUEFTUyBnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RDLycpLmFjdGl2ZUVsZW1lbnQuaWQgaXMg
ImNoaWxkSW5UcmVlVGhyZWUiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWJsdXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYmx1ci5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYmx1ci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDc2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PGRpdiBpZD0iY29uc29sZSI+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGUgYmx1cigpIG9uIG9uIHNoYWRvdyBob3N0IHNob3VsZCB3b3JrIHdoZW4gYSBzaGFk
b3cgaG9zdCBjb250YWlucyBhIGZvY3VzZWQgZWxlbWVudCBpbiBpdHMgc2hhZG93IERPTSBzdWJ0
cmVlcyBwcm9wZXJ0eSAoYnVnIDgxMTAyKSIpOwotCi1pZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgZGVidWcoJ1RoaXMgdGVzdCBydW5zIG9uIERSVCBvbmx5Jyk7Ci0KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOidzaGFkb3dIb3N0QSd9LAot
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KAotICAgICAgICAgICAgY3JlYXRlRE9NKCdwJywgeydp
ZCc6J2NoaWxkSW5UcmVlT25lJywgJ3RhYmluZGV4JzonMSd9KSwKLSAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6J3NoYWRvd0hvc3RCJ30sCi0gICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKLSAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdwJywgeydpZCc6J2No
aWxkSW5UcmVlVHdvJywgJ3RhYmluZGV4JzonMid9KSkpKSkpOwotCi1kb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6J3NoYWRvd0hvc3RDJ30sCi0g
ICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICBjcmVhdGVET00oJ3AnLCB7J2lk
JzonY2hpbGRJblRyZWVUaHJlZScsICd0YWJpbmRleCc6JzMnfSkpKQotKTsKLQotZ2V0Tm9kZUlu
U2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QScpLm9uYmx1ciA9IGZ1bmN0aW9uKCkgeyBkZWJ1
Zygic2hhZG93SG9zdEEgb25ibHVyIGNhbGxlZCEiKTsgfQotZ2V0Tm9kZUluU2hhZG93VHJlZVN0
YWNrKCdzaGFkb3dIb3N0QS9zaGFkb3dIb3N0QicpLm9uYmx1ciA9IGZ1bmN0aW9uKCkgeyBkZWJ1
Zygic2hhZG93SG9zdEIgb25ibHVyIGNhbGxlZCEiKTsgfQotCi0vLyBjaGlsZEluVHJlZU9uZSBm
b3Vjc2VkIC0gc2hhZG93SG9zdEEgYmx1cnJlZAotZXZhbEFuZExvZygiZ2V0Tm9kZUluU2hhZG93
VHJlZVN0YWNrKCdzaGFkb3dIb3N0QS9jaGlsZEluVHJlZU9uZScpLmZvY3VzKCkiKTsKLXNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCIsICJzaGFkb3dIb3N0
QSIpOwotZXZhbEFuZExvZygiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QScp
LmJsdXIoKTsiKTsKLXNob3VsZEJlKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50IiwgImRvY3VtZW50
LmJvZHkiKTsKLXNob3VsZEJlKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RB
LycpLmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotc2hvdWxkQmUoImdldE5vZGVJblNoYWRvd1Ry
ZWVTdGFjaygnc2hhZG93SG9zdEEvc2hhZG93SG9zdEIvJykuYWN0aXZlRWxlbWVudCIsICJudWxs
Iik7Ci1zaG91bGRCZSgiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0Qy8nKS5h
Y3RpdmVFbGVtZW50IiwgIm51bGwiKTsKLQotLy8gY2hpbGRJblRyZWVUd28gZm91Y3NlZCAtIHNo
YWRvd0hvc3RCIGJsdXJyZWQKLWV2YWxBbmRMb2coImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygn
c2hhZG93SG9zdEEvc2hhZG93SG9zdEIvY2hpbGRJblRyZWVUd28nKS5mb2N1cygpIik7Ci1zaG91
bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQiLCAic2hhZG93SG9z
dEEiKTsKLWV2YWxBbmRMb2coImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEv
c2hhZG93SG9zdEInKS5ibHVyKCk7Iik7Ci1zaG91bGRCZSgiZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCIsICJkb2N1bWVudC5ib2R5Iik7Ci1zaG91bGRCZSgiZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNr
KCdzaGFkb3dIb3N0QS8nKS5hY3RpdmVFbGVtZW50IiwgIm51bGwiKTsKLXNob3VsZEJlKCJnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCLycpLmFjdGl2ZUVs
ZW1lbnQiLCAibnVsbCIpOwotc2hvdWxkQmUoImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hh
ZG93SG9zdEMvJykuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci0KLS8vIGNoaWxkSW5UcmVlVHdv
IGZvdWNzZWQgLSBzaGFkb3dIb3N0QSBibHVycmVkCi1ldmFsQW5kTG9nKCJnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RBL3NoYWRvd0hvc3RCL2NoaWxkSW5UcmVlVHdvJykuZm9j
dXMoKSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmlk
IiwgInNoYWRvd0hvc3RBIik7Ci1ldmFsQW5kTG9nKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2so
J3NoYWRvd0hvc3RBJykuYmx1cigpOyIpOwotc2hvdWxkQmUoImRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQiLCAiZG9jdW1lbnQuYm9keSIpOwotc2hvdWxkQmUoImdldE5vZGVJblNoYWRvd1RyZWVTdGFj
aygnc2hhZG93SG9zdEEvJykuYWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci1zaG91bGRCZSgiZ2V0
Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdzaGFkb3dIb3N0QS9zaGFkb3dIb3N0Qi8nKS5hY3RpdmVF
bGVtZW50IiwgIm51bGwiKTsKLXNob3VsZEJlKCJnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ3No
YWRvd0hvc3RDLycpLmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotCi0vLyBjaGlsZEluVHJlZVRo
cmVlIGZvdWNzZWQgLSBzaGFkb3dIb3N0QSBibHVycmVkCi1ldmFsQW5kTG9nKCJnZXROb2RlSW5T
aGFkb3dUcmVlU3RhY2soJ3NoYWRvd0hvc3RDL2NoaWxkSW5UcmVlVGhyZWUnKS5mb2N1cygpIik7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQiLCAic2hh
ZG93SG9zdEMiKTsKLWV2YWxBbmRMb2coImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93
SG9zdEEnKS5ibHVyKCk7Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuaWQiLCAic2hhZG93SG9zdEMiKTsKLXNob3VsZEJlKCJnZXROb2RlSW5TaGFkb3dU
cmVlU3RhY2soJ3NoYWRvd0hvc3RBLycpLmFjdGl2ZUVsZW1lbnQiLCAibnVsbCIpOwotc2hvdWxk
QmUoImdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEEvc2hhZG93SG9zdEIvJyku
YWN0aXZlRWxlbWVudCIsICJudWxsIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldE5vZGVJ
blNoYWRvd1RyZWVTdGFjaygnc2hhZG93SG9zdEMvJykuYWN0aXZlRWxlbWVudC5pZCIsICJjaGls
ZEluVHJlZVRocmVlIik7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJIVE1MLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWlubmVySFRNTC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAs
MCBAQAotVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93IHJvb3Qu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLVBBU1MgJ2lubmVySFRNTCcgaW4g
aW50ZXJuYWxzLnNoYWRvd1Jvb3QgaXMgZmFsc2UKLVBBU1Mgcm9vdC5pbm5lckhUTUwgaXMgZGVm
aW5lZC4KLVBBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJzxkaXYgaWQ9ImRpdjEiPjwvZGl2PjxkaXYg
aWQ9ImRpdjIiPjwvZGl2PicKLVBBU1Mgcm9vdC5pbm5lckhUTUwgaXMgJ0hlbGxvJwotUEFTUyBy
b290LmlubmVySFRNTCBpcyAnPHAgaWQ9InAzIj5IZWxsb1dvcmxkPC9wPicKLVBBU1Mgcm9vdC5m
aXJzdENoaWxkLm5vZGVOYW1lIGlzICdQJwotUEFTUyByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rp
dicpIGlzIFtdCi1QQVNTIHJvb3QuZ2V0RWxlbWVudEJ5SWQoJ3AzJykuaW5uZXJIVE1MIGlzICdI
ZWxsb1dvcmxkJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5l
ckhUTUwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPGRpdiBpZD0iY29uc29sZSI+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgaW5uZXJIVE1MIHByb3BlcnR5IG9mIGEgc2hhZG93IHJv
b3QuIik7Ci0KLWlmICghd2luZG93LmludGVybmFscykKLSAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJ1
bnMgb24gRFJUIG9ubHknKTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0KLWhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7Ci1yb290ID0gaG9zdC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCk7Ci0KLXZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci1kaXYxLnNldEF0dHJpYnV0ZSgiaWQiLCAiZGl2MSIpOwotcm9vdC5hcHBlbmRDaGls
ZChkaXYxKTsKLQotdmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLWRp
djIuc2V0QXR0cmlidXRlKCJpZCIsICJkaXYyIik7Ci1yb290LmFwcGVuZENoaWxkKGRpdjIpOwot
Ci1zaG91bGRCZUZhbHNlKCInaW5uZXJIVE1MJyBpbiBpbnRlcm5hbHMuc2hhZG93Um9vdCIpOwot
c2hvdWxkQmVEZWZpbmVkKCJyb290LmlubmVySFRNTCIpOwotc2hvdWxkQmUoInJvb3QuaW5uZXJI
VE1MIiwgIic8ZGl2IGlkPVwiZGl2MVwiPjwvZGl2PjxkaXYgaWQ9XCJkaXYyXCI+PC9kaXY+JyIp
OwotCi1yb290LmlubmVySFRNTCA9ICJIZWxsbyI7Ci1zaG91bGRCZSgicm9vdC5pbm5lckhUTUwi
LCAiJ0hlbGxvJyIpOwotCi1yb290LmlubmVySFRNTCA9ICI8cCBpZD1cInAzXCI+SGVsbG9Xb3Js
ZDwvcD4iOwotCi1zaG91bGRCZSgicm9vdC5pbm5lckhUTUwiLCAiJzxwIGlkPVwicDNcIj5IZWxs
b1dvcmxkPC9wPiciKTsKLXNob3VsZEJlKCJyb290LmZpcnN0Q2hpbGQubm9kZU5hbWUiLCAiJ1An
Iik7Ci1zaG91bGRCZSgicm9vdC5xdWVyeVNlbGVjdG9yQWxsKCdkaXYnKSIsICJbXSIpOwotc2hv
dWxkQmUoInJvb3QuZ2V0RWxlbWVudEJ5SWQoJ3AzJykuaW5uZXJIVE1MIiwgIidIZWxsb1dvcmxk
JyIpOwotCi19Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWpzLWFwaS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI5ICswLDAgQEAKLVRlc3RzIGZvciBT
aGFkb3dSb290IEpTIEFQSXMuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJUCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHdpbmRvdy5TaGFkb3dSb290IGlzIHVuZGVmaW5lZC4K
LVBBU1Mgd2luZG93LldlYktpdFNoYWRvd1Jvb3QgaXMgZGVmaW5lZC4KLVBBU1MgbmV3IHdpbmRv
dy5XZWJLaXRTaGFkb3dSb290KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBJbGxlZ2FsIGNvbnN0cnVjdG9yLgotUEFTUyBzaGFkb3dSb290
IGluc3RhbmNlb2Ygd2luZG93LldlYktpdFNoYWRvd1Jvb3QgaXMgdHJ1ZQotUEFTUyBzaGFkb3dS
b290LmdldEVsZW1lbnRCeUlkKCdkaXYxJykgaXMgZGl2MQotUEFTUyBzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCdmb28nKSBpcyBudWxsCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgnY2xhc3MyJykgaXMgW2RpdjJdCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgnZm9vJykgaXMgW10KLVBBU1Mgc2hhZG93Um9vdC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZGl2JykgaXMgW2RpdjEsIGRpdjJdCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2ZvbycpIGlzIFtdCi1QQVNTIHNoYWRvd1Jvb3QuZ2V0RWxlbWVudHNCeVRhZ05h
bWVOUygnKicsICdkaXYnKSBpcyBbZGl2MSwgZGl2Ml0KLVBBU1Mgc2hhZG93Um9vdC5nZXRFbGVt
ZW50c0J5VGFnTmFtZU5TKCcnLCAnZGl2JykgaXMgW10KLVBBU1Mgc2hhZG93Um9vdC5nZXRFbGVt
ZW50c0J5VGFnTmFtZU5TKCcqJywgJ2ZvbycpIGlzIFtdCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignI2RpdjEnKSBpcyBkaXYxCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
I2ZvbycpIGlzIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuY2xhc3MyJykg
aXMgZGl2MgotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5mb28nKSBpcyBudWxsCi1Q
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZGl2JykgaXMgW2RpdjEsIGRpdjJdCi1Q
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZm9vJykgaXMgW10KLVBBU1MgeW91bmdl
clNoYWRvd1Jvb3QgaXMgbm90IHNoYWRvd1Jvb3QKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsNjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPCEtLSBU
aGVzZSBlbGVtZW50cyBzaG91bGQgbm90IGJlIHNlbGVjdGVkIGluIFNoYWRvd1Jvb3QncyBxdWVy
eVNlbGVjdG9yLiAtLT4KLTxkaXYgaWQ9ImZvbyI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJmb28iPjwv
ZGl2PgotPGZvbz48L2Zvbz4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgZm9yIFNoYWRv
d1Jvb3QgSlMgQVBJcy4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKLQotaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1zaG91bGRCZVVuZGVm
aW5lZCgid2luZG93LlNoYWRvd1Jvb3QiKTsKLXNob3VsZEJlRGVmaW5lZCgid2luZG93LldlYktp
dFNoYWRvd1Jvb3QiKTsKLXNob3VsZFRocm93KCJuZXcgd2luZG93LldlYktpdFNoYWRvd1Jvb3Qo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpIik7Ci0KLXZhciBzaGFkb3dIb3N0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNo
YWRvd0hvc3QpOwotdmFyIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLQotc2hvdWxkQmVUcnVlKCJzaGFkb3dSb290IGluc3RhbmNlb2Ygd2luZG93Lldl
YktpdFNoYWRvd1Jvb3QiKTsKLQotdmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLWRpdjEuc2V0QXR0cmlidXRlKCJpZCIsICJkaXYxIik7Ci1zaGFkb3dSb290LmFwcGVu
ZENoaWxkKGRpdjEpOwotCi12YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwotZGl2Mi5zZXRBdHRyaWJ1dGUoImlkIiwgImRpdjIiKTsKLWRpdjIuY2xhc3NMaXN0LmFkZCgi
Y2xhc3MyIik7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdjIpOwotCi0vLyBUZXN0cyBmb3Ig
RG9jdW1lbnQgc2hvdWxkIGNvdmVyIG1vc3QgY2FzZXMgZm9yIHRoZSBmb2xsb3dpbmcgQVBJcy4K
LS8vIFdlIGhhdmUgYmFzaWMgdGVzdHMgaGVyZS4gTW9yZSB0ZXN0cyBhcmUgd2VsY29tZSwgYnV0
IHdlIHNob3VsZCBhdm9pZCB1bm5lY3NzYXJ5IGR1cGxpY2F0aW9ucy4KLXNob3VsZEJlKCJzaGFk
b3dSb290LmdldEVsZW1lbnRCeUlkKCdkaXYxJykiLCAiZGl2MSIpOwotc2hvdWxkQmVOdWxsKCJz
aGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdmb28nKSIpOwotCi1zaG91bGRCZSgic2hhZG93Um9v
dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjbGFzczInKSIsICJbZGl2Ml0iKTsKLXNob3VsZEJl
KCJzaGFkb3dSb290LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZvbycpIiwgIltdIik7Ci0KLXNo
b3VsZEJlKCJzaGFkb3dSb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKSIsICJbZGl2MSwg
ZGl2Ml0iKTsKLXNob3VsZEJlKCJzaGFkb3dSb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmb28n
KSIsICJbXSIpOwotCi0vLyBGSVhNRTogQWRkIG1vcmUgdGVzdHMgdXNpbmcgWE1MIGRvY3VtZW50
cy4KLXNob3VsZEJlKCJzaGFkb3dSb290LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoJyonLCAnZGl2
JykiLCAiW2RpdjEsIGRpdjJdIik7Ci1zaG91bGRCZSgic2hhZG93Um9vdC5nZXRFbGVtZW50c0J5
VGFnTmFtZU5TKCcnLCAnZGl2JykiLCAiW10iKTsKLXNob3VsZEJlKCJzaGFkb3dSb290LmdldEVs
ZW1lbnRzQnlUYWdOYW1lTlMoJyonLCAnZm9vJykiLCAiW10iKTsKLQotc2hvdWxkQmUoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignI2RpdjEnKSIsICJkaXYxIik7Ci1zaG91bGRCZU51bGwoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI2ZvbycpIik7Ci1zaG91bGRCZSgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCcuY2xhc3MyJykiLCAiZGl2MiIpOwotc2hvdWxkQmVOdWxsKCJzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJy5mb28nKSIpOwotc2hvdWxkQmUoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvckFsbCgnZGl2JykiLCAiW2RpdjEsIGRpdjJdIik7Ci1zaG91bGRCZSgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yQWxsKCdmb28nKSIsICJbXSIpOwotCi12YXIgeW91bmdlclNoYWRvd1Jv
b3QgPSBzaGFkb3dIb3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNob3VsZE5vdEJlKCJ5
b3VuZ2VyU2hhZG93Um9vdCIsICJzaGFkb3dSb290Iik7Ci0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtbmV3LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtbmV3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNyArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoZSBvYmpl
Y3QgJ2hvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpJyBhbmQgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QoZGl2KSBhcmUgdGhlIHNhbWUuCi0KLVBBU1Mgcm9vdDEgaXMgcm9vdDIKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVzdCBjaGVja3MgdGhlIG9i
amVjdCAnaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCknIGFuZCBpbnRlcm5hbHMuc2hhZG93
Um9vdChkaXYpIGFyZSB0aGUgc2FtZS48L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQot
PHNjcmlwdD4KLWZ1bmN0aW9uIGRvVGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMp
IHsKLSAgICAgICAgZGVidWcoJ1RoaXMgdGVzdCBydW5zIG9uIERSVCBvbmx5Jyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICAvLyB3ZSBzaG91bGQgY2FsbCB3ZWJLaXRDcmVhdGVTaGFkb3dSb290IGZpcnN0Lgot
ICAgIHJvb3QxID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICByb290MiA9IGlu
dGVybmFscy5zaGFkb3dSb290KGRpdik7Ci0KLSAgICBzaG91bGRCZSgncm9vdDEnLCAncm9vdDIn
KTsKLX0KLQotZG9UZXN0KCk7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LW5vZGUtbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5vZGUtbGlzdC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1ub2RlLWxpc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAg
QEAKLVBBU1MgdW5sZXNzIGNyYXNoCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3Qtbm9kZS1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5vZGUtbGlzdC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qtbm9kZS1saXN0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0U2hvdWxkTm90Q3Jhc2goKQotewotICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHJldHVybjsKLSAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0KLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJsb2NrcXVv
dGUiKTsKLSAgICB2YXIgc2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QoaG9zdCk7
Ci0gICAgdmFyIGNoaWxkcmVuID0gc2hhZG93LmNoaWxkTm9kZXM7Ci0gICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChob3N0KTsKLQotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLSAg
ICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIHVubGVzcyBjcmFzaCI7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdFNob3VsZE5vdENyYXNoKCkiPgotPC9i
b2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFu
Y2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS1leHBlY3RlZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzdHlsZT4KLWRpdi5yZXNldFRlc3QgewotICBiYWNrZ3JvdW5kLWNvbG9yOiAj
ZWVmOwotICBib3JkZXI6IHNvbGlkOwotICBtYXJnaW46IDRweDsKLSAgcGFkZGluZzogMTZweDsK
LSAgY29sb3I6ICNmZWU7Ci0gIGZvbnQtZmFtaWx5OiBTZXJpZjsKLSAgZm9udC1zaXplOiAyNHB4
OwotICBmb250LXN0eWxlOiBpdGFsaWM7Ci0gIGZvbnQtdmFyaWFudDogc21hbGwtY2FwczsKLSAg
Zm9udC13ZWlnaHQ6IGJvbGQ7Ci0gIGxldHRlci1zcGFjaW5nOiAycHg7Ci0gIGxpbmUtaGVpZ2h0
OiAyMDAlOwotICB0ZXh0LWFsaWduOiBzdGFydDsKLSAgdGV4dC1pbmRlbnQ6IDUwcHg7Ci0gIHRl
eHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Ci0gIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gIHdvcmQt
c3BhY2luZzogMzBweDsKLX0KLWRpdi5pbml0aWFsVmFsdWVzIHsKLSAgY29sb3I6IGluaXRpYWw7
Ci0gIGZvbnQtZmFtaWx5OiBpbml0aWFsOwotICBmb250LXNpemU6IGluaXRpYWw7Ci0gIGZvbnQt
c3R5bGU6IGluaXRpYWw7Ci0gIGZvbnQtdmFyaWFudDogaW5pdGlhbDsKLSAgZm9udC13ZWlnaHQ6
IGluaXRpYWw7Ci0gIGxldHRlci1zcGFjaW5nOiBpbml0aWFsOwotICBsaW5lLWhlaWdodDogaW5p
dGlhbDsKLSAgdGV4dC1hbGlnbjogaW5pdGlhbDsKLSAgdGV4dC1pbmRlbnQ6IGluaXRpYWw7Ci0g
IHRleHQtdHJhbnNmb3JtOiBpbml0aWFsOwotICB3aGl0ZS1zcGFjZTogaW5pdGlhbDsKLSAgd29y
ZC1zcGFjaW5nOiBpbml0aWFsOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdj48
ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXYgY2xhc3M9ImluaXRpYWxWYWx1ZXMiPnRleHQ8L2Rp
dj48L2Rpdj48L2Rpdj4KLTxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rp
dj48L2Rpdj48L2Rpdj4KLTxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2PnRleHQ8L2Rp
dj48L2Rpdj48L2Rpdj4KLTxkaXY+PGRpdiBjbGFzcz0icmVzZXRUZXN0Ij48ZGl2IGNsYXNzPSJp
bml0aWFsVmFsdWVzIj50ZXh0PC9kaXY+PC9kaXY+PC9kaXY+Ci08ZGl2PjxkaXYgY2xhc3M9InJl
c2V0VGVzdCI+PGRpdiBjbGFzcz0iaW5pdGlhbFZhbHVlcyI+dGV4dDwvZGl2PjwvZGl2PjwvZGl2
PgotPGRpdj48ZGl2IGNsYXNzPSJyZXNldFRlc3QiPjxkaXY+dGV4dDwvZGl2PjwvZGl2PjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1yZXNldFN0eWxlSW5oZXJpdGFuY2Uu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LXJlc2V0U3R5bGVJbmhlcml0YW5jZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE2OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci1k
aXYucmVzZXRUZXN0IHsKLSAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjsKLSAgYm9yZGVyOiBzb2xp
ZDsKLSAgbWFyZ2luOiA0cHg7Ci0gIHBhZGRpbmc6IDE2cHg7Ci0gIGNvbG9yOiAjZmVlOwotICBm
b250LWZhbWlseTogU2VyaWY7Ci0gIGZvbnQtc2l6ZTogMjRweDsKLSAgZm9udC1zdHlsZTogaXRh
bGljOwotICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7Ci0gIGZvbnQtd2VpZ2h0OiBib2xkOwot
ICBsZXR0ZXItc3BhY2luZzogMnB4OwotICBsaW5lLWhlaWdodDogMjAwJTsKLSAgdGV4dC1hbGln
bjogc3RhcnQ7Ci0gIHRleHQtaW5kZW50OiA1MHB4OwotICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJj
YXNlOwotICB3aGl0ZS1zcGFjZTogbm93cmFwOwotICB3b3JkLXNwYWNpbmc6IDMwcHg7Ci19Ci08
L3N0eWxlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGFzc2VydFRydWUoaWQsIGFjdHVhbCkgewotICAg
IGlmICghYWN0dWFsKQotICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgaWQgKyAiOiBhc3NlcnRU
cnVlIGZhaWxlZCI7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEZhbHNlKGlkLCBhY3R1YWwpIHsKLSAg
ICBpZiAoYWN0dWFsKQotICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgaWQgKyAgIjogYXNzZXJ0
RmFsc2UgZmFpbGVkIjsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYSwgYikKLXsKLSAgICBpZiAo
YSAhPSBiKQotICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgYSArICI6IHNob3VsZCBiZSAiICsg
YjsKLX0KLQotZnVuY3Rpb24gc2hvdWxkTm90QmUoYSwgYikKLXsKLSAgICBpZiAoYSA9PSBiKQot
ICAgICAgICB0aHJvdyAiZmFpbHVyZToiICsgYSArICI6IHNob3VsZCBub3QgYmUgIiArIGI7Ci19
Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZSI+PC9k
aXY+Ci08ZGl2IGlkPSJuby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZSI+PC9kaXY+Ci08ZGl2IGlk
PSJyZXNldC1zdHlsZS1pbmhlcml0YW5jZS10cnVlLXRvLWZhbHNlIj48L2Rpdj4KLTxkaXYgaWQ9
InJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZhbHNlLXRvLXRydWUiPjwvZGl2PgotPGRpdiBpZD0i
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQiPjwvZGl2PgotPGRpdiBpZD0ibm8t
cmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQiPjwvZGl2PgotCi08c2NyaXB0Pgot
ZnVuY3Rpb24gcmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVyaXRhbmNlKCkgewotICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkaXYuY2xhc3NOYW1lID0g
J3Jlc2V0VGVzdCc7Ci0KLSAgICB2YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFk
b3dSb290KCk7Ci0gICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRTdHlsZUluaGVyaXRhbmNl
IHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKLSAg
ICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOwotICAgIAotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCduby1yZXNldC1zdHlsZS1pbmhlcml0YW5jZScpLmFwcGVu
ZENoaWxkKGRpdik7Ci19Ci0KLWZ1bmN0aW9uIHJlbmRlcldpdGhSZXNldFN0eWxlSW5oZXJpdGFu
Y2UoKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
IGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKLQotICAgIHZhciBzaGFkb3dSb290ID0gZGl2
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBhc3NlcnRGYWxzZSgnZGVmYXVsdCByZXNl
dFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywgc2hhZG93Um9vdC5yZXNldFN0eWxl
SW5oZXJpdGFuY2UpOwotICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1
ZTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PnRleHQ8L2Rpdj4nOwotICAgIGFz
c2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgdHJ1ZSBhcyBleHBsaWNp
dGx5IHNldCcsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKLSAgICAKLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UnKS5hcHBlbmRD
aGlsZChkaXYpOwotfQotCi1mdW5jdGlvbiByZW5kZXJXaXRoQ2hhbmdpbmdSZXNldFN0eWxlSW5o
ZXJpdGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRUZXN0JzsKLQotICAg
IHZhciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBhc3Nl
cnRGYWxzZSgnZGVmYXVsdCByZXNldFN0eWxlSW5oZXJpdGFuY2Ugc2hvdWxkIGJlIGZhbHNlJywg
c2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOwotICAgIHNoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2
IGlkPSJ0ZXN0MSI+dGV4dDwvZGl2Pic7Ci0gICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVy
aXRhbmNlIHNob3VsZCBiZSB0cnVlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2Up
OwotICAgIAotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1zdHlsZS1pbmhlcml0
YW5jZS10cnVlLXRvLWZhbHNlJykuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgICBkaXYub2Zmc2V0TGVm
dDsKLSAgICB2YXIgdGFyZ2V0ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgndGVzdDEnKTsK
LSAgICBzaG91bGROb3RCZSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3Bl
cnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JyksICdzZXJpZicpOwotICAgIHNob3VsZE5vdEJlKHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgnbGluZS1oZWlnaHQn
KSwgJzQ4cHgnKTsKLQotICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFs
c2U7Ci0gICAgYXNzZXJ0RmFsc2UoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFs
c2UnLCBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Ci0gICAgZGl2Lm9mZnNldExl
ZnQ7Ci0gICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9w
ZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKLSAgICBzaG91bGRCZSh3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0Jyks
ICc0OHB4Jyk7Ci19Ci0KLWZ1bmN0aW9uIHJlbmRlcldpdGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhl
cml0YW5jZUZyb21GYWxzZVRvVHJ1ZSgpIHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOwotCi0gICAg
dmFyIHNoYWRvd1Jvb3QgPSBkaXYud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIGFzc2Vy
dEZhbHNlKCdkZWZhdWx0IHJlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBz
aGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Ci0gICAgc2hhZG93Um9vdC5yZXNldFN0
eWxlSW5oZXJpdGFuY2UgPSBmYWxzZTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2
IGlkPSJ0ZXN0MiI+dGV4dDwvZGl2Pic7Ci0gICAgYXNzZXJ0RmFsc2UoJ2RlZmF1bHQgcmVzZXRT
dHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSBmYWxzZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUlu
aGVyaXRhbmNlKTsKLSAgICAKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5
bGUtaW5oZXJpdGFuY2UtZmFsc2UtdG8tdHJ1ZScpLmFwcGVuZENoaWxkKGRpdik7Ci0gICAgZGl2
Lm9mZnNldExlZnQ7Ci0gICAgdmFyIHRhcmdldCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QyJyk7Ci0gICAgc2hvdWxkQmUod2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5n
ZXRQcm9wZXJ0eVZhbHVlKCdmb250LWZhbWlseScpLCAnc2VyaWYnKTsKLSAgICBzaG91bGRCZSh3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVp
Z2h0JyksICc0OHB4Jyk7Ci0KLSAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9
IHRydWU7Ci0gICAgYXNzZXJ0VHJ1ZSgncmVzZXRTdHlsZUluaGVyaXRhbmNlIHNob3VsZCBiZSB0
cnVlJywgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UpOwotICAgIGRpdi5vZmZzZXRM
ZWZ0OwotICAgIHNob3VsZE5vdEJlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZ2V0
UHJvcGVydHlWYWx1ZSgnZm9udC1mYW1pbHknKSwgJ3NlcmlmJyk7Ci0gICAgc2hvdWxkTm90QmUo
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhl
aWdodCcpLCAnNDhweCcpOwotfQotCi1mdW5jdGlvbiBjcmVhdGVEaXZXaXRoVGV4dCh0ZXh0KSB7
Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcmV0dXJuIGRp
djsKLX0KLQotZnVuY3Rpb24gcmVuZGVyUmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgp
IHsKLSAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZGl2
LmNsYXNzTmFtZSA9ICdyZXNldFRlc3QnOwotICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVEaXZX
aXRoVGV4dCgndGV4dCcpKTsKLQotICAgIHZhciBzaGFkb3dSb290ID0gZGl2LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxl
Y3Q9ImRpdiI+PC9jb250ZW50Pic7Ci0gICAgc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFu
Y2UgPSB0cnVlOwotICAgIGFzc2VydFRydWUoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQg
YmUgdHJ1ZScsIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlKTsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzZXQtc3R5bGUtaW5oZXJpdGFuY2UtZm9yLWNvbnRlbnQnKS5h
cHBlbmRDaGlsZChkaXYpOwotICAgIGRpdi5vZmZzZXRMZWZ0OwotfQotCi1mdW5jdGlvbiByZW5k
ZXJOb1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZvckNvbnRlbnQoKSB7Ci0gICAgdmFyIGRpdiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5jbGFzc05hbWUgPSAncmVzZXRU
ZXN0JzsKLSAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRGl2V2l0aFRleHQoJ3RleHQnKSk7Ci0K
LSAgICB2YXIgc2hhZG93Um9vdCA9IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXYiPjwvY29udGVudD4n
OwotICAgIHNoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gZmFsc2U7Ci0gICAgYXNz
ZXJ0RmFsc2UoJ3Jlc2V0U3R5bGVJbmhlcml0YW5jZSBzaG91bGQgYmUgZmFsc2UnLCBzaGFkb3dS
b290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J25vLXJlc2V0LXN0eWxlLWluaGVyaXRhbmNlLWZvci1jb250ZW50JykuYXBwZW5kQ2hpbGQoZGl2
KTsKLSAgICBkaXYub2Zmc2V0TGVmdDsKLX0KLQotcmVuZGVyV2l0aE5vUmVzZXRTdHlsZUluaGVy
aXRhbmNlKCk7Ci1yZW5kZXJXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci1yZW5kZXJXaXRo
Q2hhbmdpbmdSZXNldFN0eWxlSW5oZXJpdGFuY2VGcm9tVHJ1ZVRvRmFsc2UoKTsKLXJlbmRlcldp
dGhDaGFuZ2luZ1Jlc2V0U3R5bGVJbmhlcml0YW5jZUZyb21GYWxzZVRvVHJ1ZSgpOwotcmVuZGVy
UmVzZXRTdHlsZUluaGVyaXRhbmNlRm9yQ29udGVudCgpOwotcmVuZGVyTm9SZXNldFN0eWxlSW5o
ZXJpdGFuY2VGb3JDb250ZW50KCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtdGV4dC1jaGlsZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10ZXh0LWNoaWxkLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi1QQVNTIHVubGVzcyBjcmFzaApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LXRleHQtY2hpbGQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdGV4
dC1jaGlsZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtdGV4dC1jaGlsZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIz
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdFNob3VsZE5v
dENyYXNoKCkKLXsKLSAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICByZXR1cm47
Ci0gICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHZhciByb290ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdmFyIHNoYWRvdyA9IGludGVybmFscy5l
bnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHZhciBzaGFkb3dCdWlsZGVyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgc2hhZG93QnVpbGRlci5pbm5lckhUTUwgPSAiPGRp
dj48L2Rpdj54IjsKLSAgICB3aGlsZSAoc2hhZG93QnVpbGRlci5maXJzdENoaWxkKQotICAgICAg
ICBzaGFkb3cuYXBwZW5kQ2hpbGQoc2hhZG93QnVpbGRlci5maXJzdENoaWxkKTsKLSAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpOwotICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVm
dDsKLSAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIHVubGVzcyBjcmFzaCI7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdFNob3VsZE5vdENyYXNoKCki
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LXRvdWNoLWxpc3RlbmVyLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdG91Y2gtbGlzdGVuZXIt
Y3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdG91Y2gtbGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2
ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHVubGVzcyBjcmFzaAotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC10b3VjaC1saXN0ZW5lci1jcmFz
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC10b3VjaC1saXN0ZW5lci1jcmFzaC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtdG91Y2gtbGlzdGVuZXItY3Jhc2gu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWRpc3BhdGNoaW5nLmpzIj48L3Nj
cmlwdD4KLTxkaXYgaWQ9dGFyZ2V0PjwvZGl2PgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0
cnVlOwotCi1mdW5jdGlvbiBhZGRUb3VjaEV2ZW50TGlzdGVuZXJzKG5hbWUpCi17Ci0gICAgdmFy
IG5vZGUgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2sobmFtZSk7Ci0gICAgbm9kZS5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcmVjb3JkRXZlbnQsIGZhbHNlKTsKLX0KLQotdGFyZ2V0
LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdBJ30sCi0gICAgICAg
ICAgY3JlYXRlU2hhZG93Um9vdCgpKSk7Ci1hZGRUb3VjaEV2ZW50TGlzdGVuZXJzKCdBLycpOwot
Ci1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgIHRhcmdldC5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKHRhcmdldCk7Ci0gICAgZ2MoKTsKLSAgICBkZWJ1ZygiUEFTUyB1bmxlc3MgY3Jhc2giKTsK
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIDApOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRy
aWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0cmlidXRlLWZlYXR1cmVzZXQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTM4ICswLDAgQEAKLUlkIHNob3VsZCBiZSBjb2xsZWN0ZWQKLVBBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxz
ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJob3N0Iikg
aXMgZmFsc2UKLQotQ2xhc3Mgc2hvdWxkIGJlIGNvbGxlY3RlZAotUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCi1QQVNTIGludGVy
bmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImhvc3QiKSBpcyBmYWxzZQot
Ci1BdHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiaG9zdCIpIGlzIGZhbHNl
Ci0KLVNlbGVjdCBhdHRyaWJ1dGUgbWlnaHQgaGF2ZSBzZXZlcmFsIHNlbGVjdG9ycwotUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCi1Q
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIp
IGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9z
dCwgImZvbyIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5T
aGFkb3coaG9zdCwgImJhciIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
Q2xhc3NJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCi1QQVNTIGlu
dGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBm
YWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0
LCAiYmF6IikgaXMgdHJ1ZQotCi1Eb24ndCBjb3VudCBzaGFkb3cgZWxlbWVudAotUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKSBpcyBmYWxzZQotUEFT
UyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxz
ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXoiKSBp
cyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3Qs
ICJmb28iKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hh
ZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JD
bGFzc0luU2hhZG93KGhvc3QsICJiYXoiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKLVBBU1MgaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3Qs
ICJiYXoiKSBpcyBmYWxzZQotCi1Db21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290Ci1Q
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZv
byIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hh
ZG93KGhvc3QsICJmb28iKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0
dHJpYnV0ZUluU2hhZG93KGhvc3QsICJwaXlvIikgaXMgZmFsc2UKLQotQW5vdGhlciBjb21wbGV4
IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290Ci1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZv
cklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotCi1N
dWx0aXBsZSBTaGFkb3dSb290IGNhc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJ
blNoYWRvdyhob3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JJZEluU2hhZG93KGhvc3QsICJiYXIiKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5o
YXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIGZhbHNlCi1QQVNTIGlu
dGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImJhciIpIGlzIHRydWUK
LVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmF6Iikg
aXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3co
aG9zdCwgImZvbyIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJiYXIiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQotCi1EeW5hbWlj
IHNlbGVjdCBhdHRyaWJ1dGUgdXBkYXRlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklk
SW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9y
Rm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgdHJ1ZQotCi1OZXN0ZWQg
U2hhZG93RE9NIGNhc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyho
b3N0LCAiZm9vIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hh
ZG93KGhvc3QsICJiYXIiKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvcklk
SW5TaGFkb3coaG9zdCwgImJheiIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpIGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IikgaXMgdHJ1ZQotCi1Qc2V1ZG9D
bGFzcyBjYXNlOiA6Y2hlY2tlZAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9D
bGFzc0luU2hhZG93KGhvc3QsICJjaGVja2VkIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJlbmFibGVkIikgaXMgZmFsc2UK
LVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAi
ZGlzYWJsZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9D
bGFzc0luU2hhZG93KGhvc3QsICJpbmRldGVybWluYXRlIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAibGluayIpIGlzIGZh
bHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9z
dCwgInRhcmdldCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVk
b0NsYXNzSW5TaGFkb3coaG9zdCwgInZpc2l0ZWQiKSBpcyBmYWxzZQotCi1Qc2V1ZG9DbGFzcyBj
YXNlOiA6ZW5hYmxlZAotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0lu
U2hhZG93KGhvc3QsICJjaGVja2VkIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZW5hYmxlZCIpIGlzIHRydWUKLVBBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZGlzYWJs
ZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0lu
U2hhZG93KGhvc3QsICJpbmRldGVybWluYXRlIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAibGluayIpIGlzIGZhbHNlCi1Q
QVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInRh
cmdldCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNz
SW5TaGFkb3coaG9zdCwgInZpc2l0ZWQiKSBpcyBmYWxzZQotCi1Qc2V1ZG9DbGFzcyBjYXNlOiA6
ZGlzYWJsZWQKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRv
dyhob3N0LCAiY2hlY2tlZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZv
clBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImVuYWJsZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIp
IGlzIHRydWUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRv
dyhob3N0LCAiaW5kZXRlcm1pbmF0ZSIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKSBpcyBmYWxzZQotUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQi
KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hh
ZG93KGhvc3QsICJ2aXNpdGVkIikgaXMgZmFsc2UKLQotUHNldWRvQ2xhc3MgY2FzZTogOmluZGV0
ZXJtaW5hdGUKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRv
dyhob3N0LCAiY2hlY2tlZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZv
clBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImVuYWJsZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIp
IGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFk
b3coaG9zdCwgImluZGV0ZXJtaW5hdGUiKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5oYXNTZWxl
Y3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKSBpcyBmYWxzZQotUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQi
KSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hh
ZG93KGhvc3QsICJ2aXNpdGVkIikgaXMgZmFsc2UKLQotUHNldWRvQ2xhc3MgY2FzZTogOmxpbmsK
LVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAi
Y2hlY2tlZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0Ns
YXNzSW5TaGFkb3coaG9zdCwgImVuYWJsZWQiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIpIGlzIGZhbHNl
Ci1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwg
ImluZGV0ZXJtaW5hdGUiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQ
c2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJsaW5rIikgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyBmYWxz
ZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3Qs
ICJ2aXNpdGVkIikgaXMgZmFsc2UKLQotUHNldWRvQ2xhc3MgY2FzZTogOnRhcmdldAotUEFTUyBp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJjaGVja2Vk
IikgaXMgZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNo
YWRvdyhob3N0LCAiZW5hYmxlZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3Rv
ckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImRpc2FibGVkIikgaXMgZmFsc2UKLVBBU1Mg
aW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRl
cm1pbmF0ZSIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0Ns
YXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyB0cnVlCi1QQVNT
IGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInZpc2l0
ZWQiKSBpcyBmYWxzZQotCi1Qc2V1ZG9DbGFzcyBjYXNlOiA6dmlzaXRlZAotUEFTUyBpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJjaGVja2VkIikgaXMg
ZmFsc2UKLVBBU1MgaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyho
b3N0LCAiZW5hYmxlZCIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBz
ZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImRpc2FibGVkIikgaXMgZmFsc2UKLVBBU1MgaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0
ZSIpIGlzIGZhbHNlCi1QQVNTIGludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5T
aGFkb3coaG9zdCwgImxpbmsiKSBpcyBmYWxzZQotUEFTUyBpbnRlcm5hbHMuaGFzU2VsZWN0b3JG
b3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQiKSBpcyBmYWxzZQotUEFTUyBpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ2aXNpdGVkIikg
aXMgdHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1zZWxlY3QtYXR0
cmlidXRlLWZlYXR1cmVzZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXNlbGVjdC1hdHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXNlbGVjdC1h
dHRyaWJ1dGUtZmVhdHVyZXNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI3MyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ct
ZG9tLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08ZGl2IGlkPSJjb250YWluZXIi
PjwvZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0Q2FzZShmKQotewotICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKLSAgICBjb250YWlu
ZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSkpOwotICAgIHNo
YWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChob3N0KTsKLQotICAgIGYoKTsKLSAgICBk
ZWJ1ZygnJyk7Ci19Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnSWQgc2hv
dWxkIGJlIGNvbGxlY3RlZCcpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOwotICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICdm
YWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJob3N0IiknLCAnZmFsc2UnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17
Ci0gICAgZGVidWcoJ0NsYXNzIHNob3VsZCBiZSBjb2xsZWN0ZWQnKTsKLQotICAgIHNoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iLmZvbyI+PC9jb250ZW50Pic7Ci0gICAg
c2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNzSW5TaGFkb3coaG9zdCwgImZv
byIpJywgJ3RydWUnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xh
c3NJblNoYWRvdyhob3N0LCAiaG9zdCIpJywgJ2ZhbHNlJyk7Ci19KTsKLQotdGVzdENhc2UoZnVu
Y3Rpb24oKQotewotICAgIGRlYnVnKCdBdHRyaWJ1dGUgc2hvdWxkIGJlIGNvbGxlY3RlZCcpOwot
Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSJkaXZbZm9vXSI+
PC9jb250ZW50Pic7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVy
bmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJob3N0IiknLCAnZmFs
c2UnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ1NlbGVjdCBh
dHRyaWJ1dGUgbWlnaHQgaGF2ZSBzZXZlcmFsIHNlbGVjdG9ycycpOwotCi0gICAgc2hhZG93Um9v
dC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vLC5iYXIsZGl2W2Jhel0iPjwvY29u
dGVudD4nOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93
KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUo
J2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNl
Jyk7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQ2xhc3NJblNoYWRv
dyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yQ2xhc3NJblNoYWRvdyhob3N0LCAiYmFyIiknLCAndHJ1ZScpOwotICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXoiKScs
ICdmYWxzZScpOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJp
YnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRl
cm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFs
c2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5T
aGFkb3coaG9zdCwgImJheiIpJywgJ3RydWUnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigp
Ci17Ci0gICAgZGVidWcoJ0RvblwndCBjb3VudCBzaGFkb3cgZWxlbWVudCcpOwotCi0gICAgc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAnPHNoYWRvdyBzZWxlY3Q9IiNmb28sLmJhcixkaXZbYmF6XSI+
PC9zaGFkb3c+JzsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNo
YWRvdyhob3N0LCAiZm9vIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhh
c1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKLSAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAn
ZmFsc2UnKTsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0lu
U2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOwotICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJi
YXoiKScsICdmYWxzZScpOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZv
ckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmFyIikn
LCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yQXR0cmli
dXRlSW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7Ci19KTsKLQotdGVzdENhc2UoZnVu
Y3Rpb24oKQotewotICAgIGRlYnVnKCdDb21wbGV4IGNhc2UgZm9yIHNpbmdsZSBTaGFkb3dSb290
Jyk7Ci0KLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2PjxkaXY+PC9kaXY+PGNvbnRl
bnQgc2VsZWN0PSIqIj48L2NvbnRlbnQ+PGRpdj48Y29udGVudCBzZWxlY3Q9ImRpdltmb289cGl5
b10iPjwvY29udGVudD48L2Rpdj4nOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0
b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxz
ZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNo
YWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAicGl5byIpJywgJ2ZhbHNlJyk7Ci19
KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdBbm90aGVyIGNvbXBsZXgg
Y2FzZSBmb3Igc2luZ2xlIFNoYWRvd1Jvb3QnKTsKLQotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1M
ID0gJzxjb250ZW50IHNlbGVjdD0iI2ZvbywuZm9vLGRpdltmb29dIj48L2NvbnRlbnQ+JzsKLSAg
ICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9v
IiknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFz
c0luU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7
Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRlYnVnKCdNdWx0aXBsZSBTaGFk
b3dSb290IGNhc2UnKTsKLQotICAgIHZhciBhbm90aGVyU2hhZG93Um9vdCA9IGhvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRl
bnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKLSAgICBhbm90aGVyU2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+PGNvbnRlbnQgc2VsZWN0
PSJkaXZbYmF6XSwuYmFyIj48L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
aGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hv
dWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywg
J3RydWUnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRv
dyhob3N0LCAiYmF6IiknLCAnZmFsc2UnKTsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJmb28iKScsICdmYWxzZScpOwotICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JDbGFzc0luU2hhZG93KGhvc3QsICJiYXIi
KScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckNsYXNz
SW5TaGFkb3coaG9zdCwgImJheiIpJywgJ2ZhbHNlJyk7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9yQXR0cmlidXRlSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNl
Jyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvckF0dHJpYnV0ZUluU2hh
ZG93KGhvc3QsICJiYXIiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JBdHRyaWJ1dGVJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOwotfSk7
Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnRHluYW1pYyBzZWxlY3QgYXR0
cmlidXRlIHVwZGF0ZScpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQg
c2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJmb28iKScsICd0cnVlJyk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImJhciIpJywgJ2Zh
bHNlJyk7Ci0KLSAgICB2YXIgY29udGVudCA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignY29u
dGVudCcpOwotICAgIGNvbnRlbnQuc2VsZWN0ID0gJyNiYXInOwotCi0gICAgc2hvdWxkQmUoJ2lu
dGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwgImZvbyIpJywgJ2ZhbHNlJyk7
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImJhciIpJywgJ3RydWUnKTsKLX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVi
dWcoJ05lc3RlZCBTaGFkb3dET00gY2FzZScpOwotCi0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwg
PSAnPGNvbnRlbnQgc2VsZWN0PSIjZm9vIj48L2NvbnRlbnQ+JzsKLQotICAgIHZhciBkaXYgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIgbmVzdGVkU2hhZG93Um9vdCA9
IGRpdi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgbmVzdGVkU2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjYmFyIj48L2NvbnRlbnQ+JzsKLSAgICBzaGFkb3dS
b290LmFwcGVuZENoaWxkKGRpdik7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVj
dG9yRm9ySWRJblNoYWRvdyhob3N0LCAiZm9vIiknLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JJZEluU2hhZG93KGhvc3QsICJiYXIiKScsICd0cnVlJyk7
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImJheiIpJywgJ2ZhbHNlJyk7Ci0KLSAgICB2YXIgY29udGVudCA9IG5lc3RlZFNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignY29udGVudCcpOwotICAgIGNvbnRlbnQuc2VsZWN0ID0gJyNiYXonOwot
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvcklkSW5TaGFkb3coaG9zdCwg
ImZvbyIpJywgJ3RydWUnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
SWRJblNoYWRvdyhob3N0LCAiYmFyIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9ySWRJblNoYWRvdyhob3N0LCAiYmF6IiknLCAndHJ1ZScpOwotfSk7
Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnUHNldWRvQ2xhc3MgY2FzZTog
OmNoZWNrZWQnKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9
ImlucHV0OmNoZWNrZWQiPjwvY29udGVudD4nOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImNoZWNrZWQiKScsICd0cnVl
Jyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5T
aGFkb3coaG9zdCwgImVuYWJsZWQiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5h
bHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIpJywg
J2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0Ns
YXNzSW5TaGFkb3coaG9zdCwgImluZGV0ZXJtaW5hdGUiKScsICdmYWxzZScpOwotICAgIHNob3Vs
ZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJs
aW5rIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9y
UHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAidGFyZ2V0IiknLCAnZmFsc2UnKTsKLSAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAi
dmlzaXRlZCIpJywgJ2ZhbHNlJyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAg
IGRlYnVnKCdQc2V1ZG9DbGFzcyBjYXNlOiA6ZW5hYmxlZCcpOwotICAgIHNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iaW5wdXQ6ZW5hYmxlZCI+PC9jb250ZW50Pic7Ci0K
LSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRv
dyhob3N0LCAiY2hlY2tlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5o
YXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImVuYWJsZWQiKScsICd0cnVl
Jyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5T
aGFkb3coaG9zdCwgImRpc2FibGVkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJu
YWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0
ZSIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBz
ZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJn
ZXQiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQ
c2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ2aXNpdGVkIiknLCAnZmFsc2UnKTsKLX0pOwotCi10
ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ1BzZXVkb0NsYXNzIGNhc2U6IDpkaXNh
YmxlZCcpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iaW5w
dXQ6ZGlzYWJsZWQiPjwvY29udGVudD4nOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNT
ZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImNoZWNrZWQiKScsICdmYWxzZScp
OwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hh
ZG93KGhvc3QsICJlbmFibGVkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZGlzYWJsZWQiKScsICd0
cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNz
SW5TaGFkb3coaG9zdCwgImluZGV0ZXJtaW5hdGUiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJsaW5r
IiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNl
dWRvQ2xhc3NJblNoYWRvdyhob3N0LCAidGFyZ2V0IiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAidmlz
aXRlZCIpJywgJ2ZhbHNlJyk7Ci19KTsKLQotdGVzdENhc2UoZnVuY3Rpb24oKQotewotICAgIGRl
YnVnKCdQc2V1ZG9DbGFzcyBjYXNlOiA6aW5kZXRlcm1pbmF0ZScpOwotICAgIHNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iaW5wdXQ6aW5kZXRlcm1pbmF0ZSI+PC9jb250
ZW50Pic7Ci0KLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xh
c3NJblNoYWRvdyhob3N0LCAiY2hlY2tlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2lu
dGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImVuYWJsZWQi
KScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1
ZG9DbGFzc0luU2hhZG93KGhvc3QsICJkaXNhYmxlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImlu
ZGV0ZXJtaW5hdGUiKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxl
Y3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKScsICdmYWxzZScpOwotICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhv
c3QsICJ0YXJnZXQiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2Vs
ZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ2aXNpdGVkIiknLCAnZmFsc2UnKTsK
LX0pOwotCi10ZXN0Q2FzZShmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ1BzZXVkb0NsYXNzIGNh
c2U6IDpsaW5rJyk7Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0
PSJpbnB1dDpsaW5rIj48L2NvbnRlbnQ+JzsKLQotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFz
U2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJjaGVja2VkIiknLCAnZmFsc2Un
KTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNo
YWRvdyhob3N0LCAiZW5hYmxlZCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFs
cy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImRpc2FibGVkIiknLCAn
ZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xh
c3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0ZSIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImxp
bmsiKScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBz
ZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInRhcmdldCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxk
QmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInZp
c2l0ZWQiKScsICdmYWxzZScpOwotfSk7Ci0KLXRlc3RDYXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBk
ZWJ1ZygnUHNldWRvQ2xhc3MgY2FzZTogOnRhcmdldCcpOwotICAgIHNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gJzxjb250ZW50IHNlbGVjdD0iaW5wdXQ6dGFyZ2V0Ij48L2NvbnRlbnQ+JzsKLQotICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhv
c3QsICJjaGVja2VkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZW5hYmxlZCIpJywgJ2ZhbHNlJyk7
Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFk
b3coaG9zdCwgImRpc2FibGVkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxz
Lmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiaW5kZXRlcm1pbmF0ZSIp
JywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVk
b0NsYXNzSW5TaGFkb3coaG9zdCwgImxpbmsiKScsICdmYWxzZScpOwotICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhvc3QsICJ0YXJnZXQi
KScsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVk
b0NsYXNzSW5TaGFkb3coaG9zdCwgInZpc2l0ZWQiKScsICdmYWxzZScpOwotfSk7Ci0KLXRlc3RD
YXNlKGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnUHNldWRvQ2xhc3MgY2FzZTogOnZpc2l0ZWQn
KTsKLSAgICBzaGFkb3dSb290LmlubmVySFRNTCA9ICc8Y29udGVudCBzZWxlY3Q9ImlucHV0OnZp
c2l0ZWQiPjwvY29udGVudD4nOwotCi0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3Rv
ckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgImNoZWNrZWQiKScsICdmYWxzZScpOwotICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hhZG93KGhv
c3QsICJlbmFibGVkIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLmhhc1Nl
bGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAiZGlzYWJsZWQiKScsICdmYWxzZScp
OwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMuaGFzU2VsZWN0b3JGb3JQc2V1ZG9DbGFzc0luU2hh
ZG93KGhvc3QsICJpbmRldGVybWluYXRlIiknLCAnZmFsc2UnKTsKLSAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLmhhc1NlbGVjdG9yRm9yUHNldWRvQ2xhc3NJblNoYWRvdyhob3N0LCAibGluayIpJywg
J2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2ludGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0Ns
YXNzSW5TaGFkb3coaG9zdCwgInRhcmdldCIpJywgJ2ZhbHNlJyk7Ci0gICAgc2hvdWxkQmUoJ2lu
dGVybmFscy5oYXNTZWxlY3RvckZvclBzZXVkb0NsYXNzSW5TaGFkb3coaG9zdCwgInZpc2l0ZWQi
KScsICd0cnVlJyk7Ci19KTsKLQotZmluaXNoSlNUZXN0KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdHJl
ZS1saXN0ZW5lci1jbGVhcmFuY2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdHJlZS1saXN0ZW5lci1jbGVhcmFuY2UtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXRyZWUtbGlzdGVuZXItY2xlYXJhbmNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICswLDAgQEAKLVBBU1MgZmlyZWRDb3VudCBpcyAxCi1QQVNTIGZpcmVkQ291bnQg
aXMgMQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdHJlZS1saXN0ZW5lci1j
bGVhcmFuY2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXRyZWUtbGlzdGVuZXItY2xlYXJhbmNlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdHJlZS1saXN0ZW5lci1jbGVhcmFu
Y2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxpZnJhbWUgaWQ9ImNoaWxkRnJhbWUiIHNyYz0iLi9yZXNvdXJj
ZXMvc2hhZG93LXRyZWUtbGlzdGVuZXItY2xlYXJhbmNlLWZyYW1lLmh0bWwiPjwvaWZyYW1lPgot
PHNjcmlwdD4KLQotdmFyIGNoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkRnJh
bWUiKTsKLXZhciBmaXJlZENvdW50ID0gMDsKLQotZnVuY3Rpb24gZ2V0Q2hpbGRUYXJnZXQoKQot
ewotICAgIHJldHVybiBjaGlsZC5jb250ZW50RG9jdW1lbnQudGFyZ2V0SW5TaGFkb3c7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciB0b0JlTGlzdGVuZWQgPSBnZXRDaGlsZFRhcmdl
dCgpOwotICAgIHRvQmVMaXN0ZW5lZC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IiwgZnVuY3Rpb24o
ZXZlbnQpIHsgZmlyZWRDb3VudCsrOyB9KTsKLQotICAgIHRvQmVMaXN0ZW5lZC5kaXNwYXRjaEV2
ZW50KG5ldyBDdXN0b21FdmVudCgidGVzdCIpKTsKLSAgICBzaG91bGRCZSgiZmlyZWRDb3VudCIs
ICIxIik7Ci0KLSAgICB3aW5kb3cuY2hpbGQuY29udGVudERvY3VtZW50Lm9wZW4oKTsgLy8gVGhp
cyBzaG91bGQgY2xlYXIgZXZlbnQgbGlzdGVuZXJzCi0gICAgdG9CZUxpc3RlbmVkLmRpc3BhdGNo
RXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0ZXN0IikpOwotICAgIHNob3VsZEJlKCJmaXJlZENvdW50
IiwgIjEiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLWNoaWxkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0ZXN0KTsKLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXVsLWxpLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXVsLWxpLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy11bC1saS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEgKzAsMCBAQAotUEFTUyB1bmxlc3MgY3Jhc2guCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXVsLWxpLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy11bC1saS5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXVsLWxpLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMjYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaG9zdCk7Ci0gICAgdmFyIHNoYWRvdyA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotCi0gICAgdmFyIHVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKLSAg
ICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwotICAgIHVsLmFwcGVuZENo
aWxkKGxpKTsKLSAgICBzaGFkb3cuYXBwZW5kQ2hpbGQodWwpOwotICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0TGVmdDsKLQotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gJ1BBU1MgdW5sZXNz
IGNyYXNoLic7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZHluYW1pYy1zdHlsaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWR5bmFtaWMtc3R5bGluZy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZHluYW1pYy1zdHlsaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwx
MCArMCwwIEBACi1UZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTI4OTkuIER5bmFtaWNhbGx5IHN0eWxpbmcgU2hhZG93RG9tIGNvbnRlbnQgb24gYSBub2Rl
IGRpc3RyaWJ1dGVkIHRvIGFub3RoZXIgc2hhZG93IGluc2VydGlvbiBwb2ludCBmYWlscy4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZHluYW1pYy1zdHlsaW5nLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1keW5hbWljLXN0
eWxpbmcuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1keW5hbWljLXN0eWxpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwz
NiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0
PgotZGVzY3JpcHRpb24oIlRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05Mjg5OS4gRHluYW1pY2FsbHkgc3R5bGluZyBTaGFkb3dEb20gY29udGVudCBvbiBh
IG5vZGUgZGlzdHJpYnV0ZWQgdG8gYW5vdGhlciBzaGFkb3cgaW5zZXJ0aW9uIHBvaW50IGZhaWxz
LiIpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgPGRpdiBpZD0iYm94IiBzdHlsZT0i
Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7Ij4KLSAgICA8ZGl2IGlkPSJpdGVtIj48ZGl2PkNvbnRl
bnQgcmVxdWlyZWQgaGVyZSB0byByZXByb2R1Y2UgYnVnLjwvZGl2PjwvZGl2PgotICA8L2Rpdj4K
LTxzY3JpcHQ+Ci12YXIgYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JveCIpOwotdmFy
IG9sZGVzdFNoYWRvd1Jvb3QgPSBib3gud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotb2xkZXN0
U2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250ZW50PiI7Ci0gICAgCi12YXIg
eW91bmdlc3RTaGFkb3dSb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2l0ZW0iKS53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci15b3VuZ2VzdFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxz
dHlsZT4iICsKLSAgICAgICIuc2VsZWN0ZWQge2JhY2tncm91bmQ6IHJlZDt9IiArCi0gICAgICAi
PC9zdHlsZT4iICsKLSAgICAgICI8ZGl2IGlkPSd0YXJnZXQnPkNvbnRlbnQ8L2Rpdj4iOwotCi1k
b2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAgCi10YXJnZXQgPSB5b3VuZ2VzdFNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcigiZGl2Iik7Ci10YXJnZXQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQi
KTsKLXNob3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmJhY2tncm91bmRD
b2xvcicsICcicmdiKDI1NSwgMCwgMCkiJyk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRv
bi1jb21wbGV4LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1jb21wbGV4LXNoYWRvdy1leHBl
Y3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1idXR0b24tY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJv
ZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+
QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+
Ci08Zm9ybT4KLSAgICA8YnV0dG9uPjxzcGFuPmJ1dHRvbiAyPC9zcGFuPmJ1dHRvbiAxPC9idXR0
b24+Ci08L2Zvcm0+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1jb21wbGV4LXNoYWRvdy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRv
bi1jb21wbGV4LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24tY29tcGxleC1zaGFkb3cuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQot
PHA+QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48
L3A+Ci08Zm9ybT4KLSAgICA8YnV0dG9uIGlkPSJob3N0Ij5idXR0b24gMTxzcGFuPmJ1dHRvbiAy
PC9zcGFuPjwvYnV0dG9uPgotPC9mb3JtPgotCi08c2NyaXB0PgotdmFyIGhvc3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxkaXY+PGNvbnRlbnQg
c2VsZWN0PSJzcGFuIj48L2NvbnRlbnQ+PHNoYWRvdz48L3NoYWRvdz48L2Rpdj4nCi08L3Njcmlw
dD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItYnV0dG9uLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItYnV0dG9uLWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWJ1dHRvbi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotCi08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gYSBidXR0b24gZWxlbWVudCBo
YXMgYSBzaGFkb3cgZG9tIGhhdmluZyBhIHNoYWRvdyBlbGVtZW50LCBpdCBzaG91bGQgZ2V0IHRo
ZSBjaGlsZHJlbiBvZiB0aGUgYnV0dG9uIGVsZW1lbnQuPC9wPgotCi08YnV0dG9uPktvdG9yaSBP
dG9uYXNoaTwvYnV0dG9uPgotPGJ1dHRvbj5GT08gZm9vIEtvdG9yaSBiYXIgQkFSPC9idXR0b24+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWJ1dHRvbi1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi1vbmx5
LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24tb25seS1zaGFkb3ctZXhwZWN0ZWQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVsZW1l
bnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRlZC48
L3A+Ci08Zm9ybT4KLSAgICA8YnV0dG9uPmJ1dHRvbjwvYnV0dG9uPgotPC9mb3JtPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1idXR0b24tb25seS1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24tb25seS1zaGFkb3cuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItYnV0dG9uLW9ubHktc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBo
YXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIG5v
IFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPGJ1dHRvbiBpZD0iaG9zdCI+
YnV0dG9uPC9idXR0b24+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRvdz48L3NoYWRv
dz4iCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLWJ1dHRvbi13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24td2l0
aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGRv
ZXMgbm90IGhhdmUgYSBzaGFkb3cgZWxlbWVudCwgdGhlIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBy
ZW5kZXJlZC48L3A+Ci08Zm9ybT4KLSAgICA8YnV0dG9uPjwvYnV0dG9uPgotPC9mb3JtPgotCi08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1idXR0b24td2l0aG91dC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1idXR0b24td2l0aG91dC1zaGFkb3cu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItYnV0dG9uLXdpdGhvdXQtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhv
clNoYWRvd0RPTSBkb2VzIG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQsIHRoZSBjb250ZW50IHNo
b3VsZCBub3QgYmUgcmVuZGVyZWQuPC9wPgotPGZvcm0+Ci0gICAgPGJ1dHRvbiBpZD0iaG9zdCI+
c29tZXRoaW5nPC9idXR0b24+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1dHRvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWJ1
dHRvbi5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1idXR0b24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIGEgYnV0dG9uIGVsZW1lbnQg
aGFzIGEgc2hhZG93IGRvbSBoYXZpbmcgYSBzaGFkb3cgZWxlbWVudCwgaXQgc2hvdWxkIGdldCB0
aGUgY2hpbGRyZW4gb2YgdGhlIGJ1dHRvbiBlbGVtZW50LjwvcD4KLQotPGJ1dHRvbiBpZD0iaG9z
dDEiPktvdG9yaTwvYnV0dG9uPgotPGJ1dHRvbiBpZD0iaG9zdDIiPktvdG9yaTwvYnV0dG9uPgot
Ci08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotc2hhZG93Um9vdDEuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IE90b25hc2hp
IjsKLQotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwot
c2hhZG93Um9vdDIuaW5uZXJIVE1MID0gImZvbyA8c2hhZG93Pjwvc2hhZG93PiBiYXIiOwotdmFy
IHNoYWRvd1Jvb3QzID0gaG9zdDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9v
dDMuaW5uZXJIVE1MID0gIkZPTyA8c2hhZG93Pjwvc2hhZG93PiBCQVIiOwotPC9zY3JpcHQ+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWZpZWxkc2V0LWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZmllbGRzZXQt
Y29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZmllbGRzZXQtY29tcGxleC1zaGFk
b3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
Ci08cD5BIG1peGVkIGNhc2Ugb2YgYSBzaGFkb3cgZWxlbWVudCBhbmQgY29udGVudCBlbGVtZW50
LjwvcD4KLTxmb3JtPgotICAgIDxsZWdlbmQ+bGVnZW5kPC9sZWdlbj4KLSAgICA8aW5wdXQgdHlw
ZT0idGV4dCI+PC9pbnB1dD4KLSAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDIwcHgiPgotICAgICAg
ICA8ZmllbGRzZXQ+PC9maWVsZHNldD4KLSAgICA8L2Rpdj4gICAgCi0gICAgPGlucHV0IGlkPSJz
dWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC1jb21wbGV4LXNo
YWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLWZpZWxkc2V0LWNvbXBsZXgtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LWNv
bXBsZXgtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4K
LQotPHA+QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVu
dC48L3A+Ci08Zm9ybT4KLSAgICA8ZmllbGRzZXQgaWQ9Imhvc3QiPgotICAgICAgICA8bGVnZW5k
PmxlZ2VuZDwvbGVnZW5kPgotICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCI+PC9pbnB1dD4KLSAg
ICA8L2ZpZWxkc2V0PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVl
PSJTdWJtaXQiPgotPC9mb3JtPgotCi08c2NyaXB0PgotdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaG9zdCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNo
YWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxjb250ZW50PjwvY29udGVudD48
ZGl2IHN0eWxlPSdtYXJnaW46IDIwcHgnPjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+IgotPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVs
ZHNldC1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LW9ubHktc2hhZG93LWV4cGVj
dGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0LW9ubHktc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hh
ZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVk
IGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8ZmllbGRzZXQg
aWQ9Imhvc3QiPgotICAgICAgICA8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPgotICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCI+PC9pbnB1dD4KLSAgICA8L2ZpZWxkc2V0PgotICAgIDxpbnB1dCBpZD0i
c3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZmllbGRzZXQtb25seS1zaGFk
b3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1maWVsZHNldC1vbmx5LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC1vbmx5LXNo
YWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIwICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldo
ZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNo
b3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+
Ci0gICAgPGZpZWxkc2V0IGlkPSJob3N0Ij4KLSAgICAgICAgPGxlZ2VuZD5sZWdlbmQ8L2xlZ2Vu
ZD4KLSAgICAgICAgPGlucHV0IHR5cGU9InRleHQiPjwvaW5wdXQ+Ci0gICAgPC9maWVsZHNldD4K
LSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwv
Zm9ybT4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQot
dmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotdmFyIHNoYWRvd1Jv
b3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1M
ID0gIjxzaGFkb3c+PC9zaGFkb3c+IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC13aXRob3V0LXNoYWRvdy1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWZpZWxkc2V0LXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxk
c2V0LXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gZG9lcyBub3QgaGF2
ZSBhIFNoYWRvdyBET00sIHRoZSBjb250ZW50IHdvbid0IGJlIHJlbmRlcmVkLjwvcD4KLTxmb3Jt
PgotICAgIDxkaXYgaWQ9InNlbGVjdCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAzMHB4
OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJvcmRlcjogMCI+PC9kaXY+Ci0gICAgPGlucHV0IGlk
PSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1maWVsZHNldC13aXRob3V0
LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLWZpZWxkc2V0LXdpdGhvdXQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZpZWxkc2V0
LXdpdGhvdXQtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGRvZXMgbm90IGhhdmUgYSBTaGFkb3cg
RE9NLCB0aGUgY29udGVudCB3b24ndCBiZSByZW5kZXJlZC48L3A+Ci08Zm9ybT4KLSAgICA8Zmll
bGRzZXQgaWQ9Imhvc3QiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMzBweDsgbWFyZ2lu
OiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IDAiPgotICAgICAgICA8bGVnZW5kPmxlZ2VuZDwvbGVn
ZW5kPgotICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCI+PC9pbnB1dD4KLSAgICA8L2ZpZWxkc2V0
PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgot
PC9mb3JtPgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0
cnVlKTsKLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKLXZhciBz
aGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci08L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWZvcm0tYXNzb2Np
YXRlZC1lbGVtZW50LXVzZXJhZ2VudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZm9ybS1hc3NvY2lhdGVkLWVsZW1l
bnQtdXNlcmFnZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQt
dXNlcmFnZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi1X
aGVuIGEgQXV0aG9yU2hhZG93Um9vdCBpcyBhZGRlZCwgVXNlckFnZW50U2hhZG93Um9vdCBzaG91
bGQgZXhpc3RzIGFzIHRoZSBvbGRlc3QgU2hhZG93IFJvb3QuCi0KLVBBU1Mgb2xkZXN0U2hhZG93
Um9vdCBpcyBub3Qgc2hhZG93Um9vdAotUEFTUyB5b3VuZ2VyU2hhZG93Um9vdCBpcyBzaGFkb3dS
b290Ci1QQVNTIG9sZGVzdFNoYWRvd1Jvb3QgaXMgbm90IHNoYWRvd1Jvb3QKLVBBU1MgeW91bmdl
clNoYWRvd1Jvb3QgaXMgc2hhZG93Um9vdAotUEFTUyBvbGRlc3RTaGFkb3dSb290IGlzIG5vdCBz
aGFkb3dSb290Ci1QQVNTIHlvdW5nZXJTaGFkb3dSb290IGlzIHNoYWRvd1Jvb3QKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1mb3JtLWFzc29jaWF0ZWQtZWxlbWVu
dC11c2VyYWdlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1mb3JtLWFzc29jaWF0ZWQtZWxlbWVudC11c2VyYWdlbnQuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtdXNlcmFnZW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiBh
IEF1dGhvclNoYWRvd1Jvb3QgaXMgYWRkZWQsIFVzZXJBZ2VudFNoYWRvd1Jvb3Qgc2hvdWxkIGV4
aXN0cyBhcyB0aGUgb2xkZXN0IFNoYWRvdyBSb290LjwvcD4KLTxkaXYgaWQ9J2NvbnRhaW5lcic+
Ci0gICAgPGZvcm0+Ci0gICAgICAgIDxzZWxlY3QgaWQ9J3NlbGVjdCc+PG9wdGlvbj5ob2dlPC9v
cHRpb24+PC9zZWxlY3Q+Ci0gICAgICAgIDxvdXRwdXQgaWQ9J291dHB1dCc+PC9vdXRwdXQ+Ci0g
ICAgICAgIDxrZXlnZW4gaWQ9J2tleWdlbic+PC9rZXlnZW4+Ci0gICAgICAgIDxmaWVsZHNldCBp
ZD0nZmllbGRzZXQnPgotICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiPgotICAgICAgICAg
ICAgPGxlZ2VuZD5ob2dlaG9nZTwvbGVnZW5kPgotICAgICAgICA8L2ZpZWxkc2V0PgotICAgIDwv
Zm9ybT4KLTwvZGl2PgotPHByZSBpZD0nY29uc29sZSc+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci12YXIg
ZWxlbXMgPSBbCi0gICAgInNlbGVjdCIsICJrZXlnZW4iLCAiZmllbGRzZXQiCi1dOwotCi12YXIg
c2hhZG93Um9vdDsKLXZhciBvbGRlc3RTaGFkb3dSb290OwotdmFyIHlvdW5nZXJTaGFkb3dSb290
OwotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlF
bGVtZW50RW5hYmxlZCh0cnVlKTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChl
bGVtc1tpXSk7Ci0gICAgICAgIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLSAgICAgICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz4i
OwotCi0gICAgICAgIG9sZGVzdFNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9v
dChob3N0KTsKLSAgICAgICAgeW91bmdlclNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMueW91bmdlclNo
YWRvd1Jvb3Qob2xkZXN0U2hhZG93Um9vdCk7Ci0gICAgICAgIHNob3VsZE5vdEJlKCdvbGRlc3RT
aGFkb3dSb290JywgJ3NoYWRvd1Jvb3QnKTsKLSAgICAgICAgc2hvdWxkQmUoJ3lvdW5nZXJTaGFk
b3dSb290JywgJ3NoYWRvd1Jvb3QnKTsKLSAgICB9Ci0KLSAgICBjb250YWluZXIuaW5uZXJIVE1M
ID0gIiI7Ci19Ci0KLXRlc3QoKTsKLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1pbWFnZS1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItaW1hZ2UtZXZlbnQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1pbWFnZS1ldmVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNyArMCwwIEBACi1UZXN0cyB0byBlbnN1cmUgdGhhdCBhbiBpbWcgZWxlbWVudCBy
ZWNlaXZlcyBhIGxvYWQgZXZlbnQsIGJ1dCBhbiBpbm5lciBpbWFnZSBlbGVtZW50IGluIHNoYWRv
dyBET00gc3VidHJlZSBkb2VzIG5vdCByZWNlaXZlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCi0KLQotUEFTUyBldmVudC5jdXJyZW50VGFyZ2V0LmlkIGlzICJob3N0IgotCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1pbWFnZS1ldmVudC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWltYWdlLWV2ZW50Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWltYWdlLWV2ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxkaXYgaWQ9ImNvbnRh
aW5lciI+Ci0gICAgPGltZyBpZD0iaG9zdCI+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9NRm9y
QW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0cyB0byBlbnN1cmUg
dGhhdCBhbiBpbWcgZWxlbWVudCByZWNlaXZlcyBhIGxvYWQgZXZlbnQsIGJ1dCBhbiBpbm5lciBp
bWFnZSBlbGVtZW50IGluIHNoYWRvdyBET00gc3VidHJlZSBkb2VzIG5vdCByZWNlaXZlLiIpOwot
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gbGlzdGVuZXIo
ZXZlbnQpIHsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmN1cnJlbnRUYXJnZXQu
aWQiLCAiaG9zdCIpOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7Ci0g
ICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChkaXYpOwotICAgIGRpdi5pZCA9ICdpbm5lci1kaXYnOwotICAgIGRpdi5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgbGlzdGVuZXIsIHRydWUpOwotICAgIGRpdi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cnKSk7Ci19Ci0KLXZhciBob3N0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKLWhvc3QuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIGxpc3RlbmVyLCB0cnVlKTsKLWFkZFNoYWRvd0RPTShob3N0KTsKLWhvc3Quc3JjID0gIi4u
L3Jlc291cmNlcy9hcHBsZS5naWYiOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4tY29tcGxl
eC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4tY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3Ita2V5Z2VuLWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93
IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT48IS0tIG1hcmdpbi10b3Ag
d2lsbCBiZSBjYW5jZWxsZWQgb3V0LCBzbyB3ZSB1c2UgcGFkZGluZy10b3AgaGVyZS4gLS0+Ci0g
ICAgPGRpdiBzdHlsZT0ibWFyZ2luOiAycHggMnB4IDJweDsgcGFkZGluZy10b3A6IDJweDsgZm9u
dDogLXdlYmtpdC1zbWFsbC1jb250cm9sOyI+PHNwYW4gc3R5bGU9ImZvbnQ6IC13ZWJraXQtc21h
bGwtY29udHJvbDsiPmZvb2Jhcjwvc3Bhbj48ZGl2IHN0eWxlPSJtYXJnaW46IDIwcHgiPgotICAg
ICAgICA8a2V5Z2VuIHN0eWxlPSJtYXJnaW46IDAiPgotICAgIDwvZGl2PjwvZGl2PgotPC9mb3Jt
PgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXln
ZW4tY29tcGxleC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4tY29tcGxleC1zaGFkb3cuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
a2V5Z2VuLWNvbXBsZXgtc2hhZG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBjYXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRl
bnQgZWxlbWVudC48L3A+Ci08Zm9ybT4KLSAgICA8a2V5Z2VuIGlkPSJob3N0Ij4KLTwvZm9ybT4K
LQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotaG9zdC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZm9vYmFyJykpOwotCi12YXIgc2hh
ZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250ZW50PjxkaXYgc3R5bGU9J21hcmdpbjogMjBweCc+PHNo
YWRvdz48L3NoYWRvdz48L2Rpdj4iCi08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LWtleWdlbi1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXlnZW4tb25seS1zaGFk
b3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxs
LmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5IGEg
c2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93IERP
TSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8a2V5Z2VuPjwva2V5Z2VuPgotPC9mb3JtPgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3Ita2V5Z2VuLW9ubHktc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Ita2V5Z2VuLW9ubHktc2hhZG93Lmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLWtleWdlbi1vbmx5LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dE
T00gaGFzIG9ubHkgYSBzaGFkb3cgZWxlbWVudCwgdGhpcyBzaG91bGQgYmUgcmVuZGVyZWQgbGlr
ZSBubyBTaGFkb3cgRE9NIGlzIGFkZGVkLjwvcD4KLTxmb3JtPgotICAgIDxrZXlnZW4gaWQ9Imhv
c3QiPjwva2V5Z2VuPgotPC9mb3JtPgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBzaGFkb3cgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzaGFkb3cnKTsKLXNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2hhZG93KTsKLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3Ita2V5Z2VuLXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Ita2V5Z2Vu
LXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi13aXRob3V0LXNoYWRv
dy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQot
PHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGRvZXMgbm90IGhhdmUgYSBTaGFkb3cgRE9NLCB0
aGUgY29udGVudCB3b24ndCBiZSByZW5kZXJlZC48L3A+Ci08Zm9ybT4KLSAgICA8ZGl2IHN0eWxl
PSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OjMwcHg7IG1hcmdp
bjogMDsgcGFkZGluZzogMDsgYm9yZGVyOiAwIj48L2Rpdj4KLSAgICBmb29iYXIKLTwvZm9ybT4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi13
aXRob3V0LXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3dkb20tZm9yLWtleWdlbi13aXRob3V0LXNoYWRvdy5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1rZXln
ZW4td2l0aG91dC1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Bv
bHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGRvZXMg
bm90IGhhdmUgYSBTaGFkb3cgRE9NLCB0aGUgY29udGVudCB3b24ndCBiZSByZW5kZXJlZC48L3A+
Ci08Zm9ybT4KLSAgICA8a2V5Z2VuIGlkPSJob3N0IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6MzBweDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IDAiPjwva2V5Z2VuPgotICAg
IGZvb2JhcgotPC9mb3JtPgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVk
KHRydWUpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgp
OwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZWRpYS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWVkaWEtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1tZWRpYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMCww
IEBACi0gCi1QQVNTIHNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyBpcyB5b3VuZ2VyU2hh
ZG93Um9vdEZvclZpZGVvV2l0aENvbnRyb2xzCi1QQVNTIHNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhD
b250cm9scyBpcyBub3Qgb2xkZXN0U2hhZG93Um9vdEZvclZpZGVvV2l0aENvbnRyb2xzCi1QQVNT
IHNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyBpcyB5b3VuZ2VyU2hhZG93Um9vdEZv
clZpZGVvV2l0aG91dENvbnRyb2xzCi1QQVNTIHNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250
cm9scyBpcyBub3Qgb2xkZXN0U2hhZG93Um9vdEZvclZpZGVvV2l0aG91dENvbnRyb2xzCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWVkaWEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZWRpYS5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1tZWRpYS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQyICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci08dmlkZW8gaWQ9
J3ZpZGVvV2l0aENvbnRyb2xzJyBjb250cm9scyB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92
aWRlbz4KLTx2aWRlbyBpZD0ndmlkZW9XaXRob3V0Q29udHJvbHMnIHdpZHRoPSIzMjAiIGhlaWdo
dD0iMjQwIj48L3ZpZGVvPgotPC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNj
cmlwdD4KLWZ1bmN0aW9uIGFkZFNoYWRvd0RPTShob3N0KSB7Ci0gICAgdmFyIHNoYWRvd1Jvb3Qg
PSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3dSb290LmlubmVySFRN
TCA9ICI8ZGl2IHN0eWxlPSdtYXJnaW46IDEwcHgnPjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+Igot
ICAgIHJldHVybiBzaGFkb3dSb290OwotfQotCi1pZiAod2luZG93LmludGVybmFscykKLSAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRF
bmFibGVkKHRydWUpOwotCi12YXIgc2hhZG93Um9vdEZvclZpZGVvV2l0aENvbnRyb2xzID0gYWRk
U2hhZG93RE9NKHZpZGVvV2l0aENvbnRyb2xzKTsKLXZhciBvbGRlc3RTaGFkb3dSb290Rm9yVmlk
ZW9XaXRoQ29udHJvbHMgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdCh2aWRlb1dpdGhDb250
cm9scyk7Ci12YXIgeW91bmdlclNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyA9IGludGVy
bmFscy55b3VuZ2VyU2hhZG93Um9vdChvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9XaXRoQ29udHJv
bHMpOwotCi12YXIgc2hhZG93Um9vdEZvclZpZGVvV2l0aG91dENvbnRyb2xzID0gYWRkU2hhZG93
RE9NKHZpZGVvV2l0aG91dENvbnRyb2xzKTsKLXZhciBvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9X
aXRob3V0Q29udHJvbHMgPSBpbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdCh2aWRlb1dpdGhvdXRD
b250cm9scyk7Ci12YXIgeW91bmdlclNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyA9
IGludGVybmFscy55b3VuZ2VyU2hhZG93Um9vdChvbGRlc3RTaGFkb3dSb290Rm9yVmlkZW9XaXRo
b3V0Q29udHJvbHMpOwotCi0KLXNob3VsZEJlKCJzaGFkb3dSb290Rm9yVmlkZW9XaXRoQ29udHJv
bHMiLCAieW91bmdlclNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyIpOwotc2hvdWxkTm90
QmUoInNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhDb250cm9scyIsICJvbGRlc3RTaGFkb3dSb290Rm9y
VmlkZW9XaXRoQ29udHJvbHMiKTsKLXNob3VsZEJlKCJzaGFkb3dSb290Rm9yVmlkZW9XaXRob3V0
Q29udHJvbHMiLCAieW91bmdlclNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyIpOwot
c2hvdWxkTm90QmUoInNoYWRvd1Jvb3RGb3JWaWRlb1dpdGhvdXRDb250cm9scyIsICJvbGRlc3RT
aGFkb3dSb290Rm9yVmlkZW9XaXRob3V0Q29udHJvbHMiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItZHluYW1pYy1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLW1ldGVyLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItZHluYW1p
Yy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
InJlc291cmNlcy9yZXBsYWNlZC1lbGVtZW50LXN0eWxlcy5jc3MiPgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxk
aXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBjbGFzcz0ibWV0ZXItbGlrZSI+PG1ldGVyIGNs
YXNzPSJtZXRlci1pbm5lci1lbGVtZW50LWxpa2UiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSIz
MCI+PC9tZXRlcj48c3Bhbj4oYWZ0ZXIpPC9zcGFuPjwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LW1ldGVyLWR5bmFtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci1keW5hbWljLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLWR5bmFt
aWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Nj
cmlwdD4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8bWV0ZXIgaWQ9Imhvc3QiIG1pbj0i
MCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9tZXRlcj4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRv
d0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi1pZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9z
dC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hh
ZG93Pjwvc2hhZG93PjxzcGFuPihhZnRlcik8L3NwYW4+IjsKLQotc2V0VGltZW91dChmdW5jdGlv
bigpIHsKLSAgICBob3N0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCAzMCk7Ci0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDApOwot
PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3ItbWV0ZXItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIj4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgY2xhc3M9Im1ldGVy
LWxpa2UiPjxtZXRlciBjbGFzcz0ibWV0ZXItaW5uZXItZWxlbWVudC1saWtlIiBtaW49IjAiIG1h
eD0iMTAwIiB2YWx1ZT0iNTAiPjwvbWV0ZXI+PHNwYW4+KGFmdGVyKTwvc3Bhbj48L2Rpdj4KLTwv
ZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1tZXRlci1tdWx0aXBsZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLW11bHRp
cGxlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLW11bHRpcGxlLWV4cGVjdGVkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2Vk
LWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4K
LSAgICA8ZGl2IGNsYXNzPSJtZXRlci1saWtlIj4KLSAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2lu
OiAwIDEwcHggMCAxMHB4OyBoZWlnaHQ6IDFlbTsgd2lkdGg6IDVlbTsiPgotICAgICAgICAgICAg
PG1ldGVyIGNsYXNzPSJtZXRlci1pbm5lci1lbGVtZW50LWxpa2UiIG1pbj0iMCIgbWF4PSIxMDAi
IHZhbHVlPSI1MCI+PC9tZXRlcj48c3Bhbj4oYWZ0ZXIpPC9zcGFuPgotICAgICAgICA8L2Rpdj4K
LSAgICA8L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci1tdWx0aXBsZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVy
LW11bHRpcGxlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLW11bHRpcGxlLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci0vKiBXZSBo
YXZlIHRvIHdyaXRlIHRoaXMgZm9yIG5vdy4gUGxlYXNlIHNlZSBCdWcgOTI0NTUuICovCi1tZXRl
cjo6LXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6
IG1ldGVyOwotfQotPC9zdHlsZT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8bWV0ZXIg
aWQ9Imhvc3QiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9tZXRlcj4KLTwvZGl2Pgot
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIgc2hh
ZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz48c3Bhbj4oYWZ0ZXIpPC9zcGFuPiI7Ci0KLXZhciB5
b3VuZ2VyID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci15b3VuZ2VyLmlubmVySFRN
TCA9ICI8ZGl2IHN0eWxlPSdtYXJnaW46IDAgMTBweCAwIDEwcHg7IGhlaWdodDogMWVtOyB3aWR0
aDogNWVtOyc+PHNoYWRvdz48L3NoYWRvdz48L2Rpdj4iOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LW1ldGVyLXdpdGgtc3R5bGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRoLXN0eWxlLWV4cGVjdGVk
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLW1ldGVyLXdpdGgtc3R5bGUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWRpdiN3
cmFwcGVyIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGlu
ZzogMDsKLSAgICB3aWR0aDogYXV0bzsKLSAgICBoZWlnaHQ6IDNlbTsKLSAgICB2ZXJ0aWNhbC1h
bGlnbjogMDsKLX0KLQotbWV0ZXIgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIHdpZHRoOiAx
NWVtOwotICAgIGhlaWdodDogM2VtOwotfQotPC9zdHlsZT4KLQotPGRpdiBpZD0iY29udGFpbmVy
Ij4KLSAgICA8ZGl2IGlkPSJ3cmFwcGVyIiBjbGFzcz0ibWV0ZXItbGlrZSI+Ci0gICAgICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAxMDBweDsiPgotICAgICAgICAgICAgPG1ldGVyIGlkPSJ3
aXRoLXN0eWxlIiBjbGFzcz0ibWV0ZXItaW5uZXItZWxlbWVudC1saWtlIiBtaW49IjAiIG1heD0i
MTAwIiB2YWx1ZT0iNTAiPjwvbWV0ZXI+PHNwYW4+KGFmdGVyKTwvc3Bhbj4KLSAgICAgICAgPC9k
aXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aC1zdHlsZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LW1ldGVyLXdpdGgtc3R5bGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aC1zdHlsZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9k
eT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHN0eWxl
PgotbWV0ZXIgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIG1hcmdpbjogMDsKLSAgICBwYWRk
aW5nOiAwOwotICAgIHdpZHRoOiBhdXRvOwotICAgIGhlaWdodDogM2VtOwotICAgIHZlcnRpY2Fs
LWFsaWduOiAwOwotfQotCi1tZXRlcjo6LXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IHsKLSAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG1ldGVyOyAvKiBXZSBoYXZlIHRvIGhhdmUgdGhpcyBmb3Ig
bm93LiBQbGVhc2Ugc2VlIEJ1ZyA5MjQ1NS4gKi8KLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICB3
aWR0aDogMTVlbTsKLSAgICBoZWlnaHQ6IDNlbTsKLX0KLTwvc3R5bGU+Ci0KLTxkaXYgaWQ9ImNv
bnRhaW5lciI+Ci0gICAgPG1ldGVyIGlkPSJob3N0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0i
NTAiPjwvbWV0ZXI+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5h
YmxlZCh0cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jv
b3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXYgc3R5bGU9J21hcmdpbi1sZWZ0OiAx
MDBweCc+PHNoYWRvdz48L3NoYWRvdz48c3Bhbj4oYWZ0ZXIpPC9zcGFuPjwvZGl2PiI7Ci08L3Nj
cmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aG91dC1hcHBlYXJhbmNlLWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
bWV0ZXItd2l0aG91dC1hcHBlYXJhbmNlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLXdpdGhv
dXQtYXBwZWFyYW5jZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE5ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9InJlc291cmNlcy9yZXBsYWNlZC1lbGVtZW50LXN0eWxlcy5jc3MiPgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci0KLTxzdHlsZT4KLW1ldGVyI21ldGVyIHsKLSAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bm9uZTsKLX0KLTwvc3R5bGU+Ci08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgY2xhc3M9
Im1ldGVyLWxpa2UiPjxtZXRlciBpZD0ibWV0ZXIiIGNsYXNzPSJtZXRlci1pbm5lci1lbGVtZW50
LWxpa2UiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9tZXRlcj48c3Bhbj4oYWZ0ZXIp
PHNwYW4+PC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aG91dC1hcHBlYXJhbmNl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItbWV0ZXItd2l0aG91dC1hcHBlYXJhbmNlLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLXdpdGhvdXQt
YXBwZWFyYW5jZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
InJlc291cmNlcy9yZXBsYWNlZC1lbGVtZW50LXN0eWxlcy5jc3MiPgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxz
dHlsZT4KLW1ldGVyIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08L3N0eWxl
PgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxtZXRlciBpZD0iaG9zdCIgbWluPSIwIiBt
YXg9IjEwMCIgdmFsdWU9IjUwIj48L21ldGVyPgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9N
Rm9yQW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8c2hhZG93Pjwv
c2hhZG93PjxzcGFuPihhZnRlcik8L3NwYW4+IjsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRl
ci13aXRob3V0LXNoYWRvdy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aG91dC1zaGFk
b3ctZWxlbWVudC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRob3V0LXNoYWRvdy1lbGVt
ZW50LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0icmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQot
PGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNzPSJtZXRlci1saWtlIj48c3Bhbj5u
byBwcm9ncmVzczwvc3Bhbj48L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1tZXRlci13aXRob3V0
LXNoYWRvdy1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItbWV0ZXItd2l0aG91dC1zaGFkb3ctZWxlbWVudC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1tZXRlci13aXRob3V0LXNoYWRvdy1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5l
ciI+Ci0gICAgPG1ldGVyIGlkPSJob3N0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiPjwv
bWV0ZXI+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0
cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsK
LXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuPm5vIHByb2dyZXNzPC9zcGFuPiIKLTwvc2Ny
aXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93ZG9tLWZvci1tZXRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW1ldGVyLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0K
LTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPG1ldGVyIGlkPSJob3N0IiBtaW49IjAiIG1heD0i
MTAwIiB2YWx1ZT0iNTAiPjwvbWV0ZXI+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JB
bnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENy
ZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFk
b3c+PHNwYW4+KGFmdGVyKTwvc3Bhbj4iOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC1j
b21wbGV4LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC1jb21wbGV4LXNoYWRvdy1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93ZG9tLWZvci1vYmplY3QtY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5BIG1peGVkIGNhc2Ugb2YgYSBz
aGFkb3cgZWxlbWVudCBhbmQgY29udGVudCBlbGVtZW50LjwvcD4KLTxmb3JtPgotICAgIDxkaXYg
c3R5bGU9Im1hcmdpbjogMjBweCI+Ci0gICAgICAgIDxvYmplY3QgaWQ9Imhvc3QiIGRhdGE9Ii4u
L3Jlc291cmNlcy9hcHBsZS5naWYiIHR5cGU9ImltYWdlL2dpZiIgd2lkdGg9IjIwIiBoZWlnaHQ9
IjIwIj48L29iamVjdD4KLSAgICA8L2Rpdj4gICAgCi0gICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5
cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vYmplY3QtY29tcGxleC1zaGFkb3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1v
YmplY3QtY29tcGxleC1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb2JqZWN0LWNvbXBsZXgtc2hhZG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBtaXhlZCBj
YXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4K
LSAgICA8b2JqZWN0IGlkPSJob3N0IiBkYXRhPSIuLi9yZXNvdXJjZXMvYXBwbGUuZ2lmIiB0eXBl
PSJpbWFnZS9naWYiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+Ci0gICAgICAgIDxwYXJhbSBuYW1l
PSJmb28iIHZhbHVlPSJiYXIiPjwvcGFyYW0+Ci0gICAgPC9vYmplY3Q+Ci0gICAgPGlucHV0IGlk
PSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+Ci0KLTxzY3Jp
cHQ+Ci12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hh
ZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPGNvbnRlbnQ+PC9jb250ZW50PjxkaXYgc3R5bGU9J21hcmdpbjogMjBweCc+PHNo
YWRvdz48L3NoYWRvdz48L2Rpdj4iCi08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LW9iamVjdC1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vYmplY3Qtb25seS1zaGFk
b3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0K
LTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0
aGlzIHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgot
PGZvcm0+Ci0gICAgPG9iamVjdCBpZD0iaG9zdCIgZGF0YT0iLi4vcmVzb3VyY2VzL2FwcGxlLmdp
ZiIgdHlwZT0iaW1hZ2UvZ2lmIj48L29iamVjdD4KLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlw
ZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC1vbmx5LXNoYWRvdy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVj
dC1vbmx5LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vYmplY3Qtb25seS1zaGFkb3cuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFk
b3dET00gaGFzIG9ubHkgYSBzaGFkb3cgZWxlbWVudCwgdGhpcyBzaG91bGQgYmUgcmVuZGVyZWQg
bGlrZSBubyBTaGFkb3cgRE9NIGlzIGFkZGVkLjwvcD4KLTxmb3JtPgotICAgIDxvYmplY3QgaWQ9
Imhvc3QiIGRhdGE9Ii4uL3Jlc291cmNlcy9hcHBsZS5naWYiIHR5cGU9ImltYWdlL2dpZiI+PC9v
YmplY3Q+Ci0gICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1p
dCI+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9NRm9yQW55RWxlbWVudEVuYWJsZWQodHJ1
ZSk7Ci0KLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKLXZhciBz
aGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCkKLXNoYWRvd1Jvb3QuaW5u
ZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vYmplY3Qtd2l0aG91dC1zaGFkb3ctZXhw
ZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1vYmplY3Qtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb2Jq
ZWN0LXdpdGhvdXQtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gZG9lcyBub3QgaGF2
ZSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIGRpdi48L3A+
Ci08Zm9ybT4KLSAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAy
MHB4OyBoZWlnaHQ6IDIwcHgiPjwvZGl2PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJz
dWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb2JqZWN0LXdpdGhvdXQtc2hhZG93Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb2JqZWN0
LXdpdGhvdXQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW9iamVjdC13aXRob3V0LXNoYWRvdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhv
clNoYWRvd0RPTSBkb2VzIG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJl
IHJlbmRlcmVkIGxpa2UgZGl2LjwvcD4KLTxmb3JtPgotICAgIDxvYmplY3QgaWQ9Imhvc3QiIGRh
dGE9Ii4uL3Jlc291cmNlcy9hcHBsZS5naWYiIHR5cGU9ImltYWdlL2dpZiIgd2lkdGg9IjIwIiBo
ZWlnaHQ9IjIwIj48L29iamVjdD4KLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0
IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBob3N0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3QnKTsKLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRD
cmVhdGVTaGFkb3dSb290KCkKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
b3V0cHV0LWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC1jb21wbGV4
LXNoYWRvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3Jp
cHQ+Ci0KLTxwPkEgbWl4ZWQgY2FzZSBvZiBhIHNoYWRvdyBlbGVtZW50IGFuZCBjb250ZW50IGVs
ZW1lbnQuPC9wPgotPGZvcm0+Ci0gICAgaG9nZTxkaXYgc3R5bGU9Im1hcmdpbjogMjBweCI+Ci0g
ICAgICAgIDxvdXRwdXQ+PC9vdXRwdXQ+Ci0gICAgPC9kaXY+ICAgIAotICAgIDxpbnB1dCBpZD0i
c3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LWNvbXBsZXgtc2hh
ZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3Itb3V0cHV0LWNvbXBsZXgtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC1jb21wbGV4
LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxw
PkEgbWl4ZWQgY2FzZSBvZiBhIHNoYWRvdyBlbGVtZW50IGFuZCBjb250ZW50IGVsZW1lbnQuPC9w
PgotPGZvcm0+Ci0gICAgPG91dHB1dCBpZD0iaG9zdCI+aG9nZTwvb3V0cHV0PgotICAgIDxpbnB1
dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgotCi08
c2NyaXB0PgotdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotdmFy
IHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gIjxjb250ZW50PjwvY29udGVudD48ZGl2IHN0eWxlPSdtYXJnaW46IDIwcHgn
PjxzaGFkb3c+PC9zaGFkb3c+PC9kaXY+IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vdXRwdXQtb25seS1zaGFkb3ctZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1vdXRwdXQtb25seS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LW9ubHkt
c2hhZG93LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0
PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dET00gaGFzIG9ubHkgYSBzaGFkb3cgZWxlbWVu
dCwgdGhpcyBzaG91bGQgYmUgcmVuZGVyZWQgbGlrZSBubyBTaGFkb3cgRE9NIGlzIGFkZGVkLjwv
cD4KLTxmb3JtPgotICAgIDxvdXRwdXQgaWQ9Imhvc3QiPmZvb2Jhcjwvb3V0cHV0PgotICAgIDxp
bnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LW9u
bHktc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3Itb3V0cHV0LW9ubHktc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC1vbmx5
LXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxw
PldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlz
IHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZv
cm0+Ci0gICAgPG91dHB1dCBpZD0iaG9zdCI+Zm9vYmFyPC9vdXRwdXQ+Ci0gICAgPGlucHV0IGlk
PSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+Ci0KLTxzY3Jp
cHQ+Ci12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7Ci12YXIgc2hh
ZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz4iCi08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC13aXRob3V0LXNoYWRvdy1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLW91dHB1dC13aXRob3V0LXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAx
ODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1vdXRw
dXQtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5q
cyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBkb2VzIG5vdCBoYXZl
IGEgU2hhZG93IERPTSwgdGhlIGNvbnRlbnQgd29uJ3QgYmUgcmVuZGVyZWQuPC9wPgotPGZvcm0+
Ci0gICAgPGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTAwcHg7IGhl
aWdodDogMzBweDsiPjwvZGl2PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQi
IHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LXdpdGhvdXQtc2hhZG93Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itb3V0cHV0LXdpdGhv
dXQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLW91dHB1dC13aXRob3V0LXNoYWRvdy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRv
d0RPTSBkb2VzIG5vdCBoYXZlIGEgU2hhZG93IERPTSwgdGhlIGNvbnRlbnQgd29uJ3QgYmUgcmVu
ZGVyZWQuPC9wPgotPGZvcm0+Ci0gICAgPG91dHB1dCBpZD0iaG9zdCIgc3R5bGU9ImRpc3BsYXk6
IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDMwcHgiPm9oeW9oeW88L291dHB1
dD4KLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4K
LTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2hvc3QnKTsKLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7
Ci08L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLXByb2dyZXNzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1keW5hbWljLWV4cGVj
dGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0g
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVu
dC1zdHlsZXMuY3NzIj4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Ci08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgY2xhc3M9InBy
b2dyZXNzLWxpa2UiPjxwcm9ncmVzcyBjbGFzcz0icHJvZ3Jlc3MtaW5uZXItZWxlbWVudC1saWtl
IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iMzAiPjwvcHJvZ3Jlc3M+PHNwYW4+KGFmdGVyKTwv
c3Bhbj48L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1keW5hbWljLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJv
Z3Jlc3MtZHluYW1pYy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1keW5hbWljLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1l
bnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPHBy
b2dyZXNzIGlkPSJob3N0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiPjwvcHJvZ3Jlc3M+
Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsK
LQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hh
ZG93Um9vdC5pbm5lckhUTUwgPSAiPHNoYWRvdz48L3NoYWRvdz48c3Bhbj4oYWZ0ZXIpPC9zcGFu
PiI7Ci0KLXNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgaG9zdC5zZXRBdHRyaWJ1dGUoJ3Zh
bHVlJywgMzApOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Ci19LCAwKTsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLXByb2dyZXNzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3Vy
Y2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0i
Y29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1saWtlIj48cHJvZ3Jlc3MgY2xh
c3M9InByb2dyZXNzLWlubmVyLWVsZW1lbnQtbGlrZSIgbWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9
IjUwIj48L3Byb2dyZXNzPjxzcGFuPihhZnRlcik8L3NwYW4+PC9kaXY+Ci08L2Rpdj4KLQotPC9i
b2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2Rv
bS1mb3ItcHJvZ3Jlc3MtbXVsdGlwbGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1tdWx0aXBsZS1l
eHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy1tdWx0aXBsZS1leHBlY3RlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZXBsYWNlZC1l
bGVtZW50LXN0eWxlcy5jc3MiPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0g
ICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtbGlrZSI+Ci0gICAgICAgIDxkaXYgc3R5bGU9Im1hcmdp
bjogMCAxMHB4IDAgMTBweDsgaGVpZ2h0OiAxZW07IHdpZHRoOiAxMGVtOyI+Ci0gICAgICAgICAg
ICA8cHJvZ3Jlc3MgY2xhc3M9InByb2dyZXNzLWlubmVyLWVsZW1lbnQtbGlrZSIgbWluPSIwIiBt
YXg9IjEwMCIgdmFsdWU9IjUwIj48L3Byb2dyZXNzPjxzcGFuPihhZnRlcik8L3NwYW4+Ci0gICAg
ICAgIDwvZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLW11bHRp
cGxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItcHJvZ3Jlc3MtbXVsdGlwbGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3MtbXVsdGlwbGUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLTxzdHlsZT4KLS8qIFdlIGhhdmUgdG8gd3JpdGUgdGhpcyBmb3Igbm93LiBQbGVhc2Ugc2Vl
IEJ1ZyA5MjQ1NS4gKi8KLXByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQg
ewotICAgIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyOwotfQotPC9zdHlsZT4KLTxk
aXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPHByb2dyZXNzIGlkPSJob3N0IiBtaW49IjAiIG1heD0i
MTAwIiB2YWx1ZT0iNTAiPjwvcHJvZ3Jlc3M+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JTaGFkb3dET01G
b3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtp
dENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9z
aGFkb3c+PHNwYW4+KGFmdGVyKTwvc3Bhbj4iOwotCi12YXIgeW91bmdlciA9IGhvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwoteW91bmdlci5pbm5lckhUTUwgPSAiPGRpdiBzdHlsZT0nbWFy
Z2luOiAwIDEwcHggMCAxMHB4OyBoZWlnaHQ6IDFlbTsgd2lkdGg6IDEwZW07Jz48c2hhZG93Pjwv
c2hhZG93PjwvZGl2PiI7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aC1zdHls
ZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLXdpdGgtc3R5bGUtZXhwZWN0ZWQuaHRtbAkocmV2aXNp
b24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3It
cHJvZ3Jlc3Mtd2l0aC1zdHlsZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM0
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9yZXBsYWNlZC1lbGVtZW50LXN0eWxlcy5jc3Mi
PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08c3R5bGU+Ci1kaXYjd3JhcHBlciB7Ci0gICAgZGlzcGxheTogYmxvY2s7
Ci0gICAgbWFyZ2luOiAwOwotICAgIHBhZGRpbmc6IDA7Ci0gICAgd2lkdGg6IGF1dG87Ci0gICAg
aGVpZ2h0OiAzZW07Ci0gICAgdmVydGljYWwtYWxpZ246IDA7Ci19Ci0KLXByb2dyZXNzI3dpdGgt
c3R5bGUgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIHdpZHRoOiAxNWVtOwotICAgIGhlaWdo
dDogM2VtOwotfQotPC9zdHlsZT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlk
PSJ3cmFwcGVyIiBjbGFzcz0icHJvZ3Jlc3MtbGlrZSI+Ci0gICAgICAgIDxkaXYgc3R5bGU9Im1h
cmdpbi1sZWZ0OiAxMDBweDsiPgotICAgICAgICAgICAgPHByb2dyZXNzIGlkPSJ3aXRoLXN0eWxl
IiBjbGFzcz0icHJvZ3Jlc3MtaW5uZXItZWxlbWVudC1saWtlIiBtaW49IjAiIG1heD0iMTAwIiB2
YWx1ZT0iNTAiPjwvcHJvZ3Jlc3M+PHNwYW4+KGFmdGVyKTwvc3Bhbj4KLSAgICAgICAgPC9kaXY+
Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aC1zdHlsZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LXByb2dyZXNzLXdpdGgtc3R5bGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aC1zdHlsZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PHN0eWxlPgotcHJvZ3Jlc3MgewotICAgIGRpc3BsYXk6IGJsb2NrOwotICAgIG1hcmdpbjogMDsK
LSAgICBwYWRkaW5nOiAwOwotICAgIHdpZHRoOiBhdXRvOwotICAgIGhlaWdodDogM2VtOwotICAg
IHZlcnRpY2FsLWFsaWduOiAwOwotfQotCi1wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1pbm5l
ci1lbGVtZW50IHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHByb2dyZXNzLWJhcjsgLyogV2Ug
aGF2ZSB0byB3cml0ZSB0aGlzIGZvciBub3cuIFBsZWFzZSBzZWUgQnVnIDkyNDU1LiAqLwotICAg
IGRpc3BsYXk6IGJsb2NrOwotICAgIHdpZHRoOiAxNWVtOwotICAgIGhlaWdodDogM2VtOwotfQot
PC9zdHlsZT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8cHJvZ3Jlc3MgaWQ9Imhvc3Qi
IG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9wcm9ncmVzcz4KLTwvZGl2PgotCi08c2Ny
aXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1
dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIgc2hhZG93Um9v
dCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwg
PSAiPGRpdiBzdHlsZT0nbWFyZ2luLWxlZnQ6IDEwMHB4Jz48c2hhZG93Pjwvc2hhZG93PjxzcGFu
PihhZnRlcik8L3NwYW4+PC9kaXY+IjsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13
aXRob3V0LWFwcGVhcmFuY2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LWFwcGVhcmFu
Y2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mtd2l0aG91dC1hcHBlYXJhbmNlLWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3Vy
Y2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08c3R5bGU+Ci1wcm9ncmVzcyNw
cm9ncmVzcyB7Ci0gICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08L3N0eWxlPgotCi08
ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWxpa2UiPjxwcm9n
cmVzcyBpZD0icHJvZ3Jlc3MiIGNsYXNzPSJwcm9ncmVzcy1pbm5lci1lbGVtZW50LWxpa2UiIG1p
bj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCI+PC9wcm9ncmVzcz48c3Bhbj4oYWZ0ZXIpPC9zcGFu
PjwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLXdpdGhvdXQtYXBwZWFyYW5jZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20t
Zm9yLXByb2dyZXNzLXdpdGhvdXQtYXBwZWFyYW5jZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRo
b3V0LWFwcGVhcmFuY2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIj4KLSAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
Ci08c3R5bGU+Ci1wcm9ncmVzcyB7Ci0gICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Ci19Ci08
L3N0eWxlPgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxwcm9ncmVzcyBpZD0iaG9zdCIg
bWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9IjUwIj48L3Byb2dyZXNzPgotPC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0
aG9yU2hhZG93RE9NRm9yQW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZhciBzaGFkb3dSb290
ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9
ICI8c2hhZG93Pjwvc2hhZG93PjxzcGFuPihhZnRlcik8L3NwYW4+IjsKLTwvc2NyaXB0PgotCi08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LXNoYWRvdy1lbGVtZW50LWV4cGVjdGVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJv
Z3Jlc3Mtd2l0aG91dC1zaGFkb3ctZWxlbWVudC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODky
MDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVz
cy13aXRob3V0LXNoYWRvdy1lbGVtZW50LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVz
LmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGNsYXNz
PSJwcm9ncmVzcy1saWtlIj48c3Bhbj5ubyBwcm9ncmVzczwvc3Bhbj48L2Rpdj4KLTwvZGl2Pgot
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LXNoYWRvdy1lbGVtZW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3Mt
d2l0aG91dC1zaGFkb3ctZWxlbWVudC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1wcm9ncmVzcy13aXRob3V0LXNoYWRv
dy1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjIgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
cmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyI+Ci0gICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRp
diBpZD0iY29udGFpbmVyIj4KLSAgICA8cHJvZ3Jlc3MgaWQ9Imhvc3QiIG1pbj0iMCIgbWF4PSIx
MDAiIHZhbHVlPSI1MCI+PC9wcm9ncmVzcz4KLTwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZv
ckFueUVsZW1lbnRFbmFibGVkKHRydWUpOwotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4+bm8gcHJv
Z3Jlc3M8L3NwYW4+IgotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXByb2dyZXNzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItcHJvZ3Jl
c3MuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItcHJvZ3Jlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyMiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMuY3NzIj4KLSAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxwcm9ncmVzcyBpZD0iaG9zdCIg
bWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9IjUwIj48L3Byb2dyZXNzPgotPC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXV0
aG9yU2hhZG93RE9NRm9yQW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZhciBzaGFkb3dSb290
ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9
ICI8c2hhZG93Pjwvc2hhZG93PjxzcGFuPihhZnRlcik8L3NwYW4+IjsKLTwvc2NyaXB0PgotCi08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLWZvci1zZWxlY3QtY29tcGxleC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1zZWxlY3QtY29tcGxl
eC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LWNvbXBsZXgtc2hhZG93LWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+QSBt
aXhlZCBjYXNlIG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08
Zm9ybT4KLSAgICA8ZGl2IHN0eWxlPSJtYXJnaW46IDIwcHgiPgotICAgICAgICA8c2VsZWN0Pjwv
c2VsZWN0PgotICAgIDwvZGl2PiAgICAKLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3Vi
bWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLXNlbGVjdC1jb21wbGV4LXNoYWRvdy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXNlbGVjdC1j
b21wbGV4LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1zZWxlY3QtY29tcGxleC1zaGFkb3cuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwxOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5BIG1peGVkIGNhc2Ugb2Yg
YSBzaGFkb3cgZWxlbWVudCBhbmQgY29udGVudCBlbGVtZW50LjwvcD4KLTxmb3JtPgotICAgIDxz
ZWxlY3QgaWQ9Imhvc3QiPgotICAgICAgICA8b3B0aW9uIGRpc2FibGVkPlBsZWFzZSBzZWxlY3Q8
L29wdGlvbj4KLSAgICAgICAgPG9wdGdyb3VwIGxhYmVsPSJSYW5rIDEiPjwvb3B0Z3JvdXA+Ci0g
ICAgICAgIDxvcHRpb24gdmFsdWU9ImhvZ2UiIHNlbGVjdGVkPmhvZ2U8L29wdGlvbj4KLSAgICA8
L3NlbGVjdD4KLSAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3Vi
bWl0Ij4KLTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2hvc3QnKTsKLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8Y29udGVudD48L2NvbnRlbnQ+PGRpdiBz
dHlsZT0nbWFyZ2luOiAyMHB4Jz48c2hhZG93Pjwvc2hhZG93PjwvZGl2PiIKLTwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LW9u
bHktc2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LW9ubHktc2hhZG93LWV4cGVjdGVkLmh0bWwJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLXNlbGVjdC1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMg
b25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNo
YWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+Ci0gICAgPHNlbGVjdCBpZD0iaG9zdCI+Ci0g
ICAgICAgIDxvcHRpb24gZGlzYWJsZWQ+UGxlYXNlIHNlbGVjdDwvb3B0aW9uPgotICAgICAgICA8
b3B0Z3JvdXAgbGFiZWw9IlJhbmsgMSI+PC9vcHRncm91cD4KLSAgICAgICAgPG9wdGlvbiB2YWx1
ZT0iaG9nZSIgc2VsZWN0ZWQ+aG9nZTwvb3B0aW9uPgotICAgIDwvc2VsZWN0PgotICAgIDxpbnB1
dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LW9ubHkt
c2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd2RvbS1mb3Itc2VsZWN0LW9ubHktc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXNlbGVjdC1vbmx5LXNo
YWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldo
ZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlzIHNo
b3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZvcm0+
Ci0gICAgPHNlbGVjdCBpZD0iaG9zdCI+Ci0gICAgICAgIDxvcHRpb24gZGlzYWJsZWQ+UGxlYXNl
IHNlbGVjdDwvb3B0aW9uPgotICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IlJhbmsgMSI+PC9vcHRn
cm91cD4KLSAgICAgICAgPG9wdGlvbiB2YWx1ZT0iaG9nZSIgc2VsZWN0ZWQ+aG9nZTwvb3B0aW9u
PgotICAgIDwvc2VsZWN0PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZh
bHVlPSJTdWJtaXQiPgotPC9mb3JtPgotCi08c2NyaXB0PgotdmFyIGhvc3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaG9zdCcpOwotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0
ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzaGFkb3c+PC9zaGFkb3c+
IgotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci1zZWxlY3Qtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci1zZWxlY3Qtd2l0aG91dC1z
aGFkb3ctZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LXdpdGhvdXQtc2hhZG93LWV4cGVjdGVk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRo
ZSBBdXRob3JTaGFkb3dET00gZG9lcyBub3QgaGF2ZSBhIFNoYWRvdyBET00sIHRoZSBjb250ZW50
IHdvbid0IGJlIHJlbmRlcmVkLjwvcD4KLTxmb3JtPgotICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6
IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDMwcHg7IG1hcmdpbiAwOyBwYWRk
aW5nOiAwOyBib3JkZXI6IDAiPjwvZGl2PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJz
dWJtaXQiIHZhbHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0LXdpdGhvdXQtc2hhZG93Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3Itc2VsZWN0
LXdpdGhvdXQtc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXNlbGVjdC13aXRob3V0LXNoYWRvdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhv
clNoYWRvd0RPTSBkb2VzIG5vdCBoYXZlIGEgU2hhZG93IERPTSwgdGhlIGNvbnRlbnQgd29uJ3Qg
YmUgcmVuZGVyZWQuPC9wPgotPGZvcm0+Ci0gICAgPHNlbGVjdCBpZD0iaG9zdCIgc3R5bGU9Indp
ZHRoOiAxMDBweDsgaGVpZ2h0OiAzMHB4OyBtYXJnaW4gMDsgcGFkZGluZzogMDsgYm9yZGVyOiAw
Ij4KLSAgICAgICAgPG9wdGlvbiBkaXNhYmxlZD5QbGVhc2Ugc2VsZWN0PC9vcHRpb24+Ci0gICAg
ICAgIDxvcHRncm91cCBsYWJlbD0iUmFuayAxIj48L29wdGdyb3VwPgotICAgICAgICA8b3B0aW9u
IHZhbHVlPSJob2dlIiBzZWxlY3RlZD5ob2dlPC9vcHRpb24+Ci0gICAgPC9zZWxlY3Q+Ci0gICAg
PGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+Ci08L2Zvcm0+
Ci0KLTxzY3JpcHQ+Ci12YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0Jyk7
Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0
YXJlYS1jb21wbGV4LXNoYWRvdy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLWNvbXBsZXgtc2hhZG93
LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLWNvbXBsZXgtc2hhZG93LWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHN0eWxlPgotLnRleHRhcmVhLWxpa2UgewotICAgIHdpZHRoOiAyNTVweDsK
LSAgICBoZWlnaHQ6IDk2cHg7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ci0gICAgb3Zl
cmZsb3cteTogc2Nyb2xsOwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICB0b3A6IDJweDsK
LSAgICBtYXJnaW46IDJweCAycHggMnB4IDJweDsKLSAgICBwYWRkaW5nOiAycHggMnB4IDJweCAy
cHg7Ci0gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwotICAgIHdvcmQtd3JhcDogYnJlYWstd29y
ZDsKLSAgICBmb250OiAtd2Via2l0LXNtYWxsLWNvbnRyb2w7Ci0gICAgZm9udC1mYW1pbHk6IG1v
bm9zcGFjZTsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+QSBtaXhlZCBjYXNl
IG9mIGEgc2hhZG93IGVsZW1lbnQgYW5kIGNvbnRlbnQgZWxlbWVudC48L3A+Ci08Zm9ybT4KLSAg
ICA8ZGl2IGNsYXNzPSJ0ZXh0YXJlYS1saWtlIj50ZXh0YXJlYTxwPnBhcmFncmFwaDxiPmJvbGQ8
L2I+cGFyYWdyYXBoPC9wPjxkaXYgc3R5bGU9Im1hcmdpbjogMjBweCI+dGV4dGFyZWE8L2Rpdj48
L2Rpdj4KLTwvZm9ybT4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtY29tcGxleC1zaGFkb3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10
ZXh0YXJlYS1jb21wbGV4LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS1jb21wbGV4LXNoYWRv
dy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLXRleHRhcmVhIHsKLSAgIHJlc2l6ZTogbm9uZTsKLX0K
LTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZp
bGwuanMiPjwvc2NyaXB0PgotCi08cD5BIG1peGVkIGNhc2Ugb2YgYSBzaGFkb3cgZWxlbWVudCBh
bmQgY29udGVudCBlbGVtZW50LjwvcD4KLTxmb3JtPgotICAgIDx0ZXh0YXJlYSBpZD0iaG9zdCIg
cm93cz0iNiIgY29scz0iMzAiPnRleHRhcmVhPC90ZXh0YXJlYT4KLTwvZm9ybT4KLQotPHNjcmlw
dD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRo
b3JTaGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIHAgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdwJyk7Ci1wLmlubmVySFRNTCA9ICJwYXJhZ3JhcGg8Yj5ib2xkPC9i
PnBhcmFncmFwaCI7Ci1ob3N0LmFwcGVuZENoaWxkKHApOwotCi12YXIgc2hhZG93Um9vdCA9IGhv
c3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotCi0vLyA8Y29udGVudD48L2NvbnRlbnQ+PGRp
diBzdHlsZT0ibWFyZ2luOiAyMHB4Ij48c2hhZG93Pjwvc2hhZG93PjwvZGl2Pgotc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb250ZW50JykpOwotdmFyIGRp
diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotZGl2LnNldEF0dHJpYnV0ZSgnc3R5
bGUnLCAnbWFyZ2luOiAyMHB4Jyk7Ci1kaXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2hhZG93JykpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYpOwotPC9zY3JpcHQ+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dkb20tZm9yLXRleHRhcmVhLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItdGV4dGFyZWEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPGZvcm0+Ci0gICAgPHRleHRhcmVhIGlk
PSJob3N0IiBjb2xzPSIyMCIgcm93cz0iNCI+KGJlZm9yZSkKLVNvbWV0aGluZyBpbiB0aGUgYWly
Ci0oYWZ0ZXIpPC90ZXh0YXJlYT4KLTwvZm9ybT4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtb25seS1z
aGFkb3ctZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCShy
ZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9t
LWZvci10ZXh0YXJlYS1vbmx5LXNoYWRvdy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Bv
bHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBv
bmx5IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hh
ZG93IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8dGV4dGFyZWE+U29tZXRoaW5nIGlu
IHRoZSBhaXI8L3RleHRhcmVhPgotPC9mb3JtPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS1vbmx5LXNoYWRvdy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVh
LW9ubHktc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLW9ubHktc2hhZG93Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hh
ZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVk
IGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8dGV4dGFyZWEg
aWQ9Imhvc3QiPlNvbWV0aGluZyBpbiB0aGUgYWlyPC90ZXh0YXJlYT4KLTwvZm9ybT4KLQotPHNj
cmlwdD4KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1z
aGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NoYWRvdycpKTsK
LTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1m
b3ItdGV4dGFyZWEtd2l0aC1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLWF0
dHJpYnV0ZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLWF0dHJpYnV0ZS1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLQotPHA+V2hl
biB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBvbmx5IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hv
dWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hhZG93IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4K
LSAgICA8dGV4dGFyZWEgcm93cz0iOCIgY29scz0iMjAiPlNvbWV0aGluZyBpbiB0aGUgYWlyPC90
ZXh0YXJlYT4KLTwvZm9ybT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tZm9yLXRleHRhcmVhLXdpdGgtYXR0cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1hdHRy
aWJ1dGUuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1hdHRyaWJ1dGUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08cD5XaGVuIHRoZSBBdXRob3JTaGFkb3dE
T00gaGFzIG9ubHkgYSBzaGFkb3cgZWxlbWVudCwgdGhpcyBzaG91bGQgYmUgcmVuZGVyZWQgbGlr
ZSBubyBTaGFkb3cgRE9NIGlzIGFkZGVkLjwvcD4KLTxmb3JtPgotICAgIDx0ZXh0YXJlYSBpZD0i
aG9zdCIgcm93cz0iOCIgY29scz0iMjAiPlNvbWV0aGluZyBpbiB0aGUgYWlyPC90ZXh0YXJlYT4K
LTwvZm9ybT4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NoYWRvdycpKTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1wbGFjZWhvbGRlci1leHBlY3RlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9y
LXRleHRhcmVhLXdpdGgtcGxhY2Vob2xkZXItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEt
d2l0aC1wbGFjZWhvbGRlci1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0icmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcyIgdHlwZT0i
dGV4dC9jc3MiPgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXY+Ci0gICAgPHRleHRhcmVhIHBsYWNl
aG9sZGVyPSJUaGlzIGlzIGEgcGxhY2Vob2xkZXIgdGV4dC4iIHJvd3M9IjQiIGNvbHM9IjMwIiBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsg
cmVzaXplOiBub25lIj48L3RleHRhcmVhPgotICAgIDx0ZXh0YXJlYSByb3dzPSI0IiBjb2xzPSIz
MCI+YmVmb3JlCi0KLWFmdGVyPC90ZXh0YXJlYT4KLSAgICAKLTwvZGl2PgotCi08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10
ZXh0YXJlYS13aXRoLXBsYWNlaG9sZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1wbGFjZWhvbGRlci5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLXBsYWNlaG9sZGVyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVwbGFjZWQtZWxlbWVudC1zdHlsZXMu
Y3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08dGV4dGFyZWEgaWQ9Imhvc3QiIHJvd3M9
IjQiIGNvbHM9IjMwIiBwbGFjZWhvbGRlcj0iVGhpcyBpcyBhIHBsYWNlaG9sZGVyIHRleHQuIj48
L3RleHRhcmVhPgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEF1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkKHRydWUp
OwotCi12YXIgc2hhZG93Um9vdDEgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNo
YWRvd1Jvb3QxLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdiZWZvcmUnKSk7
Ci1zaGFkb3dSb290MS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzaGFkb3cn
KSk7Ci1zaGFkb3dSb290MS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnYWZ0
ZXInKSk7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1zdHlsZS1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dk
b20tZm9yLXRleHRhcmVhLXdpdGgtc3R5bGUtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEt
d2l0aC1zdHlsZS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE4ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLXRleHRhcmVhIHsKLSAgICBtYXJnaW46
IDEwcHg7Ci0gICAgYm9yZGVyOiAycHggZGFzaGVkIGJsYWNrOwotICAgIHBhZGRpbmc6IDEwcHg7
Ci19Ci08L2hlYWQ+Ci08Ym9keT4KLQotPHA+V2hlbiB0aGUgQXV0aG9yU2hhZG93RE9NIGhhcyBv
bmx5IGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVkIGxpa2Ugbm8gU2hh
ZG93IERPTSBpcyBhZGRlZC48L3A+Ci08Zm9ybT4KLSAgICA8dGV4dGFyZWE+U29tZXRoaW5nIGlu
IHRoZSBhaXI8L3RleHRhcmVhPgotPC9mb3JtPgotCi08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLXN0
eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItdGV4dGFyZWEtd2l0aC1zdHlsZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRoLXN0
eWxlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotdGV4dGFyZWEgewotICAgIG1hcmdpbjogMTBweDsKLSAgICBib3Jk
ZXI6IDJweCBkYXNoZWQgYmxhY2s7Ci0gICAgcGFkZGluZzogMTBweDsKLX0KLTwvaGVhZD4KLTxi
b2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxw
PldoZW4gdGhlIEF1dGhvclNoYWRvd0RPTSBoYXMgb25seSBhIHNoYWRvdyBlbGVtZW50LCB0aGlz
IHNob3VsZCBiZSByZW5kZXJlZCBsaWtlIG5vIFNoYWRvdyBET00gaXMgYWRkZWQuPC9wPgotPGZv
cm0+Ci0gICAgPHRleHRhcmVhIGlkPSJob3N0Ij5Tb21ldGhpbmcgaW4gdGhlIGFpcjwvdGV4dGFy
ZWE+Ci08L2Zvcm0+Ci0KLTxzY3JpcHQ+Ci12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3Jl
YXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzaGFkb3cnKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tZm9yLXRleHRhcmVhLXdpdGhvdXQt
c2hhZG93LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d2RvbS1mb3ItdGV4dGFyZWEtd2l0aG91dC1zaGFkb3ctZXhwZWN0ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNoYWRvd0RP
TSBkb2VzIG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJlbmRlcmVk
IGxpa2UgZGl2LjwvcD4KLTxmb3JtPgotICAgIDxkaXYgaWQ9Imhvc3QiIHN0eWxlPSJkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW46IDA7IHBh
ZGRpbmc6IDAiPjwvZGl2PgotICAgIDxpbnB1dCBpZD0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZh
bHVlPSJTdWJtaXQiPgotPC9mb3JtPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEtd2l0aG91dC1zaGFkb3cuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRo
b3V0LXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS13aXRob3V0LXNoYWRvdy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDE1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci0KLTxwPldoZW4gdGhlIEF1dGhvclNo
YWRvd0RPTSBkb2VzIG5vdCBoYXZlIGEgc2hhZG93IGVsZW1lbnQsIHRoaXMgc2hvdWxkIGJlIHJl
bmRlcmVkIGxpa2UgZGl2LjwvcD4KLTxmb3JtPgotICAgIDx0ZXh0YXJlYSBpZD0iaG9zdCIgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJv
cmRlcjogMDsgcmVzaXplOiBub25lIj5NYW1pPC90ZXh0YXJlYT4KLSAgICA8aW5wdXQgaWQ9InN1
Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KLTwvZm9ybT4KLQotPHNjcmlwdD4K
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBdXRob3JT
aGFkb3dET01Gb3JBbnlFbGVtZW50RW5hYmxlZCh0cnVlKTsKLQotdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1mb3ItdGV4dGFyZWEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLWZvci10ZXh0YXJlYS5o
dG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hh
ZG93ZG9tLWZvci10ZXh0YXJlYS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cG9seWZpbGwuanMiPjwvc2NyaXB0PgotCi08Zm9ybT4KLSAgICA8dGV4dGFyZWEgaWQ9Imhvc3Qi
IGNvbHM9IjIwIiByb3dzPSI0Ij5Tb21ldGhpbmcgaW4gdGhlIGFpcjwvdGV4dGFyZWE+Ci08L2Zv
cm0+Ci0KLTxzY3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QXV0aG9yU2hhZG93RE9NRm9yQW55RWxlbWVudEVuYWJsZWQodHJ1ZSk7Ci0KLXZh
ciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0KLXZhciBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLWRpdi5pbm5lckhUTUwgPSAiKGJlZm9y
ZSk8c2hhZG93Pjwvc2hhZG93PihhZnRlcikiOwotc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkaXYp
OwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tcmVwcm9qZWN0aW9uLTEtZXhwZWN0ZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93ZG9tLXJlcHJvamVjdGlv
bi0xLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3dkb20tcmVwcm9qZWN0aW9uLTEtZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwyMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c3R5bGU+Ci1kaXYgewotICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDEwcHg7Ci0gIGJvcmRl
cjogc29saWQgYmxhY2s7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXY+Ci0g
IDxkaXY+Ci0gICAgPGRpdj5hLTE8L2Rpdj4KLSAgPC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5Pgot
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1yZXBy
b2plY3Rpb24tMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3dkb20tcmVwcm9qZWN0aW9uLTEuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1yZXByb2plY3Rpb24tMS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08
c3R5bGU+Ci1kaXYgewotICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDEwcHg7Ci0gIGJvcmRlcjog
c29saWQgYmxhY2s7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gdGV4dChjb250ZW50cykgewotICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShjb250ZW50cyk7Ci19Ci0KLWZ1bmN0aW9uIHNoYWRvd1Jvb3QoKSB7Ci0gICAgcmV0dXJuIGNy
ZWF0ZVNoYWRvd1Jvb3RXaXRoQXR0cmlidXRlcyh7J2FwcGx5QXV0aG9yU3R5bGVzJzogdHJ1ZX0s
IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpOwotfQotCi1kb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAg
IHNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNhLTEnfSkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0
JzogJyNhLTEnfSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Et
MSd9LCB0ZXh0KCdhLTEnKSkpKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1yZXByb2plY3Rpb24tMi1leHBl
Y3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3dkb20tcmVwcm9qZWN0aW9uLTItZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd2RvbS1yZXByb2plY3Rpb24tMi1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQyICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWRpdiB7Ci0gIG1hcmdpbjogMTBweCAxMHB4IDEw
cHggMTBweDsKLSAgYm9yZGVyOiBzb2xpZCBibGFjazsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08
Ym9keT4KLQotPGRpdj4KLSAgPGRpdj4KLSAgICA8ZGl2PmItMTwvZGl2PgotICAgIDxkaXY+Yi0y
PC9kaXY+Ci0gIDwvZGl2PgotPC9kaXY+Ci0KLTxkaXY+Ci0gIDxkaXY+Yy0xPC9kaXY+Ci0gIDxk
aXY+Ci0gICAgPGRpdj5jLTI8L2Rpdj4KLSAgPC9kaXY+Ci08L2Rpdj4KLQotPGRpdj4KLSAgPGRp
dj4KLSAgICA8ZGl2PmQtY2hpbGQtMTwvZGl2PgotICAgIDxkaXY+Ci0gICAgICAgPGRpdj5kLTI8
L2Rpdj4KLSAgICAgICA8ZGl2PmQtY2hpbGQtMjwvZGl2PgotICAgICAgIDxkaXY+ZC00PC9kaXY+
Ci0gICAgICAgPGRpdj5kLTM8L2Rpdj4KLSAgICA8L2Rpdj4KLSAgICA8ZGl2PmQtNTwvZGl2Pgot
ICAgIDxkaXY+ZC0xPC9kaXY+Ci0gIDwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tcmVwcm9qZWN0aW9u
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
ZG9tLXJlcHJvamVjdGlvbi0yLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dkb20tcmVwcm9qZWN0aW9uLTIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw3NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPHN0eWxlPgot
ZGl2IHsKLSAgbWFyZ2luOiAxMHB4IDEwcHggMTBweCAxMHB4OwotICBib3JkZXI6IHNvbGlkIGJs
YWNrOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRl
eHQoY29udGVudHMpIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29udGVu
dHMpOwotfQotCi1mdW5jdGlvbiBzaGFkb3dSb290KCkgewotICAgIHJldHVybiBjcmVhdGVTaGFk
b3dSb290V2l0aEF0dHJpYnV0ZXMoeydhcHBseUF1dGhvclN0eWxlcyc6IHRydWV9LCBBcnJheS5w
cm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTsKLX0KLQotLy8gVGVzdCBmb3IgYSBjb250
ZW50IGVsZW1lbnQgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYW5vdGhlciBjb250ZW50IGVsZW1lbnQu
Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKAotICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0g
ICAgICAgICAgICAgIHNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1Jvb3QoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0Jzog
JyNiLWNvbnRlbnQnfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2Jywge30sIHRleHQoJ2ItMScpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnI2ItMid9KSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydpZCc6ICdiLWNvbnRlbnQn
LCAnc2VsZWN0JzogJyNiLTInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwgdGV4dCgnc2hvdWxkLW5vdC1iZS11c2VkJykpKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LCB0ZXh0KCdzaG91
bGQtbm90LWJlLXVzZWQnKSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2ItMid9LCB0ZXh0KCdiLTInKSkpKTsKLQotLy8gZGVidWcoJ1Rlc3QgZm9yIGEgcmVwcm9q
ZWN0aW9uLiBDb250ZW50IGVsZW1lbnRzIHNob3VsZCBiZSB1c2VkIGluIGRvY3VtZW50IG9yZGVy
LicpOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHt9
LAotICAgICAgICAgICAgICBzaGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JywgeydzZWxlY3QnOiAnI2MtMSd9KSwKLSAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93Um9vdCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywgeydz
ZWxlY3QnOiAnLmNoaWxkJ30pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuY2hpbGQnfSkpKSwKLSAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MtMScsICdjbGFzcyc6ICdjaGlsZCd9LCB0ZXh0KCdjLTEn
KSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjLTInLCAnY2xhc3Mn
OiAnY2hpbGQnfSwgdGV4dCgnYy0yJykpKSk7Ci0KLS8vIGRlYnVnKCdUZXN0IGZvciBjb21wbGV4
IHJlLXByb2plY3Rpb25zLicpOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgKLSAgICBjcmVh
dGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICBzaGFkb3dSb290KAotICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aGFkb3dSb290KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgI2Qt
Y2hpbGQtMSwgZGl2LCBkLTUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnLmZvbyd9KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwgdGV4dCgnZC0xJykpKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgI2QtY2hpbGQtMQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNkLWNoaWxkLTEn
fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7fSwgdGV4dCgnU2hvdWxkIG5vdCBiZSB1c2VkJykpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuZm9vJ30s
IHRleHQoJ1Nob3VsZCBub3Qgc2VsZWN0IGFueSBub2Rlcy4gVGhpcyBpcyBpbmFjdGl2ZS4nKSkp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydjbGFzcyc6
ICdmb28nfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93Um9v
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2Jywge30sIHRleHQoJ2QtMicpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFNlbGVjdCAjZC1jaGlsZC0yIGFuZCAjZC00LgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3Qn
OiAnLmZvbyd9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2Jywge30sIHRleHQoJ2QtMycpKSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFNlbGVjdCAjZC1jaGlsZC0yCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJyNkLWNo
aWxkLTInfSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdkLTQnLCAnY2xhc3MnOiAnZm9vJ30sIHRleHQoJ2QtNCcpKSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwgdGV4dCgnU2hv
dWxkIG5vdCBiZSBzZWxlY3RlZCcpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnY2xhc3MnOiAnZm9vJ30sIHRleHQoJ2QtNScpKSkpLAotICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZC1jaGlsZC0xJywgJ2NsYXNzJzogJ2Zvbyd9
LCB0ZXh0KCdkLWNoaWxkLTEnKSksCi0gICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydj
bGFzcyc6ICdmb28nfSwgdGV4dCgnc2hvdWxkLW5vdC1iZS1zZWxlY3RlZCcpKSwKLSAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QtY2hpbGQtMicsICdjbGFzcyc6ICdmb28n
fSwgdGV4dCgnZC1jaGlsZC0yJykpKSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dyb290LWNsb25lbm9kZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
d3Jvb3QtY2xvbmVub2RlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtY2xvbmVub2RlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1DYWxsaW5nIFNoYWRvd1Jvb3QuY2xvbmVO
b2RlKCkgc2hvdWxkIHRocm93IGEgREFUQV9DTE9ORV9FUlIgZXhjZXB0aW9uLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LmNsb25lTm9kZSgpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogRGF0YUNsb25lRXJyb3I6IERPTSBFeGNlcHRpb24gMjUuCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtY2xvbmVub2RlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtY2xvbmVub2Rl
Lmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dyb290LWNsb25lbm9kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAK
LTwhRE9DVFlQRT4KLTxodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbignQ2FsbGluZyBTaGFkb3dSb290LmNsb25lTm9kZSgpIHNob3VsZCB0aHJvdyBhIERB
VEFfQ0xPTkVfRVJSIGV4Y2VwdGlvbi4nKTsKLQotdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dS
b290KCk7Ci1zaG91bGRUaHJvdygnc2hhZG93Um9vdC5jbG9uZU5vZGUoKScsICciRXJyb3I6IERh
dGFDbG9uZUVycm9yOiBET00gRXhjZXB0aW9uIDI1IicpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93cm9vdC1vZi1pbnNlcnRp
b25wb2ludC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3dyb290LW9mLWluc2VydGlvbnBvaW50LWV4cGVjdGVkLmh0bWwJKHJldmlz
aW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dyb290LW9m
LWluc2VydGlvbnBvaW50LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci0KLTxodG1sPgotCi08cD5TaGFkb3dSb290IGZvciBJbnNl
cnRpb25Qb2ludCBzaG91bGQgbm90IGJlIHJlbmRlcmVkIGlmIHRoZSBJbnNlcnRpb25Qb2ludCBp
cyBhY3RpdmUsIHdoaWxlIGl0IHNob3VsZCBiZSByZW5kZXJlZCBpZiBub3QgYWN0aXZlLjwvcD4K
LQotPGRpdiBpZD0iaG9zdCI+PGRpdj4KLSAgICA8ZGl2Pmhvc3QgY2hpbGRyZW48L2Rpdj4KLSAg
ICA8Y29udGVudD48ZGl2PkZvciBJbmFjdGl2ZSBjb250ZW50PC9kaXY+PC9jb250ZW50PgotPC9k
aXY+PC9kaXY+Ci0KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3dyb290LW9mLWluc2VydGlvbnBvaW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3Qtb2YtaW5zZXJ0aW9ucG9pbnQuaHRtbAkocmV2
aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3Qt
b2YtaW5zZXJ0aW9ucG9pbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLQotPGh0bWw+Ci0KLTxwPlNoYWRvd1Jvb3QgZm9yIEluc2VydGlvblBv
aW50IHNob3VsZCBub3QgYmUgcmVuZGVyZWQgaWYgdGhlIEluc2VydGlvblBvaW50IGlzIGFjdGl2
ZSwgd2hpbGUgaXQgc2hvdWxkIGJlIHJlbmRlcmVkIGlmIG5vdCBhY3RpdmUuPC9wPgotCi08ZGl2
IGlkPSJob3N0Ij4KLSAgICA8ZGl2Pmhvc3QgY2hpbGRyZW48L2Rpdj4KLTwvZGl2PgotCi08c2Ny
aXB0PgotdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0KLSAgICAnPGRpdj4nICsgCi0gICAgICAgICc8Y29udGVudCBp
ZD0iYWN0aXZlLWNvbnRlbnQiIHNlbGVjdD0iZGl2Ij48ZGl2PmZhbGxiYWNrPC9kaXY+PC9jb250
ZW50PicgKwotICAgICAgICAnPGNvbnRlbnQgc2VsZWN0PSJzcGFuIj48Y29udGVudCBpZD0iaW5h
Y3RpdmUtY29udGVudCI+PC9jb250ZW50PjwvY29udGVudD4nICsKLSAgICAnPC9kaXY+JzsKLQot
dmFyIGFjdGl2ZUNvbnRlbnQgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUtY29u
dGVudCcpOwotdmFyIHNoYWRvd1Jvb3RGb3JBY3RpdmVDb250ZW50ID0gYWN0aXZlQ29udGVudC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290Rm9yQWN0aXZlQ29udGVudC5pbm5l
ckhUTUwgPSAnPGRpdj5Gb3IgYWN0aXZlIGNvbnRlbnQ8L2Rpdj4nOwotCi12YXIgaW5hY3RpdmVD
b250ZW50ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnaW5hY3RpdmUtY29udGVudCcpOwot
dmFyIHNoYWRvd1Jvb3RGb3JJbmFjdGl2ZUNvbnRlbnQgPSBpbmFjdGl2ZUNvbnRlbnQud2Via2l0
Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdEZvckluYWN0aXZlQ29udGVudC5pbm5lckhU
TUwgPSAnPGRpdj5Gb3IgSW5hY3RpdmUgY29udGVudDwvZGl2Pic7Ci08L3NjcmlwdD4KLQotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtdHlwZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvd3Jvb3QtdHlwZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3dyb290LXR5cGUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDExICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIFNoYWRvd1Jvb3RUeXBl
IGlzIGNvcnJlY3RseSByZWZsZWN0ZWQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1MgIkF1dGhvclNoYWRvd1Jvb3QiIGlzIGludGVybmFscy5zaGFkb3dSb290VHlwZShzaGFk
b3dSb290Rm9yRGl2KQotUEFTUyAiVXNlckFnZW50U2hhZG93Um9vdCIgaXMgaW50ZXJuYWxzLnNo
YWRvd1Jvb3RUeXBlKHNoYWRvd1Jvb3RGb3JJbnB1dCkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93cm9vdC10eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvd3Jvb3QtdHlwZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93cm9vdC10eXBlLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci0gICAg
PGlucHV0IGlkPSJpbnB1dCIgdHlwZT0idGV4dCI+Ci08L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUi
PjwvcHJlPgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmVzIFNoYWRv
d1Jvb3RUeXBlIGlzIGNvcnJlY3RseSByZWZsZWN0ZWQiKTsKLQotdmFyIHNoYWRvd1Jvb3RGb3JE
aXYgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXZhciBzaGFkb3dSb290Rm9ySW5w
dXQgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChpbnB1dCk7Ci0KLXNob3VsZEJlKCciQXV0aG9yU2hh
ZG93Um9vdCInLCAnaW50ZXJuYWxzLnNoYWRvd1Jvb3RUeXBlKHNoYWRvd1Jvb3RGb3JEaXYpJyk7
Ci1zaG91bGRCZSgnIlVzZXJBZ2VudFNoYWRvd1Jvb3QiJywgJ2ludGVybmFscy5zaGFkb3dSb290
VHlwZShzaGFkb3dSb290Rm9ySW5wdXQpJyk7Ci0KLWNvbnRhaW5lci5pbm5lckhUTUwgPSAiIjsK
LQotZmluaXNoSlNUZXN0KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zdHlsZS1vZi1kaXN0cmlidXRlZC1ub2RlLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5
bGUtb2YtZGlzdHJpYnV0ZWQtbm9kZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zdHlsZS1vZi1kaXN0cmlidXRlZC1ub2RlLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi1UZXN0cyB0byBlbnN1
cmUgdGhhdCBzdHlsZXMgb2YgZGlzdHJpYnV0ZWQgbm9kZXMgYXJlIGRpZmZlcmVudCBpZiB0aGVp
ciBwYXJlbnQgc3R5bGVzIGFyZSBkaWZmZXJlbnQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi0KLQotUEFTUyBnZXRDb2xvclByb3BlcnR5KCJjaGlsZC1hIikgaXMgInJnYigyNTUs
IDAsIDApIgotUEFTUyBnZXRDb2xvclByb3BlcnR5KCJjaGlsZC1iIikgaXMgInJnYigwLCAwLCAy
NTUpIgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQotCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLW9mLWRpc3Ry
aWJ1dGVkLW5vZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc3R5bGUtb2YtZGlzdHJpYnV0ZWQtbm9kZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5bGUtb2YtZGlzdHJpYnV0ZWQtbm9kZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gZ2V0Q29sb3JQcm9wZXJ0eShpZCkgewotICAgIHJldHVybiB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkpLmNvbG9y
OwotfQotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgIHZhciBjb25zb2xlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKLSAgICBjb25zb2xlLmlubmVySFRNTCArPSBt
ZXNzYWdlICsgJ1xuJzsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cHJlIGlkPSJj
b25zb2xlIj48L2Rpdj4KLTxkaXYgaWQ9InRlc3QiPgotICAgIDxkaXYgaWQ9Imhvc3QiIHN0eWxl
PSJjb2xvcjogcmVkIj4KLSAgICAgICAgPGRpdiBpZD0iY2hpbGQtYSI+PC9kaXY+Ci0gICAgICAg
IDxkaXYgaWQ9ImNoaWxkLWIiPjwvZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IHN0eWxlcyBvZiBkaXN0cmlidXRlZCBu
b2RlcyBhcmUgZGlmZmVyZW50IGlmIHRoZWlyIHBhcmVudCBzdHlsZXMgYXJlIGRpZmZlcmVudC4i
KTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LQotdmFyIHNyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKS53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci1zci5pbm5lckhUTUwgPSAnPGNvbnRlbnQgc2VsZWN0PSIjY2hpbGQtYSI+
PC9jb250ZW50PjxkaXYgc3R5bGU9ImNvbG9yOiBibHVlIj48Y29udGVudCBzZWxlY3Q9IiNjaGls
ZC1iIj48L2NvbnRlbnQ+PC9kaXY+JzsKLQotc2hvdWxkQmUoJ2dldENvbG9yUHJvcGVydHkoImNo
aWxkLWEiKScsICcicmdiKDI1NSwgMCwgMCkiJyk7Ci1zaG91bGRCZSgnZ2V0Q29sb3JQcm9wZXJ0
eSgiY2hpbGQtYiIpJywgJyJyZ2IoMCwgMCwgMjU1KSInKTsKLQotZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3QiKS5pbm5lckhUTUwgPSAnJzsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLXNjb3BlZC1ub3Qt
ZW5hYmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3N0eWxlLXNjb3BlZC1ub3QtZW5hYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zdHlsZS1zY29wZWQtbm90LWVu
YWJsZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMg
dGVzdCBlbnN1cmVzIGNvbnRlbnQgZWxlbWVudCBmZWF0dXJlIGNhbiBiZSBkaXNhYmxlZAotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShzaG91bGRCZUFwcGxpZWQpLmNvbG9yIGlzICdyZ2IoMCwgMCwgMjU1KScKLVBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoc2hvdWxkTm90QmVBcHBsaWVkKS5jb2xvciBpcyAncmdiKDAsIDAs
IDApJwotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpbnNpZGVTY29wZSkuY29sb3IgaXMg
J3JnYigyNTUsIDAsIDApJwotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaG91bGROb3RC
ZVNjb3BlZCkuY29sb3IgaXMgJ3JnYigyNTUsIDAsIDApJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi1TaG91bGQgbm90IGJlIGJsdWUKLVNob3VsZCBi
ZSByZWQKLQotU2hvdWxkIGJlIHJlZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3N0eWxlLXNjb3BlZC1ub3QtZW5hYmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zdHlsZS1zY29wZWQtbm90LWVuYWJsZWQuaHRtbAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxlLXNjb3BlZC1ub3Qt
ZW5hYmxlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3R5bGVTY29wZWRFbmFibGVkKGZhbHNl
KTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJob3N0Ij48L2Rpdj4KLTxz
cGFuIGlkPSdzaG91bGROb3RCZUFwcGxpZWQnPlNob3VsZCBub3QgYmUgYmx1ZTwvc3Bhbj4KLTxk
aXY+Ci0gIDxzdHlsZSBzY29wZWQ+IHAgeyBjb2xvcjogcmVkOyB9IDwvc3R5bGU+Ci0gIDxwIGlk
PSdpbnNpZGVTY29wZSc+U2hvdWxkIGJlIHJlZDwvcD4KLTwvZGl2PgotPHAgaWQ9J3Nob3VsZE5v
dEJlU2NvcGVkJz5TaG91bGQgYmUgcmVkPC9wPgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgZW5zdXJlcyBjb250ZW50IGVsZW1lbnQgZmVhdHVyZSBjYW4gYmUgZGlzYWJsZWQiKTsK
LXZhciBob3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKTsKLXZhciBzaGFkb3cg
PSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvdy5pbm5lckhUTUwgPSAiPHN0
eWxlPiBzcGFuIHsgY29sb3I6IGJsdWU7IH0gPC9zdHlsZT48c3BhbiBpZD0nc2hvdWxkQmVBcHBs
aWVkJz5TaG91bGQgYmUgYmx1ZTwvc3Bhbj4iOwotdmFyIHNob3VsZEJlQXBwbGllZCA9IHNoYWRv
dy5nZXRFbGVtZW50QnlJZCgic2hvdWxkQmVBcHBsaWVkIik7Ci12YXIgc2hvdWxkTm90QmVBcHBs
aWVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNob3VsZE5vdEJlQXBwbGllZCIpOwotdmFy
IHNob3VsZE5vdEJlU2NvcGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNob3VsZE5vdEJl
U2NvcGVkIik7Ci12YXIgaW5zaWRlU2NvcGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5z
aWRlU2NvcGUiKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzaG91bGRCZUFw
cGxpZWQpLmNvbG9yIiwgIidyZ2IoMCwgMCwgMjU1KSciKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShzaG91bGROb3RCZUFwcGxpZWQpLmNvbG9yIiwgIidyZ2IoMCwgMCwgMCkn
Iik7Ci1zaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5zaWRlU2NvcGUpLmNvbG9y
IiwgIidyZ2IoMjU1LCAwLCAwKSciKTsKLXNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShzaG91bGROb3RCZVNjb3BlZCkuY29sb3IiLCAiJ3JnYigyNTUsIDAsIDApJyIpOwotZmluaXNo
SlNUZXN0KCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zdHlsaW5nLXBzZXVkby1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5bGluZy1wc2V1
ZG8tYXR0cmlidXRlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zdHlsaW5nLXBzZXVkby1hdHRyaWJ1dGUtZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPHN0eWxlPgotI3RhcmdldCB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLTwvc3R5bGU+Ci08ZGl2
PjxkaXYgaWQ9InRhcmdldCI+Zm9vIGJhcjwvZGl2PjwvZGl2PgotCi08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3R5bGluZy1wc2V1ZG8tYXR0cmlidXRlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N0eWxpbmctcHNldWRv
LWF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc3R5bGluZy1wc2V1ZG8tYXR0cmlidXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMjAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxzdHlsZT4KLSNob3N0MTo6
eC1mb28gewotICAgIGNvbG9yOiByZWQ7Ci19Ci08L3N0eWxlPgotPGRpdiBpZD0iaG9zdDEiPjwv
ZGl2PgotCi08c2NyaXB0PgotdmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCgpOwotdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotZGl2
LnNldEF0dHJpYnV0ZSgncHNldWRvJywgJ3gtZm9vJyk7Ci1kaXYuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoJ2ZvbyBiYXInKSk7Ci0KLXNoYWRvd1Jvb3QxLmFwcGVuZENoaWxk
KGRpdik7Ci08L3NjcmlwdD4KLQotCi08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc3VwcHJlc3MtbXV0YXRpb24tZXZlbnRzLWluLXNoYWRvdy1jaGFyYWN0ZXJkYXRh
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c3VwcHJlc3MtbXV0YXRpb24tZXZlbnRzLWluLXNoYWRvdy1jaGFyYWN0ZXJkYXRhLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N1
cHByZXNzLW11dGF0aW9uLWV2ZW50cy1pbi1zaGFkb3ctY2hhcmFjdGVyZGF0YS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzAsMCBAQAotRW5zdXJlcyB0aGF0IERPTUNoYXJh
Y3RlckRhdGFNb2RpZmllZCBpc24ndCBmaXJlZCBpbnNpZGUgc2hhZG93cy4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZmlyZWQgaXMgZmFsc2UKLVBBU1MgZGl2LmlubmVy
SFRNTCBpcyAnSGVsbG8sIFdvcmxkIScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3Vw
cHJlc3MtbXV0YXRpb24tZXZlbnRzLWluLXNoYWRvdy1jaGFyYWN0ZXJkYXRhLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N1cHByZXNzLW11dGF0aW9uLWV2
ZW50cy1pbi1zaGFkb3ctY2hhcmFjdGVyZGF0YS5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3VwcHJlc3MtbXV0YXRpb24tZXZlbnRzLWluLXNo
YWRvdy1jaGFyYWN0ZXJkYXRhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJob3N0Ij48L2Rpdj4K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiRW5zdXJlcyB0aGF0IERPTUNoYXJhY3RlckRhdGFNb2Rp
ZmllZCBpc24ndCBmaXJlZCBpbnNpZGUgc2hhZG93cy4iKTsKLXZhciBmaXJlZCA9IGZhbHNlOwot
dmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9zdCIpOwotdmFyIHNoYWRvdyA9
IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotZGl2LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3RlckRhdGFN
b2RpZmllZCIsIGZ1bmN0aW9uKGV2dCkgewotICAgIGZpcmVkID0gdHJ1ZTsKLX0sIGZhbHNlKTsK
LQotc2hhZG93LmFwcGVuZENoaWxkKGRpdik7Ci1kaXYuaW5uZXJIVE1MID0gIkhlbGxvLCAiOwot
ZGl2LmZpcnN0Q2hpbGQuYXBwZW5kRGF0YSgiV29ybGQhIik7Ci1zaG91bGRCZUZhbHNlKCJmaXJl
ZCIpOwotc2hvdWxkQmUoImRpdi5pbm5lckhUTUwiLCAiJ0hlbGxvLCBXb3JsZCEnIik7Ci08L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zdXBwcmVzcy1tdXRhdGlvbi1ldmVudHMtaW4tc2hhZG93LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc3VwcHJlc3MtbXV0YXRpb24t
ZXZlbnRzLWluLXNoYWRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zdXBwcmVzcy1tdXRhdGlvbi1ldmVudHMtaW4tc2hhZG93
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMCwwIEBACi1UZXN0IHRoYXQg
bXV0YXRpb24gZXZlbnRzIGFyZSBub3QgdHJpZ2dlcmVkIGluIHNoYWRvdyBET00KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgbXV0YXRpb25FdmVudFRyaWdnZXJlZCBpcyBm
YWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zdXBwcmVzcy1tdXRhdGlvbi1ldmVu
dHMtaW4tc2hhZG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3N1cHByZXNzLW11dGF0aW9uLWV2ZW50cy1pbi1zaGFkb3cuaHRtbAkocmV2aXNpb24gMTg5
MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3N1cHByZXNzLW11dGF0aW9uLWV2
ZW50cy1pbi1zaGFkb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwyNSArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxib2R5PgotPGlucHV0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oJ1Rl
c3QgdGhhdCBtdXRhdGlvbiBldmVudHMgYXJlIG5vdCB0cmlnZ2VyZWQgaW4gc2hhZG93IERPTScp
OwotdmFyIG11dGF0aW9uRXZlbnRUcmlnZ2VyZWQgPSBmYWxzZTsKLWZ1bmN0aW9uIGRvVGVzdCgp
IHsKLSAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpOwotICAg
IHZhciBzaGFkb3dSb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW5wdXQpOwotICAgIHZhciBm
aXJzdENoaWxkID0gc2hhZG93Um9vdC5maXJzdENoaWxkOwotICAgIGZpcnN0Q2hpbGQuYWRkRXZl
bnRMaXN0ZW5lcignRE9NTm9kZUluc2VydGVkJywgZnVuY3Rpb24oZXZ0KSB7Ci0gICAgICAgIG11
dGF0aW9uRXZlbnRUcmlnZ2VyZWQgPSB0cnVlOwotICAgIH0pOwotICAgIGlucHV0LnZhbHVlID0g
J2hlbGxvJzsKLSAgICBzaG91bGRCZUZhbHNlKCdtdXRhdGlvbkV2ZW50VHJpZ2dlcmVkJyk7Ci19
Ci0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGRvVGVzdCgpOwotZWxzZQotICAgIHRlc3RG
YWlsZWQoJ1RoaXMgdGVzdCBvbmx5IHJ1bnMgaW4gRFJUJyk7Ci08L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFu
ZC1zaGFkb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFuZC1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGFiLW9yZGVyLWlmcmFt
ZS1hbmQtc2hhZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA0OiBVbmNhdWdodCBSZWZlcmVuY2VFcnJvcjogbG9n
IGlzIG5vdCBkZWZpbmVkCi1UaGlzIHRlc3RzIHRoYXQgcHJlc3NpbmcgVGFiIGtleSBzaG91bGQg
dHJhdmVyc2UgaW50byBpZnJhbWUgYW5kIHNoYWRvdyB0cmVlLCBhbmQgcHJlc3NpbmcgU2hpZnQt
VGFiIHNob3VsZCByZXZlcnNlIHRoZSBvcmRlci4KLQotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0w
MSB0byBpbnB1dC0xMyBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTEz
IHRvIGlucHV0LTE1IGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtMTUg
dG8gaW5wdXQtMDIgaW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpbnB1dC0wMiB0
byBob3N0LTAxL2lucHV0LTAzIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaG9z
dC0wMS9pbnB1dC0wMyB0byBpbnB1dC0wNCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBm
cm9tIGlucHV0LTA0IHRvIGlmcmFtZS9pbnB1dC0wNiBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlmcmFtZS9pbnB1dC0wNiB0byBpZnJhbWUvaG9zdC0wMiBpbiBmb3J3YXJkCi1Q
QVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9ob3N0LTAyIHRvIGlmcmFtZS9ob3N0LTAyL2lu
cHV0LTA5IGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1lL2hvc3QtMDIv
aW5wdXQtMDkgdG8gaWZyYW1lL2hvc3QtMDIvaW5wdXQtMDggaW4gZm9yd2FyZAotUEFTUwotU2hv
dWxkIG1vdmUgZnJvbSBpZnJhbWUvaG9zdC0wMi9pbnB1dC0wOCB0byBpZnJhbWUvaW5wdXQtMTIg
aW4gZm9yd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaW5wdXQtMTIgdG8gaWZy
YW1lL2lucHV0LTExIGluIGZvcndhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1lL2lu
cHV0LTExIHRvIGlmcmFtZS9pbnB1dC0wNSBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBm
cm9tIGlmcmFtZS9pbnB1dC0wNSB0byBpbnB1dC0xNCBpbiBmb3J3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlucHV0LTE0IHRvIGlmcmFtZS9pbnB1dC0wNSBpbiBiYWNrd2FyZAotUEFTUwot
U2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaW5wdXQtMDUgdG8gaWZyYW1lL2lucHV0LTExIGluIGJh
Y2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9pbnB1dC0xMSB0byBpZnJhbWUv
aW5wdXQtMTIgaW4gYmFja3dhcmQKLVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaWZyYW1lL2lucHV0
LTEyIHRvIGlmcmFtZS9ob3N0LTAyL2lucHV0LTA4IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQg
bW92ZSBmcm9tIGlmcmFtZS9ob3N0LTAyL2lucHV0LTA4IHRvIGlmcmFtZS9ob3N0LTAyL2lucHV0
LTA5IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlmcmFtZS9ob3N0LTAyL2lu
cHV0LTA5IHRvIGlmcmFtZS9ob3N0LTAyIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBm
cm9tIGlmcmFtZS9ob3N0LTAyIHRvIGlmcmFtZS9pbnB1dC0wNiBpbiBiYWNrd2FyZAotUEFTUwot
U2hvdWxkIG1vdmUgZnJvbSBpZnJhbWUvaW5wdXQtMDYgdG8gaW5wdXQtMDQgaW4gYmFja3dhcmQK
LVBBU1MKLVNob3VsZCBtb3ZlIGZyb20gaW5wdXQtMDQgdG8gaG9zdC0wMS9pbnB1dC0wMyBpbiBi
YWNrd2FyZAotUEFTUwotU2hvdWxkIG1vdmUgZnJvbSBob3N0LTAxL2lucHV0LTAzIHRvIGlucHV0
LTAyIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTAyIHRvIGlucHV0
LTE1IGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTE1IHRvIGlucHV0
LTEzIGluIGJhY2t3YXJkCi1QQVNTCi1TaG91bGQgbW92ZSBmcm9tIGlucHV0LTEzIHRvIGlucHV0
LTAxIGluIGJhY2t3YXJkCi1QQVNTCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3RhYi1vcmRlci1pZnJhbWUtYW5kLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90YWItb3JkZXItaWZyYW1lLWFuZC1zaGFkb3cuaHRtbAko
cmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RhYi1vcmRl
ci1pZnJhbWUtYW5kLXNoYWRvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwOCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRoaXMgdGVz
dHMgdGhhdCBwcmVzc2luZyBUYWIga2V5IHNob3VsZCB0cmF2ZXJzZSBpbnRvIGlmcmFtZSBhbmQg
c2hhZG93IHRyZWUsIGFuZCBwcmVzc2luZyBTaGlmdC1UYWIgc2hvdWxkIHJldmVyc2UgdGhlIG9y
ZGVyLjwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGNy
ZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCBpZCwgdGFiSW5kZXgpIHsKLSAgICB2YXIgaW5wdXQg
PSBkb2MuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKLSAgICBpbnB1dC50eXBlID0gJ3RleHQnOwot
ICAgIGlucHV0LmlkID0gaWQ7Ci0gICAgaW5wdXQudGFiSW5kZXggPSB0YWJJbmRleDsKLSAgICBy
ZXR1cm4gaW5wdXQ7Ci19Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotICAgIHZhciBkb2MgPSBkb2N1bWVudDsKLQotICAgIGRvYy5ib2R5
LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVsZW1lbnQoZG9jLCAnaW5wdXQtMDEnLCAxKSk7
Ci0gICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdp
bnB1dC0wMicsIDApKTsKLQotICAgIGZ1bmN0aW9uIGFkZFNoYWRvd0hvc3QoZG9jKSB7Ci0gICAg
ICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKTsKLSAgICAgICAgc2hh
ZG93SG9zdC5pZCA9ICdob3N0LTAxJzsKLSAgICAgICAgc2hhZG93SG9zdC50YWJJbmRleCA9IC0x
OwotICAgICAgICB2YXIgc2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qoc2hhZG93
SG9zdCk7Ci0gICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOwotICAgICAg
ICBzaGFkb3cuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0w
MycsIDApKTsKLSAgICB9Ci0gICAgYWRkU2hhZG93SG9zdChkb2MpOwotCi0gICAgZG9jLmJvZHku
YXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wNCcsIDApKTsK
LQotICAgIGZ1bmN0aW9uIGFkZElmcmFtZShkb2MpIHsKLSAgICAgICAgdmFyIGlmcmFtZSA9IGRv
Yy5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKLSAgICAgICAgaWZyYW1lLmlkID0gJ2lmcmFtZSc7
Ci0gICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0gICAgICAgIGRvYyA9IGlm
cmFtZS5jb250ZW50RG9jdW1lbnQ7Ci0KLSAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3Jl
YXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wNScsIDApKTsKLSAgICAgICAgZG9jLmJv
ZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wNicsIDEp
KTsKLSAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChk
b2MsICdpbnB1dC0wNycsIC0xKSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gYWRkU2hhZG93SG9zdChk
b2MpIHsKLSAgICAgICAgICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3An
KTsKLSAgICAgICAgICAgIHNoYWRvd0hvc3QuaWQgPSAnaG9zdC0wMic7Ci0gICAgICAgICAgICBz
aGFkb3dIb3N0LnRhYkluZGV4ID0gMTsKLSAgICAgICAgICAgIHZhciBzaGFkb3cgPSBpbnRlcm5h
bHMuZW5zdXJlU2hhZG93Um9vdChzaGFkb3dIb3N0KTsKLSAgICAgICAgICAgIGRvYy5ib2R5LmFw
cGVuZENoaWxkKHNoYWRvd0hvc3QpOwotCi0gICAgICAgICAgICBzaGFkb3cuYXBwZW5kQ2hpbGQo
Y3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0wOCcsIDApKTsKLSAgICAgICAgICAg
IHNoYWRvdy5hcHBlbmRDaGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTA5
JywgMSkpOwotICAgICAgICAgICAgc2hhZG93LmFwcGVuZENoaWxkKGNyZWF0ZVRleHRJbnB1dEVs
ZW1lbnQoZG9jLCAnaW5wdXQtMTAnLCAtMSkpOwotICAgICAgICB9Ci0gICAgICAgIGFkZFNoYWRv
d0hvc3QoZG9jKTsKLQotICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0SW5w
dXRFbGVtZW50KGRvYywgJ2lucHV0LTExJywgMikpOwotICAgICAgICBkb2MuYm9keS5hcHBlbmRD
aGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTEyJywgMSkpOwotICAgIH0K
LSAgICBhZGRJZnJhbWUoZG9jKTsKLQotICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNyZWF0ZVRl
eHRJbnB1dEVsZW1lbnQoZG9jLCAnaW5wdXQtMTMnLCAxKSk7Ci0gICAgZG9jLmJvZHkuYXBwZW5k
Q2hpbGQoY3JlYXRlVGV4dElucHV0RWxlbWVudChkb2MsICdpbnB1dC0xNCcsIDApKTsKLSAgICBk
b2MuYm9keS5hcHBlbmRDaGlsZChjcmVhdGVUZXh0SW5wdXRFbGVtZW50KGRvYywgJ2lucHV0LTE1
JywgMikpOwotCi0gICAgdGVzdEZvY3VzTmF2aWdhdGlvbkZvd3JhZChbCi0gICAgICAgICdpbnB1
dC0wMScsCi0gICAgICAgICdpbnB1dC0xMycsCi0gICAgICAgICdpbnB1dC0xNScsCi0gICAgICAg
ICdpbnB1dC0wMicsCi0gICAgICAgICdob3N0LTAxL2lucHV0LTAzJywKLSAgICAgICAgJ2lucHV0
LTA0JywKLSAgICAgICAgJ2lmcmFtZS9pbnB1dC0wNicsCi0gICAgICAgICdpZnJhbWUvaG9zdC0w
MicsCi0gICAgICAgICdpZnJhbWUvaG9zdC0wMi9pbnB1dC0wOScsCi0gICAgICAgICdpZnJhbWUv
aG9zdC0wMi9pbnB1dC0wOCcsCi0gICAgICAgICdpZnJhbWUvaW5wdXQtMTInLAotICAgICAgICAn
aWZyYW1lL2lucHV0LTExJywKLSAgICAgICAgJ2lmcmFtZS9pbnB1dC0wNScsCi0gICAgICAgICdp
bnB1dC0xNCcsCi0gICAgXSk7Ci0KLSAgICB0ZXN0Rm9jdXNOYXZpZ2F0aW9uQmFja3dhcmQoWwot
ICAgICAgICAnaW5wdXQtMTQnLAotICAgICAgICAnaWZyYW1lL2lucHV0LTA1JywKLSAgICAgICAg
J2lmcmFtZS9pbnB1dC0xMScsCi0gICAgICAgICdpZnJhbWUvaW5wdXQtMTInLAotICAgICAgICAn
aWZyYW1lL2hvc3QtMDIvaW5wdXQtMDgnLAotICAgICAgICAnaWZyYW1lL2hvc3QtMDIvaW5wdXQt
MDknLAotICAgICAgICAnaWZyYW1lL2hvc3QtMDInLAotICAgICAgICAnaWZyYW1lL2lucHV0LTA2
JywKLSAgICAgICAgJ2lucHV0LTA0JywKLSAgICAgICAgJ2hvc3QtMDEvaW5wdXQtMDMnLAotICAg
ICAgICAnaW5wdXQtMDInLAotICAgICAgICAnaW5wdXQtMTUnLAotICAgICAgICAnaW5wdXQtMTMn
LAotICAgICAgICAnaW5wdXQtMDEnLAotICAgIF0pOwotCi0gICBsb2coJ1xuVGVzdCBmaW5pc2hl
ZC4nKTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1kaXN0cmlidXRlZC1jcmFzaC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1kaXN0
cmlidXRlZC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtZGlzdHJpYnV0ZWQtY3Jhc2gtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLVBBU1MKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtZGlzdHJpYnV0ZWQtY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWRpc3RyaWJ1dGVk
LWNyYXNoLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy90ZXh0LW5vZGUtZGlzdHJpYnV0ZWQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzMCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQotZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKAotICAgICAgICBjcmVh
dGVET00oJ2RpdicsICB7J2lkJzogJ2RpdjEnfSwKLSAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJy0xOTEwMTIwMTM0JykpLAotICAgICAgICAgICAg
Y3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2Mid9LAotICAgICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKSksCi0gICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdzaGFkb3cnLCB7fSkpKSk7Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIGdl
dE5vZGVJblNoYWRvd1RyZWVTdGFjaygnZGl2MS8vZGl2MicpLmFwcGVuZENoaWxkKAotICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2Myd9LAotICAgICAgICAgICAgY3JlYXRlRE9N
KCdzaGFkb3cnLCB7fSkpKTsKLSAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAgZG9j
dW1lbnQuYm9keS5pbm5lckhUTUwgPSAnUEFTUyc7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgPCEtLSBbYnVnIDExMzI3NV0gc3R5bGVGb3JUZXh0
IHNob3VsZCBjb25zaWRlciB0aGUgY2FzZSB3aGVyZSBwYXJlbnQgLS0+Ci0gIDwhLS0gbm9kZSBo
YXMgbm8gc3R5bGUuIC0tPgotICA8IS0tIElmIHRoaXMgdGVzdCBwYXNzZXMsIHdlIGNhbiBqdXN0
IHNlZSAnUEFTUycgd2l0aG91dCBhbnkgY3Jhc2guIC0tPgotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RleHQtbm9kZS1pbi1zaGFkb3ctZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1u
b2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy1leHBlY3RlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxi
b2R5PgotICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDVlbTsiPjxzcGFuPmZvbzwvc3Bhbj5iYXI8
L2Rpdj4KLSAgPGRpdj48c3Bhbj5mb288L3NwYW4+YmFyPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6IDZlbTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj4KLSAgPGRpdj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOiA1ZW07Ij5Gb288c3Bhbj5CYXI8L3NwYW4+PC9zcGFuPjwvZGl2PgotICA8ZGl2PkZv
bzxzcGFuPkJhcjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA2ZW07Ij4mbmJzcDs8L3Nw
YW4+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvdGV4dC1ub2RlLWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0bWwJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90ZXh0LW5vZGUtaW4tc2hhZG93Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHN0eWxlPgotc3BhbiB7Ci0gICB0ZXh0LWFsaWduOiB0b3A7Ci19Ci08L3N0
eWxlPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpIHsKLSAgICB2YXIgaG9z
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci0gICAgdmFyIHNoYWRvd1Jvb3Qg
PSBob3N0LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQotICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKLSAg
ICBzaGFkb3dSb290LmFwcGVuZENoaWxkKHNwYW4pOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImJhciIpKTsKLSAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldExlZnQ7Ci0gICAgaG9zdC5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOwotfQotCi1mdW5jdGlv
biB0ZXN0Q2hpbGRUZXh0T2ZTaGFkb3dSb290V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsK
LSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUlu
aGVyaXRhbmNlIik7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LndlYmtpdENyZWF0ZVNoYWRv
d1Jvb3QoKTsKLSAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKQot
ICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZm9vIjsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxk
KHNwYW4pOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoImJhciIpKTsKLSAgICBzaGFkb3dSb290LnJlc2V0U3R5bGVJbmhlcml0YW5jZSA9IHRydWU7
Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIGhvc3Quc3R5bGUuZm9udFNpemUg
PSAnNmVtJzsKLX0KLQotZnVuY3Rpb24gdGVzdERpc3RyaWJ1dGVkVGV4dCgpIHsKLSAgICB2YXIg
aG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0V2l0aERpc3RyaWJ1dGlvbiIpOwot
ICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAg
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NwYW4xJz48Y29udGVudD48L2NvbnRl
bnQ+PC9zcGFuPiIKLSAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Ci0gICAgc2hhZG93Um9v
dC5nZXRFbGVtZW50QnlJZCgic3BhbjEiKS5zdHlsZS5mb250U2l6ZSA9ICc1ZW0nOwotfQotCi1m
dW5jdGlvbiB0ZXN0RGlzdHJpYnV0ZWRUZXh0V2l0aFJlc2V0U3R5bGVJbmhlcml0YW5jZSgpIHsK
LSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0UmVzZXRTdHlsZUlu
aGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlvbiIpOwotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgc2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPHNw
YW4gaWQ9J3NwYW4yJz48Y29udGVudCBpZD0nY29udGVudCc+PC9jb250ZW50Pjwvc3Bhbj4iCi0g
ICAgc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnJlc2V0U3R5bGVJbmhlcml0
YW5jZSA9IHRydWU7Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIHNoYWRvd1Jv
b3QuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikuc3R5bGUuZm9udFNpemUgPSAnNmVtJzsKLX0KLQot
ZnVuY3Rpb24gcnVuVGVzdHMoKSB7Ci0gICAgdGVzdENoaWxkVGV4dE9mU2hhZG93Um9vdCgpOwot
ICAgIHRlc3RDaGlsZFRleHRPZlNoYWRvd1Jvb3RXaXRoUmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7
Ci0gICAgdGVzdERpc3RyaWJ1dGVkVGV4dCgpOwotICAgIHRlc3REaXN0cmlidXRlZFRleHRXaXRo
UmVzZXRTdHlsZUluaGVyaXRhbmNlKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdHMoKSI+Ci0gIDwhLS0gW2J1ZyAxMDExMTZdIFRleHQgbm9kZXMgaW4gc2hh
ZG93IHJvb3RzIGRvbid0IGluaGVyaXQgc3R5bGUgcHJvcGVybHkgLS0+Ci0gIDwhLS0gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTExNiAtLT4KLSAgPGRpdiBpZD0i
aG9zdCI+PC9kaXY+Ci0gIDxkaXYgaWQ9Imhvc3RSZXNldFN0eWxlSW5oZXJpdGFuY2UiPjwvZGl2
PgotICA8ZGl2IGlkPSJob3N0V2l0aERpc3RyaWJ1dGlvbiI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwv
ZGl2PgotICA8ZGl2IGlkPSJob3N0UmVzZXRTdHlsZUluaGVyaXRhbmNlV2l0aERpc3RyaWJ1dGlv
biI+Rm9vPHNwYW4+QmFyPC9zcGFuPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RpdGxlLWVsZW1lbnQtaW4tc2hhZG93LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGl0bGUtZWxl
bWVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGl0bGUtZWxlbWVudC1pbi1zaGFkb3ctZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICswLDAgQEAKLVRoaXMgdGVzdCBlbnN1cmVzIHRoYXQg
dGl0bGUgZWxlbWVudHMgaW4gYSBzaGFkb3cgc3VidHJlZSBkbyBub3QgYWZmZWN0IGRvY3VtZW50
LnRpdGxlIGF0dHJpYnV0ZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLWNyZWF0
ZSBhIHRpdGxlIGVsZW1lbnQgYW5kIGluc2VydCBpdCB0byBkb2N1bWVudC4KLVBBU1MgZG9jdW1l
bnQudGl0bGUgaXMgImRvY3VtZW50IHRpdGxlIgotcmVtb3ZlIHRpdGxlIGVsZW1lbnQgZnJvbSBk
b2N1bWVudC4KLVBBU1MgZG9jdW1lbnQudGl0bGUgaXMgIiIKLWNyZWF0ZSBhIHNoYWRvdyByb290
IHdob3NlIGhvc3QgaXMgYWxyZWFkeSBpbiBkb2N1bWVudCwgY3JlYXRlIGEgc3VidHJlZSB3aGlj
aCBjb250YWlucyBhIHRpdGxlIGVsZW1lbnQsIGFuZCBhZGQgdGhlIHN1YnRyZWUgdG8gdGhlIHNo
YWRvdyByb290LgotUEFTUyBkb2N1bWVudC50aXRsZSBpcyAiIgotcmVtb3ZlIHRoZSBzdWJ0cmVl
IGZyb20gZG9jdW1lbnQuCi1QQVNTIGRvY3VtZW50LnRpdGxlIGlzICIiCi1jcmVhdGUgYSBzdWJ0
cmVlLCBhZGQgYSBzaGFkb3cgcm9vdCB3aGljaCBjb250YWlucyBhIHRpdGxlIGVsZW1lbnQgdG8g
dGhlIHN1YnRyZWUsIGFuZCBpbnNlcnQgdGhlIHN1YnRyZWUgdG8gZG9jdW1lbnQuCi1QQVNTIGRv
Y3VtZW50LnRpdGxlIGlzICIiCi1yZW1vdmUgdGhlIHN1YnRyZWUgZnJvbSBkb2N1bWVudAotUEFT
UyBkb2N1bWVudC50aXRsZSBpcyAiIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90aXRs
ZS1lbGVtZW50LWluLXNoYWRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy90aXRsZS1lbGVtZW50LWluLXNoYWRvdy5odG1sCShyZXZpc2lvbiAxODkyMDIp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdGl0bGUtZWxlbWVudC1pbi1zaGFkb3cu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBl
bnN1cmVzIHRoYXQgdGl0bGUgZWxlbWVudHMgaW4gYSBzaGFkb3cgc3VidHJlZSBkbyBub3QgYWZm
ZWN0IGRvY3VtZW50LnRpdGxlIGF0dHJpYnV0ZS4iKQotCi1kZWJ1ZygnY3JlYXRlIGEgdGl0bGUg
ZWxlbWVudCBhbmQgaW5zZXJ0IGl0IHRvIGRvY3VtZW50LicpOwotdmFyIHRpdGxlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgndGl0bGUnKTsKLXRpdGxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCdkb2N1bWVudCB0aXRsZScpKTsKLWRvY3VtZW50LmhlYWQuYXBwZW5kQ2hp
bGQodGl0bGUpOwotc2hvdWxkQmUoJ2RvY3VtZW50LnRpdGxlJywgJyJkb2N1bWVudCB0aXRsZSIn
KTsKLWRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQodGl0bGUpOwotZGVidWcoJ3JlbW92ZSB0aXRs
ZSBlbGVtZW50IGZyb20gZG9jdW1lbnQuJyk7Ci1zaG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAn
IiInKTsKLQotZGVidWcoJ2NyZWF0ZSBhIHNoYWRvdyByb290IHdob3NlIGhvc3QgaXMgYWxyZWFk
eSBpbiBkb2N1bWVudCwgY3JlYXRlIGEgc3VidHJlZSB3aGljaCBjb250YWlucyBhIHRpdGxlIGVs
ZW1lbnQsIGFuZCBhZGQgdGhlIHN1YnRyZWUgdG8gdGhlIHNoYWRvdyByb290LicpOwotdmFyIHN1
YnRyZWUxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93MSA9IHN1
YnRyZWUxLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLWRvY3VtZW50LmhlYWQuYXBwZW5kQ2hp
bGQoc3VidHJlZTEpOwotdmFyIHNoYWRvd1RpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dGl0bGUnKTsKLXNoYWRvd1RpdGxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCdzaGFkb3cgdGl0bGUxJykpOwotc2hhZG93MS5hcHBlbmRDaGlsZChzaGFkb3dUaXRsZSk7Ci1z
aG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLQotZGVidWcoJ3JlbW92ZSB0aGUgc3Vi
dHJlZSBmcm9tIGRvY3VtZW50LicpOwotZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChzdWJ0cmVl
MSk7Ci1zaG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLQotZGVidWcoJ2NyZWF0ZSBh
IHN1YnRyZWUsIGFkZCBhIHNoYWRvdyByb290IHdoaWNoIGNvbnRhaW5zIGEgdGl0bGUgZWxlbWVu
dCB0byB0aGUgc3VidHJlZSwgYW5kIGluc2VydCB0aGUgc3VidHJlZSB0byBkb2N1bWVudC4nKQot
dmFyIHN1YnRyZWUyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci12YXIgc2hhZG93
MiA9IHN1YnRyZWUyLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvdzIuaW5uZXJIVE1M
ID0gJzx0aXRsZT5zaGFkb3cgdGl0bGUyPC90aXRsZT4nOwotZG9jdW1lbnQuaGVhZC5hcHBlbmRD
aGlsZChzdWJ0cmVlMik7Ci1zaG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLWRlYnVn
KCdyZW1vdmUgdGhlIHN1YnRyZWUgZnJvbSBkb2N1bWVudCcpOwotZG9jdW1lbnQuaGVhZC5yZW1v
dmVDaGlsZChzdWJ0cmVlMik7Ci1zaG91bGRCZSgnZG9jdW1lbnQudGl0bGUnLCAnIiInKTsKLQot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvdG91Y2gtZXZlbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzAsMCBAQAotVG91Y2ggZXZlbnQgc2hvdWxk
IGJlIGZpcmVkIGluIFNoYWRvdyBET00uCi0KLUVsZW1lbnRzIGluIFNoYWRvd0RPTSBzaG91bGQg
bm90IGJlIHJldmVhbGVkIGluIHRvdWNoVGFyZ2V0IGlmIGl0J3MgZXhhbWluZWQgaW4gbm9uIHNo
YWRvdyB0cmVlLgotCi1QQVNTIHRvdWNoc3RhcnRGaXJlZEluU2hhZG93RE9NIGlzIHRydWUKLVBB
U1MgdG91Y2hUYXJnZXRGb3JIb3N0MSBpcyBob3N0MQotUEFTUyB0b3VjaFRhcmdldEZvcklucHV0
MSBpcyBpbnB1dDEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdG91Y2gtZXZlbnQtcmV0
YXJnZXRpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy90b3VjaC1ldmVudC1yZXRhcmdldGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC1yZXRhcmdl
dGluZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzAsMCBAQAotVGVzdHMg
dG8gZW5zdXJlIHRoYXQgZXZlbnQgZGlzcGF0Y2hpbmcgYmVoYXZlcyBhcyB0aGUgU2hhZG93IERP
TSBzcGVjIGRlc2NyaWJlcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotICB0
b3VjaHN0YXJ0Ci0gICAgIEBkaXYxICh0YXJnZXQ6IGRpdjEpICh0b3VjaGVzOiBkaXYxLCBkaXYy
LCBkaXYzKSAodGFyZ2V0VG91Y2hlczogZGl2MSkgKGNoYW5nZWRUb3VjaGVzOiBkaXYxLCBkaXYy
LCBkaXYzKQotICAgICBAZGl2MiAodGFyZ2V0OiBkaXYyKSAodG91Y2hlczogZGl2MSwgZGl2Miwg
ZGl2MykgKHRhcmdldFRvdWNoZXM6IGRpdjIpIChjaGFuZ2VkVG91Y2hlczogZGl2MSwgZGl2Miwg
ZGl2MykKLSAgICAgQGRpdjItc2hhZG93LXJvb3QtY2hpbGQgKHRhcmdldDogZGl2Mi1zaGFkb3ct
cm9vdC1jaGlsZCkgKHRvdWNoZXM6IGRpdjEsIGRpdjItc2hhZG93LXJvb3QtY2hpbGQsIGRpdjMp
ICh0YXJnZXRUb3VjaGVzOiBkaXYyLXNoYWRvdy1yb290LWNoaWxkKSAoY2hhbmdlZFRvdWNoZXM6
IGRpdjEsIGRpdjItc2hhZG93LXJvb3QtY2hpbGQsIGRpdjMpCi0gICAgIEBkaXYzICh0YXJnZXQ6
IGRpdjMpICh0b3VjaGVzOiBkaXYxLCBkaXYyLCBkaXYzKSAodGFyZ2V0VG91Y2hlczogZGl2Mykg
KGNoYW5nZWRUb3VjaGVzOiBkaXYxLCBkaXYyLCBkaXYzKQotICAgICBAZGl2My1zaGFkb3ctcm9v
dC1jaGlsZCAodGFyZ2V0OiBkaXYzLXNoYWRvdy1yb290LWNoaWxkKSAodG91Y2hlczogZGl2MSwg
ZGl2MiwgZGl2My1zaGFkb3ctcm9vdC1jaGlsZCkgKHRhcmdldFRvdWNoZXM6IGRpdjMtc2hhZG93
LXJvb3QtY2hpbGQpIChjaGFuZ2VkVG91Y2hlczogZGl2MSwgZGl2MiwgZGl2My1zaGFkb3ctcm9v
dC1jaGlsZCkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotVG91Y2ggZXZlbnQgcmV0YXJnZXRpbmcuCi0KLWZvbwotCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvdG91Y2gtZXZlbnQtcmV0YXJnZXRpbmcuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdG91Y2gtZXZlbnQtcmV0YXJnZXRpbmcuaHRt
bAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RvdWNo
LWV2ZW50LXJldGFyZ2V0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjAgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9ldmVudC1kaXNwYXRjaGluZy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
PlRvdWNoIGV2ZW50IHJldGFyZ2V0aW5nLjwvcD4KLTxkaXYgaWQ9InNhbmRib3giPgotPC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLXNhbmRib3guYXBwZW5kQ2hp
bGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2NvbnRhaW5lcid9LAotICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2ZvbycpKSwKLSAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdjInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoJ2ZvbycpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnZGl2Mi1zaGFkb3ctcm9vdC1jaGlsZCd9LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZm9v
JykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCdmb28nKSkpKSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Rp
djMnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7fSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2ZvbycpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2
My1zaGFkb3ctcm9vdC1jaGlsZCd9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnZm9vJykpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywge30sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdmb28nKSkpKSkpOwotCi1zYW5k
Ym94Lm9mZnNldExlZnQ7Ci0KLWZ1bmN0aW9uIGFkZFRvdWNoUG9pbnQodGFyZ2V0KQotewotICAg
IGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQodGFyZ2V0Lm9mZnNldExlZnQgKyB0YXJnZXQub2Zm
c2V0V2lkdGggLyAyLCB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDIp
OwotfQotCi1mdW5jdGlvbiBzZW5kVG91Y2hFdmVudChlbGVtZW50cykKLXsKLSAgICBldmVudFNl
bmRlci5jbGVhclRvdWNoUG9pbnRzKCk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50
cy5sZW5ndGg7ICsraSkKLSAgICAgICAgYWRkVG91Y2hQb2ludChnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soZWxlbWVudHNbaV0pKTsKLSAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7Ci0gICAg
ZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKLX0KLQotYWRkRXZlbnRMaXN0ZW5lcnMoWydkaXYxJywg
J2RpdjInLCAnZGl2MycsCi0gICAgICAgICAgICAgICAgICAgJ2RpdjIvZGl2Mi1zaGFkb3ctcm9v
dC1jaGlsZCcsICdkaXYzL2RpdjMtc2hhZG93LXJvb3QtY2hpbGQnXSk7Ci1zZW5kVG91Y2hFdmVu
dChbJ2RpdjEnLCAnZGl2Mi9kaXYyLXNoYWRvdy1yb290LWNoaWxkJywgJ2RpdjMvZGl2My1zaGFk
b3ctcm9vdC1jaGlsZCddKTsKLXNvcnREaXNwYXRjaGVkRXZlbnQoJ3RvdWNoc3RhcnQnKTsKLWRl
YnVnRGlzcGF0Y2hlZEV2ZW50KCd0b3VjaHN0YXJ0Jyk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVudC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90b3VjaC1ldmVu
dC5odG1sCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
dG91Y2gtZXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1MyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPjxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0KLTxwPlRvdWNoIGV2ZW50IHNob3VsZCBiZSBmaXJl
ZCBpbiBTaGFkb3cgRE9NLjwvcD4KLTxwPkVsZW1lbnRzIGluIFNoYWRvd0RPTSBzaG91bGQgbm90
IGJlIHJldmVhbGVkIGluIHRvdWNoVGFyZ2V0IGlmIGl0J3MgZXhhbWluZWQgaW4gbm9uIHNoYWRv
dyB0cmVlLjwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICA8aW5wdXQgaWQ9ImlucHV0
MSIgdHlwZT0idGV4dCI+Ci0gICAgPGRpdiBpZD0iaG9zdDEiPjwvZGl2PgotPC9kaXY+Ci08cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290MSA9IGhvc3Qx
LndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLXNoYWRvd1Jvb3QxLmlubmVySFRNTCA9ICdmb28g
PHNwYW4gaWQ9Imhvc3QyIj5iYXI8L3NwYW4+IGJheic7Ci0KLXZhciBob3N0MiA9IHNoYWRvd1Jv
b3QxLmdldEVsZW1lbnRCeUlkKCdob3N0MicpOwotdmFyIHNoYWRvd1Jvb3QyID0gaG9zdDIud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJyhmb28gPHNw
YW4gaWQ9InRhcmdldCI+YmFyPC9zcGFuPiBiYXopJzsKLQotdmFyIHRhcmdldCA9IHNoYWRvd1Jv
b3QyLmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKLQotdmFyIHRvdWNoVGFyZ2V0c0Zvckhvc3Qx
OwotaG9zdDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHsKLSAg
ICB0b3VjaFRhcmdldEZvckhvc3QxID0gZS50YXJnZXRUb3VjaGVzWzBdLnRhcmdldDsKLX0pOwot
Ci12YXIgdG91Y2hzdGFydEZpcmVkSW5TaGFkb3dET00gPSBmYWxzZTsKLXRhcmdldC5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24oZSkgewotICAgIHRvdWNoc3RhcnRGaXJl
ZEluU2hhZG93RE9NID0gdHJ1ZTsKLX0pOwotCi12YXIgdG91Y2hUYXJnZXRGb3JJbnB1dDE7Ci1p
bnB1dDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uKGUpIHsKLSAgICB0
b3VjaFRhcmdldEZvcklucHV0MSA9IGUudGFyZ2V0VG91Y2hlc1swXS50YXJnZXQ7Ci19KTsKLQot
ZXZlbnRTZW5kZXIuY2xlYXJUb3VjaFBvaW50cygpOwotZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2lu
dCh0YXJnZXQub2Zmc2V0TGVmdCArIHRhcmdldC5vZmZzZXRXaWR0aCAvIDIsIHRhcmdldC5vZmZz
ZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMik7Ci1ldmVudFNlbmRlci5hZGRUb3VjaFBv
aW50KGlucHV0MS5vZmZzZXRMZWZ0ICsgaW5wdXQxLm9mZnNldFdpZHRoIC8gMiwgaW5wdXQxLm9m
ZnNldFRvcCArIGlucHV0MS5vZmZzZXRIZWlnaHQgLyAyKTsKLWV2ZW50U2VuZGVyLnRvdWNoU3Rh
cnQoKTsKLWV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7Ci0KLXNob3VsZEJlVHJ1ZSgndG91Y2hzdGFy
dEZpcmVkSW5TaGFkb3dET00nKTsKLXNob3VsZEJlKCd0b3VjaFRhcmdldEZvckhvc3QxJywgJ2hv
c3QxJyk7Ci1zaG91bGRCZSgndG91Y2hUYXJnZXRGb3JJbnB1dDEnLCAnaW5wdXQxJyk7Ci0KLWNv
bnRhaW5lci5yZW1vdmUoKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+PC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RyYW5zaXRpb24tb24tc2hhZG93LWhvc3Qtd2l0
aC1kaXN0cmlidXRlZC1ub2RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvdHJhbnNpdGlvbi1vbi1zaGFkb3ctaG9zdC13aXRoLWRpc3RyaWJ1
dGVkLW5vZGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvdHJhbnNpdGlvbi1vbi1zaGFkb3ctaG9zdC13aXRoLWRpc3RyaWJ1dGVk
LW5vZGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzAsMCBAQAotTmV3IENv
bnRlbnQKLVBBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3RyYW5zaXRpb24tb24tc2hhZG93LWhvc3Qtd2l0aC1kaXN0cmlidXRlZC1ub2Rl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RyYW5zaXRp
b24tb24tc2hhZG93LWhvc3Qtd2l0aC1kaXN0cmlidXRlZC1ub2RlLmh0bWwJKHJldmlzaW9uIDE4
OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90cmFuc2l0aW9uLW9uLXNoYWRv
dy1ob3N0LXdpdGgtZGlzdHJpYnV0ZWQtbm9kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUz
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotLmJveCB7Ci0gICAgaGVp
Z2h0OiAxMDBweDsKLSAgICB3aWR0aDogMTAwcHg7Ci0gICAgbWFyZ2luOiAxMHB4OwotICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyYXk7Ci19Ci0KLSNib3ggewotICAgIG9wYWNpdHk6IDE7Ci0gICAg
LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGxpbmVhcjsKLX0KLSAgICAKLSNib3guZmFk
ZSB7Ci0gICAgb3BhY2l0eTogMDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
dHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1jb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKLSAgICAgIC8vIFt0aW1lLCBl
bGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KLSAgICAgIFsw
LjUsICdib3gnLCAnb3BhY2l0eScsIDAuNSwgMC4xXSwKLV07Ci0gIAotZnVuY3Rpb24gc2V0dXBU
ZXN0KCkgewotICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jyk7Ci0g
ICAgdmFyIHNoYWRvd1Jvb3QgPSBib3gud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotICAgIHNo
YWRvd1Jvb3QuaW5uZXJIVE1MID0gJzxjb250ZW50IHNlbGVjdD0iKjpmaXJzdC1jaGlsZCI+PC9j
b250ZW50Pic7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCJjb250ZW50Iikuc2V0QXR0cmlidXRlKCJzZWxlY3QiLCAiKjpsYXN0
LWNoaWxkIik7Ci0gICAgICAgIGJveC5jbGFzc05hbWUgPSAnYm94IGZhZGUnOwotICAgIH0sIDAp
OwotfQotCi1ydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgc2V0dXBUZXN0LCB1c2VQ
YXVzZUFQSSk7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDwhLS0gVGVzdCBmb3Ig
W2J1ZyA5Mzc1NV0gU2hhZG93Um9vdCBpbnNlcnRpb24gcG9pbnQgY2hhbmdlIGFib3J0cyBjc3Mg
dHJhbnNpdGlvbiwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNzU1
IC0tPgotICAgIDwhLS0gSWYgdGhpcyB0ZXN0IHBhc3MsIGNzcyB0cmFuc2l0aW9uIHdpbGwgYmUg
c3RhcnRlZCBhbmQgLS0+Ci0gICAgPCEtLSB0aGUgY3NzIHRyYW5zaXRpb24gd2lsbCBiZSBwYXVz
ZWQgYnkgdXNpbmcgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50LiAtLT4KLSAgICA8ZGl2
IGlkPSJib3giIGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPgotICAgICAg
ICA8ZGl2PkNvbnRlbnQ8L2Rpdj4KLSAgICAgICAgPGRpdj5OZXcgQ29udGVudDwvZGl2PgotICAg
IDwvZGl2PgotCi0gICAgPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90cmVlLXNjb3BlLWNyYXNoLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdHJlZS1z
Y29wZS1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy90cmVlLXNjb3BlLWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSw0ICswLDAgQEAKLVBBU1MgdW5sZXNzIGNyYXNoCi0KLQotCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdHJlZS1zY29wZS1jcmFzaC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90cmVlLXNjb3BlLWNyYXNoLmh0bWwJKHJl
dmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy90cmVlLXNjb3Bl
LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNTMgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9kdW1w
LWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotUkVMT0FEX1RIUkVTSE9VTEQgPSAx
MDsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotCi1NYXJrdXAubm9BdXRvRHVtcCgpOwotICAgIAotZnVuY3Rpb24gYXNzZXJ0TWFya3Vw
KG5hbWUsIGVsZW1lbnQsIGV4cGVjdGVkKQotewotICAgIHZhciBtYXJrdXAgPSBNYXJrdXAuZ2V0
KGVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiBjdXJyZW50Q291bnQoKQotewotICAgdmFyIG1hdGNo
ID0gLz0oLiopLy5leGVjKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpCi0gICBpZiAoIW1hdGNoKQot
ICAgICAgIHJldHVybiAwOwotICAgcmV0dXJuIHBhcnNlSW50KG1hdGNoWzFdKTsKLX0KLQotZnVu
Y3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgdmFyIGl0ZW1zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ2xpJyk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RSZXBsYWNl
Jykub3V0ZXJIVE1MID0gJzxwcm9ncmVzcz4gbm9kZSc7Ci0gICAgYXNzZXJ0TWFya3VwKCdyZXBs
YWNlJywgaXRlbXNbMF0sICd8IFxufCAgICJSZXBsYWNlZCJcbnwgIiBub2RlIHVzaW5nIG91dGVy
SFRNTC4iJyk7Ci0KLSAgICAKLSAgICB2YXIgY291bnQgPSBjdXJyZW50Q291bnQoKTsKLSAgICBp
ZiAoUkVMT0FEX1RIUkVTSE9VTEQgPD0gY291bnQgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY291bnRlciIpLnZhbHVlID0gKGNvdW50ICsg
MSkudG9TdHJpbmcoKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhlRm9ybSIpLnN1
Ym1pdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08aDE+UEFTUyB1bmxlc3MgY3Jhc2g8L2gxPgotPHVsPgotICA8bGk+PHNwYW4gaWQ9InRlc3RS
ZXBsYWNlIj48L3NwYW4+PC9saT4KLTwvdWw+Ci08Zm9ybSBpZD0idGhlRm9ybSI+Ci0gIDxpbnB1
dCBpZD0iY291bnRlciIgbmFtZT0iY291bnRlciIgdmFsdWU9IiI+Ci08Zm9ybT4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1p
bi1kYXRhbGlzdC1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3VzZXItbW9kaWZ5LWluLWRhdGFsaXN0LWNyYXNoLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3VzZXIt
bW9kaWZ5LWluLWRhdGFsaXN0LWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwyICswLDAgQEAKLVtidWcgOTk1ODddIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTU4NyBudWxsLXBvaW50ZXIgY3Jhc2ggaW4gU3R5bGVSZXNvbHZlcjo6c3R5bGVG
b3JFbGVtZW50LiBJZiB0aGlzIHRlc3QgcGFzc2VzLCBubyBjcmFzaCBvY2N1cnMgYW5kICJQQVNT
IiBpcyBzaG93bi4KLVBBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy91c2Vy
LW1vZGlmeS1pbi1kYXRhbGlzdC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbi1kYXRhbGlzdC1jcmFzaC5odG1sCShyZXZp
c2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnkt
aW4tZGF0YWxpc3QtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotPC9zY3JpcHQ+Ci08ZGl2PltidWcgOTk1ODddIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTU4NyI+Ci1odHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTk1ODc8L2E+Ci1udWxsLXBvaW50ZXIgY3Jhc2ggaW4gU3R5bGVS
ZXNvbHZlcjo6c3R5bGVGb3JFbGVtZW50LgotSWYgdGhpcyB0ZXN0IHBhc3Nlcywgbm8gY3Jhc2gg
b2NjdXJzIGFuZCAiUEFTUyIgaXMgc2hvd24uPC9kaXY+Ci08ZGl2PlBBU1M8L2Rpdj4KLTxkYXRh
bGlzdD4KLTxzdW1tYXJ5PgotPHRpdGxlPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3VzZXItbW9kaWZ5LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFuY2UtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
dXNlci1tb2RpZnktaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDE5ICswLDAgQEAKLVRlc3RzIHRvIGVuc3VyZSB0aGF0IGEgJy13ZWJraXQtdXNlci1tb2RpZnkn
IENTUyBwb3JwZXJ0eSBpcyBub3QgaW5oZXJpdGVkIGFjcm9zcyBzaGFkb3cgYm91bmRhcmllcy4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgY29tcHV0ZWRTdHlsZShwcmVw
YXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudGVkaXRh
YmxlLWhvc3QxIiksIG51bGwpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC1vbmx5
IgotUEFTUyBjb21wdXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250ZW50ZWRpdGFibGUtaG9zdDIiKSwgImZhbHNlIiksIHVzZXJNb2Rp
ZnlQcm9wZXJ0eU5hbWUpIGlzICJyZWFkLW9ubHkiCi1QQVNTIGNvbXB1dGVkU3R5bGUocHJlcGFy
ZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJs
ZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC13cml0
ZSIKLVBBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MSIpLCBudWxsKSwgdXNlck1v
ZGlmeVByb3BlcnR5TmFtZSkgaXMgInJlYWQtb25seSIKLVBBU1MgY29tcHV0ZWRTdHlsZShwcmVw
YXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRl
ZGl0YWJsZS1ob3N0MiIpLCAiZmFsc2UiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSkgaXMgInJl
YWQtb25seSIKLVBBU1MgY29tcHV0ZWRTdHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIp
LCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lKSBpcyAicmVhZC13cml0ZSIKLVBBU1MgZ2V0VXNlck1v
ZGlmeVByb3BlcnR5KCJjaGlsZC1hIikgaXMgInJlYWQtd3JpdGUiCi1QQVNTIGdldFVzZXJNb2Rp
ZnlQcm9wZXJ0eSgiY2hpbGQtYiIpIGlzICJyZWFkLXdyaXRlIgotUEFTUyBnZXRVc2VyTW9kaWZ5
UHJvcGVydHkoImNoaWxkLWMiKSBpcyAicmVhZC1vbmx5IgotUEFTUyBnZXRVc2VyTW9kaWZ5UHJv
cGVydHkoImNoaWxkLWQiKSBpcyAicmVhZC1vbmx5IgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy91c2VyLW1vZGlmeS1pbmhlcml0YW5jZS5odG1sCShyZXZpc2lv
biAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5o
ZXJpdGFuY2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4MiArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhZG93LWRv
bS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgotPGRpdiBpZD0iY29udGVudGVkaXRhYmxlLWhvc3QxIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+
Ci08ZGl2IGlkPSJjb250ZW50ZWRpdGFibGUtaG9zdDIiIGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4K
LTxkaXYgaWQ9ImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIgY29udGVudGVkaXRhYmxlPjwvZGl2Pgot
PGRpdiBpZD0ibm9uLWNvbnRlbnRlZGl0YWJsZS1ob3N0MSI+PC9kaXY+Ci08ZGl2IGlkPSJub24t
Y29udGVudGVkaXRhYmxlLWhvc3QyIj48L2Rpdj4KLTxkaXYgaWQ9Im5vbi1jb250ZW50ZWRpdGFi
bGUtaG9zdDMiPjwvZGl2PgotPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08ZGl2IGlkPSJzYW5k
Ym94MiI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci1kZXNjcmlw
dGlvbigiVGVzdHMgdG8gZW5zdXJlIHRoYXQgYSAnLXdlYmtpdC11c2VyLW1vZGlmeScgQ1NTIHBv
cnBlcnR5IGlzIG5vdCBpbmhlcml0ZWQgYWNyb3NzIHNoYWRvdyBib3VuZGFyaWVzLiIpOwotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5j
dGlvbiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsIHN0eWxlKSB7Ci0gICAgdmFyIGNzID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7Ci0gICAgaWYgKCFjcykKLSAgICAgICAgcmV0dXJu
ICcoTkEpJzsKLSAgICBpZiAoY3MuZ2V0UHJvcGVydHlDU1NWYWx1ZShzdHlsZSkpCi0gICAgICAg
IHJldHVybiBjcy5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHN0eWxlKS5jc3NUZXh0OwotICAgIHJldHVy
biB1bmRlZmluZWQ7Ci19Ci0KLWZ1bmN0aW9uIGdldFVzZXJNb2RpZnlQcm9wZXJ0eShpZCkgewot
ICAgIHJldHVybiBjb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSwgdXNl
ck1vZGlmeVByb3BlcnR5TmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIHByZXBhcmVOb2RlSW5TaGFkb3dS
b290KGhvc3QsIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZVZhbHVlRm9yTm9kZSkgewotICAgIHZh
ciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7Ci0gICAgdmFyIG5v
ZGVJblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGlmIChjb250
ZW50RWRpdGFibGVBdHRyaWJ1dGVWYWx1ZUZvck5vZGUgIT0gbnVsbCkKLSAgICAgICAgbm9kZUlu
U2hhZG93LnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgY29udGVudEVkaXRhYmxlQXR0
cmlidXRlVmFsdWVGb3JOb2RlKTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKG5vZGVJblNo
YWRvdyk7Ci0gICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotICAgIHJldHVybiBub2RlSW5T
aGFkb3c7Ci19Ci0KLXZhciB1c2VyTW9kaWZ5UHJvcGVydHlOYW1lID0gJy13ZWJraXQtdXNlci1t
b2RpZnknOwotCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5v
ZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1o
b3N0MSIpLCBudWxsKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jv
b3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MiIpLCAiZmFs
c2UiKSwgdXNlck1vZGlmeVByb3BlcnR5TmFtZSknLCAncmVhZC1vbmx5Jyk7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2Vy
TW9kaWZ5UHJvcGVydHlOYW1lKScsICdyZWFkLXdyaXRlJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2NvbXB1dGVkU3R5bGUocHJlcGFyZU5vZGVJblNoYWRvd1Jvb3QoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm5vbi1jb250ZW50ZWRpdGFibGUtaG9zdDEiKSwgbnVsbCksIHVzZXJNb2RpZnlQ
cm9wZXJ0eU5hbWUpJywgJ3JlYWQtb25seScpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21w
dXRlZFN0eWxlKHByZXBhcmVOb2RlSW5TaGFkb3dSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJub24tY29udGVudGVkaXRhYmxlLWhvc3QyIiksICJmYWxzZSIpLCB1c2VyTW9kaWZ5UHJvcGVy
dHlOYW1lKScsICdyZWFkLW9ubHknKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRT
dHlsZShwcmVwYXJlTm9kZUluU2hhZG93Um9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9u
LWNvbnRlbnRlZGl0YWJsZS1ob3N0MyIpLCAidHJ1ZSIpLCB1c2VyTW9kaWZ5UHJvcGVydHlOYW1l
KScsICdyZWFkLXdyaXRlJyk7Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYW5kYm94Jyku
YXBwZW5kQ2hpbGQoCi0gICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnLCAnY29udGVu
dGVkaXRhYmxlJzogJ3RydWUnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVh
dGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjY2hpbGQtYSd9KSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHt9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcj
Y2hpbGQtYid9KSkpLAotICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnY2hp
bGQtYSd9KSwKLSAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2NoaWxkLWIn
fSkpKTsKLQotZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotCi1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2dldFVzZXJNb2RpZnlQcm9wZXJ0eSgiY2hpbGQtYSIpJywgJ3JlYWQtd3JpdGUnKTsKLXNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZ2V0VXNlck1vZGlmeVByb3BlcnR5KCJjaGlsZC1iIiknLCAn
cmVhZC13cml0ZScpOwotCi1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveDInKS5hcHBl
bmRDaGlsZCgKLSAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaG9zdCcsICdjb250ZW50ZWRp
dGFibGUnOiAnZmFsc2UnfSwKLSAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVE
T00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcjY2hpbGQtYyd9KSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnY29udGVudGVkaXRhYmxlJyA6ICd0cnVl
J30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
Y29udGVudCcsIHsnc2VsZWN0JzogJyNjaGlsZC1kJ30pKSksCi0gICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdjaGlsZC1jJ30pLAotICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnY2hpbGQtZCd9KSkpOwotCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2dl
dFVzZXJNb2RpZnlQcm9wZXJ0eSgiY2hpbGQtYyIpJywgJ3JlYWQtb25seScpOwotc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdnZXRVc2VyTW9kaWZ5UHJvcGVydHkoImNoaWxkLWQiKScsICdyZWFkLW9u
bHknKTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvd2hlZWwtZXZlbnQtaW4tc2hhZG93LWRvbS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3doZWVsLWV2ZW50LWlu
LXNoYWRvdy1kb20tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvd2hlZWwtZXZlbnQtaW4tc2hhZG93LWRvbS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMCwwIEBACi1QQVNTOiBtb3VzZXdoZWVsIGV2ZW50IGlz
IGZpcmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy93aGVlbC1ldmVudC1pbi1zaGFk
b3ctZG9tLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3do
ZWVsLWV2ZW50LWluLXNoYWRvdy1kb20uaHRtbAkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3doZWVsLWV2ZW50LWluLXNoYWRvdy1kb20uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGNyZWF0ZUJveChuYW1lKSB7Ci0gICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGRpdi5zdHlsZS53aWR0
aCA9ICcxMDBweCc7Ci0gICAgZGl2LnN0eWxlLmhlaWdodCA9ICcxMDBweCc7Ci0KLSAgICBkaXYu
YWRkRXZlbnRMaXN0ZW5lcignbW91c2V3aGVlbCcsIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgZGVi
dWcoJ1BBU1M6IG1vdXNld2hlZWwgZXZlbnQgaXMgZmlyZWQuJyk7Ci0gICAgfSk7Ci0KLSAgICBy
ZXR1cm4gZGl2OwotfQotCi12YXIgc2hhZG93Um9vdCA9IGhvc3Qud2Via2l0Q3JlYXRlU2hhZG93
Um9vdCgpOwotdmFyIHNoYWRvd0RpdiA9IGNyZWF0ZUJveCgnc2hhZG93Jyk7Ci1zaGFkb3dSb290
LmFwcGVuZENoaWxkKHNoYWRvd0Rpdik7Ci0KLW1vdXNlTW92ZVRvRWxlbShzaGFkb3dEaXYpOwot
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeSgwLCAxKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3doZWVsLWV2ZW50LW9uLWlucHV0LWluLXNoYWRvdy1kb20t
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy93
aGVlbC1ldmVudC1vbi1pbnB1dC1pbi1zaGFkb3ctZG9tLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3doZWVsLWV2ZW50LW9uLWlu
cHV0LWluLXNoYWRvdy1kb20tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAs
MCBAQAotUEFTUzogbW91c2V3aGVlbCBldmVudCBpcyBmaXJlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvd2hlZWwtZXZlbnQtb24taW5wdXQtaW4tc2hhZG93LWRvbS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy93aGVlbC1ldmVudC1vbi1pbnB1
dC1pbi1zaGFkb3ctZG9tLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy93aGVlbC1ldmVudC1vbi1pbnB1dC1pbi1zaGFkb3ctZG9tLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2V2ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9Imhvc3QiPjwvZGl2PgotPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+Ci0KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjcmVhdGVJbnB1dChuYW1lKSB7Ci0gICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Ci0gICAgZGl2LnN0eWxl
LndpZHRoID0gJzEwMHB4JzsKLSAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4JzsKLQotICAg
IGRpdi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgZnVuY3Rpb24oZSkgewotICAgICAg
ICBkZWJ1ZygnUEFTUzogbW91c2V3aGVlbCBldmVudCBpcyBmaXJlZC4nKTsKLSAgICB9KTsKLQot
ICAgIHJldHVybiBkaXY7Ci19Ci0KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJraXRDcmVhdGVT
aGFkb3dSb290KCk7Ci12YXIgc2hhZG93RGl2ID0gY3JlYXRlSW5wdXQoJ3NoYWRvdycpOwotc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3dEaXYpOwotCi1tb3VzZU1vdmVUb0VsZW0oc2hhZG93
RGl2KTsKLWV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnkoMCwgMSk7Ci0KLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvZXZlbnQtZGlzcGF0Y2hpbmcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9l
dmVudC1kaXNwYXRjaGluZy5qcwkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3Jlc291cmNlcy9ldmVudC1kaXNwYXRjaGluZy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMSwxNzkgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IGV2
ZW50IGRpc3BhdGNoaW5nIGJlaGF2ZXMgYXMgdGhlIFNoYWRvdyBET00gc3BlYyBkZXNjcmliZXMu
Iik7Ci0KLXZhciBkZWZhdWx0UGFkZGluZ1NpemUgPSA0MDsKLQotZnVuY3Rpb24gbW92ZU1vdXNl
T3ZlcihlbGVtZW50KQotewotICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cu
aW50ZXJuYWxzKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2YXIgeCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgIHZhciB5OwotICAgIGlmIChlbGVt
ZW50Lmhhc0NoaWxkTm9kZXMoKSB8fCB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZWxlbWVu
dCkpCi0gICAgICAgIHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGRlZmF1bHRQYWRkaW5nU2l6ZSAv
IDI7Ci0gICAgZWxzZQotICAgICAgICB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9m
ZnNldEhlaWdodCAvIDI7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci19Ci0K
LWZ1bmN0aW9uIHRvdWNoTG9jYXRpb24obm9kZSkKLXsKLSAgICB2YXIgeCA9IG5vZGUub2Zmc2V0
TGVmdCArIDU7Ci0gICAgdmFyIHkgPSBub2RlLm9mZnNldFRvcCArIGRlZmF1bHRQYWRkaW5nU2l6
ZSArIDU7Ci0gICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCh4LCB5KTsKLSAgICBldmVudFNl
bmRlci50b3VjaFN0YXJ0KCk7Ci0gICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKLSAg
ICBldmVudFNlbmRlci50b3VjaEVuZCgpOwotICAgIGV2ZW50U2VuZGVyLmNhbmNlbFRvdWNoUG9p
bnQoMCk7Ci19Ci0KLWZ1bmN0aW9uIHNlbGVjdFRleHROb2RlKG5vZGUpCi17Ci0gICAgZ2V0U2Vs
ZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChub2RlLCAwLCBub2RlLCBub2RlLmxlbmd0aCk7Ci19
Ci0KLWZ1bmN0aW9uIGRyYWdNb3VzZShub2RlKSB7Ci0gICAgdmFyIHggPSBub2RlLm9mZnNldExl
ZnQgKyA1OwotICAgIHZhciB5ID0gbm9kZS5vZmZzZXRUb3AgKyBkZWZhdWx0UGFkZGluZ1NpemUg
KyA1OwotCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4ICsgMTAwLCB5ICsgMTAwKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci19Ci0KLWZ1
bmN0aW9uIHNjcm9sbE1vdXNlV2hlZWwobm9kZSkgewotICAgIHZhciB4ID0gbm9kZS5vZmZzZXRM
ZWZ0ICsgNTsKLSAgICB2YXIgeSA9IG5vZGUub2Zmc2V0VG9wICsgZGVmYXVsdFBhZGRpbmdTaXpl
ICsgNTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5KDAsIDEyMCk7Ci19Ci0KLXZhciBldmVudFJlY29yZHMgPSB7fTsKLQot
ZnVuY3Rpb24gY2xlYXJFdmVudFJlY29yZHMoKQotewotICAgIGV2ZW50UmVjb3JkcyA9IHt9Owot
fQotCi1mdW5jdGlvbiBkaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQotewotICAgIHZhciBldmVu
dHMgPSBldmVudFJlY29yZHNbZXZlbnRUeXBlXTsKLSAgICBpZiAoIWV2ZW50cykKLSAgICAgICAg
cmV0dXJuIFtdOwotICAgIHJldHVybiBldmVudHM7Ci19Ci0KLWZ1bmN0aW9uIHJlY29yZEV2ZW50
KGV2ZW50KQotewotICAgIHZhciBldmVudFR5cGUgPSBldmVudC50eXBlOwotICAgIGlmICghZXZl
bnRSZWNvcmRzW2V2ZW50VHlwZV0pIHsKLSAgICAgICAgZXZlbnRSZWNvcmRzW2V2ZW50VHlwZV0g
PSBbXTsKLSAgICB9Ci0gICAgdmFyIGV2ZW50U3RyaW5nID0gJyc7Ci0gICAgaWYgKGV2ZW50LmN1
cnJlbnRUYXJnZXQpCi0gICAgICAgIGV2ZW50U3RyaW5nICs9ICcgQCcgKyBldmVudC5jdXJyZW50
VGFyZ2V0LmlkOwotICAgIGlmIChldmVudC50YXJnZXQpCi0gICAgICAgIGV2ZW50U3RyaW5nICs9
ICcgKHRhcmdldDogJyArIGV2ZW50LnRhcmdldC5pZCArICcpJzsKLSAgICBpZiAoZXZlbnQucmVs
YXRlZFRhcmdldCkKLSAgICAgICAgZXZlbnRTdHJpbmcgKz0gJyAocmVsYXRlZDogJyArIGV2ZW50
LnJlbGF0ZWRUYXJnZXQuaWQgKyAnKSc7Ci0gICAgaWYgKGV2ZW50LnRvdWNoZXMpCi0gICAgICAg
IGV2ZW50U3RyaW5nICs9ICcgKHRvdWNoZXM6ICcgKyBkdW1wVG91Y2hMaXN0KGV2ZW50LnRvdWNo
ZXMpICsgJyknOwotICAgIGlmIChldmVudC50YXJnZXRUb3VjaGVzKQotICAgICAgICBldmVudFN0
cmluZyArPSAnICh0YXJnZXRUb3VjaGVzOiAnICsgZHVtcFRvdWNoTGlzdChldmVudC50YXJnZXRU
b3VjaGVzKSArICcpJzsKLSAgICBpZiAoZXZlbnQuY2hhbmdlZFRvdWNoZXMpCi0gICAgICAgIGV2
ZW50U3RyaW5nICs9ICcgKGNoYW5nZWRUb3VjaGVzOiAnICsgZHVtcFRvdWNoTGlzdChldmVudC5j
aGFuZ2VkVG91Y2hlcykgKyAnKSc7Ci0gICAgaWYgKGV2ZW50LmV2ZW50UGhhc2UgPT0gMSkKLSAg
ICAgICAgZXZlbnRTdHJpbmcgKz0gJyhjYXB0dXJpbmcgcGhhc2UpJzsKLSAgICBpZiAoZXZlbnQu
dGFyZ2V0ICYmIGV2ZW50LmN1cnJlbnRUYXJnZXQgJiYgZXZlbnQudGFyZ2V0LmlkID09IGV2ZW50
LmN1cnJlbnRUYXJnZXQuaWQpCi0gICAgICAgIHNob3VsZEJlKCJldmVudC5ldmVudFBoYXNlIiwg
IjIiLCB0cnVlKTsKLSAgICBldmVudFJlY29yZHNbZXZlbnRUeXBlXS5wdXNoKGV2ZW50U3RyaW5n
KTsKLX0KLQotZnVuY3Rpb24gZHVtcE5vZGUobm9kZSkKLXsKLSAgICB2YXIgb3V0cHV0ID0gbm9k
ZS5ub2RlTmFtZSArICJcdCI7Ci0gICAgaWYgKG5vZGUuaWQpCi0gICAgICAgIG91dHB1dCArPSAn
IGlkPScgKyBub2RlLmlkOwotICAgIGlmIChub2RlLmNsYXNzTmFtZSkKLSAgICAgICAgb3V0cHV0
ICs9ICcgY2xhc3M9JyArIG5vZGUuY2xhc3NOYW1lOwotICAgIHJldHVybiBvdXRwdXQ7Ci19Ci0K
LWZ1bmN0aW9uIGR1bXBUb3VjaExpc3QodG91Y2hlcykgewotICAgIHZhciBpZHMgPSBbXTsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRvdWNoZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYg
KHRvdWNoZXMuaXRlbShpKS50YXJnZXQgJiYgdG91Y2hlcy5pdGVtKGkpLnRhcmdldC5pZCkKLSAg
ICAgICAgICAgIGlkcy5wdXNoKHRvdWNoZXMuaXRlbShpKS50YXJnZXQuaWQpOwotICAgIH0KLSAg
ICBpZHMuc29ydCgpOwotICAgIHZhciByZXN1bHQgPSAnJzsKLSAgICBmb3IgKGkgPSAwOyBpIDwg
aWRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICByZXN1bHQgKz0gaWRzW2ldOwotICAgICAgICAg
aWYgKGkgIT0gaWRzLmxlbmd0aCAtIDEpCi0gICAgICAgICAgICAgcmVzdWx0ICs9ICcsICc7Ci0g
ICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIGR1bXBDb21wb3NlZFNoYWRv
d1RyZWUobm9kZSwgaW5kZW50KQotewotICAgIGluZGVudCA9IGluZGVudCB8fCAiIjsKLSAgICB2
YXIgb3V0cHV0ID0gaW5kZW50ICsgZHVtcE5vZGUobm9kZSkgKyAiXG4iOwotICAgIHZhciBjaGls
ZDsKLSAgICBmb3IgKGNoaWxkID0gaW50ZXJuYWxzLmZpcnN0Q2hpbGRCeVdhbGtlcihub2RlKTsg
Y2hpbGQ7IGNoaWxkID0gaW50ZXJuYWxzLm5leHRTaWJsaW5nQnlXYWxrZXIoY2hpbGQpKQotICAg
ICAgICAgb3V0cHV0ICs9IGR1bXBDb21wb3NlZFNoYWRvd1RyZWUoY2hpbGQsIGluZGVudCArICJc
dCIpOwotICAgIHJldHVybiBvdXRwdXQ7Ci19Ci0KLWZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJz
KG5vZGVzKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgdmFyIG5vZGUgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2sobm9kZXNbaV0pOwot
ICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVjb3JkRXZlbnQsIGZhbHNl
KTsKLSAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdkcmFnc3RhcnQnLCByZWNvcmRFdmVu
dCwgZmFsc2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgcmVj
b3JkRXZlbnQsIGZhbHNlKTsKLSAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92
ZXInLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNld2hlZWwnLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBub2RlLmFkZEV2ZW50
TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAgICAgICBub2Rl
LmFkZEV2ZW50TGlzdGVuZXIoJ2dlc3R1cmV0YXAnLCByZWNvcmRFdmVudCwgZmFsc2UpOwotICAg
ICAgICAvLyA8Y29udGVudD4gbWlnaHQgYmUgYW4gaW5hY3RpdmUgaW5zZXJ0aW9uIHBvaW50LCBz
byBzdHlsZSBpdCBhbHNvLgotICAgICAgICBpZiAobm9kZS50YWdOYW1lID09ICdESVYnIHx8IG5v
ZGUudGFnTmFtZSA9PSAnREVUQUlMUycgfHwgbm9kZS50YWdOYW1lID09ICdTVU1NQVJZJyB8fCBu
b2RlLnRhZ05hbWUgPT0gJ0NPTlRFTlQnKQotICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUo
J3N0eWxlJywgJ3BhZGRpbmctdG9wOiAnICsgZGVmYXVsdFBhZGRpbmdTaXplICsgJ3B4OycpOwot
ICAgIH0KLX0KLQotZnVuY3Rpb24gZGVidWdEaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQotewot
ICAgIGRlYnVnKCdcbiAgJyArIGV2ZW50VHlwZSk7Ci0gICAgdmFyIGV2ZW50cyA9IGRpc3BhdGNo
ZWRFdmVudChldmVudFR5cGUpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxlbmd0
aDsgKytpKQotICAgICAgICBkZWJ1ZygnICAgICcgKyBldmVudHNbaV0pCi19Ci0KLWZ1bmN0aW9u
IHNvcnREaXNwYXRjaGVkRXZlbnQoZXZlbnRUeXBlKQotewotICAgIGRpc3BhdGNoZWRFdmVudChl
dmVudFR5cGUpLnNvcnQoKTsKLX0KLQotZnVuY3Rpb24gbW92ZU1vdXNlKG9sZEVsZW1lbnRJZCwg
bmV3RWxlbWVudElkKQotewotICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgZGVidWcoJ1xu
JyArICdNb3ZpbmcgbW91c2UgZnJvbSAnICsgb2xkRWxlbWVudElkICsgJyB0byAnICsgbmV3RWxl
bWVudElkKTsKLSAgICBtb3ZlTW91c2VPdmVyKGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhvbGRF
bGVtZW50SWQpKTsKLQotICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7Ci0gICAgbW92ZU1vdXNlT3Zl
cihnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2sobmV3RWxlbWVudElkKSk7Ci0KLSAgICBkZWJ1Z0Rp
c3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsKLSAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91
c2VvdmVyJyk7Ci19Ci0KLWZ1bmN0aW9uIHNob3dTYW5kYm94VHJlZSgpCi17Ci0gICAgdmFyIHNh
bmRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FuZGJveCcpOwotICAgIHNhbmRib3gu
b2Zmc2V0TGVmdDsKLSAgICBkZWJ1ZygnXG5cbkNvbXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6
XG4nICsgZHVtcENvbXBvc2VkU2hhZG93VHJlZShzYW5kYm94KSk7Ci19CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2xpbmstaW4tc2hhZG93LXN0eWxlLmNzcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL2xpbmst
aW4tc2hhZG93LXN0eWxlLmNzcwkocmV2aXNpb24gMTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3Jlc291cmNlcy9saW5rLWluLXNoYWRvdy1zdHlsZS5jc3MJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMCwwIEBACi0ua290b3JpIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAj
MDBmZjAwOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcwkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5Zmls
bC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICswLDAgQEAKLWlmICghRWxlbWVudC5wcm90b3R5
cGUud2Via2l0Q3JlYXRlU2hhZG93Um9vdCAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgRWxl
bWVudC5wcm90b3R5cGUud2Via2l0Q3JlYXRlU2hhZG93Um9vdCA9IGZ1bmN0aW9uKCkgewotICAg
ICAgICByZXR1cm4gd2luZG93LmludGVybmFscy5jcmVhdGVTaGFkb3dSb290KHRoaXMpOwotICAg
IH07Ci19CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3JlcGxh
Y2VkLWVsZW1lbnQtc3R5bGVzLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvcmVzb3VyY2VzL3JlcGxhY2VkLWVsZW1lbnQtc3R5bGVzLmNzcwkocmV2aXNpb24g
MTg5MjAyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9yZXBsYWNl
ZC1lbGVtZW50LXN0eWxlcy5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLnBy
b2dyZXNzLWxpa2UgewotICAgIC13ZWJraXQtYXBwZWFyYW5jZTogcHJvZ3Jlc3MtYmFyOwotICAg
IC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7Ci0gICAgaGVpZ2h0OiAxZW07Ci0gICAgd2lkdGg6IDEwZW07Ci0gICAgdmVydGljYWwtYWxp
Z246IC0wLjJlbTsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotLnByb2dy
ZXNzLWlubmVyLWVsZW1lbnQtbGlrZSB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBwcm9ncmVz
cy1iYXI7Ci0gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIC13ZWJraXQt
dXNlci1tb2RpZnk6IHJlYWQtb25seTsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBoZWlnaHQ6
IDEwMCU7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgdmVydGljYWwtYWxpZ246IDBlbTsKLX0KLQot
Lm1ldGVyLWxpa2UgewotICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWV0ZXI7Ci0gICAgLXdlYmtp
dC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKLSAg
ICBoZWlnaHQ6IDFlbTsKLSAgICB3aWR0aDogNWVtOwotICAgIHZlcnRpY2FsLWFsaWduOiAtMC4y
ZW07Ci0gICAgbWFyZ2luOiAwOwotICAgIHBhZGRpbmc6IDA7Ci19Ci0KLS5tZXRlci1pbm5lci1l
bGVtZW50LWxpa2UgewotICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWV0ZXI7Ci0gICAgLXdlYmtp
dC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IHJlYWQt
b25seTsKLSAgICBkaXNwbGF5OiBibG9jazsKLSAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgd2lkdGg6
IDEwMCU7Ci0gICAgdmVydGljYWwtYWxpZ246IDBlbTsKLX0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS11dGlsLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS11dGlsLmpz
CShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3Vy
Y2VzL3NoYWRvdy1kb20tdXRpbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0vLyBzaGFkb3ctZG9tLXV0aWwuanMgaXMgYSBzZXQgb2YgdXRpbGl0
eSB0byB0ZXN0IFNoYWRvdyBET00uCi0KLWZ1bmN0aW9uIGdldEVsZW1lbnRCeUlkQ29uc2lkZXJp
bmdTaGFkb3dET00ocm9vdCwgaWQpIHsKLSAgICBmdW5jdGlvbiBpdGVyKHJvb3QsIGlkKSB7Ci0g
ICAgICAgIGlmICghcm9vdCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIGlm
IChyb290LmlkID09IGlkKQotICAgICAgICAgICAgcmV0dXJuIHJvb3Q7Ci0KLSAgICAgICAgLy8g
V2UgZG9uJ3QgY29sbGVjdCBkaXYgaGF2aW5nIGEgc2hhZG93IHJvb3QsIHNpbmNlIHdlIGNhbm5v
dCBwb2ludCBpdCBjb3JyZWN0bHkuCi0gICAgICAgIC8vIFN1Y2ggZGl2IHNob3VsZCBoYXZlIGFu
IGlubmVyIGRpdiB0byBiZSBwb2ludGVkIGNvcnJlY3RseS4KLSAgICAgICAgZm9yICh2YXIgY2hp
bGQgPSByb290LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKSB7
Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IGl0ZXIoY2hpbGQsIGlkKTsKLSAgICAgICAgICAgIGlm
IChub2RlICE9IG51bGwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAocm9vdC5ub2RlVHlwZSAhPSAxKQotICAgICAgICAgICAgcmV0dXJuIG51
bGw7Ci0KLSAgICAgICAgZm9yICh2YXIgc2hhZG93Um9vdCA9IGludGVybmFscy55b3VuZ2VzdFNo
YWRvd1Jvb3Qocm9vdCk7IHNoYWRvd1Jvb3Q7IHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMub2xkZXJT
aGFkb3dSb290KHNoYWRvd1Jvb3QpKSB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IGl0ZXIoc2hh
ZG93Um9vdCwgaWQpOwotICAgICAgICAgICAgaWYgKG5vZGUgIT0gbnVsbCkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwotICAg
IH07Ci0KLSAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHJldHVybiBudWxsOwot
ICAgIHJldHVybiBpdGVyKHJvb3QsIGlkKTsKLX0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3NoYWRvdy1kb20uanMJKHJldmlzaW9uIDE4OTIw
MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LWRvbS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMSwxNzEgKzAsMCBAQAotZnVuY3Rpb24gY3JlYXRlU2hhZG93
Um9vdCgpCi17Ci0gICAgcmV0dXJuIHsnaXNTaGFkb3dSb290JzogdHJ1ZSwKLSAgICAgICAgICAg
ICdjaGlsZHJlbic6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyl9OwotfQot
Ci1mdW5jdGlvbiBjcmVhdGVTaGFkb3dSb290V2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcywgY2hp
bGRyZW4pCi17Ci0gICAgcmV0dXJuIHsnaXNTaGFkb3dSb290JzogdHJ1ZSwKLSAgICAgICAgICAg
ICdhdHRyaWJ1dGVzJzogYXR0cmlidXRlcywKLSAgICAgICAgICAgICdjaGlsZHJlbic6IGNoaWxk
cmVufTsKLX0KLQotLy8gVGhpcyBmdW5jdGlvbiBjYW4gdGFrZSBvcHRpb25hbCBjaGlsZCBlbGVt
ZW50cywgd2hpY2ggbWlnaHQgYmUgYSByZXN1bHQgb2YgY3JlYXRlU2hhZG93Um9vdCgpLCBhcyBh
cmd1bWVudHNbMjpdLgotLy8gWW91IG11c3QgZW5hYmxlIFNIQURPV19ET00gZmxhZyBpZiB5b3Ug
dXNlIHRoaXMgZnVjbnRpb24gdG8gaG9zdCBtdWx0aXBsZSBTaGFkb3dSb290cwotLy8gc2luY2Ug
d2luZG93LmludGVybmFscyBkb2VzIG5vdCBoYXZlIGEgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVz
ZWQgdG8gaG9zdCBtdWx0aXBsZSBzaGFkb3cgcm9vdHMuCi0vLyBGSVhNRTogd2luZG93LmludGVy
bmFscyBzaG91bGQgaGF2ZSBzdWNoIGZ1bmN0aW9uIGFuZCByZW1vdmUgdGhlIHJlc3RyaWN0aW9u
LgotZnVuY3Rpb24gY3JlYXRlRE9NKHRhZ05hbWUsIGF0dHJpYnV0ZXMpCi17Ci0gICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpOwotICAgIGZvciAodmFyIG5h
bWUgaW4gYXR0cmlidXRlcykKLSAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgYXR0
cmlidXRlc1tuYW1lXSk7Ci0gICAgdmFyIGNoaWxkRWxlbWVudHMgPSBBcnJheS5wcm90b3R5cGUu
c2xpY2UuY2FsbChhcmd1bWVudHMsIDIpOwotICAgIHZhciBzaGFkb3dSb290Q291bnQgPSAwOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRFbGVtZW50cy5sZW5ndGg7ICsraSkgewotICAg
ICAgICB2YXIgY2hpbGQgPSBjaGlsZEVsZW1lbnRzW2ldOwotICAgICAgICBpZiAoY2hpbGQuaXNT
aGFkb3dSb290KSB7Ci0gICAgICAgICAgICArK3NoYWRvd1Jvb3RDb3VudDsKLSAgICAgICAgICAg
IHZhciBzaGFkb3dSb290OwotICAgICAgICAgICAgaWYgKGVsZW1lbnQud2Via2l0Q3JlYXRlU2hh
ZG93Um9vdCkKLSAgICAgICAgICAgICAgICBzaGFkb3dSb290ID0gZWxlbWVudC53ZWJraXRDcmVh
dGVTaGFkb3dSb290KGVsZW1lbnQpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Um9vdChlbGVtZW50KTsKLSAgICAg
ICAgICAgIGlmIChjaGlsZC5hdHRyaWJ1dGVzKSB7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIg
YXR0cmlidXRlIGluIGNoaWxkLmF0dHJpYnV0ZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8g
U2hhZG93IFJvb3QgZG9lcyBub3QgaGF2ZSBzZXRBdHRyaWJ1dGUuCi0gICAgICAgICAgICAgICAg
ICAgIHNoYWRvd1Jvb3RbYXR0cmlidXRlXSA9IGNoaWxkLmF0dHJpYnV0ZXNbYXR0cmlidXRlXTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKHZhciBq
ID0gMDsgaiA8IGNoaWxkLmNoaWxkcmVuLmxlbmd0aDsgKytqKQotICAgICAgICAgICAgICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY2hpbGQuY2hpbGRyZW5bal0pOwotICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOwotICAgIH0KLSAgICByZXR1
cm4gZWxlbWVudDsKLX0KLQotZnVuY3Rpb24gaXNTaGFkb3dIb3N0KG5vZGUpCi17Ci0gICAgcmV0
dXJuIHdpbmRvdy5pbnRlcm5hbHMub2xkZXN0U2hhZG93Um9vdChub2RlKTsKLX0KLQotZnVuY3Rp
b24gaXNTaGFkb3dSb290KG5vZGUpCi17Ci0gICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiB3aW5k
b3cuV2ViS2l0U2hhZG93Um9vdDsKLX0KLQotZnVuY3Rpb24gaXNJZnJhbWVFbGVtZW50KGVsZW1l
bnQpCi17Ci0gICAgcmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlTmFtZSA9PSAnSUZSQU1F
JzsKLX0KLQotLy8gWW91IGNhbiBzcGVmaWZ5IHlvdW5nZXJTaGFkb3dSb290IGJ5IGNvbnNlY3V0
aXZlIHNsYXNoZXMuCi0vLyBTZWUgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2dldC1lbGVt
ZW50LWJ5LWlkLWluLXNoYWRvdy1yb290Lmh0bWwgZm9yIGFjdHVhbCB1c2FnZXMuCi1mdW5jdGlv
biBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2socGF0aCkKLXsKLSAgICB2YXIgaWRzID0gcGF0aC5z
cGxpdCgnLycpOwotICAgIHZhciBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRzWzBd
KTsKLSAgICBmb3IgKHZhciBpID0gMTsgbm9kZSAhPSBudWxsICYmIGkgPCBpZHMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgaWYgKGlzSWZyYW1lRWxlbWVudChub2RlKSkgewotICAgICAgICAgICAg
bm9kZSA9IG5vZGUuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkc1tpXSk7Ci0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoaXNTaGFkb3dSb290KG5v
ZGUpKQotICAgICAgICAgICAgbm9kZSA9IGludGVybmFscy55b3VuZ2VyU2hhZG93Um9vdChub2Rl
KTsKLSAgICAgICAgZWxzZSBpZiAoaW50ZXJuYWxzLm9sZGVzdFNoYWRvd1Jvb3Qobm9kZSkpCi0g
ICAgICAgICAgICBub2RlID0gaW50ZXJuYWxzLm9sZGVzdFNoYWRvd1Jvb3Qobm9kZSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICBpZiAoaWRzW2ldICE9
ICcnKQotICAgICAgICAgICAgbm9kZSA9IG5vZGUuZ2V0RWxlbWVudEJ5SWQoaWRzW2ldKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIG5vZGU7Ci19Ci0KLWZ1bmN0aW9uIGR1bXBOb2RlKG5vZGUpCi17Ci0g
ICAgaWYgKCFub2RlKQotICAgICAgcmV0dXJuICdudWxsJzsKLSAgICB2YXIgb3V0cHV0ID0gJycg
KyBub2RlOwotICAgIGlmIChub2RlLmlkKQotICAgICAgICBvdXRwdXQgKz0gJyBpZD0nICsgbm9k
ZS5pZDsKLSAgICByZXR1cm4gb3V0cHV0OwotfQotCi1mdW5jdGlvbiBpbm5lcm1vc3RBY3RpdmVF
bGVtZW50KGVsZW1lbnQpCi17Ci0gICAgZWxlbWVudCA9IGVsZW1lbnQgfHwgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudDsKLSAgICBpZiAoaXNJZnJhbWVFbGVtZW50KGVsZW1lbnQpKSB7Ci0gICAgICAg
IGlmIChlbGVtZW50LmNvbnRlbnREb2N1bWVudC5hY3RpdmVFbGVtZW50KQotICAgICAgICAgICAg
cmV0dXJuIGlubmVybW9zdEFjdGl2ZUVsZW1lbnQoZWxlbWVudC5jb250ZW50RG9jdW1lbnQuYWN0
aXZlRWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBlbGVtZW50OwotICAgIH0KLSAgICBpZiAoaXNT
aGFkb3dIb3N0KGVsZW1lbnQpKSB7Ci0gICAgICAgIHZhciBzaGFkb3dSb290ID0gd2luZG93Lmlu
dGVybmFscy5vbGRlc3RTaGFkb3dSb290KGVsZW1lbnQpOwotICAgICAgICB3aGlsZSAoc2hhZG93
Um9vdCkgewotICAgICAgICAgICAgaWYgKHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gaW5uZXJtb3N0QWN0aXZlRWxlbWVudChzaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQpOwotICAgICAgICAgICAgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMueW91
bmdlclNoYWRvd1Jvb3Qoc2hhZG93Um9vdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJu
IGVsZW1lbnQ7Ci19Ci0KLWZ1bmN0aW9uIGlzSW5uZXJtb3N0QWN0aXZlRWxlbWVudChpZCkKLXsK
LSAgICB2YXIgZWxlbWVudCA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjayhpZCk7Ci0gICAgaWYg
KCFlbGVtZW50KSB7Ci0gICAgICAgIGRlYnVnKCdGQUlMOiBUaGVyZSBpcyBubyBzdWNoIGVsZW1l
bnQgd2l0aCBpZDogJysgZnJvbSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
aWYgKGVsZW1lbnQgPT0gaW5uZXJtb3N0QWN0aXZlRWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICBkZWJ1ZygnRXhwZWN0ZWQgaW5uZXJtb3N0IGFjdGl2ZUVsZW1lbnQgaXMgJyAr
IGlkICsgJywgYnV0IGFjdHVhbCBpbm5lcm1vc3QgYWN0aXZlRWxlbWVudCBpcyAnICsgZHVtcE5v
ZGUoaW5uZXJtb3N0QWN0aXZlRWxlbWVudCgpKSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1m
dW5jdGlvbiBzaG91bGROYXZpZ2F0ZUZvY3VzKGZyb20sIHRvLCBkaXJlY3Rpb24pCi17Ci0gICAg
ZGVidWcoJ1Nob3VsZCBtb3ZlIGZyb20gJyArIGZyb20gKyAnIHRvICcgKyB0byArICcgaW4gJyAr
IGRpcmVjdGlvbik7Ci0gICAgdmFyIGZyb21FbGVtZW50ID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0
YWNrKGZyb20pOwotICAgIGlmICghZnJvbUVsZW1lbnQpIHsKLSAgICAgIGRlYnVnKCdGQUlMOiBU
aGVyZSBpcyBubyBzdWNoIGVsZW1lbnQgd2l0aCBpZDogJysgZnJvbSk7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotICAgIGZyb21FbGVtZW50LmZvY3VzKCk7Ci0gICAgaWYgKCFpc0lubmVybW9zdEFj
dGl2ZUVsZW1lbnQoZnJvbSkpIHsKLSAgICAgICAgZGVidWcoJ0ZBSUw6IENhbiBub3QgYmUgZm9j
dXNlZDogJysgZnJvbSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGRpcmVjdGlv
biA9PSAnZm9yd2FyZCcpCi0gICAgICAgIG5hdmlnYXRlRm9jdXNGb3J3YXJkKCk7Ci0gICAgZWxz
ZQotICAgICAgICBuYXZpZ2F0ZUZvY3VzQmFja3dhcmQoKTsKLSAgICBpZiAoaXNJbm5lcm1vc3RB
Y3RpdmVFbGVtZW50KHRvKSkKLSAgICAgICAgZGVidWcoJ1BBU1MnKTsKLSAgICBlbHNlCi0gICAg
ICAgIGRlYnVnKCdGQUlMJyk7Ci19Ci0KLWZ1bmN0aW9uIG5hdmlnYXRlRm9jdXNGb3J3YXJkKCkK
LXsKLSAgICBldmVudFNlbmRlci5rZXlEb3duKCdcdCcpOwotfQotCi1mdW5jdGlvbiBuYXZpZ2F0
ZUZvY3VzQmFja3dhcmQoKQotewotICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ1x0JywgWydzaGlm
dEtleSddKTsKLX0KLQotZnVuY3Rpb24gdGVzdEZvY3VzTmF2aWdhdGlvbkZvd3JhZChlbGVtZW50
cykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSArIDEgPCBlbGVtZW50cy5sZW5ndGg7ICsraSkK
LSAgICAgICAgc2hvdWxkTmF2aWdhdGVGb2N1cyhlbGVtZW50c1tpXSwgZWxlbWVudHNbaSArIDFd
LCAnZm9yd2FyZCcpOwotfQotCi1mdW5jdGlvbiB0ZXN0Rm9jdXNOYXZpZ2F0aW9uQmFja3dhcmQo
ZWxlbWVudHMpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgKyAxIDwgZWxlbWVudHMubGVuZ3Ro
OyArK2kpCi0gICAgICAgIHNob3VsZE5hdmlnYXRlRm9jdXMoZWxlbWVudHNbaV0sIGVsZW1lbnRz
W2kgKyAxXSwgJ2JhY2t3YXJkJyk7Ci19CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcmVzb3VyY2VzL3NoYWRvdy10cmVlLWxpc3RlbmVyLWNsZWFyYW5jZS1mcmFtZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93
LXRyZWUtbGlzdGVuZXItY2xlYXJhbmNlLWZyYW1lLmh0bWwJKHJldmlzaW9uIDE4OTIwMikKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvc2hhZG93LXRyZWUtbGlzdGVu
ZXItY2xlYXJhbmNlLWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGRpdiBpZD0iaG9zdCI+PC9kaXY+Ci08
c2NyaXB0PgotKGZ1bmN0aW9uKCkgewotICAgIHZhciBzaGFkb3cgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaG9zdCIpLndlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKTsKLSAgICBzaGFkb3cuaW5u
ZXJIVE1MID0gIjxhcnRpY2xlIGlkPSd0YXJnZXQnPjwvYXJ0aWNsZT4iOwotICAgIGRvY3VtZW50
LnRhcmdldEluU2hhZG93ID0gc2hhZG93LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLX0pKCk7
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDE5LDEzICs0
MTksNiBAQCBwZXJmL2FycmF5LWJpbmFyeS1zZWFyY2guaHRtbCBbIFdvbnRGaXggCiBwZXJmL2Fy
cmF5LW5lc3RlZC1sb29wLmh0bWwgWyBXb250Rml4IF0KIHBlcmYvbW91c2UtZXZlbnQuaHRtbCBb
IFdvbnRGaXggXQogCi0jIFNoYWRvdyBET00gaXMgZGlzYWJsZWQuCi1CdWcoRUZMKSBlZGl0aW5n
L3NoYWRvdyBbIFdvbnRGaXggXQotQnVnKEVGTCkgZmFzdC9kb20vc2hhZG93IFsgV29udEZpeCBd
Ci1CdWcoRUZMKSBlZGl0aW5nL3RleHQtaXRlcmF0b3IvYmFzaWMtaXRlcmF0aW9uLXNoYWRvd2Rv
bS5odG1sIFsgV29udEZpeCBdCi1CdWcoRUZMKSBhY2Nlc3NpYmlsaXR5L2NvcnJlc3BvbmRpbmct
Y29udHJvbC1kZWxldGVkLWNyYXNoLmh0bWwgWyBXb250Rml4IF0KLUJ1ZyhFRkwpIGZhc3QvZG9t
L0hUTUxUZW1wbGF0ZUVsZW1lbnQvY3ljbGVzLWluLXNoYWRvdy5odG1sIFsgV29udEZpeCBdCi0K
ICMgUm91bmRpbmcgaXNzdWVzIHdoZW4gcnVubmluZyBvbiAzMi1iaXRzIG1hY2hpbmVzLgogc3Zn
L2Nzcy9zdGFycy13aXRoLXNoYWRvdy5odG1sCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxODkyMDIpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDMwLDE0ICs0
MzAsNiBAQCBhbmltYXRpb25zL3RyaWdnZXItcGFyc2luZy5odG1sIFsgU2tpcCBdCiBhbmltYXRp
b25zL3RyaWdnZXItY29udGFpbmVyLXNjcm9sbC1zaW1wbGUuaHRtbCBbIFNraXAgXQogYW5pbWF0
aW9ucy90cmlnZ2VyLWNvbnRhaW5lci1zY3JvbGwtYm91bmRhcmllcy5odG1sIFsgU2tpcCBdCiAK
LSMgRU5BQkxFKFNIQURPV19ET00pIGlzIGRpc2FibGVkLgotQnVnKEdUSykgZmFzdC9kb20vc2hh
ZG93IFsgU2tpcCBdCi1CdWcoR1RLKSBmYXN0L2RvbS9IVE1MVGVtcGxhdGVFbGVtZW50L2N5Y2xl
cy1pbi1zaGFkb3cuaHRtbCBbIFNraXAgXQotQnVnKEdUSykgZWRpdGluZy9zaGFkb3cgWyBTa2lw
IF0KLUJ1ZyhHVEspIGFjY2Vzc2liaWxpdHkvY29ycmVzcG9uZGluZy1jb250cm9sLWRlbGV0ZWQt
Y3Jhc2guaHRtbCBbIFNraXAgXQotQnVnKEdUSykgZWRpdGluZy90ZXh0LWl0ZXJhdG9yL2Jhc2lj
LWl0ZXJhdGlvbi1zaGFkb3dkb20uaHRtbCBbIFNraXAgXQotIwotCiAjIEVOQUJMRShXRUJWVFRf
UkVHSU9OUykgaXMgZGlzYWJsZWQKIHdlYmtpdC5vcmcvYi8xMDk1NzAgbWVkaWEvdHJhY2svcmVn
aW9ucy13ZWJ2dHQgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDk1NzAgbWVkaWEvdHJhY2svdzNj
IFsgU2tpcCBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1z
aW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE4OTIwMikKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtp
bmcgY29weSkKQEAgLTU4Niw3ICs1ODYsNiBAQCBlZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1i
b2xkLWl0YWxpYy1tCiBlZGl0aW5nL3N0eWxlL3RvZ2dsZS1zdHlsZS1ib2xkLWl0YWxpYy5odG1s
IFsgRmFpbHVyZSBdCiBlZGl0aW5nL3N0eWxlL3R5cGluZy1zdHlsZS0wMDEuaHRtbCBbIEZhaWx1
cmUgXQogZWRpdGluZy9zdHlsZS90eXBpbmctc3R5bGUtMDAyLmh0bWwgWyBGYWlsdXJlIF0KLWVk
aXRpbmcvdGV4dC1pdGVyYXRvci9iYXNpYy1pdGVyYXRpb24tc2hhZG93ZG9tLmh0bWwgWyBGYWls
dXJlIF0KIGVkaXRpbmcvdGV4dC1pdGVyYXRvci9maXJzdC1sZXR0ZXItd29yZC1ib3VuZGFyeS5o
dG1sIFsgRmFpbHVyZSBdCiBlZGl0aW5nL3VuZG8vNDA2Mzc1MS5odG1sIFsgRmFpbHVyZSBdCiBl
ZGl0aW5nL3VuZG8vNTM3ODQ3My5odG1sIFsgRmFpbHVyZSBdCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3It
d2syL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEzOTIsNyArMTM5Miw2IEBA
IGVkaXRpbmcvc3R5bGUvdG9nZ2xlLXN0eWxlLWJvbGQtaXRhbGljLmgKIGVkaXRpbmcvc3R5bGUv
dHlwaW5nLXN0eWxlLTAwMS5odG1sIFsgRmFpbHVyZSBdCiBlZGl0aW5nL3N0eWxlL3R5cGluZy1z
dHlsZS0wMDIuaHRtbCBbIEZhaWx1cmUgXQogZWRpdGluZy9zdHlsZS90eXBpbmctc3R5bGUtMDAz
Lmh0bWwgWyBGYWlsdXJlIF0KLWVkaXRpbmcvdGV4dC1pdGVyYXRvci9iYXNpYy1pdGVyYXRpb24t
c2hhZG93ZG9tLmh0bWwgWyBGYWlsdXJlIF0KIGVkaXRpbmcvdGV4dC1pdGVyYXRvci9maXJzdC1s
ZXR0ZXItd29yZC1ib3VuZGFyeS5odG1sIFsgRmFpbHVyZSBdCiBlZGl0aW5nL3RleHQtaXRlcmF0
b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQuaHRtbCBbIEZhaWx1cmUgXQogZWRpdGluZy91bmRvLzQw
NjM3NTEuaHRtbCBbIEZhaWx1cmUgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNp
bXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTg5MjAyKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDgsMTEgKzEwOCw2IEBAIHN0b3JhZ2Uvd2Vic3FsL3F1b3RhLXRyYWNr
aW5nLmh0bWwKIGluc3BlY3Rvci8gWyBTa2lwIF0KIGh0dHAvdGVzdHMvaW5zcGVjdG9yLyBbIFNr
aXAgXQogCi0jIFNoYWRvd0RPTSBpcyBub3QgZW5hYmxlZCBvbiBpT1MKLWZhc3QvZG9tL3NoYWRv
dwotZmFzdC9kb20vSFRNTFRlbXBsYXRlRWxlbWVudC9jeWNsZXMtaW4tc2hhZG93Lmh0bWwKLWVk
aXRpbmcvc2hhZG93Ci0KICMgU29tZSBDU1MzIFRleHQgdGVzdHMgYXJlIG5vdCBlbmFibGVkIG9u
IGlPUwogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1s
YXN0CiB3ZWJraXQub3JnL2IvOTk5NDUgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWp1c3RpZnkK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMJ
KHJldmlzaW9uIDE4OTIwMikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTgzLDEwICsxODMsNiBAQCB3ZWJraXQub3Jn
L2IvOTUwNDMgaHR0cC90ZXN0cy9zZWN1cml0eS9sCiAjIEFsbCBzcGF0aWFsIG5hdmlnYXRpb24g
dGVzdHMgZmFpbCBvbiBNYWMgV0syCiB3ZWJraXQub3JnL2IvOTY0MzggZmFzdC9zcGF0aWFsLW5h
dmlnYXRpb24KIAotIyBFTkFCTEUoU0hBRE9XX0RPTSkgaXMgZGlzYWJsZWQuCi13ZWJraXQub3Jn
L2IvNzYzNTkgZWRpdGluZy9zaGFkb3cgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi83NjM1OSBmYXN0
L2RvbS9zaGFkb3cgWyBTa2lwIF0KLQogIyBmYXN0L2V2ZW50cy9jb250cm9sY2xpY2stbm8tb25j
bGljay5odG1sIGZhaWxzIG9yIHRpbWVzIG91dCBvbiBNYWMgV0syCiB3ZWJraXQub3JnL2IvMTA1
OTQ4IGZhc3QvZXZlbnRzL2NvbnRyb2xjbGljay1uby1vbmNsaWNrLmh0bWwgWyBTa2lwIF0KIApJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDE4OTIwMikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDEsMTMgKzI0MSw2IEBAIHdlYmtpdC5vcmcvYi82MDIwNiBodHRw
L3Rlc3RzL25hdmlnYXRpb24KICMgU3R5bGVkIHNjb3BlIGVsZW1lbnQgaXMgbm90IHlldCBlbmFi
bGVkLgogd2Via2l0Lm9yZy9iLzQ5MTQyIGZhc3QvY3NzL3N0eWxlLXNjb3BlZAogCi0jIEVOQUJM
RShTSEFET1dfRE9NKSBpcyBkaXNhYmxlZC4KLWZhc3QvZG9tL3NoYWRvdwotZmFzdC9kb20vSFRN
TFRlbXBsYXRlRWxlbWVudC9jeWNsZXMtaW4tc2hhZG93Lmh0bWwKLWVkaXRpbmcvc2hhZG93Ci1h
Y2Nlc3NpYmlsaXR5L2NvcnJlc3BvbmRpbmctY29udHJvbC1kZWxldGVkLWNyYXNoLmh0bWwKLWVk
aXRpbmcvdGV4dC1pdGVyYXRvci9iYXNpYy1pdGVyYXRpb24tc2hhZG93ZG9tLmh0bWwKLQogIyBK
U0MgZG9lcyBub3Qgc3VwcG9ydCBzZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4KIHdlYmtp
dC5vcmcvYi82MTU0MCBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3Jp
Z2luLXhoci5odG1sCiAKQEAgLTQ4OCw5ICs0ODEsNiBAQCB3ZWJraXQub3JnL2IvOTM1ODkgc3Zn
L2RvbS9TVkdTY3JpcHRFbGVtCiAKIFsgTWF2ZXJpY2tzIF0gaHR0cC90ZXN0cy9tdWx0aXBhcnQv
aW52YWxpZC1pbWFnZS1kYXRhLXN0YW5kYWxvbmUuaHRtbCBbIFNraXAgXQogCi0jIE5lZWRzIEVO
QUJMRV9TSEFET1dfRE9NCi13ZWJraXQub3JnL2IvNzY0MzkgWyBEZWJ1ZyBdIGZhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBFTkFCTEUoQ1VT
VE9NX0VMRU1FTlRTKSBpcyBkaXNhYmxlZC4KIGZhc3QvZG9tL2N1c3RvbQogCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTg5MjAyKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1NSwxMSArNDU1LDYgQEAgd2Via2l0Lm9yZy9iLzQ5MTQyIGZhc3QvY3NzL3N0eWxl
LXNjb3BlZAogIyBUT0RPIEVOQUJMRShDU1NfU0NST0xMX1NOQVApIGlzIGRpc2FibGVkLgogY3Nz
My9zY3JvbGwtc25hcC8gWyBTa2lwIF0KIAotIyBFTkFCTEUoU0hBRE9XX0RPTSkgaXMgZGlzYWJs
ZWQuCi1lZGl0aW5nL3NoYWRvdy8gWyBTa2lwIF0KLWZhc3QvZG9tL3NoYWRvdy8gWyBTa2lwIF0K
LWZhc3QvZG9tL0hUTUxUZW1wbGF0ZUVsZW1lbnQvY3ljbGVzLWluLXNoYWRvdy5odG1sIFsgU2tp
cCBdCi0KICMgSlNDIGRvZXMgbm90IHN1cHBvcnQgc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3Jp
Z2luCiB3ZWJraXQub3JnL2IvNjE1NDAgaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxk
L2Nyb3NzLW9yaWdpbi14aHIuaHRtbCBbIFNraXAgXQogCkBAIC0xNDc4LDEwICsxNDczLDYgQEAg
d2Via2l0Lm9yZy9iLzk1NDA1IGFjY2Vzc2liaWxpdHkvd2luL3NpbgogYWNjZXNzaWJpbGl0eS9m
aWxlLXVwbG9hZC1idXR0b24tc3RyaW5ndmFsdWUuaHRtbAogd2Via2l0Lm9yZy9iLzk3MDI2IGFj
Y2Vzc2liaWxpdHkvZmlsZS11cGxvYWQtYnV0dG9uLXdpdGgtYXhwcmVzcy5odG1sIFsgU2tpcCBd
ICMgIFsgVGltZW91dCBdCiAKLSMgV2FudHMgJ3dlYmtpdENyZWF0ZVNoYWRvd1Jvb3QoKScgYWNj
ZXNzOgotd2Via2l0Lm9yZy9iLzEwODI0OSBbIFJlbGVhc2UgXSBhY2Nlc3NpYmlsaXR5L2NvcnJl
c3BvbmRpbmctY29udHJvbC1kZWxldGVkLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8xMDgyNDkgWyBEZWJ1ZyBdIGFjY2Vzc2liaWxpdHkvY29ycmVzcG9uZGluZy1jb250cm9s
LWRlbGV0ZWQtY3Jhc2guaHRtbCBbIFNraXAgXSAjIENyYXNoIChEZWJ1ZyBBc3NlcnRpb24pCi0K
ICMgQ29sb3IgV2VsbCBpcyBub3QgaW1wbGVtZW50ZWQ6CiBhY2Nlc3NpYmlsaXR5L2NvbG9yLXdl
bGwuaHRtbAogCg==
</data>
<flag name="review"
          id="285525"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>