<?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>209979</bug_id>
          
          <creation_ts>2020-04-03 11:40:19 -0700</creation_ts>
          <short_desc>Update test262 to commit 62b8fce38971</short_desc>
          <delta_ts>2020-04-03 23:18:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1637471</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-03 11:40:19 -0700</bug_when>
    <thetext>Update test262 to commit 62b8fce38971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637472</commentid>
    <comment_count>1</comment_count>
      <attachid>395399</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-03 11:44:59 -0700</bug_when>
    <thetext>Created attachment 395399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637476</commentid>
    <comment_count>2</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-04-03 11:57:25 -0700</bug_when>
    <thetext>I think you&apos;ll need to set the &apos;allow-tabs&apos; svn property on the lgcl JS files or your patch is going to get rejected by the svn commit hook.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637484</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-03 12:21:11 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #2)
&gt; I think you&apos;ll need to set the &apos;allow-tabs&apos; svn property on the lgcl JS
&gt; files or your patch is going to get rejected by the svn commit hook.

We should fix this upstream too. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637546</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-03 15:36:34 -0700</bug_when>
    <thetext>Oh oops, I was being silly. Those three files (lgcl-*-whitespace.js) are using tabs intentionally and appear to be marked as &quot;binary&quot; in test262.

So we can either `svn propset` or, say, add JSTests/.gitattributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637612</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-03 21:06:26 -0700</bug_when>
    <thetext>I&apos;ve checked out using SVN, applied the patch and performed

  $ svn propset &quot;allow-tabs&quot; &quot;1&quot;

on lgcl-*-whitespace.js files, but I am getting

  ERROR: Unexpected diff format when parsing a chunk: &apos;&apos;
  ERROR: Unexpected diff format when parsing a chunk: &apos;Property changes on: JSTests/test262/test/language/expressions/logical-assignment/lgcl-and-whitespace.js&apos;
  ERROR: Unexpected diff format when parsing a chunk: &apos;___________________________________________________________________&apos;
  ERROR: Unexpected diff format when parsing a chunk: &apos;Added: allow-tabs&apos;
  ERROR: Unexpected diff format when parsing a chunk: &apos;## -0,0 +1 ##&apos;
  ERROR: Unexpected diff format when parsing a chunk: &apos;\\ No newline at end of property&apos;
  ERROR: JSTests/test262/test/language/expressions/logical-assignment/lgcl-and-whitespace.js:15:  Line contains tab character.  [whitespace/tab] [5]
  ERROR: JSTests/test262/test/language/expressions/logical-assignment/lgcl-and-whitespace.js:55:  Line contains tab character.  [whitespace/tab] [5]
  ERROR: JSTests/test262/test/language/expressions/logical-assignment/lgcl-and-whitespace.js:56:  Line contains tab character.  [whitespace/tab] [5]

during `webkit-patch upload`.

Please see https://bugs.webkit.org/show_bug.cgi?id=186624: seems like we would have to land this manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637636</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-03 22:07:55 -0700</bug_when>
    <thetext>Yeah, it&apos;s not an ideal situation...

It may be better to add a JSTests/.gitattributes, listing off each problematic file, like this:
https://github.com/WebKit/webkit/blob/master/Source/WTF/icu/unicode/.gitattributes

...that way it can still go through the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637643</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-04-03 22:25:19 -0700</bug_when>
    <thetext>I brought up the allow-tabs problem awhile ago in webkit-dev but it fizzled out because I couldn&apos;t find the commit hook source and I never asked where it was. I restarted the thread so maybe we can improve our situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637644</commentid>
    <comment_count>8</comment_count>
      <attachid>395436</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-03 22:27:48 -0700</bug_when>
    <thetext>Created attachment 395436
Patch

Add JSTests/.gitattributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637645</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-04-03 22:28:22 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #6)
&gt; Yeah, it&apos;s not an ideal situation...
&gt; 
&gt; It may be better to add a JSTests/.gitattributes, listing off each
&gt; problematic file, like this:
&gt; https://github.com/WebKit/webkit/blob/master/Source/WTF/icu/unicode/.
&gt; gitattributes
&gt; 
&gt; ...that way it can still go through the commit queue.

Thank you, Ross.
Per your previous comment, I was looking through .gitattributes in /Source, but didn&apos;t find anything related to tabs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637648</commentid>
    <comment_count>10</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-03 22:34:27 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #7)
&gt; I brought up the allow-tabs problem awhile ago in webkit-dev but it fizzled
&gt; out because I couldn&apos;t find the commit hook source and I never asked where
&gt; it was. I restarted the thread so maybe we can improve our situation.

Thanks Keith!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637651</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-03 23:13:33 -0700</bug_when>
    <thetext>Committed r259529: &lt;https://trac.webkit.org/changeset/259529&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395436.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637652</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-03 23:14:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/61290124&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395399</attachid>
            <date>2020-04-03 11:44:59 -0700</date>
            <delta_ts>2020-04-03 22:27:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209979-20200403214456.patch</filename>
            <type>text/plain</type>
            <size>302078</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDYzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJhNTEyMjAzYzBjMGY2YTlhMTMzMDkyMWM2Njlh
ZDY3NzczZTM2MWIuLjFiMTQ2YmE3OGFkNzU1NTI3YmY1NzdiNjA0NzhlMThhMTMxYjgxYzYgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMDQtMDMgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21h
aWwuY29tPgorCisgICAgICAgIFVwZGF0ZSB0ZXN0MjYyIHRvIGNvbW1pdCA2MmI4ZmNlMzg5NzEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTk3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2
Mi9jb25maWcueWFtbDogU2tpcCAibG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycyIgYW5kICJQ
cm9taXNlLmFueSIgZmVhdHVyZXMuCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bDoKKyAgICAgICAgKiB0ZXN0MjYyL2xhdGVzdC1jaGFuZ2VzLXN1bW1hcnkudHh0OgorICAgICAg
ICAqIHRlc3QyNjIvdGVzdC8qOiBVcGRhdGVkLgorICAgICAgICAqIHRlc3QyNjIvdGVzdDI2Mi1S
ZXZpc2lvbi50eHQ6CisKIDIwMjAtMDQtMDMgIFBhdWxvIE1hdG9zICA8cG1hdG9zQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmUtZW5hYmxlIHByZXZpb3VzbHkgc2tpcHBlZCBhcm0gdGVzdHMKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbAppbmRleCA0NzE1ZDI0MTA0Nzk3NWRjZWY0OTUxZmJlNDUxMGExYmZlOGQ3ZmYw
Li4wYzY1ZGYwMDcyZjE2Yzg1NWJhNzU4MTAyMDEzOTc0YmM3NDY2M2VmIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55
YW1sCkBAIC0xNyw4ICsxNywxMyBAQCBza2lwOgogICAgIC0gY2xhc3Mtc3RhdGljLWZpZWxkcy1w
cml2YXRlCiAgICAgLSBjbGFzcy1zdGF0aWMtbWV0aG9kcy1wcml2YXRlCiAgICAgLSBob3N0LWdj
LXJlcXVpcmVkCisgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAyNDc1CiAgICAgLSByZWdleHAtbWF0Y2gtaW5kaWNlcwogICAgIC0gdG9wLWxldmVsLWF3YWl0
CisgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2Cisg
ICAgLSBsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzCisgICAgIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTY2CisgICAgLSBQcm9taXNlLmFueQogICAgIC0g
QWdncmVnYXRlRXJyb3IKICAgICAtIEZpbmFsaXphdGlvblJlZ2lzdHJ5CiAgICAgLSBJbnRsLkRh
dGVUaW1lRm9ybWF0LWRhdGV0aW1lc3R5bGUKQEAgLTE1Myw3ICsxNTgsMyBAQCBza2lwOgogICAg
ICMgVGhlc2UgdGVzdHMgdGltZW91dCBldmVuIHdpdGggLS10aW1lb3V0IHBhcmFtZXRlciBzZXQK
ICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg2MzkKICAg
ICAtIHRlc3QvYnVpbHQtaW5zL0FycmF5L3Byb3RvdHlwZS9sYXN0SW5kZXhPZi9sZW5ndGgtbmVh
ci1pbnRlZ2VyLWxpbWl0LmpzCi0KLSAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDM1MTEKLSAgICAtIHRlc3QvYnVpbHQtaW5zL0pTT04vc3RyaW5naWZ5L3Jl
cGxhY2VyLWZ1bmN0aW9uLXN0YWNrLW92ZXJmbG93LmpzCi0gICAgLSB0ZXN0L2J1aWx0LWlucy9K
U09OL3N0cmluZ2lmeS92YWx1ZS10b2pzb24tc3RhY2stb3ZlcmZsb3cuanMKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBl
Y3RhdGlvbnMueWFtbAppbmRleCAxZGU5M2EwMzRjZmU0MDhjOTNlOWFhYmZlNjg5ZDdmNDUxODIx
MTNlLi5lMGVjNzA3OThkNjBiMDU3MDJiNWEyZTlkYTJiNGYxOGZiMGM3ZmQwIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sCkBAIC02MDksNiArNjA5LDkgQEAgdGVzdC9hbm5leEIvbGFuZ3Vh
Z2UvZ2xvYmFsLWNvZGUvc3dpdGNoLWRmbHQtZ2xvYmFsLXNraXAtZWFybHktZXJyLXRyeS5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3Qg
Y3JlYXRlZCBwcmlvciB0byBldmFsdWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4
Qi9sYW5ndWFnZS9nbG9iYWwtY29kZS9zd2l0Y2gtZGZsdC1nbG9iYWwtc2tpcC1lYXJseS1lcnIu
anM6CiAgIGRlZmF1bHQ6ICJTeW50YXhFcnJvcjogQ2Fubm90IGRlY2xhcmUgYSBmdW5jdGlvbiB0
aGF0IHNoYWRvd3MgYSBsZXQvY29uc3QvY2xhc3MvZnVuY3Rpb24gdmFyaWFibGUgJ2YnIGluIHN0
cmljdCBtb2RlLiIKK3Rlc3QvYW5uZXhCL2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9sZWdhY3kt
b2N0YWwtZXNjYXBlLmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJy9cXDAxMTEvLmV4ZWMoJ1xceDA5MScpWzBdJykiCisgIHN0cmlj
dCBtb2RlOiAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJy9c
XDAxMTEvLmV4ZWMoJ1xceDA5MScpWzBdJykiCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9zdGF0ZW1l
bnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS1yZXR1cm4tZW11bGF0ZXMtdW5kZWZpbmVkLXRocm93
cy13aGVuLWNhbGxlZC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBU
eXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
CiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBi
ZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKQEAgLTEyMTksNiAr
MTIyMiwxNSBAQCB0ZXN0L2J1aWx0LWlucy9Qcm94eS9jb25zdHJ1Y3QvcmV0dXJuLW5vdC1vYmpl
Y3QtdGhyb3dzLXVuZGVmaW5lZC1yZWFsbS5qczoKIHRlc3QvYnVpbHQtaW5zL1Byb3h5L2NvbnN0
cnVjdC90cmFwLWlzLW5vdC1jYWxsYWJsZS1yZWFsbS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFR5cGVFcnJvcicKICAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUeXBl
RXJyb3InCit0ZXN0L2J1aWx0LWlucy9Qcm94eS9jcmVhdGUtaGFuZGxlci1pcy1yZXZva2VkLXBy
b3h5LmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9yOiBBIFByb3h5J3MgJ2hhbmRsZXInIHNob3Vs
ZG4ndCBiZSBhIHJldm9rZWQgUHJveHkiCisgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiBBIFBy
b3h5J3MgJ2hhbmRsZXInIHNob3VsZG4ndCBiZSBhIHJldm9rZWQgUHJveHkiCit0ZXN0L2J1aWx0
LWlucy9Qcm94eS9jcmVhdGUtdGFyZ2V0LWlzLXJldm9rZWQtZnVuY3Rpb24tcHJveHkuanM6Cisg
IGRlZmF1bHQ6ICJUeXBlRXJyb3I6IEEgUHJveHkncyAndGFyZ2V0JyBzaG91bGRuJ3QgYmUgYSBy
ZXZva2VkIFByb3h5IgorICBzdHJpY3QgbW9kZTogIlR5cGVFcnJvcjogQSBQcm94eSdzICd0YXJn
ZXQnIHNob3VsZG4ndCBiZSBhIHJldm9rZWQgUHJveHkiCit0ZXN0L2J1aWx0LWlucy9Qcm94eS9j
cmVhdGUtdGFyZ2V0LWlzLXJldm9rZWQtcHJveHkuanM6CisgIGRlZmF1bHQ6ICJUeXBlRXJyb3I6
IEEgUHJveHkncyAndGFyZ2V0JyBzaG91bGRuJ3QgYmUgYSByZXZva2VkIFByb3h5IgorICBzdHJp
Y3QgbW9kZTogIlR5cGVFcnJvcjogQSBQcm94eSdzICd0YXJnZXQnIHNob3VsZG4ndCBiZSBhIHJl
dm9rZWQgUHJveHkiCiB0ZXN0L2J1aWx0LWlucy9Qcm94eS9kZWZpbmVQcm9wZXJ0eS90cmFwLWlz
LXVuZGVmaW5lZC10YXJnZXQtaXMtcHJveHkuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBU
eXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
CkBAIC0xMjM0LDYgKzEyNDYsMTIgQEAgdGVzdC9idWlsdC1pbnMvUHJveHkvZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yL3RyYXAtaXMtdW5kZWZpbmVkLXRhcmdldC1pcy1wcm94eS4KIHRlc3QvYnVp
bHQtaW5zL1Byb3h5L293bktleXMvdHJhcC1pcy11bmRlZmluZWQtdGFyZ2V0LWlzLXByb3h5Lmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbbGVuZ3RoLCBmb28sIDAsIFN5
bWJvbCgpXSBhbmQgW1N5bWJvbCgpLCBsZW5ndGgsIGZvbywgMF0gdG8gaGF2ZSB0aGUgc2FtZSBj
b250ZW50cy4gJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2xlbmd0
aCwgZm9vLCAwLCBTeW1ib2woKV0gYW5kIFtTeW1ib2woKSwgbGVuZ3RoLCBmb28sIDBdIHRvIGhh
dmUgdGhlIHNhbWUgY29udGVudHMuICcKK3Rlc3QvYnVpbHQtaW5zL1Byb3h5L3NldC90cmFwLWlz
LW1pc3NpbmctcmVjZWl2ZXItbXVsdGlwbGUtY2FsbHMtaW5kZXguanM6CisgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswXSBhbmQgWzAsIDAsIDBdIHRvIGhhdmUgdGhlIHNhbWUg
Y29udGVudHMuIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjoga2V5IHByZXNlbnQgb24gW1tQcm94
eVRhcmdldF1dJworICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2ln
biB0byByZWFkb25seSBwcm9wZXJ0eS4nCit0ZXN0L2J1aWx0LWlucy9Qcm94eS9zZXQvdHJhcC1p
cy1taXNzaW5nLXJlY2VpdmVyLW11bHRpcGxlLWNhbGxzLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBbZm9vXSBhbmQgW2ZvbywgZm9vLCBmb29dIHRvIGhhdmUgdGhlIHNh
bWUgY29udGVudHMuIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjoga2V5IHByZXNlbnQgb24gW1tQ
cm94eVRhcmdldF1dJworICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFz
c2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS4nCiB0ZXN0L2J1aWx0LWlucy9Qcm94eS9zZXQvdHJh
cC1pcy1taXNzaW5nLXRhcmdldC1pcy1wcm94eS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0
IG1vZGU6ICdUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdlIGNvbmZpZ3VyYWJsZSBhdHRy
aWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuJwpAQCAtMTkyNiw5ICsxOTQ0LDEyIEBA
IHRlc3QvaW50bDQwMi9Db2xsYXRvci91c2FnZS1kZS5qczoKIHRlc3QvaW50bDQwMi9EYXRlVGlt
ZUZvcm1hdC9jb25zdHJ1Y3Rvci1jYWxlbmRhci1udW1iZXJpbmdTeXN0ZW0tb3JkZXIuanM6CiAg
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtsb2NhbGVNYXRjaGVyLCBob3VyMTJd
IGFuZCBbbG9jYWxlTWF0Y2hlciwgY2FsZW5kYXIsIG51bWJlcmluZ1N5c3RlbSwgaG91cjEyXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBbbG9jYWxlTWF0Y2hlciwgaG91cjEyXSBhbmQgW2xvY2FsZU1hdGNoZXIsIGNh
bGVuZGFyLCBudW1iZXJpbmdTeXN0ZW0sIGhvdXIxMl0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50
cy4gJwotdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2ludmFsaWQtbnVtYmVyaW5nLXN5c3Rl
bS1jYWxlbmRhci1vcHRpb25zLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBJbnZhbGlk
IG51bWJlcmluZ1N5c3RlbSB2YWx1ZSBhYiB3YXMgbm90IHJlamVjdGVkLiBFeHBlY3RlZCBhIFJh
bmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBJbnZhbGlkIG51bWJlcmluZ1N5c3RlbSB2
YWx1ZSBhYiB3YXMgbm90IHJlamVjdGVkLiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhy
b3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCit0ZXN0L2ludGw0MDIvRGF0
ZVRpbWVGb3JtYXQvY29uc3RydWN0b3Itb3B0aW9ucy1jYWxlbmRhci1pbnZhbGlkLmpzOgorICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7Y2Fs
ZW5kYXI6ICIifSkgdGhyb3dzIFJhbmdlRXJyb3IgRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiwge2NhbGVuZGFy
OiAiIn0pIHRocm93cyBSYW5nZUVycm9yIEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKK3Rlc3QvaW50bDQwMi9EYXRl
VGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLW51bWJlcmluZ1N5c3RlbS1pbnZhbGlkLmpz
OgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4i
LCB7bnVtYmVyaW5nU3lzdGVtOiAiIn0pIHRocm93cyBSYW5nZUVycm9yIEV4cGVjdGVkIGEgUmFu
Z2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
KyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJl
biIsIHtudW1iZXJpbmdTeXN0ZW06ICIifSkgdGhyb3dzIFJhbmdlRXJyb3IgRXhwZWN0ZWQgYSBS
YW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwogdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L251bWJlcmluZy1zeXN0ZW0tY2FsZW5kYXIt
b3B0aW9ucy5qczoKICAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogT3B0aW9ucyB2YWx1ZSBmb3Ig
cHJvcGVydHkgbnVtYmVyaW5nU3lzdGVtIGRvZXNuJ3Qgb3ZlcnJpZGUgbG9jYWxlIGV4dGVuc2lv
biBrZXkgbnUuIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2FyYWLCuywgwqtsYXRuwrspIHRvIGJlIHRy
dWUiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVycm9yOiBPcHRpb25zIHZhbHVlIGZvciBwcm9w
ZXJ0eSBudW1iZXJpbmdTeXN0ZW0gZG9lc24ndCBvdmVycmlkZSBsb2NhbGUgZXh0ZW5zaW9uIGtl
eSBudS4gRXhwZWN0ZWQgU2FtZVZhbHVlKMKrYXJhYsK7LCDCq2xhdG7CuykgdG8gYmUgdHJ1ZSIK
QEAgLTE5NzEsMTIgKzE5OTIsMTIgQEAgdGVzdC9pbnRsNDAyL0ludGwvZ2V0Q2Fub25pY2FsTG9j
YWxlcy9wcmVmZXJyZWQtdmFyaWFudC5qczoKIHRlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvY29u
c3RydWN0b3ItbnVtYmVyaW5nU3lzdGVtLW9yZGVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBbbG9jYWxlTWF0Y2hlciwgc3R5bGVdIGFuZCBbbG9jYWxlTWF0Y2hlciwg
bnVtYmVyaW5nU3lzdGVtLCBzdHlsZV0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW2xvY2FsZU1hdGNoZXIsIHN0eWxl
XSBhbmQgW2xvY2FsZU1hdGNoZXIsIG51bWJlcmluZ1N5c3RlbSwgc3R5bGVdIHRvIGhhdmUgdGhl
IHNhbWUgY29udGVudHMuICcKK3Rlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvY29uc3RydWN0b3It
b3B0aW9ucy1udW1iZXJpbmdTeXN0ZW0taW52YWxpZC5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogbmV3IEludGwuTnVtYmVyRm9ybWF0KCJlbiIsIHtudW1iZXJpbmdTeXN0ZW06ICIifSkg
dGhyb3dzIFJhbmdlRXJyb3IgRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogbmV3IEludGwuTnVtYmVyRm9ybWF0KCJlbiIsIHtudW1iZXJpbmdTeXN0ZW06ICIifSkg
dGhyb3dzIFJhbmdlRXJyb3IgRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRsNDAyL051bWJlckZvcm1h
dC9jb25zdHJ1Y3Rvci1vcHRpb25zLXRocm93aW5nLWdldHRlcnMuanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4Y2VwdGlvbiBmcm9tIG51bWJlcmluZ1N5c3RlbSBnZXR0ZXIgc2hvdWxk
IGJlIHByb3BhZ2F0ZWQgRXhwZWN0ZWQgYSBDdXN0b21FcnJvciB0byBiZSB0aHJvd24gYnV0IG5v
IGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4Y2VwdGlvbiBmcm9tIG51bWJlcmluZ1N5c3RlbSBnZXR0ZXIgc2hvdWxkIGJlIHByb3Bh
Z2F0ZWQgRXhwZWN0ZWQgYSBDdXN0b21FcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvaW52YWxpZC1u
dW1iZXJpbmctc3lzdGVtLW9wdGlvbnMuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IElu
dmFsaWQgbnVtYmVyaW5nU3lzdGVtIHZhbHVlIGFiIHdhcyBub3QgcmVqZWN0ZWQuIEV4cGVjdGVk
IGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEludmFsaWQgbnVtYmVyaW5nU3lz
dGVtIHZhbHVlIGFiIHdhcyBub3QgcmVqZWN0ZWQuIEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBi
ZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvaW50bDQw
Mi9OdW1iZXJGb3JtYXQvbnVtYmVyaW5nLXN5c3RlbS1vcHRpb25zLmpzOgogICBkZWZhdWx0OiAi
VGVzdDI2MkVycm9yOiBPcHRpb25zIHZhbHVlIGZvciBwcm9wZXJ0eSBudW1iZXJpbmdTeXN0ZW0g
ZG9lc24ndCBvdmVycmlkZSBsb2NhbGUgZXh0ZW5zaW9uIGtleSBudS4gRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrYXJhYsK7LCDCq2xhdG7CuykgdG8gYmUgdHJ1ZSIKICAgc3RyaWN0IG1vZGU6ICJUZXN0
MjYyRXJyb3I6IE9wdGlvbnMgdmFsdWUgZm9yIHByb3BlcnR5IG51bWJlcmluZ1N5c3RlbSBkb2Vz
bid0IG92ZXJyaWRlIGxvY2FsZSBleHRlbnNpb24ga2V5IG51LiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqthcmFiwrssIMKrbGF0bsK7KSB0byBiZSB0cnVlIgpAQCAtMjEyOCw5ICsyMTQ5LDYgQEAgdGVz
dC9sYW5ndWFnZS9ibG9jay1zY29wZS9zeW50YXgvcmVkZWNsYXJhdGlvbi92YXItcmVkZWNsYXJh
dGlvbi1hdHRlbXB0LWFmdGVyLWYKICAgZGVmYXVsdDogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50
IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLicKIHRlc3QvbGFuZ3VhZ2UvYmxvY2stc2NvcGUvc3lu
dGF4L3JlZGVjbGFyYXRpb24vdmFyLXJlZGVjbGFyYXRpb24tYXR0ZW1wdC1hZnRlci1nZW5lcmF0
b3IuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4nCi10ZXN0L2xhbmd1YWdlL2V2YWwtY29kZS9kaXJlY3QvbmV3LnRhcmdldC1h
cnJvdy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
ZnVuY3Rpb24gUmVmZXJlbmNlRXJyb3IoKSB7JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZnVuY3Rpb24gUmVmZXJlbmNlRXJyb3IoKSB7JwogdGVz
dC9sYW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L25vbi1kZWZpbmFibGUtZnVuY3Rpb24td2l0aC1m
dW5jdGlvbi5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrW29iamVjdCBPYmplY3RdwrssIMKrdW5kZWZpbmVkwrspIHRvIGJlIHRydWUnCiB0ZXN0L2xh
bmd1YWdlL2V2YWwtY29kZS9kaXJlY3Qvbm9uLWRlZmluYWJsZS1mdW5jdGlvbi13aXRoLXZhcmlh
YmxlLmpzOgpAQCAtMzIwNyw2ICszMjI1LDEyIEBAIHRlc3QvbGFuZ3VhZ2UvaWRlbnRpZmllcnMv
c3RhcnQtdW5pY29kZS0xMy4wLjAuanM6CiB0ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC91
LWFzdHJhbC1jaGFyLWNsYXNzLWludmVydC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwogICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVs
bMK7KSB0byBiZSB0cnVlJwordGVzdC9sYW5ndWFnZS9saXRlcmFscy9zdHJpbmcvdW5pY29kZS1l
c2NhcGUtbm8taGV4LWVyci1kb3VibGUuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0
YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2
MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwordGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9zdHJpbmcvdW5pY29kZS1lc2NhcGUtbm8taGV4LWVyci1zaW5nbGUuanM6Cisg
IGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBi
ZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFnZS9tb2R1bGUtY29kZS9ldmFsLXJxc3RkLW9uY2Uu
anM6CiAgIG1vZHVsZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ2FzJy4g
RXhwZWN0ZWQgJ2Zyb20nIGJlZm9yZSBleHBvcnRlZCBtb2R1bGUgbmFtZS4iCiB0ZXN0L2xhbmd1
YWdlL21vZHVsZS1jb2RlL2V2YWwtcnFzdGQtb3JkZXIuanM6CkBAIC0zNjExLDYgKzM2MzUsOSBA
QCB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2hlYWQtbGhzLW5vbi1hc25tdC10cmd0
LmpzOgogdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9oZWFkLXZhci1uby1leHByLmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFs
dWF0ZWQuJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBu
b3QgYmUgZXZhbHVhdGVkLicKK3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3Itb2YvaXRlcmF0
b3ItY2xvc2UtdGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIGJ1dCBnb3QgYSBPYmplY3QnCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciBidXQgZ290IGEg
T2JqZWN0JwogdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9sZXQtYXJyYXktd2l0aC1u
ZXdsaW5lLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5v
dCBiZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci9oZWFkLWxocy1s
ZXQuanM6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvaGFybmVzcy9hc3luYy1nYy5qcyBi
L0pTVGVzdHMvdGVzdDI2Mi9oYXJuZXNzL2FzeW5jLWdjLmpzCmluZGV4IDhjYjdhNDRiNjZkNjZi
YzkyM2VhMzA3NDMzYTllNTZhODc3NDJmNjUuLjhiNTc4N2I2ODRjZWUyMGYwZGI1MmJlZGJhZGU2
MTc0MjExOThjMTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9oYXJuZXNzL2FzeW5jLWdj
LmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9oYXJuZXNzL2FzeW5jLWdjLmpzCkBAIC0yMSwxMCAr
MjEsMTAgQEAgZnVuY3Rpb24gYXN5bmNHQyguLi50YXJnZXRzKSB7CiAgIHRhcmdldHMgPSBudWxs
OwogCiAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJ3RpY2snKS50aGVuKCgpID0+IGFzeW5jR0NE
ZXJlZigpKS50aGVuKCgpID0+IHsKLSAgICB2YXIgbmFtZXM7CisgICAgdmFyIG5hbWVzID0gW107
CiAKICAgICAvLyBjb25zdW1lIGl0ZXJhdG9yIHRvIGNhcHR1cmUgbmFtZXMKLSAgICBmaW5hbGl6
YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShpdGVyID0+IHsgbmFtZXMgPSBbLi4uaXRlcl07IH0p
OworICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKG5hbWUgPT4geyBuYW1lcy5w
dXNoKG5hbWUpOyB9KTsKIAogICAgIGlmICghbmFtZXMgfHwgbmFtZXMubGVuZ3RoICE9IGxlbmd0
aCkgewogICAgICAgdGhyb3cgYXN5bmNHQy5ub3RDb2xsZWN0ZWQ7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvbGF0ZXN0LWNoYW5nZXMtc3VtbWFyeS50eHQgYi9KU1Rlc3RzL3Rlc3QyNjIv
bGF0ZXN0LWNoYW5nZXMtc3VtbWFyeS50eHQKaW5kZXggZDRlMTI1Y2U1MTZjNzc2ZjA2ZTAyOTNl
MTMwNjcxZTNhN2JlYTVlNC4uYjJlZDRmZDFkOWRiMjg4YjAxNWY0M2IyMTExZjM5MzU3YzEzMjVl
MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2xhdGVzdC1jaGFuZ2VzLXN1bW1hcnkudHh0
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9sYXRlc3QtY2hhbmdlcy1zdW1tYXJ5LnR4dApAQCAtMSw5
ICsxLDE2OCBAQAotTSBoYXJuZXNzL2Fzc2VydC5qcwotTSBoYXJuZXNzL3Byb3BlcnR5SGVscGVy
LmpzCi1EIHRlc3QvYnVpbHQtaW5zL0pTT04vc3RyaW5naWZ5L3JlcGxhY2VyLWZ1bmN0aW9uLXN0
YWNrLW92ZXJmbG93LmpzCi1EIHRlc3QvYnVpbHQtaW5zL0pTT04vc3RyaW5naWZ5L3ZhbHVlLXRv
anNvbi1zdGFjay1vdmVyZmxvdy5qcwotQSB0ZXN0L2J1aWx0LWlucy9OYXRpdmVFcnJvcnMvQWdn
cmVnYXRlRXJyb3IvbmV3dGFyZ2V0LWlzLXVuZGVmaW5lZC5qcwotTSB0ZXN0L2J1aWx0LWlucy9S
ZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5yZXBsYWNlL3BvaXNvbmVkLXN0ZGxpYi5qcwotTSB0ZXN0
L2hhcm5lc3MvYXNzZXJ0LXNhbWV2YWx1ZS16ZXJvcy5qcwotQSB0ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2NsYXNzL2VsZW1lbnRzL3ByaXZhdGUtZmllbGQtYWZ0ZXItb3B0aW9uYWwtY2hhaW4u
anMKLUEgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3ByaXZhdGUtZmll
bGQtYWZ0ZXItb3B0aW9uYWwtY2hhaW4uanMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitN
IGhhcm5lc3MvYXN5bmMtZ2MuanMKK00gdGVzdC9hbm5leEIvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVn
ZXhwL2xlZ2FjeS1vY3RhbC1lc2NhcGUuanMKK0QgdGVzdC9idWlsdC1pbnMvQXN5bmNGcm9tU3lu
Y0l0ZXJhdG9yUHJvdG90eXBlLy5EU19TdG9yZQorRCB0ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21T
eW5jSXRlcmF0b3JQcm90b3R5cGUvbmV4dC8uRFNfU3RvcmUKK0EgdGVzdC9idWlsdC1pbnMvQXN5
bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlL25leHQvYWJzZW50LXZhbHVlLW5vdC1wYXNzZWQu
anMKK0EgdGVzdC9idWlsdC1pbnMvQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlL3JldHVy
bi9hYnNlbnQtdmFsdWUtbm90LXBhc3NlZC5qcworQSB0ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21T
eW5jSXRlcmF0b3JQcm90b3R5cGUvdGhyb3cvYWJzZW50LXZhbHVlLW5vdC1wYXNzZWQuanMKK0Qg
dGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlD
bGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvU3ltYm9sLnRvU3RyaW5nVGFnLmpzCitEIHRlc3QvYnVp
bHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0
ZXJhdG9yUHJvdG90eXBlL25leHQtam9iLW5vdC1hY3RpdmUtdGhyb3dzLmpzCitEIHRlc3QvYnVp
bHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0
ZXJhdG9yUHJvdG90eXBlL25leHQtbGVuZ3RoLmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBl
L25leHQtbWlzc2luZy1pbnRlcm5hbC10aHJvd3MuanMKK0QgdGVzdC9idWlsdC1pbnMvRmluYWxp
emF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5
cGUvbmV4dC1uYW1lLmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0Zp
bmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbm90LW9iamVj
dC10aHJvd3MuanMKK0QgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxp
emF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1wcm9wLWRlc2MuanMK
K0QgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0
cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvcHJvdG8uanMKK00gdGVzdC9idWlsdC1pbnMvRmlu
YWxpemF0aW9uUmVnaXN0cnkvZ2MtaGFzLW9uZS1jaGFuY2UtdG8tY2FsbC1jbGVhbnVwQ2FsbGJh
Y2suanMKK0QgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2Ns
ZWFudXBTb21lL2NhbGxiYWNrLWl0ZXJhdG9yLXByb3RvLmpzCitNIHRlc3QvYnVpbHQtaW5zL0Zp
bmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9jbGVhbnVwLXByZXZlbnRl
ZC13aXRoLXJlZmVyZW5jZS5qcworTSB0ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3Ry
eS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC1wcmV2ZW50ZWQtd2l0aC11bnJlZ2lzdGVy
LmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVh
bnVwU29tZS9jbGVhbnVwY2FsbGJhY2staXRlcmF0b3ItcHJvdG8uanMKK1IwNzYgdGVzdC9idWls
dC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2l0ZXJhdG9y
LWhvbGRpbmdzLW11bHRpcGxlLXZhbHVlcy5qcyB0ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25S
ZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvaG9sZGluZ3MtbXVsdGlwbGUtdmFsdWVzLmpz
CitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVw
U29tZS9wb2lzb25lZC1jYWxsYmFjay10aHJvd3MuanMKK1IwNjkgdGVzdC9idWlsdC1pbnMvRmlu
YWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NsZWFudXAtdGhyb3dzLWlu
LWNhbGxiYWNrLmpzIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlw
ZS9jbGVhbnVwU29tZS9yZWVudHJhbmN5LmpzCitNIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlv
blJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9yZXR1cm4tdW5kZWZpbmVkLXdpdGgtZ2Mu
anMKK00gdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL3VucmVn
aXN0ZXIvdW5yZWdpc3Rlci1jbGVhbmVkLXVwLWNlbGwuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1jYWxsZWQtdHdpY2UuanMKK0EgdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1ub3QtY2FsbGFibGUuanMKK0Eg
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LWN0b3ItdGhyb3dzLmpzCitBIHRlc3QvYnVp
bHQtaW5zL1Byb21pc2UvYW55L2N0eC1jdG9yLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2N0eC1ub24tY3Rvci5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2Ut
cmVzb2x2ZS1lcnJvci1jbG9zZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZv
a2UtcmVzb2x2ZS1lcnJvci1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aW52b2tlLXJlc29sdmUtZ2V0LWVycm9yLWNsb3NlLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L2ludm9rZS1yZXNvbHZlLWdldC1lcnJvci1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LW9uY2UtbXVsdGlwbGUtY2FsbHMuanMK
K0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LW9uY2Utbm8t
Y2FsbHMuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtbm90
LWNhbGxhYmxlLXJlamVjdHMtd2l0aC10eXBlcnJvci5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3Vz
dG9tLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXBy
b21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCitBIHRlc3QvYnVpbHQtaW5zL1By
b21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXZhbHVlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3Vz
dG9tLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXZh
bHVlcy1ldmVyeS1pdGVyYXRpb24tb2YtcHJvbWlzZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9pbnZva2UtcmVzb2x2ZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9p
bnZva2UtdGhlbi1lcnJvci1jbG9zZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9p
bnZva2UtdGhlbi1lcnJvci1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aW52b2tlLXRoZW4tZ2V0LWVycm9yLWNsb3NlLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2ludm9rZS10aGVuLWdldC1lcnJvci1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvaW52b2tlLXRoZW4tb24tcHJvbWlzZXMtZXZlcnktaXRlcmF0aW9uLmpzCitBIHRl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLmpzCitBIHRlc3QvYnVpbHQtaW5z
L1Byb21pc2UvYW55L2lzLWZ1bmN0aW9uLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2l0ZXItYXJnLWlzLWVtcHR5LWl0ZXJhYmxlLXJlamVjdC5qcworQSB0ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9pdGVyLWFyZy1pcy1lbXB0eS1zdHJpbmctcmVqZWN0LmpzCitBIHRlc3QvYnVp
bHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLWZhbHNlLXJlamVjdC5qcworQSB0ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1udWxsLXJlamVjdC5qcworQSB0ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1udW1iZXItcmVqZWN0LmpzCitBIHRlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXBvaXNvbmVkLmpzCitBIHRlc3QvYnVp
bHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXN0cmluZy1yZXNvbHZlLmpzCitBIHRlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXN5bWJvbC1yZWplY3QuanMKK0EgdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtdHJ1ZS1yZWplY3QuanMKK0EgdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtdW5kZWZpbmVkLXJlamVjdC5qcwor
QSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLWZhbHNlLXJlamVjdC5q
cworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLW51bGwtcmVqZWN0
LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXNzaWduZWQtbnVtYmVyLXJl
amVjdC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLXN0cmlu
Zy1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1z
eW1ib2wtcmVqZWN0LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXNzaWdu
ZWQtdHJ1ZS1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3Np
Z25lZC11bmRlZmluZWQtcmVqZWN0LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0
ZXItc3RlcC1lcnItbm8tY2xvc2UuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRl
ci1zdGVwLWVyci1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbGVuZ3Ro
LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L25hbWUuanMKK0EgdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvbmV3LXJlamVjdC1mdW5jdGlvbi5qcworQSB0ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9wcm9wLWRlc2MuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVq
ZWN0LWFsbC1taXhlZC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZGVm
ZXJyZWQuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVqZWN0LWVsZW1lbnQtZnVu
Y3Rpb24tZXh0ZW5zaWJsZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3Qt
ZWxlbWVudC1mdW5jdGlvbi1sZW5ndGguanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
cmVqZWN0LWVsZW1lbnQtZnVuY3Rpb24tbmFtZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1ub25jb25zdHJ1Y3Rvci5qcworQSB0ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1wcm90b3R5cGUuanMK
K0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZS1mcm9tLXJlamVjdC1jYXRjaC5q
cworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWZyb20tcmVzb2x2ZS1yZWpl
Y3QtY2F0Y2guanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZS1pZ25vcmVz
LWxhdGUtcmVqZWN0aW9uLWRlZmVycmVkLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L3Jlc29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9yZXR1cm5zLXByb21pc2UuanMKK00gdGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRl
LWhhbmRsZXItaXMtcmV2b2tlZC1wcm94eS5qcworTSB0ZXN0L2J1aWx0LWlucy9Qcm94eS9jcmVh
dGUtdGFyZ2V0LWlzLW5vdC1jYWxsYWJsZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm94eS9jcmVh
dGUtdGFyZ2V0LWlzLXJldm9rZWQtZnVuY3Rpb24tcHJveHkuanMKK00gdGVzdC9idWlsdC1pbnMv
UHJveHkvY3JlYXRlLXRhcmdldC1pcy1yZXZva2VkLXByb3h5LmpzCitBIHRlc3QvYnVpbHQtaW5z
L1Byb3h5L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXItbXVsdGlwbGUtY2FsbHMtaW5kZXgu
anMKK0EgdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMtbWlzc2luZy1yZWNlaXZlci1t
dWx0aXBsZS1jYWxscy5qcworUjEwMCB0ZXN0L2J1aWx0LWlucy9Qcm94eS9zZXQvdHJhcC1pcy11
bmRlZmluZWQtcmVjZWl2ZXIuanMgdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMtbnVs
bC1yZWNlaXZlci5qcworQSB0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvY29uc3RydWN0b3It
b3B0aW9ucy1jYWxlbmRhci1pbnZhbGlkLmpzCitBIHRlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1h
dC9jb25zdHJ1Y3Rvci1vcHRpb25zLW51bWJlcmluZ1N5c3RlbS1pbnZhbGlkLmpzCitEIHRlc3Qv
aW50bDQwMi9EYXRlVGltZUZvcm1hdC9pbnZhbGlkLW51bWJlcmluZy1zeXN0ZW0tY2FsZW5kYXIt
b3B0aW9ucy5qcworQSB0ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlv
bnMtbnVtYmVyaW5nU3lzdGVtLWludmFsaWQuanMKK0QgdGVzdC9pbnRsNDAyL051bWJlckZvcm1h
dC9pbnZhbGlkLW51bWJlcmluZy1zeXN0ZW0tb3B0aW9ucy5qcworTSB0ZXN0L2ludGw0MDIvUmVs
YXRpdmVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yL2NvbnN0cnVjdG9yL29wdGlvbnMtbnVtYmVyaW5n
U3lzdGVtLWludmFsaWQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVt
ZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMKK0EgdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFu
Y2UtZmllbGQtYXNzaWduZWQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9l
bGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQuanMKK0EgdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxk
LWFzc2lnbmVkLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY2xhc3MvZWxlbWVudHMv
c3RhdGljLWFzLXZhbGlkLXN0YXRpYy1maWVsZC5qcworRCB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2NsYXNzL2VsZW1lbnRzL3N5bnRheC9lYXJseS1lcnJvcnMvZ3JhbW1hci1wcml2YXRlLWZp
ZWxkLW9wdGlvbmFsLWNoYWluaW5nLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFyZ3VtZW50cy1zdHJpY3QuanMKK0EgdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1v
cGVyYXRvci1iaWdpbnQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFz
c2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1saHMtYmVmb3JlLXJocy5qcwor
QSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1h
c3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1uby1z
ZXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1ub24tZXh0ZW5zaWJsZS5qcworQSB0ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9w
ZXJhdG9yLW5vbi1zaW1wbGUtbGhzLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJs
ZS1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQv
bGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLmpzCitBIHRlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQt
b3BlcmF0b3ItdW5yZXNvbHZlZC1saHMuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVk
LXJocy1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy5qcworQSB0ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25t
ZW50LW9wZXJhdG9yLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3Np
Z25tZW50L2xnY2wtYW5kLWV2YWwtc3RyaWN0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLW5vbi1zaW1wbGUuanMKK0EgdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtd2hpdGVzcGFjZS5q
cworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51
bGxpc2gtYXJndW1lbnRzLXN0cmljdC5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xv
Z2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQu
anMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1u
dWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItbGhzLWJlZm9yZS1yaHMuanMKK0EgdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1l
bnQtb3BlcmF0b3Itbm8tc2V0LXB1dC5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xv
Z2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1uby1zZXQu
anMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1u
dWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLWV4dGVuc2libGUuanMKK0EgdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1l
bnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9u
LXdyaXRlYWJsZS1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFz
c2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS5q
cworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51
bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcworQSB0ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVu
dC1vcGVyYXRvci11bnJlc29sdmVkLXJocy1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3It
dW5yZXNvbHZlZC1yaHMuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFz
c2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMKK0EgdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWV2YWwtc3Ry
aWN0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtbnVsbGlzaC1ub24tc2ltcGxlLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC13aGl0ZXNwYWNlLmpzCitBIHRlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXJndW1lbnRzLXN0cmlj
dC5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW9yLWFzc2lnbm1lbnQtb3BlcmF0b3ItYmlnaW50LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1saHMt
YmVmb3JlLXJocy5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1dC5qcworQSB0ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQt
b3BlcmF0b3Itbm8tc2V0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24tZXh0ZW5zaWJsZS5qcwor
QSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFz
c2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKK0EgdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLW5v
bi13cml0ZWFibGUtcHV0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLmpzCitB
IHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNz
aWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5y
ZXNvbHZlZC1yaHMtcHV0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy5qcwor
QSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFz
c2lnbm1lbnQtb3BlcmF0b3IuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1vci1ldmFsLXN0cmljdC5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLW5vbi1zaW1wbGUuanMKK0EgdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci13aGl0ZXNwYWNl
LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvdGVtcGxhdGUtbGl0ZXJhbC91bmljb2Rl
LWVzY2FwZS1uby1oZXgtZXJyLmpzCitBIHRlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvc3RyaW5nL3Vu
aWNvZGUtZXNjYXBlLW5vLWhleC1lcnItZG91YmxlLmpzCitBIHRlc3QvbGFuZ3VhZ2UvbGl0ZXJh
bHMvc3RyaW5nL3VuaWNvZGUtZXNjYXBlLW5vLWhleC1lcnItc2luZ2xlLmpzCitBIHRlc3QvbGFu
Z3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0
aW9uYWwtY2hhaW5pbmcuanMKK0EgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1l
bnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC1hc3NpZ25lZC5qcworQSB0ZXN0L2xh
bmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3RhbmNl
LWZpZWxkLmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0
aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLWFzc2lnbmVkLmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3Rh
dGVtZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLmpzCitE
IHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zeW50YXgvZWFybHktZXJy
b3JzL2dyYW1tYXItcHJpdmF0ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5qcworQSB0ZXN0L2xh
bmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1n
ZXQtbWV0aG9kLWFicnVwdC5qcworQSB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0
LW9mL2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwor
QSB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLXRo
cm93LWdldC1tZXRob2QtYWJydXB0LmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3It
YXdhaXQtb2YvaXRlcmF0b3ItY2xvc2UtdGhyb3ctZ2V0LW1ldGhvZC1ub24tY2FsbGFibGUuanMK
K1IwNTEgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS1nZXQt
bWV0aG9kLWVycm9yLmpzIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3Itb2YvaXRlcmF0b3It
Y2xvc2Utbm9uLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3Rh
dGVtZW50cy9mb3Itb2YvaXRlcmF0b3ItY2xvc2Utbm9uLXRocm93LWdldC1tZXRob2Qtbm9uLWNh
bGxhYmxlLmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3Itb2YvaXRlcmF0b3ItY2xv
c2UtdGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanMKK0EgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRz
L2Zvci1vZi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2FubmV4Qi9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAvbGVnYWN5LW9jdGFsLWVzY2FwZS5q
cyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2FubmV4Qi9sYW5ndWFnZS9saXRlcmFscy9yZWdleHAv
bGVnYWN5LW9jdGFsLWVzY2FwZS5qcwppbmRleCBiMmZkNDhmMjllY2Q1NmI1NmIyYWQ3MjU5M2Jk
MTk5MmI0YmRjZjYxLi5lMGE0ZmFjNWUzOTMyNTBkNzY1MTA3OGYyYzBhNDdlY2JiYjAyMDVkIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9hbm5leEIvbGFuZ3VhZ2UvbGl0ZXJhbHMv
cmVnZXhwL2xlZ2FjeS1vY3RhbC1lc2NhcGUuanMKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YW5uZXhCL2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9sZWdhY3ktb2N0YWwtZXNjYXBlLmpzCkBA
IC0yLDEwICsyLDkgQEAKIC8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIC8qLS0tCiBlc2lkOiBzZWMtcmVndWxhci1l
eHByZXNzaW9ucy1wYXR0ZXJucwotZXM2aWQ6IEIuMS40CiBkZXNjcmlwdGlvbjogTGVnYWN5IE9j
dGFsIEVzY2FwZSBTZXF1ZW5jZQogaW5mbzogfAotICAgIENoYXJhY3RlckVzY2FwZVtVXTo6Cisg
ICAgQ2hhcmFjdGVyRXNjYXBlW1VdIDo6CiAgICAgICAgIENvbnRyb2xFc2NhcGUKICAgICAgICAg
YyBDb250cm9sTGV0dGVyCiAgICAgICAgIDAgW2xvb2thaGVhZCDiiIkgRGVjaW1hbERpZ2l0XQpA
QCAtMTQsMTMgKzEzLDE3IEBAIGluZm86IHwKICAgICAgICAgW35VXSBMZWdhY3lPY3RhbEVzY2Fw
ZVNlcXVlbmNlCiAgICAgICAgIElkZW50aXR5RXNjYXBlWz9VXQogCi0gICAgVGhlIHByb2R1Y3Rp
b24gQ2hhcmFjdGVyRXNjYXBlOjpMZWdhY3lPY3RhbEVzY2FwZVNlcXVlbmNlIGV2YWx1YXRlcyBi
eQorICAgIExlZ2FjeU9jdGFsRXNjYXBlU2VxdWVuY2UgOjoKKyAgICAgICAgT2N0YWxEaWdpdCBb
bG9va2FoZWFkIOKIiSBPY3RhbERpZ2l0XQorICAgICAgICBaZXJvVG9UaHJlZSBPY3RhbERpZ2l0
IFtsb29rYWhlYWQg4oiJIE9jdGFsRGlnaXRdCisgICAgICAgIEZvdXJUb1NldmVuIE9jdGFsRGln
aXQKKyAgICAgICAgWmVyb1RvVGhyZWUgT2N0YWxEaWdpdCBPY3RhbERpZ2l0CisKKyAgICBUaGUg
cHJvZHVjdGlvbiBDaGFyYWN0ZXJFc2NhcGUgOjogTGVnYWN5T2N0YWxFc2NhcGVTZXF1ZW5jZSBl
dmFsdWF0ZXMgYnkKICAgICBldmFsdWF0aW5nIHRoZSBTViBvZiB0aGUgTGVnYWN5T2N0YWxFc2Nh
cGVTZXF1ZW5jZSAoc2VlIEIuMS4yKSBhbmQKICAgICByZXR1cm5pbmcgaXRzIGNoYXJhY3RlciBy
ZXN1bHQuCiAtLS0qLwogCi12YXIgbWF0Y2g7Ci0KIGFzc2VydC5zYW1lVmFsdWUoL1wxLy5leGVj
KCdceDAxJylbMF0sICdceDAxJywgJ1xcMScpOwogYXNzZXJ0LnNhbWVWYWx1ZSgvXDIvLmV4ZWMo
J1x4MDInKVswXSwgJ1x4MDInLCAnXFwyJyk7CiBhc3NlcnQuc2FtZVZhbHVlKC9cMy8uZXhlYygn
XHgwMycpWzBdLCAnXHgwMycsICdcXDMnKTsKQEAgLTQxLDcgKzQ0LDcgQEAgYXNzZXJ0LnNhbWVW
YWx1ZSgvXDQ3Ly5leGVjKCdceDI3JylbMF0sICdceDI3JywgJ1xcNDcnKTsKIGFzc2VydC5zYW1l
VmFsdWUoL1w3MC8uZXhlYygnXHgzOCcpWzBdLCAnXHgzOCcsICdcXDcwJyk7CiBhc3NlcnQuc2Ft
ZVZhbHVlKC9cNzcvLmV4ZWMoJ1x4M2YnKVswXSwgJ1x4M2YnLCAnXFw3NycpOwogCi0vLyBTZXF1
ZW5jZSBpcyBib3VuZGVkIGFjY29yZGluZyB0byB0aGUgU3RyaW5nIFZhbHVlIChub3QgbnVtYmVy
IG9mIGNoYXJhY3RlcnMpCisvLyBTZXF1ZW5jZSBpcyBib3VuZGVkIGFjY29yZGluZyB0byB0aGUg
U3RyaW5nIFZhbHVlCiBhc3NlcnQuc2FtZVZhbHVlKC9cNDAwLy5leGVjKCdceDIwMCcpWzBdLCAn
XHgyMDAnLCAnXFw0MDAnKTsKIGFzc2VydC5zYW1lVmFsdWUoL1w0NzAvLmV4ZWMoJ1x4MjcwJylb
MF0sICdceDI3MCcsICdcXDQ3MCcpOwogYXNzZXJ0LnNhbWVWYWx1ZSgvXDcwMC8uZXhlYygnXHgz
ODAnKVswXSwgJ1x4MzgwJywgJ1xcNzAwJyk7CkBAIC01NCw4ICs1NywxNCBAQCBhc3NlcnQuc2Ft
ZVZhbHVlKC9cMDcwLy5leGVjKCdceDM4JylbMF0sICdceDM4JywgJ1xcMDcwJyk7CiBhc3NlcnQu
c2FtZVZhbHVlKC9cMzAwLy5leGVjKCdceGMwJylbMF0sICdceGMwJywgJ1xcMzAwJyk7CiBhc3Nl
cnQuc2FtZVZhbHVlKC9cMzA3Ly5leGVjKCdceGM3JylbMF0sICdceGM3JywgJ1xcMzA3Jyk7CiBh
c3NlcnQuc2FtZVZhbHVlKC9cMzcwLy5leGVjKCdceGY4JylbMF0sICdceGY4JywgJ1xcMzcwJyk7
Cithc3NlcnQuc2FtZVZhbHVlKC9cMzc3Ly5leGVjKCdceGZmJylbMF0sICdceGZmJywgJ1xcMzc3
Jyk7CisKKy8vIFNlcXVlbmNlIGlzIDMgY2hhcmFjdGVycyBtYXgsIGluY2x1ZGluZyBsZWFkaW5n
IHplcm9zCithc3NlcnQuc2FtZVZhbHVlKC9cMDExMS8uZXhlYygnXHgwOTEnKVswXSwgJ1x4MDkx
JywgJ1xcMDExMScpOworYXNzZXJ0LnNhbWVWYWx1ZSgvXDAwMjIvLmV4ZWMoJ1x4MDIyJylbMF0s
ICdceDAyMicsICdcXDAwMjInKTsKK2Fzc2VydC5zYW1lVmFsdWUoL1wwMDAzLy5leGVjKCdceDAw
MycpWzBdLCAnXHgwMDMnLCAnXFwwMDAzJyk7CiAKLW1hdGNoID0gLyguKVwxLy5leGVjKCdhXHgw
MSBhYScpOwordmFyIG1hdGNoID0gLyguKVwxLy5leGVjKCdhXHgwMSBhYScpOwogYXNzZXJ0LnNh
bWVWYWx1ZSgKICAgbWF0Y2hbMF0sICdhYScsICdEZWNpbWFsRXNjYXBlIHRha2VzIHByZWNlZGVu
Y2Ugb3ZlciBMZWdhY3lPY3RhbEVzY2FwZVNlcXVlbmNlJwogKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUv
bmV4dC9hYnNlbnQtdmFsdWUtbm90LXBhc3NlZC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvbmV4dC9hYnNlbnQtdmFsdWUt
bm90LXBhc3NlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTY0MmNhODczZTNlMTU5M2MyOTkwMjFiMzRhMTBj
MzI0YTAxN2E3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL0FzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS9uZXh0L2Fic2VudC12YWx1ZS1ub3Qt
cGFzc2VkLmpzCkBAIC0wLDAgKzEsMzggQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkg
U2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Vz
aWQ6IHNlYy0lYXN5bmNmcm9tc3luY2l0ZXJhdG9ycHJvdG90eXBlJS5uZXh0CitkZXNjcmlwdGlv
bjogPgorICBgbmV4dGAgbWV0aG9kIGRvZXMgbm90IHBhc3MgYWJzZW50IGB2YWx1ZWAuCitpbmZv
OiB8CisgICVBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUlLm5leHQgKCB2YWx1ZSApCisK
KyAgWy4uLl0KKyAgNS4gSWYgdmFsdWUgaXMgcHJlc2VudCwgdGhlbgorICAgIFsuLi5dCisgIDYu
IEVsc2UsCisgICAgYS4gTGV0IHJlc3VsdCBiZSBJdGVyYXRvck5leHQoc3luY0l0ZXJhdG9yUmVj
b3JkKS4KKyAgWy4uLl0KK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW2FzeW5jLWl0ZXJhdGlv
bl0KKy0tLSovCisKK3ZhciBuZXh0QXJndW1lbnRzTGVuZ3RoOwordmFyIHN5bmNJdGVyYXRvciA9
IHsKKyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CisgICAgcmV0dXJuIHRoaXM7CisgIH0sCisgIG5l
eHQoKSB7CisgICAgbmV4dEFyZ3VtZW50c0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7CisgICAg
cmV0dXJuIHtkb25lOiB0cnVlfTsKKyAgfSwKK307CisKK3ZhciBhc3luY0l0ZXJhdG9yID0gKGFz
eW5jIGZ1bmN0aW9uKiAoKSB7CisgIHlpZWxkKiBzeW5jSXRlcmF0b3I7Cit9KSgpOworCithc3lu
Y0l0ZXJhdG9yLm5leHQoKS50aGVuKGZ1bmN0aW9uKCkgeworICBhc3NlcnQuc2FtZVZhbHVlKG5l
eHRBcmd1bWVudHNMZW5ndGgsIDApOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FzeW5jRnJvbVN5bmNJdGVyYXRvclBy
b3RvdHlwZS9yZXR1cm4vYWJzZW50LXZhbHVlLW5vdC1wYXNzZWQuanMgYi9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlL3JldHVybi9h
YnNlbnQtdmFsdWUtbm90LXBhc3NlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzcyYThlMTc5MGU2N2JiMGRi
MmIxZTU0MDA2MWMyOTQxZWQzYmFkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL0FzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS9yZXR1cm4vYWJz
ZW50LXZhbHVlLW5vdC1wYXNzZWQuanMKQEAgLTAsMCArMSw0MyBAQAorLy8gQ29weXJpZ2h0IChD
KSAyMDIwIEFsZXhleSBTaHZheWthLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2Rl
IGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
LgorCisvKi0tLQorZXNpZDogc2VjLSVhc3luY2Zyb21zeW5jaXRlcmF0b3Jwcm90b3R5cGUlLnJl
dHVybgorZGVzY3JpcHRpb246ID4KKyAgYHJldHVybmAgbWV0aG9kIGRvZXMgbm90IHBhc3MgYWJz
ZW50IGB2YWx1ZWAuCitpbmZvOiB8CisgICVBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUl
LnJldHVybiAoIHZhbHVlICkKKworICBbLi4uXQorICA4LiBJZiB2YWx1ZSBpcyBwcmVzZW50LCB0
aGVuCisgICAgWy4uLl0KKyAgOS4gRWxzZSwKKyAgICBhLiBMZXQgcmVzdWx0IGJlIENhbGwocmV0
dXJuLCBzeW5jSXRlcmF0b3IpLgorICBbLi4uXQorZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBb
YXN5bmMtaXRlcmF0aW9uXQorLS0tKi8KKwordmFyIHJldHVybkFyZ3VtZW50c0xlbmd0aDsKK3Zh
ciBzeW5jSXRlcmF0b3IgPSB7CisgIFtTeW1ib2wuaXRlcmF0b3JdKCkgeworICAgIHJldHVybiB0
aGlzOworICB9LAorICBuZXh0KCkgeworICAgIHJldHVybiB7ZG9uZTogZmFsc2V9OworICB9LAor
ICByZXR1cm4oKSB7CisgICAgcmV0dXJuQXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0
aDsKKyAgICByZXR1cm4ge2RvbmU6IHRydWV9OworICB9LAorfTsKKwordmFyIGFzeW5jSXRlcmF0
b3IgPSAoYXN5bmMgZnVuY3Rpb24qICgpIHsKKyAgeWllbGQqIHN5bmNJdGVyYXRvcjsKK30pKCk7
CisKK2FzeW5jSXRlcmF0b3IubmV4dCgpLnRoZW4oZnVuY3Rpb24oKSB7CisgIHJldHVybiBhc3lu
Y0l0ZXJhdG9yLnJldHVybigpOworfSkudGhlbihmdW5jdGlvbigpIHsKKyAgYXNzZXJ0LnNhbWVW
YWx1ZShyZXR1cm5Bcmd1bWVudHNMZW5ndGgsIDApOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FzeW5jRnJvbVN5bmNJ
dGVyYXRvclByb3RvdHlwZS90aHJvdy9hYnNlbnQtdmFsdWUtbm90LXBhc3NlZC5qcyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUv
dGhyb3cvYWJzZW50LXZhbHVlLW5vdC1wYXNzZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcxM2M0ZDNmYTUx
MWM2OGRjYzFiNTcwM2Q2NTBmZjI3Y2ExZjUyMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvdGhy
b3cvYWJzZW50LXZhbHVlLW5vdC1wYXNzZWQuanMKQEAgLTAsMCArMSw0NSBAQAorLy8gQ29weXJp
Z2h0IChDKSAyMDIwIEFsZXhleSBTaHZheWthLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhp
cyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLSVhc3luY2Zyb21zeW5jaXRlcmF0b3Jwcm90b3R5
cGUlLnRocm93CitkZXNjcmlwdGlvbjogPgorICBgdGhyb3dgIG1ldGhvZCBkb2VzIG5vdCBwYXNz
IGFic2VudCBgdmFsdWVgLgoraW5mbzogfAorICAlQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90
eXBlJS50aHJvdyAoIHZhbHVlICkKKworICBbLi4uXQorICA4LiBJZiB2YWx1ZSBpcyBwcmVzZW50
LCB0aGVuCisgICAgWy4uLl0KKyAgOS4gRWxzZSwKKyAgICBhLiBMZXQgcmVzdWx0IGJlIENhbGwo
dGhyb3csIHN5bmNJdGVyYXRvcikuCisgIFsuLi5dCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6
IFthc3luYy1pdGVyYXRpb25dCistLS0qLworCit2YXIgdGhyb3dBcmd1bWVudHNMZW5ndGg7Cit2
YXIgc3luY0l0ZXJhdG9yID0geworICBbU3ltYm9sLml0ZXJhdG9yXSgpIHsKKyAgICByZXR1cm4g
dGhpczsKKyAgfSwKKyAgbmV4dCgpIHsKKyAgICByZXR1cm4ge2RvbmU6IGZhbHNlfTsKKyAgfSwK
KyAgdGhyb3coKSB7CisgICAgdGhyb3dBcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3Ro
OworICAgIHJldHVybiB7ZG9uZTogdHJ1ZX07CisgIH0sCit9OworCit2YXIgYXN5bmNJdGVyYXRv
ciA9IChhc3luYyBmdW5jdGlvbiogKCkgeworICB5aWVsZCogc3luY0l0ZXJhdG9yOworfSkoKTsK
KworYXN5bmNJdGVyYXRvci5uZXh0KCkudGhlbihmdW5jdGlvbigpIHsKKyAgcmV0dXJuIGFzeW5j
SXRlcmF0b3IudGhyb3coKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgIHRocm93IG5l
dyBUZXN0MjYyRXJyb3IoIlByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBnb3Q6ICIgKyByZXN1
bHQudmFsdWUpOworfSwgZnVuY3Rpb24oKSB7CisgIGFzc2VydC5zYW1lVmFsdWUodGhyb3dBcmd1
bWVudHNMZW5ndGgsIDApOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXph
dGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL1N5bWJvbC50b1N0cmluZ1RhZy5q
cyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9G
aW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9TeW1ib2wudG9TdHJp
bmdUYWcuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkZjQ3ODYzNDBmNTE3MDI1
MDMyNDcwYWI3YTE3NDYwMDIwODNlNjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlv
blJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL1N5
bWJvbC50b1N0cmluZ1RhZy5qcworKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8vIENv
cHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhp
cyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXByb3BlcnRpZXMtb2YtdGhlLWZpbmFsaXphdGlv
bi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgotZGVzY3JpcHRpb246ID4KLSAgRmluYWxpemF0aW9uUmVn
aXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUgQEB0b1N0cmluZ1RhZwotaW5mbzogfAotICBG
aW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0g
KQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAg
Li4uCi0gIDUuIFBlcmZvcm0gISBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxpemF0
aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4KLSAgLi4uCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlvblJl
Z2lzdHJ5ICggZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4uLgot
ICAzLiBMZXQgaXRlcmF0b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJ
dGVyYXRvcihmaW5hbGl6YXRpb25SZWdpc3RyeSkuCi0gIC4uLgotICA2LiBMZXQgcmVzdWx0IGJl
IENhbGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQotICAl
RmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUlIFsgQEB0b1N0cmlu
Z1RhZyBdCi0KLSAgVGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIEBAdG9TdHJpbmdUYWcgcHJvcGVy
dHkgaXMgdGhlIFN0cmluZyB2YWx1ZSAiRmluYWxpemF0aW9uUmVnaXN0cnkgQ2xlYW51cCBJdGVy
YXRvciIuCi0KLSAgVGhpcyBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxl
XV06IGZhbHNlLCBbW0VudW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IHRydWUg
fS4KLWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIGhvc3QtZ2MtcmVxdWlyZWQsIFN5
bWJvbCwgU3ltYm9sLnRvU3RyaW5nVGFnXQotaW5jbHVkZXM6IFthc3luYy1nYy5qcywgcHJvcGVy
dHlIZWxwZXIuanNdCi1mbGFnczogW2FzeW5jLCBub24tZGV0ZXJtaW5pc3RpY10KLS0tLSovCi0K
LXZhciBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZTsKLXZhciBj
YWxsZWQgPSAwOwotdmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJl
Z2lzdHJ5KGZ1bmN0aW9uKCkge30pOwotCi1mdW5jdGlvbiBjYWxsYmFjayhpdGVyYXRvcikgewot
ICBjYWxsZWQgKz0gMTsKLSAgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90
b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaXRlcmF0b3IpOwotfQotCi1mdW5jdGlvbiBl
bXB0eUNlbGxzKCkgewotICB2YXIgdGFyZ2V0ID0ge307Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5
LnJlZ2lzdGVyKHRhcmdldCk7Ci0KLSAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7Ci0gIHRh
cmdldCA9IG51bGw7Ci0KLSAgcmV0dXJuIHByb207Ci19Ci0KLWVtcHR5Q2VsbHMoKS50aGVuKGZ1
bmN0aW9uKCkgewotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFjayk7
Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdjbGVhbnVwIHN1Y2Nlc3NmdWwnKTsK
LSAgCi0gIHZlcmlmeVByb3BlcnR5KEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9y
UHJvdG90eXBlLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsKLSAgICB2YWx1ZTogJ0ZpbmFsaXphdGlv
blJlZ2lzdHJ5IENsZWFudXAgSXRlcmF0b3InLAotICAgIHdyaXRhYmxlOiBmYWxzZSwKLSAgICBl
bnVtZXJhYmxlOiBmYWxzZSwKLSAgICBjb25maWd1cmFibGU6IHRydWUKLSAgfSk7ICAKLX0pLnRo
ZW4oJERPTkUsIHJlc29sdmVBc3luY0dDKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNs
ZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LWpvYi1ub3QtYWN0aXZlLXRocm93cy5qcyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6
YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LWpvYi1ub3QtYWN0aXZl
LXRocm93cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE5NWMxNTczMmI4MTNj
NDM3ODZjOTJlZTM3MTE1MjRhOTY2NzAxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0
aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUv
bmV4dC1qb2Itbm90LWFjdGl2ZS10aHJvd3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCww
IEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0aWVzLW9mLXRoZS1m
aW5hbGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9uOiA+Ci0gIFRocm93
cyBhIFR5cGVFcnJvciBpZiBbW0lzRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSm9iQWN0aXZl
XV0gaXMgZmFsc2UKLWluZm86IHwKLSAgRmluYWxpemF0aW9uUmVnaXN0cnkucHJvdG90eXBlLmNs
ZWFudXBTb21lICggWyBjYWxsYmFjayBdICkKLQotICAxLiBMZXQgZmluYWxpemF0aW9uUmVnaXN0
cnkgYmUgdGhlIHRoaXMgdmFsdWUuCi0gIC4uLgotICA1LiBQZXJmb3JtICEgQ2xlYW51cEZpbmFs
aXphdGlvblJlZ2lzdHJ5KGZpbmFsaXphdGlvblJlZ2lzdHJ5LCBjYWxsYmFjaykuCi0gIC4uLgot
Ci0gIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeSAoIGZpbmFsaXphdGlvblJlZ2lzdHJ5IFsg
LCBjYWxsYmFjayBdICkKLQotICAuLi4KLSAgMy4gTGV0IGl0ZXJhdG9yIGJlICEgQ3JlYXRlRmlu
YWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IoZmluYWxpemF0aW9uUmVnaXN0cnkpLgot
ICAuLi4KLSAgNS4gU2V0IGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbSXNGaW5hbGl6YXRpb25SZWdp
c3RyeUNsZWFudXBKb2JBY3RpdmVdXSB0byB0cnVlLgotICA2LiBMZXQgcmVzdWx0IGJlIENhbGwo
Y2FsbGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3IgwrspLgotICA3LiBTZXQgZmluYWxpemF0
aW9uUmVnaXN0cnkuW1tJc0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEpvYkFjdGl2ZV1dIHRv
IGZhbHNlLgotICAuLi4KLQotICAlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQ
cm90b3R5cGUlLm5leHQgKCApCi0KLSAgMS4gTGV0IGl0ZXJhdG9yIGJlIHRoZSB0aGlzIHZhbHVl
LgotICAyLiBJZiBUeXBlKGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJv
ciBleGNlcHRpb24uCi0gIDMuIElmIGl0ZXJhdG9yIGRvZXMgbm90IGhhdmUgYSBbW0ZpbmFsaXph
dGlvblJlZ2lzdHJ5XV0gaW50ZXJuYWwgc2xvdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9u
LgotZmVhdHVyZXM6IFtGaW5hbGl6YXRpb25SZWdpc3RyeSwgV2Vha1JlZiwgaG9zdC1nYy1yZXF1
aXJlZCwgU3ltYm9sXQotaW5jbHVkZXM6IFthc3luYy1nYy5qc10KLWZsYWdzOiBbYXN5bmMsIG5v
bi1kZXRlcm1pbmlzdGljXQotLS0tKi8KLQotdmFyIGl0ZXI7Ci12YXIgRmluYWxpemF0aW9uUmVn
aXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGU7Ci12YXIgY2FsbGVkID0gMDsKLXZhciBmaW5h
bGl6YXRpb25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbigpIHt9
KTsKLQotZnVuY3Rpb24gY2FsbGJhY2soaXRlcmF0b3IpIHsKLSAgY2FsbGVkICs9IDE7Ci0gIGl0
ZXIgPSBpdGVyYXRvcjsKLSAgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90
b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaXRlcmF0b3IpOwotfQotCi1mdW5jdGlvbiBl
bXB0eUNlbGxzKCkgewotICB2YXIgdGFyZ2V0ID0ge307Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5
LnJlZ2lzdGVyKHRhcmdldCwgJ3RhcmdldCcpOwotCi0gIHZhciBwcm9tID0gYXN5bmNHQyh0YXJn
ZXQpOwotICB0YXJnZXQgPSBudWxsOwotCi0gIHJldHVybiBwcm9tOwotfQotCi1lbXB0eUNlbGxz
KCkudGhlbihmdW5jdGlvbigpIHsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUo
Y2FsbGJhY2spOwotCi0gIC8vIE1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIHNldAotICBhc3NlcnQu
c2FtZVZhbHVlKGNhbGxlZCwgMSwgJ2NsZWFudXAgc3VjY2Vzc2Z1bCcpOwotICBhc3NlcnQuc2Ft
ZVZhbHVlKHR5cGVvZiBpdGVyLCAnb2JqZWN0Jyk7Ci0gIGFzc2VydC5zYW1lVmFsdWUoT2JqZWN0
LmdldFByb3RvdHlwZU9mKGl0ZXIpLCBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRv
clByb3RvdHlwZSk7Ci0KLSAgLy8gVG8gdGhlIGFjdHVhbCBhc3NlcnRpb24KLSAgYXNzZXJ0LnRo
cm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIGl0ZXIubmV4dCgpOwotICB9LCAnSXRl
ciBzaG91bGQgZmFpbCBpZiBub3QgY2FsbGVkIGR1cmluZyB0aGUgY2xlYW51cFNvbWUgY2FsbCcp
OwotfSkudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0MpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJl
Z2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbGVuZ3RoLmpzIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJl
Z2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbGVuZ3RoLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NDlmNzAwZGVjMWNmMDY1ZTc3ODBhYThhMTcwNjY1ZjU2MTEy
MjQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LWxlbmd0aC5qcworKysgL2Rl
di9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVy
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2Vj
LXByb3BlcnRpZXMtb2YtdGhlLWZpbmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgotZGVz
Y3JpcHRpb246ID4KLSAgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5
cGUubmV4dC5sZW5ndGggcHJvcGVydHkgZGVzY3JpcHRvcgotaW5mbzogfAotICBGaW5hbGl6YXRp
b25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEu
IExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAgLi4uCi0gIDUu
IFBlcmZvcm0gISBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxpemF0aW9uUmVnaXN0
cnksIGNhbGxiYWNrKS4KLSAgLi4uCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5ICgg
ZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4uLgotICAzLiBMZXQg
aXRlcmF0b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvcihm
aW5hbGl6YXRpb25SZWdpc3RyeSkuCi0gIC4uLgotICA2LiBMZXQgcmVzdWx0IGJlIENhbGwoY2Fs
bGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQotICAxNyBFQ01BU2Ny
aXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHMKLQotICBFdmVyeSBidWlsdC1pbiBmdW5jdGlv
biBvYmplY3QsIGluY2x1ZGluZyBjb25zdHJ1Y3RvcnMsIGhhcyBhIGxlbmd0aAotICBwcm9wZXJ0
eSB3aG9zZSB2YWx1ZSBpcyBhbiBpbnRlZ2VyLiBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwg
dGhpcwotICB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgbGFyZ2VzdCBudW1iZXIgb2YgbmFtZWQgYXJn
dW1lbnRzIHNob3duIGluIHRoZQotICBzdWJjbGF1c2UgaGVhZGluZ3MgZm9yIHRoZSBmdW5jdGlv
biBkZXNjcmlwdGlvbi4gT3B0aW9uYWwgcGFyYW1ldGVycwotICAod2hpY2ggYXJlIGluZGljYXRl
ZCB3aXRoIGJyYWNrZXRzOiBbIF0pIG9yIHJlc3QgcGFyYW1ldGVycyAod2hpY2gKLSAgYXJlIHNo
b3duIHVzaW5nIHRoZSBmb3JtIMKrLi4ubmFtZcK7KSBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBk
ZWZhdWx0Ci0gIGFyZ3VtZW50IGNvdW50LgotCi0gIFVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVk
LCB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIGEgYnVpbHQtaW4KLSAgZnVuY3Rpb24gb2JqZWN0IGhh
cyB0aGUgYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTogZmFsc2UsCi0gIFtbRW51bWVyYWJsZV1d
OiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9LgotaW5jbHVkZXM6IFthc3luYy1nYy5q
cywgcHJvcGVydHlIZWxwZXIuanNdCi1mbGFnczogW2FzeW5jLCBub24tZGV0ZXJtaW5pc3RpY10K
LWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIGhvc3QtZ2MtcmVxdWlyZWQsIFN5bWJv
bF0KLS0tLSovCi0KLXZhciBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3Rv
dHlwZTsKLXZhciBjYWxsZWQgPSAwOwotdmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZp
bmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwotCi1mdW5jdGlvbiBjYWxsYmFjayhp
dGVyYXRvcikgewotICBjYWxsZWQgKz0gMTsKLSAgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVw
SXRlcmF0b3JQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaXRlcmF0b3IpOwotfQot
Ci1mdW5jdGlvbiBlbXB0eUNlbGxzKCkgewotICB2YXIgdGFyZ2V0ID0ge307Ci0gIGZpbmFsaXph
dGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKHRhcmdldCk7Ci0KLSAgdmFyIHByb20gPSBhc3luY0dDKHRh
cmdldCk7Ci0gIHRhcmdldCA9IG51bGw7Ci0KLSAgcmV0dXJuIHByb207Ci19Ci0KLWVtcHR5Q2Vs
bHMoKS50aGVuKGZ1bmN0aW9uKCkgewotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29t
ZShjYWxsYmFjayk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdjbGVhbnVwIHN1
Y2Nlc3NmdWwnKTsKLQotICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBGaW5hbGl6YXRpb25SZWdp
c3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS5uZXh0LCAnZnVuY3Rpb24nKTsKLQotICB2ZXJp
ZnlQcm9wZXJ0eShGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS5u
ZXh0LCAnbGVuZ3RoJywgewotICAgIHZhbHVlOiAwLAotICAgIGVudW1lcmFibGU6IGZhbHNlLAot
ICAgIHdyaXRhYmxlOiBmYWxzZSwKLSAgICBjb25maWd1cmFibGU6IHRydWUsCi0gIH0pOwotfSku
dGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0MpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5
Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbWlzc2luZy1pbnRlcm5hbC10aHJvd3MuanMg
Yi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmlu
YWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1taXNzaW5nLWlu
dGVybmFsLXRocm93cy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2VhZGIzNDVk
OWJjZDk5NTUwMjczMjI4MjI5MjUxMTM2YzFkMGI5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmlu
YWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90
b3R5cGUvbmV4dC1taXNzaW5nLWludGVybmFsLXRocm93cy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDkwICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXByb3BlcnRpZXMt
b2YtdGhlLWZpbmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgotZGVzY3JpcHRpb246ID4K
LSAgSWYgaXRlcmF0b3IgZG9lcyBub3QgaGF2ZSBhIFtbRmluYWxpemF0aW9uUmVnaXN0cnldXSBp
bnRlcm5hbCBzbG90LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCi1pbmZvOiB8Ci0gIEZp
bmFsaXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZSAoIFsgY2FsbGJhY2sgXSAp
Ci0KLSAgMS4gTGV0IGZpbmFsaXphdGlvblJlZ2lzdHJ5IGJlIHRoZSB0aGlzIHZhbHVlLgotICAu
Li4KLSAgNS4gUGVyZm9ybSAhIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeShmaW5hbGl6YXRp
b25SZWdpc3RyeSwgY2FsbGJhY2spLgotICAuLi4KLQotICBDbGVhbnVwRmluYWxpemF0aW9uUmVn
aXN0cnkgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSBbICwgY2FsbGJhY2sgXSApCi0KLSAgLi4uCi0g
IDMuIExldCBpdGVyYXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0
ZXJhdG9yKGZpbmFsaXphdGlvblJlZ2lzdHJ5KS4KLSAgLi4uCi0gIDYuIExldCByZXN1bHQgYmUg
Q2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBpdGVyYXRvciDCuykuCi0gIC4uLgotCi0gICVG
aW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSUubmV4dCAoICkKLQot
ICAxLiBMZXQgaXRlcmF0b3IgYmUgdGhlIHRoaXMgdmFsdWUuCi0gIDIuIElmIFR5cGUoaXRlcmF0
b3IpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgMy4gSWYg
aXRlcmF0b3IgZG9lcyBub3QgaGF2ZSBhIFtbRmluYWxpemF0aW9uUmVnaXN0cnldXSBpbnRlcm5h
bCBzbG90LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCi1mZWF0dXJlczogW0ZpbmFsaXph
dGlvblJlZ2lzdHJ5LCBXZWFrUmVmLCBob3N0LWdjLXJlcXVpcmVkLCBTeW1ib2xdCi1pbmNsdWRl
czogW2FzeW5jLWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRldGVybWluaXN0aWNdCi0tLS0q
LwotCi12YXIgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGU7Ci12
YXIgY2FsbGVkID0gMDsKLXZhciBlbmRPZkNhbGwgPSAwOwotdmFyIGZpbmFsaXphdGlvblJlZ2lz
dHJ5ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwotCi1mdW5jdGlv
biBjYWxsYmFjayhpdGVyYXRvcikgewotICBjYWxsZWQgKz0gMTsKLSAgLy8gT25seSB0aGUgaXRl
cmF0b3IgaXRzZWxmIHdpbGwgaGF2ZSBhIFtbRmluYWxpemF0aW9uUmVnaXN0cnldXSBpbnRlcm5h
bAotICBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSA9IE9iamVj
dC5nZXRQcm90b3R5cGVPZihpdGVyYXRvcik7Ci0KLSAgLy8gSXQncyBzZW5zaXRpdmUgdGhlIGFz
c2VydGlvbnMgcmVtYWluIGluc2lkZSB0aGlzIGZ1bmN0aW9uIGluIG9yZGVyIHRvIHNlY3VyZQot
ICAvLyBbW0lzRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSm9iQWN0aXZlXV0gaXMgdHJ1ZQot
ICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVy
YXRvclByb3RvdHlwZS5uZXh0LCAnZnVuY3Rpb24nKTsKLQotICB2YXIgbmV4dCA9IEZpbmFsaXph
dGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlLm5leHQ7Ci0KLSAgYXNzZXJ0LnRo
cm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIG5leHQuY2FsbCh7fSk7Ci0gIH0sICd7
fScpOwotCi0gIGFzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKLSAgICBuZXh0
LmNhbGwoRmluYWxpemF0aW9uUmVnaXN0cnkpOwotICB9LCAnRmluYWxpemF0aW9uUmVnaXN0cnkn
KTsKLQotICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7Ci0gICAgbmV4dC5j
YWxsKEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlKTsKLSAgfSwg
J0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlJyk7Ci0KLSAgYXNz
ZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIG5leHQuY2FsbChmaW5hbGl6
YXRpb25SZWdpc3RyeSk7Ci0gIH0sICdGaW5hbGl6YXRpb25SZWdpc3RyeSBpbnN0YW5jZScpOwot
Ci0gIHZhciB3ciA9IG5ldyBXZWFrUmVmKHt9KTsKLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3Is
IGZ1bmN0aW9uKCkgewotICAgIG5leHQuY2FsbCh3cik7Ci0gIH0sICdXZWFrUmVmIGluc3RhbmNl
Jyk7Ci0KLSAgLy8gQWJydXB0IGNvbXBsZXRpb25zIGFyZSBub3QgZGlyZWN0bHkgcmV0dXJuZWQu
Ci0gIGVuZE9mQ2FsbCArPSAxOwotfQotCi1mdW5jdGlvbiBlbXB0eUNlbGxzKCkgewotICB2YXIg
dGFyZ2V0ID0ge307Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKHRhcmdldCk7Ci0K
LSAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7Ci0gIHRhcmdldCA9IG51bGw7Ci0KLSAgcmV0
dXJuIHByb207Ci19Ci0KLWVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewotICBmaW5hbGl6
YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFjayk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1
ZShjYWxsZWQsIDEsICdjbGVhbnVwIHN1Y2Nlc3NmdWwnKTsKLSAgYXNzZXJ0LnNhbWVWYWx1ZShl
bmRPZkNhbGwsIDEsICdBYnJ1cHQgY29tcGxldGlvbnMgYXJlIG5vdCBkaXJlY3RseSByZXR1cm5l
ZC4nKTsKLX0pLnRoZW4oJERPTkUsIHJlc29sdmVBc3luY0dDKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LW5hbWUuanMgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9u
UmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1uYW1lLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwYTNjODdkMWM5MGU1NjAzOWQyNTgxODQ1MjZkMTJiMWM5ZjY5
ZmYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LW5hbWUuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw3NSArMCwwIEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlci4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNE
IGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNlYy1w
cm9wZXJ0aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0b3IKLWRlc2Ny
aXB0aW9uOiA+Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBl
Lm5leHQubmFtZSBwcm9wZXJ0eSBkZXNjcmlwdG9yCi1pbmZvOiB8Ci0gIEZpbmFsaXphdGlvblJl
Z2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZSAoIFsgY2FsbGJhY2sgXSApCi0KLSAgMS4gTGV0
IGZpbmFsaXphdGlvblJlZ2lzdHJ5IGJlIHRoZSB0aGlzIHZhbHVlLgotICAuLi4KLSAgNS4gUGVy
Zm9ybSAhIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeShmaW5hbGl6YXRpb25SZWdpc3RyeSwg
Y2FsbGJhY2spLgotICAuLi4KLQotICBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkgKCBmaW5h
bGl6YXRpb25SZWdpc3RyeSBbICwgY2FsbGJhY2sgXSApCi0KLSAgLi4uCi0gIDMuIExldCBpdGVy
YXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yKGZpbmFs
aXphdGlvblJlZ2lzdHJ5KS4KLSAgLi4uCi0gIDYuIExldCByZXN1bHQgYmUgQ2FsbChjYWxsYmFj
aywgdW5kZWZpbmVkLCDCqyBpdGVyYXRvciDCuykuCi0gIC4uLgotCi0gIDE3IEVDTUFTY3JpcHQg
U3RhbmRhcmQgQnVpbHQtaW4gT2JqZWN0cwotCi0gIEV2ZXJ5IGJ1aWx0LWluIGZ1bmN0aW9uIG9i
amVjdCwgaW5jbHVkaW5nIGNvbnN0cnVjdG9ycywgdGhhdCBpcyBub3QKLSAgaWRlbnRpZmllZCBh
cyBhbiBhbm9ueW1vdXMgZnVuY3Rpb24gaGFzIGEgbmFtZSBwcm9wZXJ0eSB3aG9zZSB2YWx1ZQot
ICBpcyBhIFN0cmluZy4gVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIHRoaXMgdmFsdWUgaXMg
dGhlIG5hbWUgdGhhdAotICBpcyBnaXZlbiB0byB0aGUgZnVuY3Rpb24gaW4gdGhpcyBzcGVjaWZp
Y2F0aW9uLiBGb3IgZnVuY3Rpb25zIHRoYXQKLSAgYXJlIHNwZWNpZmllZCBhcyBwcm9wZXJ0aWVz
IG9mIG9iamVjdHMsIHRoZSBuYW1lIHZhbHVlIGlzIHRoZQotICBwcm9wZXJ0eSBuYW1lIHN0cmlu
ZyB1c2VkIHRvIGFjY2VzcyB0aGUgZnVuY3Rpb24uIFsuLi5dCi0KLSAgVW5sZXNzIG90aGVyd2lz
ZSBzcGVjaWZpZWQsIHRoZSBuYW1lIHByb3BlcnR5IG9mIGEgYnVpbHQtaW4gZnVuY3Rpb24KLSAg
b2JqZWN0LCBpZiBpdCBleGlzdHMsIGhhcyB0aGUgYXR0cmlidXRlcyB7IFtbV3JpdGFibGVdXTog
ZmFsc2UsCi0gIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9
LgotaW5jbHVkZXM6IFthc3luYy1nYy5qcywgcHJvcGVydHlIZWxwZXIuanNdCi1mbGFnczogW2Fz
eW5jLCBub24tZGV0ZXJtaW5pc3RpY10KLWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnks
IGhvc3QtZ2MtcmVxdWlyZWQsIFN5bWJvbF0KLS0tLSovCi0KLXZhciBGaW5hbGl6YXRpb25SZWdp
c3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZTsKLXZhciBjYWxsZWQgPSAwOwotdmFyIGZpbmFs
aXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30p
OwotCi1mdW5jdGlvbiBjYWxsYmFjayhpdGVyYXRvcikgewotICBjYWxsZWQgKz0gMTsKLSAgRmlu
YWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJv
dG90eXBlT2YoaXRlcmF0b3IpOwotfQotCi1mdW5jdGlvbiBlbXB0eUNlbGxzKCkgewotICB2YXIg
dGFyZ2V0ID0ge307Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKHRhcmdldCk7Ci0K
LSAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7Ci0gIHRhcmdldCA9IG51bGw7Ci0KLSAgcmV0
dXJuIHByb207Ci19Ci0KLWVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewotICBmaW5hbGl6
YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFjayk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1
ZShjYWxsZWQsIDEsICdjbGVhbnVwIHN1Y2Nlc3NmdWwnKTsKLQotICBhc3NlcnQuc2FtZVZhbHVl
KHR5cGVvZiBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS5uZXh0
LCAnZnVuY3Rpb24nKTsKLQotICB2YXIgbmV4dCA9IEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51
cEl0ZXJhdG9yUHJvdG90eXBlLm5leHQ7Ci0KLSAgdmVyaWZ5UHJvcGVydHkobmV4dCwgJ25hbWUn
LCB7Ci0gICAgdmFsdWU6ICduZXh0JywKLSAgICBlbnVtZXJhYmxlOiBmYWxzZSwKLSAgICB3cml0
YWJsZTogZmFsc2UsCi0gICAgY29uZmlndXJhYmxlOiB0cnVlLAotICB9KTsKLX0pLnRoZW4oJERP
TkUsIHJlc29sdmVBc3luY0dDKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJ
dGVyYXRvclByb3RvdHlwZS9uZXh0LW5vdC1vYmplY3QtdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lz
dHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbm90LW9iamVjdC10aHJvd3MuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2MTY0ZmUyZjVmMjFjYWVjNmQ0OWJhNTNiZTc0
NDY4MDdiMWQ3YTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0Zp
bmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbm90LW9iamVj
dC10aHJvd3MuanMKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vLyBDb3B5cmlnaHQg
KEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBp
cyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K
LQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0
cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9uOiA+Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xl
YW51cEl0ZXJhdG9yUHJvdG90eXBlLm5leHQoKSB0aHJvd3MgaWYgdGhpcyBpcyBub3QgT2JqZWN0
Ci1pbmZvOiB8Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZSAo
IFsgY2FsbGJhY2sgXSApCi0KLSAgMS4gTGV0IGZpbmFsaXphdGlvblJlZ2lzdHJ5IGJlIHRoZSB0
aGlzIHZhbHVlLgotICAuLi4KLSAgNS4gUGVyZm9ybSAhIENsZWFudXBGaW5hbGl6YXRpb25SZWdp
c3RyeShmaW5hbGl6YXRpb25SZWdpc3RyeSwgY2FsbGJhY2spLgotICAuLi4KLQotICBDbGVhbnVw
RmluYWxpemF0aW9uUmVnaXN0cnkgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSBbICwgY2FsbGJhY2sg
XSApCi0KLSAgLi4uCi0gIDMuIExldCBpdGVyYXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJl
Z2lzdHJ5Q2xlYW51cEl0ZXJhdG9yKGZpbmFsaXphdGlvblJlZ2lzdHJ5KS4KLSAgLi4uCi0gIDYu
IExldCByZXN1bHQgYmUgQ2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBpdGVyYXRvciDCuyku
Ci0gIC4uLgotCi0gICVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlw
ZSUubmV4dCAoICkKLQotICAxLiBMZXQgaXRlcmF0b3IgYmUgdGhlIHRoaXMgdmFsdWUuCi0gIDIu
IElmIFR5cGUoaXRlcmF0b3IpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2Vw
dGlvbi4KLWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIGhvc3QtZ2MtcmVxdWlyZWQs
IFN5bWJvbF0KLWluY2x1ZGVzOiBbYXN5bmMtZ2MuanNdCi1mbGFnczogW2FzeW5jLCBub24tZGV0
ZXJtaW5pc3RpY10KLS0tLSovCi0KLXZhciBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVy
YXRvclByb3RvdHlwZTsKLXZhciBjYWxsZWQgPSAwOwotdmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5
ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwotCi1mdW5jdGlvbiBj
YWxsYmFjayhpdGVyYXRvcikgewotICBjYWxsZWQgKz0gMTsKLSAgRmluYWxpemF0aW9uUmVnaXN0
cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaXRlcmF0
b3IpOwotfQotCi1mdW5jdGlvbiBlbXB0eUNlbGxzKCkgewotICB2YXIgdGFyZ2V0ID0ge307Ci0g
IGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKHRhcmdldCk7Ci0KLSAgdmFyIHByb20gPSBh
c3luY0dDKHRhcmdldCk7Ci0gIHRhcmdldCA9IG51bGw7Ci0KLSAgcmV0dXJuIHByb207Ci19Ci0K
LWVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5j
bGVhbnVwU29tZShjYWxsYmFjayk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdj
bGVhbnVwIHN1Y2Nlc3NmdWwnKTsKLQotICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBGaW5hbGl6
YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS5uZXh0LCAnZnVuY3Rpb24nKTsK
LQotICB2YXIgbmV4dCA9IEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90
eXBlLm5leHQ7Ci0KLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAg
IG5leHQuY2FsbCh1bmRlZmluZWQpOwotICB9LCAndW5kZWZpbmVkJyk7Ci0KLSAgYXNzZXJ0LnRo
cm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIG5leHQuY2FsbChudWxsKTsKLSAgfSwg
J251bGwnKTsKLQotICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7Ci0gICAg
bmV4dC5jYWxsKHRydWUpOwotICB9LCAndHJ1ZScpOwotCi0gIGFzc2VydC50aHJvd3MoVHlwZUVy
cm9yLCBmdW5jdGlvbigpIHsKLSAgICBuZXh0LmNhbGwoZmFsc2UpOwotICB9LCAnZmFsc2UnKTsK
LQotICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7Ci0gICAgbmV4dC5jYWxs
KDEpOwotICB9LCAnMScpOwotCi0gIGFzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigp
IHsKLSAgICBuZXh0LmNhbGwoJ3N0cmluZycpOwotICB9LCAnc3RyaW5nJyk7Ci0KLSAgdmFyIHN5
bWJvbCA9IFN5bWJvbCgpOwotICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7
Ci0gICAgbmV4dC5jYWxsKHN5bWJvbCk7Ci0gIH0sICdzeW1ib2wnKTsKLX0pLnRoZW4oJERPTkUs
IHJlc29sdmVBc3luY0dDKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVy
YXRvclByb3RvdHlwZS9uZXh0LXByb3AtZGVzYy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJ
dGVyYXRvclByb3RvdHlwZS9uZXh0LXByb3AtZGVzYy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzY1YTY5YTVjODY1MjBiOTI3MTExYWM2MDY5NDMzMzRmZmJiMDhmZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlD
bGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1wcm9wLWRlc2MuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw2NyArMCwwIEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0
aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9u
OiA+Ci0gIFByb3AgZGVzY3JpcHRvciBmb3IgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRl
cmF0b3JQcm90b3R5cGUubmV4dAotaW5mbzogfAotICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90
b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRp
b25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAgLi4uCi0gIDUuIFBlcmZvcm0gISBDbGVh
bnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxpemF0aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4K
LSAgLi4uCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5ICggZmluYWxpemF0aW9uUmVn
aXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4uLgotICAzLiBMZXQgaXRlcmF0b3IgYmUgISBD
cmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvcihmaW5hbGl6YXRpb25SZWdp
c3RyeSkuCi0gIC4uLgotICA2LiBMZXQgcmVzdWx0IGJlIENhbGwoY2FsbGJhY2ssIHVuZGVmaW5l
ZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQotICAxNyBFQ01BU2NyaXB0IFN0YW5kYXJkIEJ1
aWx0LWluIE9iamVjdHM6Ci0KLSAgRXZlcnkgb3RoZXIgZGF0YSBwcm9wZXJ0eSBkZXNjcmliZWQg
aW4gY2xhdXNlcyAxOCB0aHJvdWdoIDI2IGFuZCBpbiBBbm5leCBCLjIKLSAgaGFzIHRoZSBhdHRy
aWJ1dGVzIHsgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogZmFsc2UsCi0gIFtb
Q29uZmlndXJhYmxlXV06IHRydWUgfSB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZC4KLWluY2x1
ZGVzOiBbcHJvcGVydHlIZWxwZXIuanMsIGFzeW5jLWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9u
LWRldGVybWluaXN0aWNdCi1mZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBob3N0LWdj
LXJlcXVpcmVkLCBTeW1ib2xdCi0tLS0qLwotCi12YXIgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVh
bnVwSXRlcmF0b3JQcm90b3R5cGU7Ci12YXIgY2FsbGVkID0gMDsKLXZhciBmaW5hbGl6YXRpb25S
ZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbigpIHt9KTsKLQotZnVu
Y3Rpb24gY2FsbGJhY2soaXRlcmF0b3IpIHsKLSAgY2FsbGVkICs9IDE7Ci0gIEZpbmFsaXphdGlv
blJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9m
KGl0ZXJhdG9yKTsKLX0KLQotZnVuY3Rpb24gZW1wdHlDZWxscygpIHsKLSAgdmFyIHRhcmdldCA9
IHt9OwotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5yZWdpc3Rlcih0YXJnZXQpOwotCi0gIHZhciBw
cm9tID0gYXN5bmNHQyh0YXJnZXQpOwotICB0YXJnZXQgPSBudWxsOwotCi0gIHJldHVybiBwcm9t
OwotfQotCi1lbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKLSAgZmluYWxpemF0aW9uUmVn
aXN0cnkuY2xlYW51cFNvbWUoY2FsbGJhY2spOwotCi0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVk
LCAxLCAnY2xlYW51cCBzdWNjZXNzZnVsJyk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2Yg
RmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUubmV4dCwgJ2Z1bmN0
aW9uJyk7Ci0KLSAgdmFyIG5leHQgPSBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRv
clByb3RvdHlwZS5uZXh0OwotCi0gIHZlcmlmeVByb3BlcnR5KEZpbmFsaXphdGlvblJlZ2lzdHJ5
Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlLCAnbmV4dCcsIHsKLSAgICBlbnVtZXJhYmxlOiBmYWxz
ZSwKLSAgICB3cml0YWJsZTogdHJ1ZSwKLSAgICBjb25maWd1cmFibGU6IHRydWUsCi0gIH0pOwot
fSkudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0MpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lz
dHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL3Byb3RvLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xl
YW51cEl0ZXJhdG9yUHJvdG90eXBlL3Byb3RvLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyZDRkYzkwODFhOTdiMTcwN2RiNDY3YjE2YjRmZGI5ZGZhMWZkMWFkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFu
dXBJdGVyYXRvclByb3RvdHlwZS9wcm90by5qcworKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAg
QEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXByb3BlcnRpZXMtb2YtdGhlLWZp
bmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgotZGVzY3JpcHRpb246ID4KLSAgRmluYWxp
emF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IgaGFzIGEgW1tQcm90b3R5cGVdXSBpbnRlcm5h
bCBzbG90IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRyaW5zaWMKLSAgb2JqZWN0ICVJdGVyYXRvclBy
b3RvdHlwZSUuCi1pbmZvOiB8Ci0gIFRoZSAlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRl
cmF0b3JQcm90b3R5cGUlIE9iamVjdAotCi0gIC0gaGFzIHByb3BlcnRpZXMgdGhhdCBhcmUgaW5o
ZXJpdGVkIGJ5IGFsbCBGaW5hbGl6YXRpb25SZWdpc3RyeSBDbGVhbnVwIEl0ZXJhdG9yIE9iamVj
dHMuCi0gIC0gaXMgYW4gb3JkaW5hcnkgb2JqZWN0LgotICAtIGhhcyBhIFtbUHJvdG90eXBlXV0g
aW50ZXJuYWwgc2xvdCB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50cmluc2ljIG9iamVjdCAlSXRlcmF0
b3JQcm90b3R5cGUlLgotICAuLi4KLQotICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUu
Y2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdp
c3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAgMi4gSWYgVHlwZShmaW5hbGl6YXRpb25SZWdpc3Ry
eSkgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICAzLiBJZiBm
aW5hbGl6YXRpb25SZWdpc3RyeSBkb2VzIG5vdCBoYXZlIGEgW1tDZWxsc11dIGludGVybmFsIHNs
b3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgNC4gSWYgY2FsbGJhY2sgaXMgbm90
IHVuZGVmaW5lZCBhbmQgSXNDYWxsYWJsZShjYWxsYmFjaykgaXMgZmFsc2UsIHRocm93IGEgVHlw
ZUVycm9yIGV4Y2VwdGlvbi4KLSAgNS4gUGVyZm9ybSAhIENsZWFudXBGaW5hbGl6YXRpb25SZWdp
c3RyeShmaW5hbGl6YXRpb25SZWdpc3RyeSwgY2FsbGJhY2spLgotICA2LiBSZXR1cm4gdW5kZWZp
bmVkLgotCi0gIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeSAoIGZpbmFsaXphdGlvblJlZ2lz
dHJ5IFsgLCBjYWxsYmFjayBdICkKLQotICAuLi4KLSAgMi4gSWYgQ2hlY2tGb3JFbXB0eUNlbGxz
KGZpbmFsaXphdGlvblJlZ2lzdHJ5KSBpcyBmYWxzZSwgcmV0dXJuLgotICAzLiBMZXQgaXRlcmF0
b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvcihmaW5hbGl6
YXRpb25SZWdpc3RyeSkuCi0gIDQuIElmIGNhbGxiYWNrIGlzIHVuZGVmaW5lZCwgc2V0IGNhbGxi
YWNrIHRvIGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbQ2xlYW51cENhbGxiYWNrXV0uCi0gIDUuIFNl
dCBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0lzRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSm9i
QWN0aXZlXV0gdG8gdHJ1ZS4KLSAgNi4gTGV0IHJlc3VsdCBiZSBDYWxsKGNhbGxiYWNrLCB1bmRl
ZmluZWQsIMKrIGl0ZXJhdG9yIMK7KS4KLSAgLi4uCi0KLSAgQ2hlY2tGb3JFbXB0eUNlbGxzICgg
ZmluYWxpemF0aW9uUmVnaXN0cnkgKQotCi0gIC4uLgotICAyLiBGb3IgZWFjaCBjZWxsIGluIGZp
bmFsaXphdGlvblJlZ2lzdHJ5LltbQ2VsbHNdXSwgZG8KLSAgICBhLiBJZiBjZWxsLltbVGFyZ2V0
XV0gaXMgZW1wdHksIHRoZW4KLSAgICAgIGkuIFJldHVybiB0cnVlLgotICAzLiBSZXR1cm4gZmFs
c2UuCi0KLSAgQ3JlYXRlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IgKCBmaW5h
bGl6YXRpb25SZWdpc3RyeSApCi0KLSAgLi4uCi0gIDQuIExldCBwcm90b3R5cGUgYmUgZmluYWxp
emF0aW9uUmVnaXN0cnkuW1tSZWFsbV1dLltbSW50cmluc2ljc11dLltbJUZpbmFsaXphdGlvblJl
Z2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlJV1dLgotICA1LiBMZXQgaXRlcmF0b3IgYmUg
T2JqZWN0Q3JlYXRlKHByb3RvdHlwZSwgwqsgW1tGaW5hbGl6YXRpb25SZWdpc3RyeV1dIMK7KS4K
LSAgNi4gU2V0IGl0ZXJhdG9yLltbRmluYWxpemF0aW9uUmVnaXN0cnldXSB0byBmaW5hbGl6YXRp
b25SZWdpc3RyeS4KLSAgNy4gUmV0dXJuIGl0ZXJhdG9yLgotZmVhdHVyZXM6IFtGaW5hbGl6YXRp
b25SZWdpc3RyeSwgaG9zdC1nYy1yZXF1aXJlZF0KLWluY2x1ZGVzOiBbYXN5bmMtZ2MuanNdCi1m
bGFnczogW2FzeW5jLCBub24tZGV0ZXJtaW5pc3RpY10KLS0tLSovCi0KLXZhciBJdGVyYXRvclBy
b3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoW11b
U3ltYm9sLml0ZXJhdG9yXSgpKSk7Ci12YXIgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRl
cmF0b3JQcm90b3R5cGU7Ci12YXIgY2FsbGVkID0gMDsKLXZhciBjbGVhbnVwQ2FsbGJhY2tDYWxs
ZWQgPSAwOwotCi1mdW5jdGlvbiBjYWxsYmFjayhpdGVyYXRvcikgewotICBjYWxsZWQgKz0gMTsK
LQotICBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSA9IE9iamVj
dC5nZXRQcm90b3R5cGVPZihpdGVyYXRvcik7Ci19Ci0KLXZhciBmaW5hbGl6YXRpb25SZWdpc3Ry
eSA9IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbigpIHt9KTsKLQotZnVuY3Rpb24g
ZW1wdHlDZWxscygpIHsKLSAgdmFyIHRhcmdldCA9IHt9OwotICBmaW5hbGl6YXRpb25SZWdpc3Ry
eS5yZWdpc3Rlcih0YXJnZXQpOwotCi0gIHZhciBwcm9tID0gYXN5bmNHQyh0YXJnZXQpOwotICB0
YXJnZXQgPSBudWxsOwotCi0gIHJldHVybiBwcm9tOwotfQotCi1lbXB0eUNlbGxzKCkudGhlbihm
dW5jdGlvbigpIHsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2FsbGJhY2sp
OwotCi0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxLCAnY2xlYW51cCBzdWNjZXNzZnVsJyk7
Ci0KLSAgdmFyIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKEZpbmFsaXphdGlvblJlZ2lz
dHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlKTsKLSAgYXNzZXJ0LnNhbWVWYWx1ZSgKLSAgICBw
cm90bywgSXRlcmF0b3JQcm90b3R5cGUsCi0gICAgJ1tbUHJvdG90eXBlXV0gaW50ZXJuYWwgc2xv
dCB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50cmluc2ljIG9iamVjdCAlSXRlcmF0b3JQcm90b3R5cGUl
JwotICApOwotCi0gIGFzc2VydC5zYW1lVmFsdWUoY2xlYW51cENhbGxiYWNrQ2FsbGVkLCAwLCAn
aWYgYSBjYWxsYmFjayBpcyBnaXZlbiwgZG8gbm90IGNhbGwgY2xlYW51cENhbGxiYWNrJyk7Ci19
KS50aGVuKCRET05FLCByZXNvbHZlQXN5bmNHQyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvZ2MtaGFzLW9uZS1jaGFuY2Ut
dG8tY2FsbC1jbGVhbnVwQ2FsbGJhY2suanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvRmluYWxpemF0aW9uUmVnaXN0cnkvZ2MtaGFzLW9uZS1jaGFuY2UtdG8tY2FsbC1jbGVhbnVw
Q2FsbGJhY2suanMKaW5kZXggMjIxMGYxMmRjOWRlMzhkZmI2M2Y3ZjJjOTQxOGUzYWRhNGM2ZmIw
MC4uM2FhYmIzMmI0ODY3ZTYwZjM3MWEzODNhMjdkZjdlYWNmZDIwYWUzMiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L2djLWhh
cy1vbmUtY2hhbmNlLXRvLWNhbGwtY2xlYW51cENhbGxiYWNrLmpzCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9nYy1oYXMtb25lLWNoYW5j
ZS10by1jYWxsLWNsZWFudXBDYWxsYmFjay5qcwpAQCAtMzMsMTAgKzMzLDggQEAgaW5jbHVkZXM6
IFthc3luYy1nYy5qc10KIHZhciBjbGVhbnVwQ2FsbGJhY2sgPSAwOwogdmFyIGNhbGxlZCA9IDA7
CiAKLS8vIGJvdGggdGhpcyBjYiBhbmQgdGhlIGZpbmFsaXphdGlvblJlZ2lzdHJ5IGNhbGxiYWNr
IGFyZSBub3QgZXhoYXVzdGluZyB0aGUgaXRlcmF0b3IgdG8gcHJldmVudAotLy8gdGhlIHRhcmdl
dCBjZWxsIGZyb20gYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZSBmaW5hbGl6YXRpb25SZWdpc3RyeS5b
W0NlbGxzXV0uCi0vLyBNb3JlIGluZm8gYXQgJUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0
ZXJhdG9yUHJvdG90eXBlJS5uZXh0ICggKQotZnVuY3Rpb24gY2IoKSB7CitmdW5jdGlvbiBjYiho
b2xkaW5nKSB7CisgIGFzc2VydC5zYW1lVmFsdWUoaG9sZGluZywgJ2EnKTsKICAgY2FsbGVkICs9
IDE7CiB9CiAKQEAgLTU0LDE0ICs1MiwxNyBAQCBmdW5jdGlvbiBlbXB0eUNlbGxzKCkgewogICBy
ZXR1cm4gcHJvbTsKIH0KIAotLy8gTGV0J3MgYWRkIHNvbWUgYXN5bmMgdGlja3MsIGFzIHRoZSBj
bGVhbnVwQ2FsbGJhY2sgaXMgbm90IG1lYW50IHRvIGludGVycnVwdAotLy8gc3luY2hyb25vdXMg
b3BlcmF0aW9ucy4KLWFzeW5jIGZ1bmN0aW9uIGZuKCkgeworZW1wdHlDZWxscygpCisgIC50aGVu
KGFzeW5jIGZ1bmN0aW9uKCkgewogICBhd2FpdCBQcm9taXNlLnJlc29sdmUoMSk7CiAKICAgZmlu
YWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2IpOworCisgIC8vIGNsZWFudXBTb21lIHdp
bGwgYmUgaW52b2tlZCBpZiB0aGVyZSBhcmUgZW1wdHkgY2VsbHMgbGVmdC4gSWYgdGhlCisgIC8v
IGNsZWFudXBDYWxsYmFjayBhbHJlYWR5IHJhbiwgdGhlbiBjYiB3b24ndCBiZSBjYWxsZWQuCisg
IGxldCBleHBlY3RlZENhbGxlZCA9IGNsZWFudXBDYWxsYmFjayA9PT0gMSA/IDAgOiAxOwogICAv
LyBUaGlzIGFzc2VydHMgdGhlIHJlZ2lzdGVyZWQgb2JqZWN0IHdhcyBlbXB0aWVkIGluIHRoZSBw
cmV2aW91cyBHQy4KLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdjbGVhbnVwU29tZSBj
YWxsYmFjayBmb3IgdGhlIGZpcnN0IHRpbWUnKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQs
IGV4cGVjdGVkQ2FsbGVkLCAnY2xlYW51cFNvbWUgY2FsbGJhY2sgZm9yIHRoZSBmaXJzdCB0aW1l
Jyk7CiAKICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgY2FuJ3QgYXNzZXJ0IGlmIGNsZWFudXBDYWxs
YmFjayB3YXMgY2FsbGVkLCBiZWNhdXNlIGl0J3MKICAgLy8gb3B0aW9uYWwuIEFsdGhvdWdoLCB3
ZSBjYW4gZmluYWxseSBhc3NlcnQgaXQncyBub3QgZ29ubmEgYmUgY2FsbGVkIGFueW1vcmUKQEAg
LTcxLDggKzcyLDggQEAgYXN5bmMgZnVuY3Rpb24gZm4oKSB7CiAgIGFzc2VydChjbGVhbnVwQ2Fs
bGJhY2sgPj0gMCwgJ2NsZWFudXBDYWxsYmFjayBtaWdodCBiZSAwJyk7CiAgIGFzc2VydChjbGVh
bnVwQ2FsbGJhY2sgPD0gMSwgJ2NsZWFudXBDYWxsYmFjayBtaWdodCBiZSAxJyk7CiAKLSAgLy8g
UmVzdG9yaW5nIHRoZSBjbGVhbnVwQ2FsbGJhY2sgdmFyaWFibGUgdG8gMCB3aWxsIGhlbHAgdXMg
YXNzZXJ0aW5nIHRoZSBmaW5hbGl6YXRpb25SZWdpc3RyeQotICAvLyBjYWxsYmFjayBpcyBub3Qg
Y2FsbGVkIGFnYWluLgorICAvLyBSZXN0b3JpbmcgdGhlIGNsZWFudXBDYWxsYmFjayB2YXJpYWJs
ZSB0byAwIHdpbGwgaGVscCB1cyBhc3NlcnRpbmcgdGhlCisgIC8vIGZpbmFsaXphdGlvblJlZ2lz
dHJ5IGNhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdhaW4uCiAgIGNsZWFudXBDYWxsYmFjayA9IDA7
CiAKICAgYXdhaXQgJDI2Mi5nYygpOwpAQCAtODAsOSArODEsNyBAQCBhc3luYyBmdW5jdGlvbiBm
bigpIHsKIAogICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYik7CiAKLSAgLy8g
VGhpcyBjYiBpcyBjYWxsZWQgYWdhaW4gYmVjYXVzZSBmaW5hbGl6YXRpb25SZWdpc3RyeSBzdGls
bCBob2xkcyBhbiBlbXB0aWVkIGNlbGwsIGJ1dCBpdCdzCi0gIC8vIG5vdCB5ZXQgcmVtb3ZlZCBm
cm9tIHRoZSAKLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDIsICdjbGVhbnVwU29tZSBjYWxs
YmFjayBmb3IgdGhlIHNlY29uZCB0aW1lJyk7CisgIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCBl
eHBlY3RlZENhbGxlZCwgJ2NsZWFudXBTb21lIGNhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYW55bW9y
ZSwgbm8gZW1wdHkgY2VsbHMnKTsKICAgYXNzZXJ0LnNhbWVWYWx1ZShjbGVhbnVwQ2FsbGJhY2ss
IDAsICdjbGVhbnVwQ2FsbGJhY2sgaXMgbm90IGNhbGxlZCBhZ2FpbiAjMScpOwogCiAgIGF3YWl0
ICQyNjIuZ2MoKTsKQEAgLTkwLDQ2ICs4OSw5IEBAIGFzeW5jIGZ1bmN0aW9uIGZuKCkgewogCiAg
IGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNiKTsKIAotICBhc3NlcnQuc2FtZVZh
bHVlKGNhbGxlZCwgMywgJ2NsZWFudXBTb21lIGNhbGxiYWNrIGZvciB0aGUgdGhpcmQgdGltZScp
OworICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgZXhwZWN0ZWRDYWxsZWQsICdjbGVhbnVwU29t
ZSBjYWxsYmFjayBpcyBub3QgY2FsbGVkIGFnYWluICMyJyk7CiAgIGFzc2VydC5zYW1lVmFsdWUo
Y2xlYW51cENhbGxiYWNrLCAwLCAnY2xlYW51cENhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdhaW4g
IzInKTsKIAogICBhd2FpdCAkMjYyLmdjKCk7Ci19Ci0KLWVtcHR5Q2VsbHMoKQotICAudGhlbihh
c3luYyBmdW5jdGlvbigpIHsKLSAgICBhd2FpdCBmbigpOy8vIHRpY2sKLSAgICBhd2FpdCBQcm9t
aXNlLnJlc29sdmUoNCk7IC8vIHRpY2sKLQotICAgIGFzc2VydC5zYW1lVmFsdWUoY2xlYW51cENh
bGxiYWNrLCAwLCAnY2xlYW51cENhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdhaW4gIzMnKTsKLQot
ICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNiKTsKLQotICAgIGFzc2VydC5z
YW1lVmFsdWUoY2FsbGVkLCA0LCAnY2xlYW51cFNvbWUgY2FsbGJhY2sgZm9yIHRoZSBmb3VydGgg
dGltZScpOwotICAgIGFzc2VydC5zYW1lVmFsdWUoY2xlYW51cENhbGxiYWNrLCAwLCAnY2xlYW51
cENhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdhaW4gIzQnKTsKLSAgICAKLSAgICBhd2FpdCAkMjYy
LmdjKCk7Ci0KLSAgICAvLyBOb3cgd2UgYXJlIGV4aGF1c3RpbmcgdGhlIGl0ZXJhdG9yLCBzbyBj
bGVhbnVwU29tZSBjYWxsYmFjayB3aWxsIGFsc28gbm90IGJlIGNhbGxlZC4KLSAgICBmaW5hbGl6
YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShpdGVyYXRvciA9PiB7Ci0gICAgICB2YXIgZXhoYXVz
dGVkID0gWy4uLml0ZXJhdG9yXTsKLSAgICAgIGFzc2VydC5zYW1lVmFsdWUoZXhoYXVzdGVkLmxl
bmd0aCwgMSk7Ci0gICAgICBhc3NlcnQuc2FtZVZhbHVlKGV4aGF1c3RlZFswXSwgJ2EnKTsKLSAg
ICAgIGNhbGxlZCArPSAxOwotICAgIH0pOwotCi0gICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQs
IDUsICdjbGVhbnVwU29tZSBjYWxsYmFjayBmb3IgdGhlIGZpZnRoIHRpbWUnKTsKLSAgICBhc3Nl
cnQuc2FtZVZhbHVlKGNsZWFudXBDYWxsYmFjaywgMCwgJ2NsZWFudXBDYWxsYmFjayBpcyBub3Qg
Y2FsbGVkIGFnYWluICM0Jyk7Ci0KLSAgICBhd2FpdCAkMjYyLmdjKCk7Ci0KLSAgICBhd2FpdCBQ
cm9taXNlLnJlc29sdmUoNSk7IC8vIHRpY2sKLSAgICBhd2FpdCBhd2FpdCBQcm9taXNlLnJlc29s
dmUoNik7IC8vIG1vcmUgdGlja3MKLSAgICBhd2FpdCBhd2FpdCBhd2FpdCBQcm9taXNlLnJlc29s
dmUoNyk7IC8vIGV2ZW4gbW9yZSB0aWNrcwotCi0gICAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xl
YW51cFNvbWUoY2IpOwotCi0gICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDUsICdjbGVhbnVw
U29tZSBjYWxsYmFjayBpcyBub3QgY2FsbGVkIGFueW1vcmUsIG5vIGVtcHR5IGNlbGxzJyk7Ci0g
ICAgYXNzZXJ0LnNhbWVWYWx1ZShjbGVhbnVwQ2FsbGJhY2ssIDAsICdjbGVhbnVwQ2FsbGJhY2sg
aXMgbm90IGNhbGxlZCBhZ2FpbiAjNScpOwogICB9KQogICAudGhlbigkRE9ORSwgcmVzb2x2ZUFz
eW5jR0MpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFs
aXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9jYWxsYmFjay1pdGVyYXRvci1w
cm90by5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdp
c3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2FsbGJhY2staXRlcmF0b3ItcHJvdG8uanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyYjIxN2RiZTlkMWEwMmIzZGUzNDhkOTVmMGYy
NzhlYTI4MzI1MTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3By
b3RvdHlwZS9jbGVhbnVwU29tZS9jYWxsYmFjay1pdGVyYXRvci1wcm90by5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDk4ICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0Qg
bGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXBy
b3BlcnRpZXMtb2YtdGhlLWZpbmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgotZGVzY3Jp
cHRpb246ID4KLSAgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIGEgRmluYWxp
emF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IKLWluZm86IHwKLSAgVGhlICVGaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSUgT2JqZWN0Ci0KLSAgLSBoYXMgcHJv
cGVydGllcyB0aGF0IGFyZSBpbmhlcml0ZWQgYnkgYWxsIEZpbmFsaXphdGlvblJlZ2lzdHJ5IENs
ZWFudXAgSXRlcmF0b3IgT2JqZWN0cy4KLSAgLSBpcyBhbiBvcmRpbmFyeSBvYmplY3QuCi0gIC0g
aGFzIGEgW1tQcm90b3R5cGVdXSBpbnRlcm5hbCBzbG90IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRy
aW5zaWMgb2JqZWN0ICVJdGVyYXRvclByb3RvdHlwZSUuCi0gIC4uLgotCi0gIEZpbmFsaXphdGlv
blJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZSAoIFsgY2FsbGJhY2sgXSApCi0KLSAgMS4g
TGV0IGZpbmFsaXphdGlvblJlZ2lzdHJ5IGJlIHRoZSB0aGlzIHZhbHVlLgotICAyLiBJZiBUeXBl
KGZpbmFsaXphdGlvblJlZ2lzdHJ5KSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBl
eGNlcHRpb24uCi0gIDMuIElmIGZpbmFsaXphdGlvblJlZ2lzdHJ5IGRvZXMgbm90IGhhdmUgYSBb
W0NlbGxzXV0gaW50ZXJuYWwgc2xvdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICA0
LiBJZiBjYWxsYmFjayBpcyBub3QgdW5kZWZpbmVkIGFuZCBJc0NhbGxhYmxlKGNhbGxiYWNrKSBp
cyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICA1LiBQZXJmb3JtICEgQ2xl
YW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZpbmFsaXphdGlvblJlZ2lzdHJ5LCBjYWxsYmFjayku
Ci0gIDYuIFJldHVybiB1bmRlZmluZWQuCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5
ICggZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4uLgotICAyLiBJ
ZiBDaGVja0ZvckVtcHR5Q2VsbHMoZmluYWxpemF0aW9uUmVnaXN0cnkpIGlzIGZhbHNlLCByZXR1
cm4uCi0gIDMuIExldCBpdGVyYXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xl
YW51cEl0ZXJhdG9yKGZpbmFsaXphdGlvblJlZ2lzdHJ5KS4KLSAgNC4gSWYgY2FsbGJhY2sgaXMg
dW5kZWZpbmVkLCBzZXQgY2FsbGJhY2sgdG8gZmluYWxpemF0aW9uUmVnaXN0cnkuW1tDbGVhbnVw
Q2FsbGJhY2tdXS4KLSAgNS4gU2V0IGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbSXNGaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBKb2JBY3RpdmVdXSB0byB0cnVlLgotICA2LiBMZXQgcmVzdWx0IGJl
IENhbGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQotICBD
aGVja0ZvckVtcHR5Q2VsbHMgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSApCi0KLSAgLi4uCi0gIDIu
IEZvciBlYWNoIGNlbGwgaW4gZmluYWxpemF0aW9uUmVnaXN0cnkuW1tDZWxsc11dLCBkbwotICAg
IGEuIElmIGNlbGwuW1tUYXJnZXRdXSBpcyBlbXB0eSwgdGhlbgotICAgICAgaS4gUmV0dXJuIHRy
dWUuCi0gIDMuIFJldHVybiBmYWxzZS4KLQotICBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNs
ZWFudXBJdGVyYXRvciAoIGZpbmFsaXphdGlvblJlZ2lzdHJ5ICkKLQotICAuLi4KLSAgNC4gTGV0
IHByb3RvdHlwZSBiZSBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW1JlYWxtXV0uW1tJbnRyaW5zaWNz
XV0uW1slRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUlXV0uCi0g
IDUuIExldCBpdGVyYXRvciBiZSBPYmplY3RDcmVhdGUocHJvdG90eXBlLCDCqyBbW0ZpbmFsaXph
dGlvblJlZ2lzdHJ5XV0gwrspLgotICA2LiBTZXQgaXRlcmF0b3IuW1tGaW5hbGl6YXRpb25SZWdp
c3RyeV1dIHRvIGZpbmFsaXphdGlvblJlZ2lzdHJ5LgotICA3LiBSZXR1cm4gaXRlcmF0b3IuCi1m
ZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBob3N0LWdjLXJlcXVpcmVkXQotaW5jbHVk
ZXM6IFthc3luYy1nYy5qc10KLWZsYWdzOiBbYXN5bmMsIG5vbi1kZXRlcm1pbmlzdGljXQotLS0t
Ki8KLQotdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKE9iamVj
dC5nZXRQcm90b3R5cGVPZihbXVtTeW1ib2wuaXRlcmF0b3JdKCkpKTsKLXZhciBGaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZTsKLXZhciBjYWxsZWQgPSAwOwotdmFy
IGNsZWFudXBDYWxsYmFja0NhbGxlZCA9IDA7Ci0KLWZ1bmN0aW9uIGNhbGxiYWNrKGl0ZXJhdG9y
KSB7Ci0gIGNhbGxlZCArPSAxOwotCi0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJh
dG9yUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKLX0KLQotdmFy
IGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9u
KCkgewotICBjbGVhbnVwQ2FsbGJhY2tDYWxsZWQgKz0gMTsKLX0pOwotCi1hc3luYyBmdW5jdGlv
biByZWdpc3RlcigpIHsKLSAgdmFyIHRhcmdldCA9IHt9OwotICBmaW5hbGl6YXRpb25SZWdpc3Ry
eS5yZWdpc3Rlcih0YXJnZXQpOwotICB2YXIgcHJvbSA9IGFzeW5jR0ModGFyZ2V0KTsKLSAgCi0g
IHRhcmdldCA9IG51bGw7Ci0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAwKTsgLy8gbmV2ZXIg
Y2FsbGVkIGluIHN5bmMgZXhlY3V0aW9uCi0KLSAgcmV0dXJuIHByb207Ci19Ci0KLXJlZ2lzdGVy
KCkKLSAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgLy8gV2UgY2FuJ3Qgb2JzZXJ2ZSBpZiB0aGUg
Y2xlYW51cENhbGxiYWNrIHdhcyBjYWxsZWQsIGJ1dCB3ZSBjYW4gbWFrZSBzdXJlIGNsZWFudXBT
b21lIHdvbid0IGNhbGwgaXQuCi0gICAgY2xlYW51cENhbGxiYWNrQ2FsbGVkID0gMDsKLQotICAg
IGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNhbGxiYWNrKTsKLQotICAgIGFzc2Vy
dC5zYW1lVmFsdWUoY2FsbGVkLCAxKTsKLQotICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90
b3R5cGVPZihGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSk7Ci0g
ICAgYXNzZXJ0LnNhbWVWYWx1ZSgKLSAgICAgIHByb3RvLCBJdGVyYXRvclByb3RvdHlwZSwKLSAg
ICAgICdbW1Byb3RvdHlwZV1dIGludGVybmFsIHNsb3Qgd2hvc2UgdmFsdWUgaXMgdGhlIGludHJp
bnNpYyBvYmplY3QgJUl0ZXJhdG9yUHJvdG90eXBlJScKLSAgICApOwotCi0gICAgYXNzZXJ0LnNh
bWVWYWx1ZShjbGVhbnVwQ2FsbGJhY2tDYWxsZWQsIDAsICdpZiBhIGNhbGxiYWNrIGlzIGdpdmVu
LCBkbyBub3QgY2FsbCBjbGVhbnVwQ2FsbGJhY2snKTsKLSAgfSkKLSAgLnRoZW4oJERPTkUsIHJl
c29sdmVBc3luY0dDKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC1wcmV2
ZW50ZWQtd2l0aC1yZWZlcmVuY2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
RmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NsZWFudXAtcHJldmVu
dGVkLXdpdGgtcmVmZXJlbmNlLmpzCmluZGV4IDE1N2NiYWZmNGRjOWM3OTJjYWM3OWIzMGUzMjA1
ZGYzYjIxNjIwMTMuLjYyZTE3MjFjMjc0MTZhZDU2ZmFkZThiNjRjNTdmN2U4MzI4YTI5NmYgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdp
c3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC1wcmV2ZW50ZWQtd2l0aC1yZWZlcmVu
Y2UuanMKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJl
Z2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9jbGVhbnVwLXByZXZlbnRlZC13aXRoLXJlZmVy
ZW5jZS5qcwpAQCAtMTgsOSArMTgsOSBAQCBpbmNsdWRlczogW2FzeW5jLWdjLmpzXQogZmxhZ3M6
IFthc3luYywgbm9uLWRldGVybWluaXN0aWNdCiAtLS0qLwogCi12YXIgaG9sZGluZ3NMaXN0Owot
ZnVuY3Rpb24gY2IoaXRlcmF0b3IpIHsKLSAgaG9sZGluZ3NMaXN0ID0gWy4uLml0ZXJhdG9yXTsK
K3ZhciBob2xkaW5nc0xpc3QgPSBbXTsKK2Z1bmN0aW9uIGNiKGhvbGRpbmcpIHsKKyAgaG9sZGlu
Z3NMaXN0LnB1c2goaG9sZGluZyk7CiB9OwogdmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3
IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwogCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBl
L2NsZWFudXBTb21lL2NsZWFudXAtcHJldmVudGVkLXdpdGgtdW5yZWdpc3Rlci5qcyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUv
Y2xlYW51cFNvbWUvY2xlYW51cC1wcmV2ZW50ZWQtd2l0aC11bnJlZ2lzdGVyLmpzCmluZGV4IDlj
ZGU0ZGY3MWFlZGUxZDYwOGFmZDg2NDM5Y2U1MWNlMTZmZDg5MTguLjhmODY4MTg3MDg5NWI1YWZm
YTU3MzlkZWNkYTBkNjMyYzRmMmM1YmYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xl
YW51cC1wcmV2ZW50ZWQtd2l0aC11bnJlZ2lzdGVyLmpzCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUv
Y2xlYW51cC1wcmV2ZW50ZWQtd2l0aC11bnJlZ2lzdGVyLmpzCkBAIC00Niw3ICs0Niw3IEBAIGVt
cHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewogICB2YXIgcmVzID0gZmluYWxpemF0aW9uUmVn
aXN0cnkudW5yZWdpc3Rlcih0b2tlbik7CiAgIGFzc2VydC5zYW1lVmFsdWUocmVzLCB0cnVlLCAn
dW5yZWdpc3RlciB0YXJnZXQgYmVmb3JlIGl0ZXJhdGluZyBvdmVyIGl0IGluIGNsZWFudXAnKTsK
IAotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShmdW5jdGlvbiBjYihpdGVyYXRv
cikgeworICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShmdW5jdGlvbiBjYihob2xk
aW5nKSB7CiAgICAgY2FsbGVkICs9IDE7CiAgIH0pOwogICAKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xl
YW51cFNvbWUvY2xlYW51cC10aHJvd3MtaW4tY2FsbGJhY2suanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21l
L2NsZWFudXAtdGhyb3dzLWluLWNhbGxiYWNrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5NGZiYTljZDE2MGNiZjhiOWFhNDdjOTNmYjFlZDExZjIyYTM3ZmI1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xl
YW51cC10aHJvd3MtaW4tY2FsbGJhY2suanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBA
Ci0vLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0aWVzLW9mLXRoZS1maW5h
bGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9uOiA+Ci0gIFRoZSBjbGVh
bnVwU29tZSgpIG1ldGhvZCB0aHJvd3MgaWYgY2xlYW51cCBpcyBjdXJyZW50bHkgaW4gcHJvZ3Jl
c3MuIAotaW5mbzogfAotICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNv
bWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0
aGUgdGhpcyB2YWx1ZS4KLSAgLi4uCi0gIDQuIElmIGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbSXNG
aW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBKb2JBY3RpdmVdXSBpcyB0cnVlLCAKLSAgICAgdGhy
b3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotCi1mZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lz
dHJ5LCBob3N0LWdjLXJlcXVpcmVkXQotaW5jbHVkZXM6IFthc3luYy1nYy5qc10KLWZsYWdzOiBb
YXN5bmMsIG5vbi1kZXRlcm1pbmlzdGljXQotLS0tKi8KLQotdmFyIGNhbGxlZCA9IDA7Ci12YXIg
ZW5kT2ZDYWxsID0gMDsKLXZhciBmaW5hbGl6YXRpb25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRp
b25SZWdpc3RyeShmdW5jdGlvbigpIHt9KTsKLQotZnVuY3Rpb24gY2FsbGJhY2soaXRlcmF0b3Ip
IHsKLSAgY2FsbGVkICs9IDE7Ci0KLSAgaWYgKGNhbGxlZCA9PT0gMSkgewotICAgIC8vIEF0ZW1w
dCB0byByZS1lbnRlciB0aGUgY2FsbGJhY2suCi0gICAgdmFyIG5lc3RlZENhbGxiYWNrUmFuID0g
ZmFsc2U7Ci0gICAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsICgpID0+IHsKLSAgICAgIGZpbmFs
aXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKCgpID0+IHsgbmVzdGVkQ2FsbGJhY2tSYW4gPSB0
cnVlIH0pOwotICAgIH0pOwotICAgIGFzc2VydC5zYW1lVmFsdWUobmVzdGVkQ2FsbGJhY2tSYW4s
IGZhbHNlKTsKLSAgfQotCi0gIGVuZE9mQ2FsbCArPSAxOwotfQotCi1mdW5jdGlvbiBlbXB0eUNl
bGxzKCkgewotICB2YXIgbzEgPSB7fTsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIo
bzEsICdob2xkaW5ncyAxJyk7Ci0KLSAgdmFyIHByb20gPSBhc3luY0dDKG8xKTsKLSAgbzEgPSBu
dWxsOwotCi0gIHJldHVybiBwcm9tOwotfQotCi1lbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigp
IHsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2FsbGJhY2spOwotCi0gIGFz
c2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxLCAnY2FsbGJhY2sgd2FzIGNhbGxlZCcpOwotICBhc3Nl
cnQuc2FtZVZhbHVlKGVuZE9mQ2FsbCwgMSwgJ2NhbGxiYWNrIGZpbmlzaGVkJyk7Ci19KS50aGVu
KCRET05FLCByZXNvbHZlQXN5bmNHQyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2Ns
ZWFudXBjYWxsYmFjay1pdGVyYXRvci1wcm90by5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51
cGNhbGxiYWNrLWl0ZXJhdG9yLXByb3RvLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5YTBkZDY1NDkzODVmZDAzZGY2ODcwNmQ1OGMxMjRmNDE2NDhmNTY5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51
cGNhbGxiYWNrLWl0ZXJhdG9yLXByb3RvLmpzCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBA
QAotLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0vLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtcHJvcGVydGllcy1vZi10aGUtZmlu
YWxpemF0aW9uLXJlZ2lzdHJ5LWNvbnN0cnVjdG9yCi1kZXNjcmlwdGlvbjogPgotICBUaGUgY2xl
YW51cCBjYWxsYmFjayBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBhIEZpbmFsaXphdGlvblJlZ2lz
dHJ5Q2xlYW51cEl0ZXJhdG9yCi1pbmZvOiB8Ci0gIFRoZSAlRmluYWxpemF0aW9uUmVnaXN0cnlD
bGVhbnVwSXRlcmF0b3JQcm90b3R5cGUlIE9iamVjdAotCi0gIC0gaGFzIHByb3BlcnRpZXMgdGhh
dCBhcmUgaW5oZXJpdGVkIGJ5IGFsbCBGaW5hbGl6YXRpb25SZWdpc3RyeSBDbGVhbnVwIEl0ZXJh
dG9yIE9iamVjdHMuCi0gIC0gaXMgYW4gb3JkaW5hcnkgb2JqZWN0LgotICAtIGhhcyBhIFtbUHJv
dG90eXBlXV0gaW50ZXJuYWwgc2xvdCB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50cmluc2ljIG9iamVj
dCAlSXRlcmF0b3JQcm90b3R5cGUlLgotICAuLi4KLQotICBGaW5hbGl6YXRpb25SZWdpc3RyeS5w
cm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5hbGl6
YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAgMi4gSWYgVHlwZShmaW5hbGl6YXRp
b25SZWdpc3RyeSkgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgot
ICAzLiBJZiBmaW5hbGl6YXRpb25SZWdpc3RyeSBkb2VzIG5vdCBoYXZlIGEgW1tDZWxsc11dIGlu
dGVybmFsIHNsb3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgNC4gSWYgY2FsbGJh
Y2sgaXMgbm90IHVuZGVmaW5lZCBhbmQgSXNDYWxsYWJsZShjYWxsYmFjaykgaXMgZmFsc2UsIHRo
cm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgNS4gUGVyZm9ybSAhIENsZWFudXBGaW5hbGl6
YXRpb25SZWdpc3RyeShmaW5hbGl6YXRpb25SZWdpc3RyeSwgY2FsbGJhY2spLgotICA2LiBSZXR1
cm4gdW5kZWZpbmVkLgotCi0gIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeSAoIGZpbmFsaXph
dGlvblJlZ2lzdHJ5IFsgLCBjYWxsYmFjayBdICkKLQotICAuLi4KLSAgMi4gSWYgQ2hlY2tGb3JF
bXB0eUNlbGxzKGZpbmFsaXphdGlvblJlZ2lzdHJ5KSBpcyBmYWxzZSwgcmV0dXJuLgotICAzLiBM
ZXQgaXRlcmF0b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRv
cihmaW5hbGl6YXRpb25SZWdpc3RyeSkuCi0gIDQuIElmIGNhbGxiYWNrIGlzIHVuZGVmaW5lZCwg
c2V0IGNhbGxiYWNrIHRvIGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbQ2xlYW51cENhbGxiYWNrXV0u
Ci0gIDUuIFNldCBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0lzRmluYWxpemF0aW9uUmVnaXN0cnlD
bGVhbnVwSm9iQWN0aXZlXV0gdG8gdHJ1ZS4KLSAgNi4gTGV0IHJlc3VsdCBiZSBDYWxsKGNhbGxi
YWNrLCB1bmRlZmluZWQsIMKrIGl0ZXJhdG9yIMK7KS4KLSAgLi4uCi0KLSAgQ2hlY2tGb3JFbXB0
eUNlbGxzICggZmluYWxpemF0aW9uUmVnaXN0cnkgKQotCi0gIC4uLgotICAyLiBGb3IgZWFjaCBj
ZWxsIGluIGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbQ2VsbHNdXSwgZG8KLSAgICBhLiBJZiBjZWxs
LltbVGFyZ2V0XV0gaXMgZW1wdHksIHRoZW4KLSAgICAgIGkuIFJldHVybiB0cnVlLgotICAzLiBS
ZXR1cm4gZmFsc2UuCi0KLSAgQ3JlYXRlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0
b3IgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSApCi0KLSAgLi4uCi0gIDQuIExldCBwcm90b3R5cGUg
YmUgZmluYWxpemF0aW9uUmVnaXN0cnkuW1tSZWFsbV1dLltbSW50cmluc2ljc11dLltbJUZpbmFs
aXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlJV1dLgotICA1LiBMZXQgaXRl
cmF0b3IgYmUgT2JqZWN0Q3JlYXRlKHByb3RvdHlwZSwgwqsgW1tGaW5hbGl6YXRpb25SZWdpc3Ry
eV1dIMK7KS4KLSAgNi4gU2V0IGl0ZXJhdG9yLltbRmluYWxpemF0aW9uUmVnaXN0cnldXSB0byBm
aW5hbGl6YXRpb25SZWdpc3RyeS4KLSAgNy4gUmV0dXJuIGl0ZXJhdG9yLgotZmVhdHVyZXM6IFtG
aW5hbGl6YXRpb25SZWdpc3RyeSwgaG9zdC1nYy1yZXF1aXJlZF0KLWluY2x1ZGVzOiBbYXN5bmMt
Z2MuanNdCi1mbGFnczogW2FzeW5jLCBub24tZGV0ZXJtaW5pc3RpY10KLS0tLSovCi0KLXZhciBJ
dGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihPYmplY3QuZ2V0UHJvdG90
eXBlT2YoW11bU3ltYm9sLml0ZXJhdG9yXSgpKSk7Ci12YXIgRmluYWxpemF0aW9uUmVnaXN0cnlD
bGVhbnVwSXRlcmF0b3JQcm90b3R5cGU7Ci12YXIgY2FsbGVkID0gMDsKLQotZnVuY3Rpb24gY2Fs
bGJhY2soaXRlcmF0b3IpIHsKLSAgY2FsbGVkICs9IDE7Ci0KLSAgRmluYWxpemF0aW9uUmVnaXN0
cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaXRlcmF0
b3IpOwotfQotCi12YXIgZmluYWxpemF0aW9uUmVnaXN0cnkgPSBuZXcgRmluYWxpemF0aW9uUmVn
aXN0cnkoZnVuY3Rpb24oKSB7fSk7Ci0KLWZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7Ci0gIHZhciB0
YXJnZXQgPSB7fTsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIodGFyZ2V0KTsKLQot
ICB2YXIgcHJvbSA9IGFzeW5jR0ModGFyZ2V0KTsKLSAgdGFyZ2V0ID0gbnVsbDsKLQotICByZXR1
cm4gcHJvbTsKLX0KLQotZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gIGZpbmFsaXph
dGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNhbGxiYWNrKTsKLSAgYXNzZXJ0LnNhbWVWYWx1ZShj
YWxsZWQsIDEpOwotCi0gIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihGaW5hbGl6
YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSk7Ci0gIGFzc2VydC5zYW1lVmFs
dWUoCi0gICAgcHJvdG8sIEl0ZXJhdG9yUHJvdG90eXBlLAotICAgICdbW1Byb3RvdHlwZV1dIGlu
dGVybmFsIHNsb3Qgd2hvc2UgdmFsdWUgaXMgdGhlIGludHJpbnNpYyBvYmplY3QgJUl0ZXJhdG9y
UHJvdG90eXBlJScKLSAgKTsKLX0pLnRoZW4oJERPTkUsIHJlc29sdmVBc3luY0dDKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3Ry
eS9wcm90b3R5cGUvY2xlYW51cFNvbWUvaG9sZGluZ3MtbXVsdGlwbGUtdmFsdWVzLmpzIGIvSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlw
ZS9jbGVhbnVwU29tZS9ob2xkaW5ncy1tdWx0aXBsZS12YWx1ZXMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ0
MGUwNTE1NTA2NjdlOTBkNDY3MGE1NjExMzk1NWQ1MWY1NWRkNAotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90
b3R5cGUvY2xlYW51cFNvbWUvaG9sZGluZ3MtbXVsdGlwbGUtdmFsdWVzLmpzCkBAIC0wLDAgKzEs
NjkgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb3BlcnRpZXMtb2YtdGhl
LWZpbmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgorZGVzY3JpcHRpb246ID4KKyAgSXRl
cmF0ZXMgb3ZlciBkaWZmZXJlbnQgdHlwZSB2YWx1ZXMgaW4gaG9sZGluZ3MKK2luZm86IHwKKyAg
RmluYWxpemF0aW9uUmVnaXN0cnkucHJvdG90eXBlLmNsZWFudXBTb21lICggWyBjYWxsYmFjayBd
ICkKKworICAxLiBMZXQgZmluYWxpemF0aW9uUmVnaXN0cnkgYmUgdGhlIHRoaXMgdmFsdWUuCisg
IC4uLgorICA1LiBQZXJmb3JtICEgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZpbmFsaXph
dGlvblJlZ2lzdHJ5LCBjYWxsYmFjaykuCisgIC4uLgorCisgIENsZWFudXBGaW5hbGl6YXRpb25S
ZWdpc3RyeSAoIGZpbmFsaXphdGlvblJlZ2lzdHJ5IFsgLCBjYWxsYmFjayBdICkKKworICAuLi4K
KyAgMy4gV2hpbGUgZmluYWxpemF0aW9uUmVnaXN0cnkuW1tDZWxsc11dIGNvbnRhaW5zIGEgUmVj
b3JkIGNlbGwgc3VjaCB0aGF0IGNlbGwuW1tXZWFrUmVmVGFyZ2V0XV0gaXMgfmVtcHR5fiwgdGhl
biBhbiBpbXBsZW1lbnRhdGlvbiBtYXkgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzLAorICAg
IGEuIENob29zZSBhbnkgc3VjaCBjZWxsLgorICAgIGIuIFJlbW92ZSBjZWxsIGZyb20gZmluYWxp
emF0aW9uUmVnaXN0cnkuW1tDZWxsc11dLgorICAgIGMuIFBlcmZvcm0gPyBDYWxsKGNhbGxiYWNr
LCB1bmRlZmluZWQsIDw8IGNlbGwuW1tIZWxkVmFsdWVdXSA+PikuCisgIC4uLgorCisKK2ZlYXR1
cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIFN5bWJvbCwgaG9zdC1nYy1yZXF1aXJlZF0KK2lu
Y2x1ZGVzOiBbYXN5bmMtZ2MuanNdCitmbGFnczogW2FzeW5jLCBub24tZGV0ZXJtaW5pc3RpY10K
Ky0tLSovCisKK2Z1bmN0aW9uIGNoZWNrKHZhbHVlLCBleHBlY3RlZE5hbWUpIHsKKyAgdmFyIGhv
bGRpbmdzID0gW107CisgIHZhciBjYWxsZWQgPSAwOworICB2YXIgZmluYWxpemF0aW9uUmVnaXN0
cnkgPSBuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoZnVuY3Rpb24oKSB7fSk7CisKKyAgZnVuY3Rp
b24gY2FsbGJhY2soaG9sZGluZykgeworICAgIGNhbGxlZCArPSAxOworICAgIGhvbGRpbmdzLnB1
c2goaG9sZGluZyk7CisgIH0KKworICAvLyBUaGlzIGlzIGludGVybmFsIHRvIGF2b2lkIGNvbmZs
aWN0cworICBmdW5jdGlvbiBlbXB0eUNlbGxzKHZhbHVlKSB7CisgICAgdmFyIHRhcmdldCA9IHt9
OworICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKHRhcmdldCwgdmFsdWUpOworCisg
ICAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7CisgICAgdGFyZ2V0ID0gbnVsbDsKKworICAg
IHJldHVybiBwcm9tOworICB9CisKKyAgcmV0dXJuIGVtcHR5Q2VsbHModmFsdWUpLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2FsbGJhY2sp
OworICAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxLCBleHBlY3RlZE5hbWUpOworICAgIGFz
c2VydC5zYW1lVmFsdWUoaG9sZGluZ3MubGVuZ3RoLCAxLCBleHBlY3RlZE5hbWUpOworICAgIGFz
c2VydC5zYW1lVmFsdWUoaG9sZGluZ3NbMF0sIHZhbHVlLCBleHBlY3RlZE5hbWUpOworICB9KTsK
K30KKworUHJvbWlzZS5hbGwoWworICBjaGVjayh1bmRlZmluZWQsICd1bmRlZmluZWQnKSwKKyAg
Y2hlY2sobnVsbCwgJ251bGwnKSwKKyAgY2hlY2soJycsICd0aGUgZW1wdHkgc3RyaW5nJyksCisg
IGNoZWNrKHt9LCAnb2JqZWN0JyksCisgIGNoZWNrKDQyLCAnbnVtYmVyJyksCisgIGNoZWNrKHRy
dWUsICd0cnVlJyksCisgIGNoZWNrKGZhbHNlLCAnZmFsc2UnKSwKKyAgY2hlY2soU3ltYm9sKDEp
LCAnc3ltYm9sJyksCitdKS50aGVuKCgpID0+ICRET05FKCksIHJlc29sdmVBc3luY0dDKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdp
c3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvaXRlcmF0b3ItaG9sZGluZ3MtbXVsdGlwbGUtdmFs
dWVzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lz
dHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9pdGVyYXRvci1ob2xkaW5ncy1tdWx0aXBsZS12YWx1
ZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZDY4YzVmMTRmMzEzOTVmMjM0
NjhhMDBjOWJmNjJiZWEwZjM4M2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJl
Z2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9pdGVyYXRvci1ob2xkaW5ncy1tdWx0aXBsZS12
YWx1ZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vLyBDb3B5cmlnaHQgKEMp
IDIwMTkgTGVvIEJhbHRlci4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQot
LyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0cnkt
Y29uc3RydWN0b3IKLWRlc2NyaXB0aW9uOiA+Ci0gIEl0ZXJhdGVzIG92ZXIgZGlmZmVyZW50IHR5
cGUgdmFsdWVzIGluIGhvbGRpbmdzCi1pbmZvOiB8Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5LnBy
b3RvdHlwZS5jbGVhbnVwU29tZSAoIFsgY2FsbGJhY2sgXSApCi0KLSAgMS4gTGV0IGZpbmFsaXph
dGlvblJlZ2lzdHJ5IGJlIHRoZSB0aGlzIHZhbHVlLgotICAuLi4KLSAgNS4gUGVyZm9ybSAhIENs
ZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeShmaW5hbGl6YXRpb25SZWdpc3RyeSwgY2FsbGJhY2sp
LgotICAuLi4KLQotICBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkgKCBmaW5hbGl6YXRpb25S
ZWdpc3RyeSBbICwgY2FsbGJhY2sgXSApCi0KLSAgLi4uCi0gIDMuIExldCBpdGVyYXRvciBiZSAh
IENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yKGZpbmFsaXphdGlvblJl
Z2lzdHJ5KS4KLSAgLi4uCi0gIDYuIExldCByZXN1bHQgYmUgQ2FsbChjYWxsYmFjaywgdW5kZWZp
bmVkLCDCqyBpdGVyYXRvciDCuykuCi0gIC4uLgotCi0gICVGaW5hbGl6YXRpb25SZWdpc3RyeUNs
ZWFudXBJdGVyYXRvclByb3RvdHlwZSUubmV4dCAoICkKLQotICA4LiBJZiBmaW5hbGl6YXRpb25S
ZWdpc3RyeS5bW0NlbGxzXV0gY29udGFpbnMgYSBSZWNvcmQgY2VsbCBzdWNoIHRoYXQgY2VsbC5b
W1RhcmdldF1dIGlzIGVtcHR5LAotICAgIGEuIENob29zZSBhbnkgc3VjaCBjZWxsLgotICAgIGIu
IFJlbW92ZSBjZWxsIGZyb20gZmluYWxpemF0aW9uUmVnaXN0cnkuW1tDZWxsc11dLgotICAgIGMu
IFJldHVybiBDcmVhdGVJdGVyUmVzdWx0T2JqZWN0KGNlbGwuW1tIb2xkaW5nc11dLCBmYWxzZSku
Ci0gIDkuIE90aGVyd2lzZSwgcmV0dXJuIENyZWF0ZUl0ZXJSZXN1bHRPYmplY3QodW5kZWZpbmVk
LCB0cnVlKS4KLWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIFN5bWJvbCwgaG9zdC1n
Yy1yZXF1aXJlZF0KLWluY2x1ZGVzOiBbYXN5bmMtZ2MuanNdCi1mbGFnczogW2FzeW5jLCBub24t
ZGV0ZXJtaW5pc3RpY10KLS0tLSovCi0KLWZ1bmN0aW9uIGNoZWNrKHZhbHVlLCBleHBlY3RlZE5h
bWUpIHsKLSAgdmFyIGhvbGRpbmdzOwotICB2YXIgY2FsbGVkID0gMDsKLSAgdmFyIGZpbmFsaXph
dGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwot
Ci0gIGZ1bmN0aW9uIGNhbGxiYWNrKGl0ZXJhdG9yKSB7Ci0gICAgY2FsbGVkICs9IDE7Ci0gICAg
aG9sZGluZ3MgPSBbLi4uaXRlcmF0b3JdOwotICB9Ci0KLSAgLy8gVGhpcyBpcyBpbnRlcm5hbCB0
byBhdm9pZCBjb25mbGljdHMKLSAgZnVuY3Rpb24gZW1wdHlDZWxscyh2YWx1ZSkgewotICAgIHZh
ciB0YXJnZXQgPSB7fTsKLSAgICBmaW5hbGl6YXRpb25SZWdpc3RyeS5yZWdpc3Rlcih0YXJnZXQs
IHZhbHVlKTsKLQotICAgIHZhciBwcm9tID0gYXN5bmNHQyh0YXJnZXQpOwotICAgIHRhcmdldCA9
IG51bGw7Ci0KLSAgICByZXR1cm4gcHJvbTsKLSAgfQotCi0gIHJldHVybiBlbXB0eUNlbGxzKHZh
bHVlKS50aGVuKGZ1bmN0aW9uKCkgewotICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBT
b21lKGNhbGxiYWNrKTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgMSwgZXhwZWN0ZWRO
YW1lKTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKGhvbGRpbmdzLmxlbmd0aCwgMSwgZXhwZWN0ZWRO
YW1lKTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKGhvbGRpbmdzWzBdLCB2YWx1ZSwgZXhwZWN0ZWRO
YW1lKTsKLSAgfSk7Ci19Ci0KLVByb21pc2UuYWxsKFsKLSAgY2hlY2sodW5kZWZpbmVkLCAndW5k
ZWZpbmVkJyksCi0gIGNoZWNrKG51bGwsICdudWxsJyksCi0gIGNoZWNrKCcnLCAndGhlIGVtcHR5
IHN0cmluZycpLAotICBjaGVjayh7fSwgJ29iamVjdCcpLAotICBjaGVjayg0MiwgJ251bWJlcicp
LAotICBjaGVjayh0cnVlLCAndHJ1ZScpLAotICBjaGVjayhmYWxzZSwgJ2ZhbHNlJyksCi0gIGNo
ZWNrKFN5bWJvbCgxKSwgJ3N5bWJvbCcpLAotXSkudGhlbigoKSA9PiAkRE9ORSgpLCByZXNvbHZl
QXN5bmNHQyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmlu
YWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL3BvaXNvbmVkLWNhbGxiYWNr
LXRocm93cy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25S
ZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvcG9pc29uZWQtY2FsbGJhY2stdGhyb3dzLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjJkMDczZmE5NGZjYjU4Y2FkZjAzZjA4
NzJiYmFiMjBkZTFmZDY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3Ry
eS9wcm90b3R5cGUvY2xlYW51cFNvbWUvcG9pc29uZWQtY2FsbGJhY2stdGhyb3dzLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0
ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhl
IEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8qLS0tCi1lc2lkOiBz
ZWMtZmluYWxpemF0aW9uLXJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZQotZGVzY3JpcHRp
b246IFJldHVybiBhYnJ1cHQgY29tcGxldGlvbiBmcm9tIENsZWFudXBGaW5hbGl6YXRpb25SZWdp
c3RyeQotaW5mbzogfAotICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNv
bWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0
aGUgdGhpcyB2YWx1ZS4KLSAgMi4gSWYgVHlwZShmaW5hbGl6YXRpb25SZWdpc3RyeSkgaXMgbm90
IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICAzLiBJZiBmaW5hbGl6YXRp
b25SZWdpc3RyeSBkb2VzIG5vdCBoYXZlIGEgW1tDZWxsc11dIGludGVybmFsIHNsb3QsIHRocm93
IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgNC4gSWYgY2FsbGJhY2sgaXMgbm90IHVuZGVmaW5l
ZCBhbmQgSXNDYWxsYWJsZShjYWxsYmFjaykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4
Y2VwdGlvbi4KLSAgNS4gUGVyZm9ybSA/IENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeShmaW5h
bGl6YXRpb25SZWdpc3RyeSwgY2FsbGJhY2spLgotICA2LiBSZXR1cm4gdW5kZWZpbmVkLgotCi0g
IENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeSAoIGZpbmFsaXphdGlvblJlZ2lzdHJ5IFsgLCBj
YWxsYmFjayBdICkKLQotICA0LiBJZiBjYWxsYmFjayBpcyB1bmRlZmluZWQsIHNldCBjYWxsYmFj
ayB0byBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0NsZWFudXBDYWxsYmFja11dLgotICA1LiBTZXQg
ZmluYWxpemF0aW9uUmVnaXN0cnkuW1tJc0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEpvYkFj
dGl2ZV1dIHRvIHRydWUuCi0gIDYuIExldCByZXN1bHQgYmUgQ2FsbChjYWxsYmFjaywgdW5kZWZp
bmVkLCDCqyBpdGVyYXRvciDCuykuCi0gIDcuIFNldCBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0lz
RmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSm9iQWN0aXZlXV0gdG8gZmFsc2UuCi0gIDguIElm
IHJlc3VsdCBpcyBhbiBhYnJ1cHQgY29tcGxldGlvbiwgcmV0dXJuIHJlc3VsdC4KLWZlYXR1cmVz
OiBbRmluYWxpemF0aW9uUmVnaXN0cnksIGFycm93LWZ1bmN0aW9uLCBhc3luYy1mdW5jdGlvbnMs
IGFzeW5jLWl0ZXJhdGlvbiwgY2xhc3MsIGhvc3QtZ2MtcmVxdWlyZWRdCi1pbmNsdWRlczogW2Fz
eW5jLWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRldGVybWluaXN0aWNdCi0tLS0qLwotCi12
YXIgY2FsbGVkID0gMDsKLXZhciBpdGVyYXRvciA9IGZhbHNlOwotCi1mdW5jdGlvbiBwb2lzb25l
ZChpdGVyKSB7Ci0gIGNhbGxlZCArPSAxOwotICBpdGVyYXRvciA9IGl0ZXI7Ci0gIGl0ZXIubmV4
dCgpOyAvLyBXb24ndCB0aHJvdwotICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCk7Ci19Ci12YXIg
ZmluYWxpemF0aW9uUmVnaXN0cnkgPSBuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoZnVuY3Rpb24o
KSB7fSk7Ci0KLWZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7Ci0gIHZhciB0YXJnZXQgPSB7fTsKLSAg
ZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIodGFyZ2V0KTsKLQotICB2YXIgcHJvbSA9IGFz
eW5jR0ModGFyZ2V0KTsKLSAgdGFyZ2V0ID0gbnVsbDsKLQotICByZXR1cm4gcHJvbTsKLX0KLQot
ZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gIGFzc2VydC50aHJvd3MoVGVzdDI2MkVy
cm9yLCBmdW5jdGlvbigpIHsKLSAgICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShw
b2lzb25lZCk7Ci0gIH0pOwotCi0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxKTsKLQotICBh
c3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBpdGVyYXRvciwgJ29iamVjdCcpOwotICBhc3NlcnQuc2Ft
ZVZhbHVlKHR5cGVvZiBpdGVyYXRvci5uZXh0LCAnZnVuY3Rpb24nKTsKLSAgYXNzZXJ0LnRocm93
cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIGl0ZXJhdG9yLm5leHQoKTsKLSAgfSwgJ2l0
ZXJhdG9yLm5leHQgdGhyb3dzIGEgVHlwZUVycm9yIGlmIElzRmluYWxpemF0aW9uUmVnaXN0cnlD
bGVhbnVwSm9iQWN0aXZlIGlzIGZhbHNlJyk7Ci19KS50aGVuKCRET05FLCByZXNvbHZlQXN5bmNH
Qyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0
aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL3JlZW50cmFuY3kuanMgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2Ns
ZWFudXBTb21lL3JlZW50cmFuY3kuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJiMmQ2NjBjMjc3MjQwMzkzYWZh
NzM5ZWM0YmJhM2MzOWFjMjM4ZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUv
cmVlbnRyYW5jeS5qcwpAQCAtMCwwICsxLDUxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVv
IEJhbHRlci4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Vz
aWQ6IHNlYy1wcm9wZXJ0aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0
b3IKK2Rlc2NyaXB0aW9uOiA+CisgIFRoZSBjbGVhbnVwU29tZSgpIG1ldGhvZCBjYW4gYmUgcmVl
bnRlcmVkCitpbmZvOiB8CisgIEZpbmFsaXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVw
U29tZSAoIFsgY2FsbGJhY2sgXSApCisKK2ZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnks
IGhvc3QtZ2MtcmVxdWlyZWRdCitpbmNsdWRlczogW2FzeW5jLWdjLmpzXQorZmxhZ3M6IFthc3lu
Yywgbm9uLWRldGVybWluaXN0aWNdCistLS0qLworCit2YXIgY2FsbGVkID0gMDsKK3ZhciBlbmRP
ZkNhbGwgPSAwOwordmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJl
Z2lzdHJ5KGZ1bmN0aW9uKCkge30pOworCitmdW5jdGlvbiBjYWxsYmFjayhob2xkaW5nKSB7Cisg
IGNhbGxlZCArPSAxOworCisgIGlmIChjYWxsZWQgPT09IDEpIHsKKyAgICAvLyBBdGVtcHQgdG8g
cmUtZW50ZXIgdGhlIGNhbGxiYWNrLgorICAgIHZhciBuZXN0ZWRDYWxsYmFja1JhbiA9IGZhbHNl
OworICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKCgpID0+IHsgbmVzdGVkQ2Fs
bGJhY2tSYW4gPSB0cnVlIH0pOworICAgIGFzc2VydC5zYW1lVmFsdWUobmVzdGVkQ2FsbGJhY2tS
YW4sIHRydWUpOworICB9CisKKyAgZW5kT2ZDYWxsICs9IDE7Cit9CisKK2Z1bmN0aW9uIGVtcHR5
Q2VsbHMoKSB7CisgIHZhciBvMSA9IHt9OworICB2YXIgbzIgPSB7fTsKKyAgLy8gUmVnaXN0ZXIg
bW9yZSB0aGFuIG9uZSBvYmplY3RzIHRvIHRlc3QgcmVlbnRyYW5jeS4KKyAgZmluYWxpemF0aW9u
UmVnaXN0cnkucmVnaXN0ZXIobzEsICdob2xkaW5ncyAxJyk7CisgIGZpbmFsaXphdGlvblJlZ2lz
dHJ5LnJlZ2lzdGVyKG8yLCAnaG9sZGluZ3MgMicpOworCisgIHZhciBwcm9tID0gYXN5bmNHQyhv
MSk7CisgIG8xID0gbnVsbDsKKworICByZXR1cm4gcHJvbTsKK30KKworZW1wdHlDZWxscygpLnRo
ZW4oZnVuY3Rpb24oKSB7CisgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNhbGxi
YWNrKTsKKworICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgMSwgJ2NhbGxiYWNrIHdhcyBjYWxs
ZWQnKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShlbmRPZkNhbGwsIDEsICdjYWxsYmFjayBmaW5pc2hl
ZCcpOworfSkudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0MpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9j
bGVhbnVwU29tZS9yZXR1cm4tdW5kZWZpbmVkLXdpdGgtZ2MuanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21l
L3JldHVybi11bmRlZmluZWQtd2l0aC1nYy5qcwppbmRleCAyYTdiYmFmNmI3NTk5ODlmNWZkNjYz
NWI3YjYwOTNhNjg1OGY0MDk5Li45MGIxNWM0NzQzYWQzYmI2YjZjNDkzYTJlNzA0ODIzZjE2NGY3
MGQ0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0
aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL3JldHVybi11bmRlZmluZWQtd2l0aC1n
Yy5qcworKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVn
aXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL3JldHVybi11bmRlZmluZWQtd2l0aC1nYy5qcwpA
QCAtMzksNDYgKzM5LDI4IEBAIGZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7CiAgIHJldHVybiBwcm9t
OwogfQogCi12YXIgdGVzdHMgPSBbXTsKLQotdGVzdHMucHVzaChlbXB0eUNlbGxzKCkudGhlbihm
dW5jdGlvbigpIHsKK2VtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewogICBjYWxsZWQgPSAw
OwogICBhc3NlcnQuc2FtZVZhbHVlKGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNi
KSwgdW5kZWZpbmVkLCAncmVndWxhciBjYWxsYmFjaycpOwogICBhc3NlcnQuc2FtZVZhbHVlKGNh
bGxlZCwgMSk7Ci19KSk7Ci0KLXRlc3RzLnB1c2goZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24o
KSB7Cit9KS50aGVuKGVtcHR5Q2VsbHMpLnRoZW4oZnVuY3Rpb24oKSB7CiAgIGNhbGxlZCA9IDA7
CiAgIGFzc2VydC5zYW1lVmFsdWUoZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoZm4p
LCB1bmRlZmluZWQsICdyZWd1bGFyIGNhbGxiYWNrLCBzYW1lIEZHIGNsZWFudXAgZnVuY3Rpb24n
KTsKICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEpOwotfSkpOwotCi10ZXN0cy5wdXNoKGVt
cHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgeworfSkudGhlbihlbXB0eUNlbGxzKS50aGVuKGZ1
bmN0aW9uKCkgewogICBjYWxsZWQgPSAwOwogICBhc3NlcnQuc2FtZVZhbHVlKGZpbmFsaXphdGlv
blJlZ2lzdHJ5LmNsZWFudXBTb21lKCksIHVuZGVmaW5lZCwgJ3VuZGVmaW5lZCAoaW1wbGljaXQp
IGNhbGxiYWNrLCBkZWZlciB0byBGQiBjYWxsYmFjaycpOwogICBhc3NlcnQuc2FtZVZhbHVlKGNh
bGxlZCwgMSk7Ci19KSk7Ci0KLXRlc3RzLnB1c2goZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24o
KSB7Cit9KS50aGVuKGVtcHR5Q2VsbHMpLnRoZW4oZnVuY3Rpb24oKSB7CiAgIGNhbGxlZCA9IDA7
CiAgIGFzc2VydC5zYW1lVmFsdWUoZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUodW5k
ZWZpbmVkKSwgdW5kZWZpbmVkLCAndW5kZWZpbmVkIChleHBsaWNpdCkgY2FsbGJhY2ssIGRlZmVy
IHRvIEZCIGNhbGxiYWNrJyk7CiAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxKTsKLX0pKTsK
LQotdGVzdHMucHVzaChlbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKLSAgYXNzZXJ0LnNh
bWVWYWx1ZShmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZSgoKSA9PiAxKSwgdW5kZWZp
bmVkLCAnYXJyb3cgZnVuY3Rpb24nKTsgIAotfSkpOwotCi10ZXN0cy5wdXNoKGVtcHR5Q2VsbHMo
KS50aGVuKGZ1bmN0aW9uKCkgeworfSkudGhlbihlbXB0eUNlbGxzKS50aGVuKGZ1bmN0aW9uKCkg
eworICBhc3NlcnQuc2FtZVZhbHVlKGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKCgp
ID0+IDEpLCB1bmRlZmluZWQsICdhcnJvdyBmdW5jdGlvbicpOworfSkudGhlbihlbXB0eUNlbGxz
KS50aGVuKGZ1bmN0aW9uKCkgewogICBhc3NlcnQuc2FtZVZhbHVlKGZpbmFsaXphdGlvblJlZ2lz
dHJ5LmNsZWFudXBTb21lKGFzeW5jIGZ1bmN0aW9uKCkge30pLCB1bmRlZmluZWQsICdhc3luYyBm
dW5jdGlvbicpOwotfSkpOwotCi10ZXN0cy5wdXNoKGVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9u
KCkgeworfSkudGhlbihlbXB0eUNlbGxzKS50aGVuKGZ1bmN0aW9uKCkgewogICBhc3NlcnQuc2Ft
ZVZhbHVlKGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGZ1bmN0aW9uICooKSB7fSks
IHVuZGVmaW5lZCwgJ2dlbmVyYXRvcicpOwotfSkpOwotCi10ZXN0cy5wdXNoKGVtcHR5Q2VsbHMo
KS50aGVuKGZ1bmN0aW9uKCkgeworfSkudGhlbihlbXB0eUNlbGxzKS50aGVuKGZ1bmN0aW9uKCkg
ewogICBhc3NlcnQuc2FtZVZhbHVlKGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGFz
eW5jIGZ1bmN0aW9uICooKSB7fSksIHVuZGVmaW5lZCwgJ2FzeW5jIGdlbmVyYXRvcicpOwotfSkp
OwotCi1Qcm9taXNlLmFsbCh0ZXN0cykudGhlbigoKSA9PiB7ICRET05FKCk7IH0sIHJlc29sdmVB
c3luY0dDKTsKK30pLnRoZW4oJERPTkUsIHJlc29sdmVBc3luY0dDKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5
cGUvdW5yZWdpc3Rlci91bnJlZ2lzdGVyLWNsZWFuZWQtdXAtY2VsbC5qcyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvdW5yZWdp
c3Rlci91bnJlZ2lzdGVyLWNsZWFuZWQtdXAtY2VsbC5qcwppbmRleCA3NjIzMzEwNWNmN2NiMTRk
MDU4M2VlMjcyYzM1ZTZjYjQxYjVhOTI0Li4zZmU3MzIwODdmYTdiNTQxYzUwYzI3OWMwMWM3ODFi
NGI1OTdmMDBkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmlu
YWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL3VucmVnaXN0ZXIvdW5yZWdpc3Rlci1jbGVhbmVk
LXVwLWNlbGwuanMKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS91bnJlZ2lzdGVyL3VucmVnaXN0ZXItY2xlYW5lZC11cC1j
ZWxsLmpzCkBAIC0xNSwxOCArMTUsMTEgQEAgaW5mbzogfAogICBDbGVhbnVwRmluYWxpemF0aW9u
UmVnaXN0cnkgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSBbICwgY2FsbGJhY2sgXSApCiAKICAgLi4u
Ci0gIDMuIExldCBpdGVyYXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51
cEl0ZXJhdG9yKGZpbmFsaXphdGlvblJlZ2lzdHJ5KS4KLSAgLi4uCi0gIDYuIExldCByZXN1bHQg
YmUgQ2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBpdGVyYXRvciDCuykuCi0gIC4uLgotCi0g
ICVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSUubmV4dCAoICkK
LQotICA4LiBJZiBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0NlbGxzXV0gY29udGFpbnMgYSBSZWNv
cmQgY2VsbCBzdWNoIHRoYXQgY2VsbC5bW1RhcmdldF1dIGlzIGVtcHR5LAorICAzLiBXaGlsZSBm
aW5hbGl6YXRpb25SZWdpc3RyeS5bW0NlbGxzXV0gY29udGFpbnMgYSBSZWNvcmQgY2VsbCBzdWNo
IHRoYXQgY2VsbC5bW1dlYWtSZWZUYXJnZXRdXSBpcyB+ZW1wdHl+LCB0aGVuIGFuIGltcGxlbWVu
dGF0aW9uIG1heSBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMsCiAgICAgYS4gQ2hvb3NlIGFu
eSBzdWNoIGNlbGwuCiAgICAgYi4gUmVtb3ZlIGNlbGwgZnJvbSBmaW5hbGl6YXRpb25SZWdpc3Ry
eS5bW0NlbGxzXV0uCi0gICAgYy4gUmV0dXJuIENyZWF0ZUl0ZXJSZXN1bHRPYmplY3QoY2VsbC5b
W0hvbGRpbmdzXV0sIGZhbHNlKS4KLSAgOS4gT3RoZXJ3aXNlLCByZXR1cm4gQ3JlYXRlSXRlclJl
c3VsdE9iamVjdCh1bmRlZmluZWQsIHRydWUpLgorICAgIGMuIFBlcmZvcm0gPyBDYWxsKGNhbGxi
YWNrLCB1bmRlZmluZWQsIDw8IGNlbGwuW1tIZWxkVmFsdWVdXSA+PikuCisgIC4uLgogCiAgIEZp
bmFsaXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS51bnJlZ2lzdGVyICggdW5yZWdpc3RlclRva2Vu
ICkKIApAQCAtNTcsMTAgKzUwLDEwIEBAIGZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7CiAKIGVtcHR5
Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewogICB2YXIgY2FsbGVkID0gMDsKLSAgdmFyIGhvbGRp
bmdzOwotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShmdW5jdGlvbiBjYihpdGVy
YXRvcikgeworICB2YXIgaG9sZGluZ3MgPSBbXTsKKyAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xl
YW51cFNvbWUoZnVuY3Rpb24gY2IoaG9sZGluZykgewogICAgIGNhbGxlZCArPSAxOwotICAgIGhv
bGRpbmdzID0gWy4uLml0ZXJhdG9yXTsKKyAgICBob2xkaW5ncy5wdXNoKGhvbGRpbmcpOwogICB9
KTsKIAogICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgMSk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1j
YWxsZWQtdHdpY2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9h
bnkvY2FwYWJpbGl0eS1leGVjdXRvci1jYWxsZWQtdHdpY2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQwNDg1
ZjIyMmRmOTZiMmM3OWE0M2IyZjhhOGEzN2RjNzc1OGQxMAotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9jYXBhYmlsaXR5LWV4ZWN1
dG9yLWNhbGxlZC10d2ljZS5qcwpAQCAtMCwwICsxLDEwNiBAQAorLy8gQ29weXJpZ2h0IChDKSAy
MDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlz
IGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
CisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBUaHJvd3Mg
YSBUeXBlRXJyb3IgaWYgY2FwYWJpbGl0aWVzIGV4ZWN1dG9yIGFscmVhZHkgY2FsbGVkIHdpdGgg
bm9uLXVuZGVmaW5lZCB2YWx1ZXMuCitpbmZvOiB8CisgIFByb21pc2UuYW55ICggaXRlcmFibGUg
KQorCisgIC4uLgorICAyLiBMZXQgcHJvbWlzZUNhcGFiaWxpdHkgYmUgPyBOZXdQcm9taXNlQ2Fw
YWJpbGl0eShDKS4KKyAgLi4uCisKKyAgR2V0Q2FwYWJpbGl0aWVzRXhlY3V0b3IgRnVuY3Rpb25z
CisKKyAgLi4uCisgIDQuIElmIHByb21pc2VDYXBhYmlsaXR5LltbUmVzb2x2ZV1dIGlzIG5vdCB1
bmRlZmluZWQsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgNS4gSWYgcHJvbWlzZUNh
cGFiaWxpdHkuW1tSZWplY3RdXSBpcyBub3QgdW5kZWZpbmVkLCB0aHJvdyBhIFR5cGVFcnJvciBl
eGNlcHRpb24uCisgIDYuIFNldCBwcm9taXNlQ2FwYWJpbGl0eS5bW1Jlc29sdmVdXSB0byByZXNv
bHZlLgorICA3LiBTZXQgcHJvbWlzZUNhcGFiaWxpdHkuW1tSZWplY3RdXSB0byByZWplY3QuCisg
IC4uLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueV0KKy0tLSovCisKK3ZhciBjaGVja1BvaW50ID0g
Jyc7CitmdW5jdGlvbiBmbjEoZXhlY3V0b3IpIHsKKyAgY2hlY2tQb2ludCArPSAnYSc7CisgIGV4
ZWN1dG9yKCk7CisgIGNoZWNrUG9pbnQgKz0gJ2InOworICBleGVjdXRvcihmdW5jdGlvbigpIHt9
LCBmdW5jdGlvbigpIHt9KTsKKyAgY2hlY2tQb2ludCArPSAnYyc7Cit9CitmbjEucmVzb2x2ZSA9
IGZ1bmN0aW9uKCkgeworICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCk7Cit9OworUHJvbWlzZS5h
bnkuY2FsbChmbjEsIFtdKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2hlY2tQb2ludCwgJ2FiYycsICdl
eGVjdXRvciBpbml0aWFsbHkgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRzJyk7CisKK2NoZWNrUG9p
bnQgPSAnJzsKK2Z1bmN0aW9uIGZuMihleGVjdXRvcikgeworICBjaGVja1BvaW50ICs9ICdhJzsK
KyAgZXhlY3V0b3IodW5kZWZpbmVkLCB1bmRlZmluZWQpOworICBjaGVja1BvaW50ICs9ICdiJzsK
KyAgZXhlY3V0b3IoZnVuY3Rpb24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7CisgIGNoZWNrUG9pbnQg
Kz0gJ2MnOworfQorZm4yLnJlc29sdmUgPSBmdW5jdGlvbigpIHsKKyAgdGhyb3cgbmV3IFRlc3Qy
NjJFcnJvcigpOworfTsKK1Byb21pc2UuYW55LmNhbGwoZm4yLCBbXSk7Cithc3NlcnQuc2FtZVZh
bHVlKGNoZWNrUG9pbnQsICdhYmMnLCAnZXhlY3V0b3IgaW5pdGlhbGx5IGNhbGxlZCB3aXRoICh1
bmRlZmluZWQsIHVuZGVmaW5lZCknKTsKKworY2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm4z
KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworICBleGVjdXRvcih1bmRlZmluZWQs
IGZ1bmN0aW9uKCkge30pOworICBjaGVja1BvaW50ICs9ICdiJzsKKyAgZXhlY3V0b3IoZnVuY3Rp
b24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7CisgIGNoZWNrUG9pbnQgKz0gJ2MnOworfQorT2JqZWN0
LmRlZmluZVByb3BlcnR5KGZuMywgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsKKyAgICB0aHJvdyBu
ZXcgVGVzdDI2MkVycm9yKCk7CisgIH0KK30pOworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1
bmN0aW9uKCkgeworICBQcm9taXNlLmFueS5jYWxsKGZuMywgW10pOworfSwgJ2V4ZWN1dG9yIGlu
aXRpYWxseSBjYWxsZWQgd2l0aCAodW5kZWZpbmVkLCBmdW5jdGlvbiknKTsKK2Fzc2VydC5zYW1l
VmFsdWUoY2hlY2tQb2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGluaXRpYWxseSBjYWxsZWQgd2l0aCAo
dW5kZWZpbmVkLCBmdW5jdGlvbiknKTsKKworY2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm40
KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworICBleGVjdXRvcihmdW5jdGlvbigp
IHt9LCB1bmRlZmluZWQpOworICBjaGVja1BvaW50ICs9ICdiJzsKKyAgZXhlY3V0b3IoZnVuY3Rp
b24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7CisgIGNoZWNrUG9pbnQgKz0gJ2MnOworfQorT2JqZWN0
LmRlZmluZVByb3BlcnR5KGZuNCwgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsKKyAgICB0aHJvdyBu
ZXcgVGVzdDI2MkVycm9yKCk7CisgIH0KK30pOworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1
bmN0aW9uKCkgeworICBQcm9taXNlLmFueS5jYWxsKGZuNCwgW10pOworfSwgJ2V4ZWN1dG9yIGlu
aXRpYWxseSBjYWxsZWQgd2l0aCAoZnVuY3Rpb24sIHVuZGVmaW5lZCknKTsKK2Fzc2VydC5zYW1l
VmFsdWUoY2hlY2tQb2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGluaXRpYWxseSBjYWxsZWQgd2l0aCAo
ZnVuY3Rpb24sIHVuZGVmaW5lZCknKTsKKworY2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm41
KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworICBleGVjdXRvcignaW52YWxpZCB2
YWx1ZScsIDEyMyk7CisgIGNoZWNrUG9pbnQgKz0gJ2InOworICBleGVjdXRvcihmdW5jdGlvbigp
IHt9LCBmdW5jdGlvbigpIHt9KTsKKyAgY2hlY2tQb2ludCArPSAnYyc7Cit9CitPYmplY3QuZGVm
aW5lUHJvcGVydHkoZm41LCAncmVzb2x2ZScsIHsKKyAgZ2V0KCkgeworICAgIHRocm93IG5ldyBU
ZXN0MjYyRXJyb3IoKTsKKyAgfQorfSk7Cithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rp
b24oKSB7CisgIFByb21pc2UuYW55LmNhbGwoZm41LCBbXSk7Cit9LCAnZXhlY3V0b3IgaW5pdGlh
bGx5IGNhbGxlZCB3aXRoIChTdHJpbmcsIE51bWJlciknKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2hl
Y2tQb2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGluaXRpYWxseSBjYWxsZWQgd2l0aCAoU3RyaW5nLCBO
dW1iZXIpJyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1ub3QtY2FsbGFibGUuanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1ub3Qt
Y2FsbGFibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhiZTljZDI1Mjg2ZjUxZTUxNmMwYjcwMjUzMmViY2I2
MjM2NzZhNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9Qcm9taXNlL2FueS9jYXBhYmlsaXR5LWV4ZWN1dG9yLW5vdC1jYWxsYWJsZS5qcwpAQCAtMCww
ICsxLDEwNyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5z
ZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2Uu
YW55CitkZXNjcmlwdGlvbjogPgorICBUaHJvd3MgYSBUeXBlRXJyb3IgaWYgZWl0aGVyIHJlc29s
dmUgb3IgcmVqZWN0IGNhcGFiaWxpdHkgaXMgbm90IGNhbGxhYmxlLgoraW5mbzogfAorICBQcm9t
aXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgMi4gTGV0IHByb21pc2VDYXBhYmlsaXR5
IGJlID8gTmV3UHJvbWlzZUNhcGFiaWxpdHkoQykuCisgIC4uLgorCisgIE5ld1Byb21pc2VDYXBh
YmlsaXR5ICggQyApCisKKyAgLi4uCisgIDUuIExldCBleGVjdXRvciBiZSAhIENyZWF0ZUJ1aWx0
aW5GdW5jdGlvbihzdGVwcywgwqsgW1tDYXBhYmlsaXR5XV0gwrspLgorICA2LiBTZXQgZXhlY3V0
b3IuW1tDYXBhYmlsaXR5XV0gdG8gcHJvbWlzZUNhcGFiaWxpdHkuCisgIDcuIExldCBwcm9taXNl
IGJlID8gQ29uc3RydWN0KEMsIMKrIGV4ZWN1dG9yIMK7KS4KKyAgOC4gSWYgSXNDYWxsYWJsZShw
cm9taXNlQ2FwYWJpbGl0eS5bW1Jlc29sdmVdXSkgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9y
IGV4Y2VwdGlvbi4KKyAgOS4gSWYgSXNDYWxsYWJsZShwcm9taXNlQ2FwYWJpbGl0eS5bW1JlamVj
dF1dKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAuLi4KK2ZlYXR1
cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLworCit2YXIgY2hlY2tQb2ludCA9ICcnOworZnVuY3Rp
b24gZm4xKGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworfQorT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KGZuMSwgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsgdGhyb3cgbmV3IFRlc3QyNjJF
cnJvcigpOyB9Cit9KTsKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAg
UHJvbWlzZS5hbnkuY2FsbChmbjEsIFtdKTsKK30sICdleGVjdXRvciBub3QgY2FsbGVkIGF0IGFs
bCcpOworYXNzZXJ0LnNhbWVWYWx1ZShjaGVja1BvaW50LCAnYScsICdleGVjdXRvciBub3QgY2Fs
bGVkIGF0IGFsbCcpOworCitjaGVja1BvaW50ID0gJyc7CitmdW5jdGlvbiBmbjIoZXhlY3V0b3Ip
IHsKKyAgY2hlY2tQb2ludCArPSAnYSc7CisgIGV4ZWN1dG9yKCk7CisgIGNoZWNrUG9pbnQgKz0g
J2InOworfQorT2JqZWN0LmRlZmluZVByb3BlcnR5KGZuMiwgJ3Jlc29sdmUnLCB7CisgIGdldCgp
IHsgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigpOyB9Cit9KTsKK2Fzc2VydC50aHJvd3MoVHlwZUVy
cm9yLCBmdW5jdGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbChmbjIsIFtdKTsKK30sICdleGVj
dXRvciBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMnKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2hlY2tQ
b2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cycpOworCitjaGVj
a1BvaW50ID0gJyc7CitmdW5jdGlvbiBmbjMoZXhlY3V0b3IpIHsKKyAgY2hlY2tQb2ludCArPSAn
YSc7CisgIGV4ZWN1dG9yKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsKKyAgY2hlY2tQb2ludCArPSAn
Yic7Cit9CitPYmplY3QuZGVmaW5lUHJvcGVydHkoZm4zLCAncmVzb2x2ZScsIHsKKyAgZ2V0KCkg
eyB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCk7IH0KK30pOworYXNzZXJ0LnRocm93cyhUeXBlRXJy
b3IsIGZ1bmN0aW9uKCkgeworICBQcm9taXNlLmFueS5jYWxsKGZuMywgW10pOworfSwgJ2V4ZWN1
dG9yIGNhbGxlZCB3aXRoICh1bmRlZmluZWQsIHVuZGVmaW5lZCknKTsKK2Fzc2VydC5zYW1lVmFs
dWUoY2hlY2tQb2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGNhbGxlZCB3aXRoICh1bmRlZmluZWQsIHVu
ZGVmaW5lZCknKTsKKworY2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm40KGV4ZWN1dG9yKSB7
CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworICBleGVjdXRvcih1bmRlZmluZWQsIGZ1bmN0aW9uKCkg
e30pOworICBjaGVja1BvaW50ICs9ICdiJzsKK30KK09iamVjdC5kZWZpbmVQcm9wZXJ0eShmbjQs
ICdyZXNvbHZlJywgeworICBnZXQoKSB7IHRocm93IG5ldyBUZXN0MjYyRXJyb3IoKTsgfQorfSk7
Cithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIFByb21pc2UuYW55LmNh
bGwoZm40LCBbXSk7Cit9LCAnZXhlY3V0b3IgY2FsbGVkIHdpdGggKHVuZGVmaW5lZCwgZnVuY3Rp
b24pJyk7Cithc3NlcnQuc2FtZVZhbHVlKGNoZWNrUG9pbnQsICdhYicsICdleGVjdXRvciBjYWxs
ZWQgd2l0aCAodW5kZWZpbmVkLCBmdW5jdGlvbiknKTsKKworY2hlY2tQb2ludCA9ICcnOworZnVu
Y3Rpb24gZm41KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworICBleGVjdXRvcihm
dW5jdGlvbigpIHt9LCB1bmRlZmluZWQpOworICBjaGVja1BvaW50ICs9ICdiJzsKK30KK09iamVj
dC5kZWZpbmVQcm9wZXJ0eShmbjUsICdyZXNvbHZlJywgeworICBnZXQoKSB7IHRocm93IG5ldyBU
ZXN0MjYyRXJyb3IoKTsgfQorfSk7Cithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7CisgIFByb21pc2UuYW55LmNhbGwoZm41LCBbXSk7Cit9LCAnZXhlY3V0b3IgY2FsbGVkIHdp
dGggKGZ1bmN0aW9uLCB1bmRlZmluZWQpJyk7Cithc3NlcnQuc2FtZVZhbHVlKGNoZWNrUG9pbnQs
ICdhYicsICdleGVjdXRvciBjYWxsZWQgd2l0aCAoZnVuY3Rpb24sIHVuZGVmaW5lZCknKTsKKwor
Y2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm42KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQg
Kz0gJ2EnOworICBleGVjdXRvcigxMjMsICdpbnZhbGlkIHZhbHVlJyk7CisgIGNoZWNrUG9pbnQg
Kz0gJ2InOworfQorT2JqZWN0LmRlZmluZVByb3BlcnR5KGZuNiwgJ3Jlc29sdmUnLCB7CisgIGdl
dCgpIHsgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigpOyB9Cit9KTsKK2Fzc2VydC50aHJvd3MoVHlw
ZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbChmbjYsIFtdKTsKK30sICdl
eGVjdXRvciBjYWxsZWQgd2l0aCAoTnVtYmVyLCBTdHJpbmcpJyk7Cithc3NlcnQuc2FtZVZhbHVl
KGNoZWNrUG9pbnQsICdhYicsICdleGVjdXRvciBjYWxsZWQgd2l0aCAoTnVtYmVyLCBTdHJpbmcp
Jyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9h
bnkvY3R4LWN0b3ItdGhyb3dzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1By
b21pc2UvYW55L2N0eC1jdG9yLXRocm93cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTI4ODkxNGZhNTY5Nzdj
ZjdhMTM2ZWE2NGM3MTliNjJmYjU0MWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2N0eC1jdG9yLXRocm93cy5qcwpAQCAtMCww
ICsxLDI1IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBQ
cm9taXNlLmFueSBpbnZva2VkIG9uIGEgY29uc3RydWN0b3IgdmFsdWUgdGhhdCB0aHJvd3MgYW4g
ZXJyb3IKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzogfAorICAyLiBMZXQgcHJvbWlzZUNh
cGFiaWxpdHkgYmUgPyBOZXdQcm9taXNlQ2FwYWJpbGl0eShDKS4KKworICBOZXdQcm9taXNlQ2Fw
YWJpbGl0eQorCisgIC4uLgorICA3LiBMZXQgcHJvbWlzZSBiZSA/IENvbnN0cnVjdChDLCDCqyBl
eGVjdXRvciDCuykuCisKK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLworCitmdW5jdGlv
biBDdXN0b21Qcm9taXNlKCkgeworICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCk7Cit9CisKK2Fz
c2VydC50aHJvd3MoVGVzdDI2MkVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2Fs
bChDdXN0b21Qcm9taXNlKTsKK30pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2N0eC1jdG9yLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2N0eC1jdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MDA0NThlYmMx
NTVlMGFhYmE2NGYwNzMwMTVhNTc1MTJmMTk4NDMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LWN0b3IuanMKQEAgLTAsMCAr
MSwzNCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZGVzY3JpcHRpb246ID4KKyAgUHJv
bWlzZS5hbnkgaW52b2tlZCBvbiBhIGNvbnN0cnVjdG9yIHZhbHVlCitlc2lkOiBzZWMtcHJvbWlz
ZS5hbnkKK2luZm86IHwKKyAgMi4gTGV0IHByb21pc2VDYXBhYmlsaXR5IGJlID8gTmV3UHJvbWlz
ZUNhcGFiaWxpdHkoQykuCisgIC4uLgorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNl
QW55KGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorICA3LiBS
ZXR1cm4gQ29tcGxldGlvbihyZXN1bHQpLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgY2xhc3Nd
CistLS0qLworCit2YXIgZXhlY3V0b3IgPSBudWxsOwordmFyIGNhbGxDb3VudCA9IDA7CisKK2Ns
YXNzIFN1YlByb21pc2UgZXh0ZW5kcyBQcm9taXNlIHsKKyAgY29uc3RydWN0b3IoYSkgeworICAg
IHN1cGVyKGEpOworICAgIGV4ZWN1dG9yID0gYTsKKyAgICBjYWxsQ291bnQgKz0gMTsKKyAgfQor
fQorCit2YXIgaW5zdGFuY2UgPSBQcm9taXNlLmFueS5jYWxsKFN1YlByb21pc2UsIFtdKTsKKwor
YXNzZXJ0LnNhbWVWYWx1ZShpbnN0YW5jZS5jb25zdHJ1Y3RvciwgU3ViUHJvbWlzZSk7Cithc3Nl
cnQuc2FtZVZhbHVlKGluc3RhbmNlIGluc3RhbmNlb2YgU3ViUHJvbWlzZSwgdHJ1ZSk7CisKK2Fz
c2VydC5zYW1lVmFsdWUoY2FsbENvdW50LCAxKTsKK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIGV4
ZWN1dG9yLCAnZnVuY3Rpb24nKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9jdHgtbm9uLWN0b3IuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LW5vbi1jdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2Y2Mz
NjEyNDBmMGRlZTJhZWUyMDE2MjEzMWQ5NWM2MjkxNTE2MDQKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LW5vbi1jdG9yLmpz
CkBAIC0wLDAgKzEsNDcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNE
IGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9u
OiA+CisgIFByb21pc2UuYW55IGludm9rZWQgb24gYSBub24tY29uc3RydWN0b3IgdmFsdWUKK2Vz
aWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzogfAorICAuLi4KKyAgMi4gTGV0IHByb21pc2VDYXBh
YmlsaXR5IGJlID8gTmV3UHJvbWlzZUNhcGFiaWxpdHkoQykuCisKKyAgTmV3UHJvbWlzZUNhcGFi
aWxpdHkgKCBDICkKKworICAxLiBJZiBJc0NvbnN0cnVjdG9yKEMpIGlzIGZhbHNlLCB0aHJvdyBh
IFR5cGVFcnJvciBleGNlcHRpb24uCisKK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJvbF0K
Ky0tLSovCisKK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIFByb21pc2UuYW55LCAnZnVuY3Rpb24n
KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBQcm9taXNlLmFu
eS5jYWxsKGV2YWwpOworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigp
IHsKKyAgUHJvbWlzZS5hbnkuY2FsbCh1bmRlZmluZWQsIFtdKTsKK30pOworCithc3NlcnQudGhy
b3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIFByb21pc2UuYW55LmNhbGwobnVsbCwgW10p
OworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJvbWlz
ZS5hbnkuY2FsbCg4NiwgW10pOworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5j
dGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbCgnc3RyaW5nJywgW10pOworfSk7CisKK2Fzc2Vy
dC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbCh0cnVl
LCBbXSk7Cit9KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBQ
cm9taXNlLmFueS5jYWxsKFN5bWJvbCgpLCBbXSk7Cit9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1lcnJvci1j
bG9zZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZv
a2UtcmVzb2x2ZS1lcnJvci1jbG9zZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWJhZTIwY2ZkNzZmNGQ2NGFi
MWNiZjgyYTdiYjc4MGNmYmU4Yzg3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWVycm9yLWNsb3NlLmpz
CkBAIC0wLDAgKzEsNTMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIw
IFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zl
cm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyot
LS0KK2Rlc2NyaXB0aW9uOiA+CisgIEV4cGxpY2l0IGl0ZXJhdG9yIGNsb3NpbmcgaW4gcmVzcG9u
c2UgdG8gZXJyb3IKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzogfAorICA1LiBMZXQgcmVz
dWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJp
bGl0eSkuCisgIDYuIElmIHJlc3VsdCBpcyBhbiBhYnJ1cHQgY29tcGxldGlvbiwgdGhlbgorICAg
IGEuIElmIGl0ZXJhdG9yUmVjb3JkLltbRG9uZV1dIGlzIGZhbHNlLCBzZXQgcmVzdWx0IHRvIEl0
ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNvcmQsIHJlc3VsdCkuCisgICAgYi4gSWZBYnJ1cHRSZWpl
Y3RQcm9taXNlKHJlc3VsdCwgcHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50
aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIDguIFJlcGVhdAorICAgIC4uLgorICAgIGkuIExl
dCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlzZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBu
ZXh0VmFsdWUgwrspLgorZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5
bWJvbC5pdGVyYXRvciwgY29tcHV0ZWQtcHJvcGVydHktbmFtZXMsIFN5bWJvbCwgYXJyb3ctZnVu
Y3Rpb25dCistLS0qLworCitsZXQgZXJyb3IgPSBuZXcgVGVzdDI2MkVycm9yKCk7CitsZXQgbmV4
dENvdW50ID0gMDsKK2xldCByZXR1cm5Db3VudCA9IDA7CitsZXQgaXRlciA9IHsKKyAgW1N5bWJv
bC5pdGVyYXRvcl0oKSB7CisgICAgcmV0dXJuIHsKKyAgICAgIG5leHQoKSB7CisgICAgICAgIG5l
eHRDb3VudCArPSAxOworICAgICAgICByZXR1cm4geworICAgICAgICAgIHZhbHVlOiBudWxsLAor
ICAgICAgICAgIGRvbmU6IGZhbHNlCisgICAgICAgIH07CisgICAgICB9LAorICAgICAgcmV0dXJu
KCkgeworICAgICAgICByZXR1cm5Db3VudCArPSAxOworICAgICAgfQorICAgIH07CisgIH0KK307
CisKK1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKCkgeworICB0aHJvdyBlcnJvcjsKK307CisK
K1Byb21pc2UuYW55KGl0ZXIpLnRoZW4oKCkgPT4geworICAkRE9ORSgnVGhlIHByb21pc2Ugc2hv
dWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7Cit9LCAocmVhc29uKSA9PiB7Cisg
IGFzc2VydC5zYW1lVmFsdWUobmV4dENvdW50LCAxKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZXR1
cm5Db3VudCwgMSk7CisgIGFzc2VydC5zYW1lVmFsdWUocmVhc29uLCBlcnJvcik7Cit9KS50aGVu
KCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZXJyb3ItcmVqZWN0LmpzIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWVycm9yLXJl
amVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZDZjMWFmYjk4NjRlZmU3ZTQ5N2RkOWQ2OTVjOTU1MmVmNmY0
ZDU4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1By
b21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWVycm9yLXJlamVjdC5qcwpAQCAtMCwwICsxLDMyIEBA
CisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBs
aWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjog
UHJvbWlzZSByZWplY3Rpb24gaW4gcmVzcG9uc2UgdG8gZXJyb3IKK2VzaWQ6IHNlYy1wcm9taXNl
LmFueQoraW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJh
dG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDYuIElmIHJlc3VsdCBpcyBhbiBh
YnJ1cHQgY29tcGxldGlvbiwgdGhlbgorICAgIGEuIElmIGl0ZXJhdG9yUmVjb3JkLltbRG9uZV1d
IGlzIGZhbHNlLCBzZXQgcmVzdWx0IHRvIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNvcmQsIHJl
c3VsdCkuCisgICAgYi4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKHJlc3VsdCwgcHJvbWlzZUNhcGFi
aWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIDgu
IFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlz
ZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorCitmbGFnczogW2FzeW5j
XQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQg
ZXJyb3IgPSBuZXcgVGVzdDI2MkVycm9yKCk7CitQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlvbigp
IHsKKyAgdGhyb3cgZXJyb3I7Cit9OworCitQcm9taXNlLmFueShbMV0pLnRoZW4oKCkgPT4gewor
ICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2
ZWQnKTsKKyAgfSwgKHJlYXNvbikgPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUocmVhc29uLCBl
cnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3It
Y2xvc2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52
b2tlLXJlc29sdmUtZ2V0LWVycm9yLWNsb3NlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NTY2ZDEzYjRlOTVj
ODBkZTliZjQ1YjEwNjU2MjM0MzNiZGQyZjAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LWVycm9y
LWNsb3NlLmpzCkBAIC0wLDAgKzEsNTcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFs
dGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHJldHJpZXZpbmcgdGhlIGNvbnN0
cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBub3Qgb3BlbmluZyBpdGVyYXRvcgorZXNpZDogc2Vj
LXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VB
bnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0
IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQu
W1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJl
Y29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9t
aXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55
CisKKyAgOC4gUmVwZWF0CisgICAgLi4uCisgICAgaS4gTGV0IG5leHRQcm9taXNlIGJlID8gQ2Fs
bChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3IsIMKrIG5leHRWYWx1ZSDCuykuCisKK2ZsYWdz
OiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2wuaXRlcmF0b3IsIGNvbXB1
dGVkLXByb3BlcnR5LW5hbWVzLCBTeW1ib2wsIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKworbGV0
IGVycm9yID0gbmV3IFRlc3QyNjJFcnJvcigpOworbGV0IG5leHRDb3VudCA9IDA7CitsZXQgcmV0
dXJuQ291bnQgPSAwOworbGV0IGl0ZXIgPSB7CisgIFtTeW1ib2wuaXRlcmF0b3JdKCkgeworICAg
IHJldHVybiB7CisgICAgICBuZXh0KCkgeworICAgICAgICBuZXh0Q291bnQgKz0gMTsKKyAgICAg
ICAgcmV0dXJuIHsKKyAgICAgICAgICB2YWx1ZTogbnVsbCwKKyAgICAgICAgICBkb25lOiBmYWxz
ZQorICAgICAgICB9OworICAgICAgfSwKKyAgICAgIHJldHVybigpIHsKKyAgICAgICAgcmV0dXJu
Q291bnQgKz0gMTsKKyAgICAgIH0KKyAgICB9OworICB9Cit9OworCitPYmplY3QuZGVmaW5lUHJv
cGVydHkoUHJvbWlzZSwgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsKKyAgICB0aHJvdyBlcnJvcjsK
KyAgfQorfSk7CisKKworUHJvbWlzZS5hbnkoaXRlcikudGhlbigoKSA9PiB7CisgICRET05FKCdU
aGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKK30sIChy
ZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShuZXh0Q291bnQsIDApOworICBhc3NlcnQu
c2FtZVZhbHVlKHJldHVybkNvdW50LCAxKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWFzb24sIGVy
cm9yKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3ItcmVq
ZWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9r
ZS1yZXNvbHZlLWdldC1lcnJvci1yZWplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk1NGMwMTA0NTQyZTE3
MjcxMzA2OTIyMzYwMDJhNjc4ZWQ3NzhkNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3It
cmVqZWN0LmpzCkBAIC0wLDAgKzEsMzUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFs
dGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHJldHJpZXZpbmcgdGhlIGNvbnN0
cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCAocmVqZWN0aW5nIHByb21pc2UpCitlc2lkOiBzZWMt
cHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFu
eShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICA2LiBJZiByZXN1bHQg
aXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHRoZW4KKyAgICBhLiBJZiBpdGVyYXRvclJlY29yZC5b
W0RvbmVdXSBpcyBmYWxzZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yUmVj
b3JkLCByZXN1bHQpLgorICAgIGIuIElmQWJydXB0UmVqZWN0UHJvbWlzZShyZXN1bHQsIHByb21p
c2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkK
KworICA4LiBSZXBlYXQKKyAgICAuLi4KKyAgICBpLiBMZXQgbmV4dFByb21pc2UgYmUgPyBDYWxs
KHByb21pc2VSZXNvbHZlLCBjb25zdHJ1Y3RvciwgwqsgbmV4dFZhbHVlIMK7KS4KKworZmxhZ3M6
IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIGFycm93LWZ1bmN0aW9uXQorLS0tKi8K
KworbGV0IGVycm9yID0gbmV3IFRlc3QyNjJFcnJvcigpOworT2JqZWN0LmRlZmluZVByb3BlcnR5
KFByb21pc2UsICdyZXNvbHZlJywgeworICBnZXQoKSB7CisgICAgdGhyb3cgZXJyb3I7CisgIH0K
K30pOworCitQcm9taXNlLmFueShbMV0pLnRoZW4oKCkgPT4geworICAgICRET05FKCdUaGUgcHJv
bWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgKHJlYXNv
bikgPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUocmVhc29uLCBlcnJvcik7CisgIH0pLnRoZW4o
JERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1nZXQtb25jZS1tdWx0aXBsZS1jYWxscy5qcyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2
ZS1nZXQtb25jZS1tdWx0aXBsZS1jYWxscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGE0MjFmN2Q2ZGNlNzQ1
ODE5OGM3MmVkOWY2MzVhYjViM2MxZDA4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWdldC1vbmNlLW11
bHRpcGxlLWNhbGxzLmpzCkBAIC0wLDAgKzEsNTQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBM
ZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEdldHMgY29uc3RydWN0b3IncyBg
cmVzb2x2ZWAgbWV0aG9kIG9uY2UgZnJvbSB6ZXJvIHRvIG1hbnkgaW52b2NhdGlvbnMuCitlc2lk
OiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJv
bWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICA2LiBJZiBy
ZXN1bHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHRoZW4KKyAgICBhLiBJZiBpdGVyYXRvclJl
Y29yZC5bW0RvbmVdXSBpcyBmYWxzZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRvckNsb3NlKGl0ZXJh
dG9yUmVjb3JkLCByZXN1bHQpLgorICAgIGIuIElmQWJydXB0UmVqZWN0UHJvbWlzZShyZXN1bHQs
IHByb21pc2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21p
c2VBbnkKKworICA2LiBMZXQgcHJvbWlzZVJlc29sdmUgYmUgPyBHZXQoY29uc3RydWN0b3IsICJy
ZXNvbHZlIikuCisgIDcuIElmICEgSXNDYWxsYWJsZShwcm9taXNlUmVzb2x2ZSkgaXMgZmFsc2Us
IHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgOC4gUmVwZWF0CisgICAgLi4uCisgICAg
aS4gTGV0IG5leHRQcm9taXNlIGJlID8gQ2FsbChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3Is
IMKrIG5leHRWYWx1ZSDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2Uu
YW55LCBhcnJvdy1mdW5jdGlvbiwgZGVzdHJ1Y3R1cmluZy1iaW5kaW5nXQorLS0tKi8KKworbGV0
IHByb21pc2VzID0gWworICBQcm9taXNlLnJlamVjdCgxKSwKKyAgUHJvbWlzZS5yZWplY3QoMSks
CisgIFByb21pc2UucmVqZWN0KDEpLAorXTsKK2xldCBib3VuZFByb21pc2VSZXNvbHZlID0gUHJv
bWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CitsZXQgZ2V0Q291bnQgPSAwOworbGV0IGNhbGxD
b3VudCA9IDA7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShQcm9taXNlLCAncmVzb2x2ZScsIHsK
KyAgY29uZmlndXJhYmxlOiB0cnVlLAorICBnZXQoKSB7CisgICAgZ2V0Q291bnQgKz0gMTsKKyAg
ICByZXR1cm4gZnVuY3Rpb24oLi4uYXJncykgeworICAgICAgY2FsbENvdW50ICs9IDE7CisgICAg
ICByZXR1cm4gYm91bmRQcm9taXNlUmVzb2x2ZSguLi5hcmdzKTsKKyAgICB9OworICB9Cit9KTsK
KworUHJvbWlzZS5hbnkocHJvbWlzZXMpLnRoZW4oKCkgPT4geworICAgICRET05FKCdUaGUgcHJv
bWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgKHtlcnJv
cnN9KSA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShnZXRDb3VudCwgMSk7CisgICAgYXNzZXJ0
LnNhbWVWYWx1ZShjYWxsQ291bnQsIDMpOworICAgIGFzc2VydC5zYW1lVmFsdWUoZXJyb3JzLmxl
bmd0aCwgMyk7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKKworCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0
LW9uY2Utbm8tY2FsbHMuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlz
ZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LW9uY2Utbm8tY2FsbHMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI3
YWExMzg0ZjQ2MmM2YjNmMWIyZWUyNTRlZjFmOWZhMzMzMzY2ZgotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2
ZS1nZXQtb25jZS1uby1jYWxscy5qcwpAQCAtMCwwICsxLDQ5IEBACisvLyBDb3B5cmlnaHQgKEMp
IDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBHZXRzIGNvbnN0cnVj
dG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBvbmNlIGZyb20gemVybyB0byBtYW55IGludm9jYXRpb25z
LgorZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVy
Zm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAg
Ni4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRl
cmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9z
ZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2Uo
cmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZv
cm1Qcm9taXNlQW55CisKKyAgNi4gTGV0IHByb21pc2VSZXNvbHZlIGJlID8gR2V0KGNvbnN0cnVj
dG9yLCAicmVzb2x2ZSIpLgorICA3LiBJZiAhIElzQ2FsbGFibGUocHJvbWlzZVJlc29sdmUpIGlz
IGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIDguIFJlcGVhdAorICAgIC4u
LgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlzZVJlc29sdmUsIGNvbnN0
cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQ
cm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb24sIGRlc3RydWN0dXJpbmctYmluZGluZ10KKy0tLSov
CisKK2xldCBib3VuZFByb21pc2VSZXNvbHZlID0gUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlz
ZSk7CitsZXQgZ2V0Q291bnQgPSAwOworbGV0IGNhbGxDb3VudCA9IDA7CisKK09iamVjdC5kZWZp
bmVQcm9wZXJ0eShQcm9taXNlLCAncmVzb2x2ZScsIHsKKyAgY29uZmlndXJhYmxlOiB0cnVlLAor
ICBnZXQoKSB7CisgICAgZ2V0Q291bnQgKz0gMTsKKyAgICByZXR1cm4gZnVuY3Rpb24oLi4uYXJn
cykgeworICAgICAgY2FsbENvdW50ICs9IDE7CisgICAgICByZXR1cm4gYm91bmRQcm9taXNlUmVz
b2x2ZSguLi5hcmdzKTsKKyAgICB9OworICB9Cit9KTsKKworUHJvbWlzZS5hbnkoW10pLnRoZW4o
KCkgPT4geworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3
YXMgcmVzb2x2ZWQnKTsKKyAgfSwgKHtlcnJvcnN9KSA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1
ZShnZXRDb3VudCwgMSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsQ291bnQsIDApOworICAg
IGFzc2VydC5zYW1lVmFsdWUoZXJyb3JzLmxlbmd0aCwgMCk7CisgIH0pLnRoZW4oJERPTkUsICRE
T05FKTsKKworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvaW52b2tlLXJlc29sdmUtbm90LWNhbGxhYmxlLXJlamVjdHMtd2l0aC10eXBlcnJv
ci5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2Ut
cmVzb2x2ZS1ub3QtY2FsbGFibGUtcmVqZWN0cy13aXRoLXR5cGVycm9yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM1ZTdlMTZiZGU4ZjNjZjA2MTliMTQ2Y2JlOGE2ZTFmODRjYzE1OGIKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJl
c29sdmUtbm90LWNhbGxhYmxlLXJlamVjdHMtd2l0aC10eXBlcnJvci5qcwpAQCAtMCwwICsxLDI4
IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBJZiB0aGUg
Y29uc3RydWN0b3IncyBgcmVzb2x2ZWAgbWV0aG9kIGlzIG5vdCBjYWxsYWJsZSwgcmVqZWN0IHdp
dGggYSBUeXBlRXJyb3IuCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0
IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNh
cGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisg
IDYuIExldCBwcm9taXNlUmVzb2x2ZSBiZSA/IEdldChjb25zdHJ1Y3RvciwgInJlc29sdmUiKS4K
KyAgNy4gSWYgISBJc0NhbGxhYmxlKHByb21pc2VSZXNvbHZlKSBpcyBmYWxzZSwgdGhyb3cgYSBU
eXBlRXJyb3IgZXhjZXB0aW9uLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNl
LmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitQcm9taXNlLnJlc29sdmUgPSBudWxsOwor
CitQcm9taXNlLmFueShbMV0pCisgIC50aGVuKAorICAgICgpID0+ICRET05FKCdUaGUgcHJvbWlz
ZSBzaG91bGQgbm90IGJlIHJlc29sdmVkLicpLAorICAgIGVycm9yID0+IHsKKyAgICAgIGFzc2Vy
dChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgICAgfQorICApLnRoZW4oJERPTkUsICRE
T05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FueS9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3VzdG9t
LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1y
ZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1jdXN0b20uanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTdhOTlkNDMyOTI4ODJjYzJhYjI4Yzk0ZDVkZjRlMDYxZjllNmM4NwotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2Ut
cmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3VzdG9tLmpzCkBAIC0wLDAg
KzEsNDMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIElu
dm9jYXRpb24gb2YgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBmb3IgaXRlcmFi
bGUgd2l0aCBwcm9taXNlIHZhbHVlcworZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8Cisg
IDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHBy
b21pc2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VB
bnkKKworICA4LiBSZXBlYXQKKyAgICAuLi4KKyAgICBpLiBMZXQgbmV4dFByb21pc2UgYmUgPyBD
YWxsKHByb21pc2VSZXNvbHZlLCBjb25zdHJ1Y3RvciwgwqsgbmV4dFZhbHVlIMK7KS4KKworZmxh
Z3M6IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIGNsYXNzLCBhcnJvdy1mdW5jdGlv
bl0KKy0tLSovCitjbGFzcyBDdXN0b20gZXh0ZW5kcyBQcm9taXNlIHt9CisKK2xldCB2YWx1ZXMg
PSBbMSwgMSwgMV07CitsZXQgY3Jlc29sdmVDYWxsQ291bnQgPSAwOworbGV0IHByZXNvbHZlQ2Fs
bENvdW50ID0gMDsKK2xldCBib3VuZEN1c3RvbVJlc29sdmUgPSBDdXN0b20ucmVzb2x2ZS5iaW5k
KEN1c3RvbSk7CitsZXQgYm91bmRQcm9taXNlUmVzb2x2ZSA9IFByb21pc2UucmVzb2x2ZS5iaW5k
KFByb21pc2UpOworCitDdXN0b20ucmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgY3Jl
c29sdmVDYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJvdW5kQ3VzdG9tUmVzb2x2ZSguLi5hcmdz
KTsKK307CisKK1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgcHJlc29s
dmVDYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJvdW5kUHJvbWlzZVJlc29sdmUoLi4uYXJncyk7
Cit9OworCitQcm9taXNlLmFueS5jYWxsKEN1c3RvbSwgdmFsdWVzKQorICAudGhlbigoKSA9PiB7
CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKHByZXNvbHZlQ2FsbENvdW50LCAwLCAnYFByb21pc2Uu
cmVzb2x2ZWAgaXMgbmV2ZXIgaW52b2tlZCcpOworICAgICAgYXNzZXJ0LnNhbWVWYWx1ZShjcmVz
b2x2ZUNhbGxDb3VudCwgMywgJ2BDdXN0b20ucmVzb2x2ZWAgaW52b2tlZCBvbmNlIGZvciBldmVy
eSBpdGVyYXRlZCBwcm9taXNlJyk7CisgICAgfSwgJERPTkUpLnRoZW4oJERPTkUsICRET05FKTsK
KwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2ludm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpz
IGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNv
bHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI2ZDhkMzMzMmIyNDZlNTc1ZmVmZWMyY2ViNzk1OWFhYjNhNTA2MTYKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJl
c29sdmUtb24tcHJvbWlzZXMtZXZlcnktaXRlcmF0aW9uLW9mLXByb21pc2UuanMKQEAgLTAsMCAr
MSwzNCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZGVzY3JpcHRpb246ID4KKyAgSW52
b2NhdGlvbiBvZiB0aGUgY29uc3RydWN0b3IncyBgcmVzb2x2ZWAgbWV0aG9kIGZvciBpdGVyYWJs
ZSB3aXRoIHByb21pc2UgdmFsdWVzCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAg
NS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJv
bWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFu
eQorCisgIDguIFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENh
bGwocHJvbWlzZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorCitmbGFn
czogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0q
LworCitsZXQgdmFsdWVzID0gWzEsMSwxXTsKK2xldCBjYWxsQ291bnQgPSAwOworbGV0IGJvdW5k
UHJvbWlzZVJlc29sdmUgPSBQcm9taXNlLnJlc29sdmUuYmluZChQcm9taXNlKTsKKworUHJvbWlz
ZS5yZXNvbHZlID0gZnVuY3Rpb24oLi4uYXJncykgeworICBjYWxsQ291bnQgKz0gMTsKKyAgcmV0
dXJuIGJvdW5kUHJvbWlzZVJlc29sdmUoLi4uYXJncyk7Cit9OworCitQcm9taXNlLmFueSh2YWx1
ZXMpCisgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbENvdW50LCAz
LCAnYHRoZW5gIGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0ZWQgcHJvbWlzZScpOworICAg
IH0sICRET05FKS50aGVuKCRET05FLCAkRE9ORSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMt
ZXZlcnktaXRlcmF0aW9uLW9mLWN1c3RvbS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMtZXZlcnktaXRlcmF0aW9u
LW9mLWN1c3RvbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTYwNzZmMDc0YWZmYWEwMTczODc2NmM0ZjM5NWE0
MDE3ODA2NWZlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXZhbHVlcy1ldmVyeS1pdGVyYXRpb24t
b2YtY3VzdG9tLmpzCkBAIC0wLDAgKzEsNDMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJn
ZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0K
K2Rlc2NyaXB0aW9uOiA+CisgIEludm9jYXRpb24gb2YgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29s
dmVgIG1ldGhvZCBmb3IgaXRlcmFibGUgd2l0aCBub24tcHJvbWlzZSB2YWx1ZXMKK2VzaWQ6IHNl
Yy1wcm9taXNlLmFueQoraW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNl
QW55KGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBT
ZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgOC4gUmVwZWF0CisgICAgLi4uCisgICAg
aS4gTGV0IG5leHRQcm9taXNlIGJlID8gQ2FsbChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3Is
IMKrIG5leHRWYWx1ZSDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2Uu
YW55LCBjbGFzcywgYXJyb3ctZnVuY3Rpb25dCistLS0qLworY2xhc3MgQ3VzdG9tIGV4dGVuZHMg
UHJvbWlzZSB7fQorCitsZXQgdmFsdWVzID0gWzEsIDIsIDNdOworbGV0IGNyZXNvbHZlQ2FsbENv
dW50ID0gMDsKK2xldCBwcmVzb2x2ZUNhbGxDb3VudCA9IDA7CitsZXQgYm91bmRDdXN0b21SZXNv
bHZlID0gQ3VzdG9tLnJlc29sdmUuYmluZChDdXN0b20pOworbGV0IGJvdW5kUHJvbWlzZVJlc29s
dmUgPSBQcm9taXNlLnJlc29sdmUuYmluZChQcm9taXNlKTsKKworQ3VzdG9tLnJlc29sdmUgPSBm
dW5jdGlvbiguLi5hcmdzKSB7CisgIGNyZXNvbHZlQ2FsbENvdW50ICs9IDE7CisgIHJldHVybiBi
b3VuZEN1c3RvbVJlc29sdmUoLi4uYXJncyk7Cit9OworCitQcm9taXNlLnJlc29sdmUgPSBmdW5j
dGlvbiguLi5hcmdzKSB7CisgIHByZXNvbHZlQ2FsbENvdW50ICs9IDE7CisgIHJldHVybiBib3Vu
ZFByb21pc2VSZXNvbHZlKC4uLmFyZ3MpOworfTsKKworUHJvbWlzZS5hbnkuY2FsbChDdXN0b20s
IHZhbHVlcykKKyAgLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0LnNhbWVWYWx1ZShwcmVzb2x2
ZUNhbGxDb3VudCwgMCwgJ2BQcm9taXNlLnJlc29sdmVgIGlzIG5ldmVyIGludm9rZWQnKTsKKyAg
ICAgIGFzc2VydC5zYW1lVmFsdWUoY3Jlc29sdmVDYWxsQ291bnQsIDMsICdgQ3VzdG9tLnJlc29s
dmVgIGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0ZWQgcHJvbWlzZScpOworICAgIH0sICRE
T05FKS50aGVuKCRET05FLCAkRE9ORSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMtZXZlcnkt
aXRlcmF0aW9uLW9mLXByb21pc2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtb24tdmFsdWVzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1w
cm9taXNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmMzZjNjY5ZDk3ODhjZjc2YTNmOGRmN2YzYjRiYzIwYjI4
NWRjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtb24tdmFsdWVzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1w
cm9taXNlLmpzCkBAIC0wLDAgKzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkg
UnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rl
c2NyaXB0aW9uOiA+CisgIEludm9jYXRpb24gb2YgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29sdmVg
IG1ldGhvZCBmb3IgaXRlcmFibGUgd2l0aCBub24tcHJvbWlzZSB2YWx1ZXMKK2VzaWQ6IHNlYy1w
cm9taXNlLmFueQoraW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55
KGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1h
bnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgOC4gUmVwZWF0CisgICAgLi4uCisgICAgaS4g
TGV0IG5leHRQcm9taXNlIGJlID8gQ2FsbChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3IsIMKr
IG5leHRWYWx1ZSDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2UuYW55
LCBhcnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK2xldCB2YWx1ZXMgPSBbMSwgMiwgM107CitsZXQg
Y2FsbENvdW50ID0gMDsKK2xldCBib3VuZFByb21pc2VSZXNvbHZlID0gUHJvbWlzZS5yZXNvbHZl
LmJpbmQoUHJvbWlzZSk7CisKK1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsK
KyAgY2FsbENvdW50ICs9IDE7CisgIHJldHVybiBib3VuZFByb21pc2VSZXNvbHZlKC4uLmFyZ3Mp
OworfTsKKworUHJvbWlzZS5hbnkodmFsdWVzKQorICAudGhlbigoKSA9PiB7CisgICAgICBhc3Nl
cnQuc2FtZVZhbHVlKGNhbGxDb3VudCwgMywgJ2BQcm9taXNlLnJlc29sdmVgIGludm9rZWQgb25j
ZSBmb3IgZXZlcnkgaXRlcmF0ZWQgdmFsdWUnKTsKKyAgICB9LCAkRE9ORSkudGhlbigkRE9ORSwg
JERPTkUpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvaW52b2tlLXJlc29sdmUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIwZDBlYzYxZTkw
NTMzYzVhMTA1NzkwZTAzMDk4NzEwY2FkYzZlZgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS5qcwpAQCAt
MCwwICsxLDMxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YsIDIwMjAg
UmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0t
LQorZGVzY3JpcHRpb246ID4KKyAgSW52b2NhdGlvbiBvZiB0aGUgY29uc3RydWN0b3IncyBgcmVz
b2x2ZWAgbWV0aG9kCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0IHJl
c3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFi
aWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIDgu
IFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlz
ZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorICAgIC4uLgorICAgIHIu
IFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0
eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0
dXJlczogW1Byb21pc2UuYW55LCBhcnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK2xldCBib3VuZFBy
b21pc2VSZXNvbHZlID0gUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CisKK1Byb21pc2Uu
cmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShhcmdzLmxl
bmd0aCwgMSwgJ2ByZXNvbHZlYCBpbnZva2VkIHdpdGggYSBzaW5nbGUgYXJndW1lbnQnKTsKKyAg
YXNzZXJ0LnNhbWVWYWx1ZSh0aGlzLCBQcm9taXNlLCAnYHRoaXNgIHZhbHVlIGlzIHRoZSBjb25z
dHJ1Y3RvcicpOworICByZXR1cm4gYm91bmRQcm9taXNlUmVzb2x2ZSguLi5hcmdzKTsKK307CisK
K1Byb21pc2UuYW55KFsxXSkudGhlbigoKSA9PiAkRE9ORSgpLCAkRE9ORSk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4t
ZXJyb3ItY2xvc2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9h
bnkvaW52b2tlLXRoZW4tZXJyb3ItY2xvc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJkN2U5MmIxNTdhNGQ2
Yjg1NWYwNWNhYjI0MmEzZGM3YzEwNzg1ZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1lcnJvci1jbG9zZS5q
cwpAQCAtMCwwICsxLDUwIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAy
MCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292
ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0t
LQorZGVzY3JpcHRpb246ID4KKyAgRXJyb3IgdGhyb3duIHdoZW4gaW52b2tpbmcgdGhlIGluc3Rh
bmNlJ3MgYHRoZW5gIG1ldGhvZCAoY2xvc2luZyBpdGVyYXRvcikKK2VzaWQ6IHNlYy1wcm9taXNl
LmFueQoraW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJh
dG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDYuIElmIHJlc3VsdCBpcyBhbiBh
YnJ1cHQgY29tcGxldGlvbiwgdGhlbgorICAgIGEuIElmIGl0ZXJhdG9yUmVjb3JkLltbRG9uZV1d
IGlzIGZhbHNlLCBzZXQgcmVzdWx0IHRvIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNvcmQsIHJl
c3VsdCkuCisgICAgYi4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKHJlc3VsdCwgcHJvbWlzZUNhcGFi
aWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIHIu
IFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0
eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0
dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2wuaXRlcmF0b3IsIGFycm93LWZ1bmN0aW9uLCBjb21w
dXRlZC1wcm9wZXJ0eS1uYW1lcywgU3ltYm9sXQorLS0tKi8KKworbGV0IGVycm9yID0gbmV3IFRl
c3QyNjJFcnJvcigpOworbGV0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTsKK2xldCByZXR1
cm5Db3VudCA9IDA7CitsZXQgaXRlciA9IHsKKyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CisgICAg
cmV0dXJuIHsKKyAgICAgIG5leHQoKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgZG9u
ZTogZmFsc2UsCisgICAgICAgICAgdmFsdWU6IHByb21pc2UKKyAgICAgICAgfTsKKyAgICAgIH0s
CisgICAgICByZXR1cm4oKSB7CisgICAgICAgIHJldHVybkNvdW50ICs9IDE7CisgICAgICAgIHJl
dHVybiB7fTsKKyAgICAgIH0KKyAgICB9OworICB9Cit9OworCitwcm9taXNlLnRoZW4gPSBmdW5j
dGlvbigpIHsKKyAgdGhyb3cgZXJyb3I7Cit9OworCitQcm9taXNlLmFueShpdGVyKS50aGVuKCgp
ID0+IHsKKyAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyBy
ZXNvbHZlZCcpOworfSwgKHJlYXNvbikgPT4geworICBhc3NlcnQuc2FtZVZhbHVlKHJldHVybkNv
dW50LCAxKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWFzb24sIGVycm9yKTsKK30pLnRoZW4oJERP
TkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9pbnZva2UtdGhlbi1lcnJvci1yZWplY3QuanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4tZXJyb3ItcmVqZWN0LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJmZDhmMTEzNzFjODE3NDYyNDQ0N2NkNzZjMzhmNmFlMTgyYjUxMTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aW52b2tlLXRoZW4tZXJyb3ItcmVqZWN0LmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHRo
cm93biB3aGVuIGludm9raW5nIHRoZSBpbnN0YW5jZSdzIGB0aGVuYCBtZXRob2QgKHJlamVjdGlu
ZyBQcm9taXNlKQorZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1
bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmls
aXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAg
YS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRl
cmF0b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVj
dFByb21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRp
Y3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgci4gUGVyZm9ybSA/IEludm9rZShuZXh0UHJvbWlz
ZSwgInRoZW4iLCDCqyByZXN1bHRDYXBhYmlsaXR5LltbUmVzb2x2ZV1dLCByZWplY3RFbGVtZW50
IMK7KS4KKworZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIGFycm93LWZ1
bmN0aW9uXQorLS0tKi8KK2xldCBlcnJvciA9IG5ldyBUZXN0MjYyRXJyb3IoKTsKK2xldCBwcm9t
aXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7CisKK3Byb21pc2UudGhlbiA9IGZ1bmN0aW9uKCkgewor
ICB0aHJvdyBlcnJvcjsKK307CisKK1Byb21pc2UuYW55KFtwcm9taXNlXSkudGhlbigoKSA9PiB7
CisgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2
ZWQnKTsKK30sIChyZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWFzb24sIGVycm9y
KTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1nZXQtZXJyb3ItY2xvc2UuanMg
Yi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4t
Z2V0LWVycm9yLWNsb3NlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyZDE3NGNiZjQ0MTNhZmE4NTFiNDIyMTg5
N2IwZjQzODcyMTcyOTIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4tZ2V0LWVycm9yLWNsb3NlLmpzCkBAIC0w
LDAgKzEsNTEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sg
V2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitkZXNj
cmlwdGlvbjogPgorICBFcnJvciB0aHJvd24gd2hlbiBhY2Nlc2luZyB0aGUgaW5zdGFuY2UncyBg
dGhlbmAgbWV0aG9kIChjbG9zaW5nIGl0ZXJhdG9yKQorZXNpZDogc2VjLXByb21pc2UuYW55Citp
bmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNv
cmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBj
b21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFs
c2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4K
KyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSku
CisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgci4gUGVyZm9y
bSA/IEludm9rZShuZXh0UHJvbWlzZSwgInRoZW4iLCDCqyByZXN1bHRDYXBhYmlsaXR5LltbUmVz
b2x2ZV1dLCByZWplY3RFbGVtZW50IMK7KS4KKworZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBb
UHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgYXJyb3ctZnVuY3Rpb24sIGNvbXB1dGVkLXBy
b3BlcnR5LW5hbWVzLCBTeW1ib2xdCistLS0qLworbGV0IGVycm9yID0gbmV3IFRlc3QyNjJFcnJv
cigpOworbGV0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTsKK2xldCByZXR1cm5Db3VudCA9
IDA7CitsZXQgaXRlciA9IHsKKyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CisgICAgcmV0dXJuIHsK
KyAgICAgIG5leHQoKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgZG9uZTogZmFsc2Us
CisgICAgICAgICAgdmFsdWU6IHByb21pc2UKKyAgICAgICAgfTsKKyAgICAgIH0sCisgICAgICBy
ZXR1cm4oKSB7CisgICAgICAgIHJldHVybkNvdW50ICs9IDE7CisgICAgICAgIHJldHVybiB7fTsK
KyAgICAgIH0KKyAgICB9OworICB9Cit9OworCitPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlz
ZSwgJ3RoZW4nLCB7CisgIGdldCgpIHsKKyAgICB0aHJvdyBlcnJvcjsKKyAgfQorfSk7CisKK1By
b21pc2UuYW55KGl0ZXIpLnRoZW4oKCkgPT4geworICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxk
IGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7Cit9LCAocmVhc29uKSA9PiB7CisgIGFz
c2VydC5zYW1lVmFsdWUocmV0dXJuQ291bnQsIDEpOworICBhc3NlcnQuc2FtZVZhbHVlKHJlYXNv
biwgZXJyb3IpOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLWdldC1lcnJvci1y
ZWplY3QuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52
b2tlLXRoZW4tZ2V0LWVycm9yLXJlamVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjAyODk4YWVjNDM4OTAx
YmVjM2IwY2M1YzIzYmNkNTRhYzg1OWYzCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLWdldC1lcnJvci1yZWpl
Y3QuanMKQEAgLTAsMCArMSwzMyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIs
IDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlz
IGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
LyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHRocm93biB3aGVuIGFjY2Vzc2luZyB0aGUg
aW5zdGFuY2UncyBgdGhlbmAgbWV0aG9kIChyZWplY3RpbmcgUHJvbWlzZSkKK2VzaWQ6IHNlYy1w
cm9taXNlLmFueQoraW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55
KGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDYuIElmIHJlc3VsdCBp
cyBhbiBhYnJ1cHQgY29tcGxldGlvbiwgdGhlbgorICAgIGEuIElmIGl0ZXJhdG9yUmVjb3JkLltb
RG9uZV1dIGlzIGZhbHNlLCBzZXQgcmVzdWx0IHRvIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNv
cmQsIHJlc3VsdCkuCisgICAgYi4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKHJlc3VsdCwgcHJvbWlz
ZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQor
CisgIHIuIFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2Fw
YWJpbGl0eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNd
CitmZWF0dXJlczogW1Byb21pc2UuYW55LCBhcnJvdy1mdW5jdGlvbl0KKy0tLSovCitsZXQgZXJy
b3IgPSBuZXcgVGVzdDI2MkVycm9yKCk7CitsZXQgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgp
OworCitPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgJ3RoZW4nLCB7CisgIGdldCgpIHsK
KyAgICB0aHJvdyBlcnJvcjsKKyAgfQorfSk7CisKK1Byb21pc2UuYW55KFtwcm9taXNlXSkudGhl
bigoKSA9PiB7CisgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3
YXMgcmVzb2x2ZWQnKTsKK30sIChyZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWFz
b24sIGVycm9yKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1vbi1wcm9taXNl
cy1ldmVyeS1pdGVyYXRpb24uanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvaW52b2tlLXRoZW4tb24tcHJvbWlzZXMtZXZlcnktaXRlcmF0aW9uLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJjNjI4MWU1ZDQxZTljNDgzNTU2MmQ0NGVmNDUxNWIyYmUzYTVkYTkKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52
b2tlLXRoZW4tb24tcHJvbWlzZXMtZXZlcnktaXRlcmF0aW9uLmpzCkBAIC0wLDAgKzEsNDEgQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEludm9jYXRpb24g
b2YgdGhlIGluc3RhbmNlJ3MgYHRoZW5gIG1ldGhvZAorZXNpZDogc2VjLXByb21pc2UuYW55Citp
bmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNv
cmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBj
b21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFs
c2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4K
KyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSku
CisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgci4gUGVyZm9y
bSA/IEludm9rZShuZXh0UHJvbWlzZSwgInRoZW4iLCDCqyByZXN1bHRDYXBhYmlsaXR5LltbUmVz
b2x2ZV1dLCByZWplY3RFbGVtZW50IMK7KS4KKworZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBb
UHJvbWlzZS5hbnksIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKworbGV0IHByb21pc2VzID0gWwor
ICBQcm9taXNlLnJlc29sdmUoKSwKKyAgUHJvbWlzZS5yZXNvbHZlKCksCisgIFByb21pc2UucmVz
b2x2ZSgpLAorXTsKK2xldCBjYWxsQ291bnQgPSAwOworCitwcm9taXNlcy5mb3JFYWNoKHByb21p
c2UgPT4geworICBsZXQgYm91bmRUaGVuID0gcHJvbWlzZS50aGVuLmJpbmQocHJvbWlzZSk7Cisg
IHByb21pc2UudGhlbiA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVl
KHRoaXMsIHByb21pc2VzW2NhbGxDb3VudF0pOworICAgIGNhbGxDb3VudCArPSAxOworICAgIHJl
dHVybiBib3VuZFRoZW4oLi4uYXJncyk7CisgIH07Cit9KTsKKworUHJvbWlzZS5hbnkocHJvbWlz
ZXMpCisgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbENvdW50LCAz
LCAnYHRoZW5gIGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0ZWQgdmFsdWUnKTsKKyAgICB9
LCAkRE9ORSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLmpzIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ4ZWQ2ZjkwMDhiYTBkZGYwZjA3NmUxNjFiMzExZGU1OWFjNzY2ZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRo
ZW4uanMKQEAgLTAsMCArMSwzNCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJh
bm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRo
ZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZGVzY3Jp
cHRpb246ID4KKyAgSW52b2NhdGlvbiBvZiB0aGUgaW5zdGFuY2UncyBgdGhlbmAgbWV0aG9kCitl
c2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3Jt
UHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICA2LiBJ
ZiByZXN1bHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHRoZW4KKyAgICBhLiBJZiBpdGVyYXRv
clJlY29yZC5bW0RvbmVdXSBpcyBmYWxzZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRvckNsb3NlKGl0
ZXJhdG9yUmVjb3JkLCByZXN1bHQpLgorICAgIGIuIElmQWJydXB0UmVqZWN0UHJvbWlzZShyZXN1
bHQsIHByb21pc2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVBy
b21pc2VBbnkKKworICByLiBQZXJmb3JtID8gSW52b2tlKG5leHRQcm9taXNlLCAidGhlbiIsIMKr
IHJlc3VsdENhcGFiaWxpdHkuW1tSZXNvbHZlXV0sIHJlamVjdEVsZW1lbnQgwrspLgorCitmbGFn
czogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0q
LworCitsZXQgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOworbGV0IGJvdW5kVGhlbiA9IHBy
b21pc2UudGhlbi5iaW5kKHByb21pc2UpOworCitwcm9taXNlLnRoZW4gPSBmdW5jdGlvbihyZXNv
bHZlciwgcmVqZWN0RWxlbWVudCkgeworICBhc3NlcnQuc2FtZVZhbHVlKHRoaXMsIHByb21pc2Up
OworICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiByZXNvbHZlciwgJ2Z1bmN0aW9uJyk7CisgIGFz
c2VydC5zYW1lVmFsdWUocmVzb2x2ZXIubGVuZ3RoLCAxLCAncmVzb2x2ZXIubGVuZ3RoIGlzIDEn
KTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgcmVqZWN0RWxlbWVudCwgJ2Z1bmN0aW9uJyk7
CisgIGFzc2VydC5zYW1lVmFsdWUocmVqZWN0RWxlbWVudC5sZW5ndGgsIDEsICdyZWplY3RFbGVt
ZW50Lmxlbmd0aCBpcyAwJyk7CisgIHJldHVybiBib3VuZFRoZW4ocmVzb2x2ZXIsIHJlamVjdEVs
ZW1lbnQpOworfTsKKworUHJvbWlzZS5hbnkoW3Byb21pc2VdKS50aGVuKCgpID0+ICRET05FKCks
ICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9pcy1mdW5jdGlvbi5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9pcy1mdW5jdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTViN2M3Y2RmZmYyOWY0ZDYz
MmQzMDk1Y2FiMTEzODdkNWU3MDdlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2lzLWZ1bmN0aW9uLmpzCkBAIC0wLDAgKzEsMTAg
QEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVz
Y3JpcHRpb246IFByb21pc2UuYW55IGlzIGNhbGxhYmxlCitmZWF0dXJlczogW1Byb21pc2UuYW55
XQorLS0tKi8KKworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgUHJvbWlzZS5hbnksICdmdW5jdGlv
bicpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2l0ZXItYXJnLWlzLWVtcHR5LWl0ZXJhYmxlLXJlamVjdC5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1lbXB0eS1pdGVyYWJsZS1y
ZWplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRmYjNjYWUxZGQ0YzZhOWQ3NTUyNjljMDQ2NmJjMGJiN2Fl
M2M0OAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9pdGVyLWFyZy1pcy1lbXB0eS1pdGVyYWJsZS1yZWplY3QuanMKQEAgLTAsMCAr
MSwzOSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55
CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueShbXSkgcmVqZWN0cyB3aXRoIEFnZ3JlZ2F0
ZUVycm9yLCBlbXB0eSBlcnJvcnMgYXJyYXkuCitpbmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNz
OiBQZXJmb3JtUHJvbWlzZUFueSAoIGl0ZXJhdG9yUmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0
Q2FwYWJpbGl0eSApCisKKyAgLi4uCisgIDMuIExldCBlcnJvcnMgYmUgYSBuZXcgZW1wdHkgTGlz
dC4KKyAgLi4uCisgIDguIFJlcGVhdCwKKyAgICBhLiBMZXQgbmV4dCBiZSBJdGVyYXRvclN0ZXAo
aXRlcmF0b3JSZWNvcmQpLgorICAgIGIuIElmIG5leHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24s
IHNldCBpdGVyYXRvclJlY29yZC5bW0RvbmVdXSB0byB0cnVlLgorICAgIGMuIFJldHVybklmQWJy
dXB0KG5leHQpLgorICAgIGQuIElmIG5leHQgaXMgZmFsc2UsIHRoZW4KKyAgICAgIGkuIFNldCBp
dGVyYXRvclJlY29yZC5bW0RvbmVdXSB0byB0cnVlLgorICAgICAgaWkuIFNldCByZW1haW5pbmdF
bGVtZW50c0NvdW50LltbVmFsdWVdXSB0byByZW1haW5pbmdFbGVtZW50c0NvdW50LltbVmFsdWVd
XSAtIDEuCisgICAgICBpaWkuIElmIHJlbWFpbmluZ0VsZW1lbnRzQ291bnQuW1tWYWx1ZV1dIGlz
IDAsIHRoZW4KKyAgICAgICAgMS4gTGV0IGVycm9yIGJlIGEgbmV3bHkgY3JlYXRlZCBBZ2dyZWdh
dGVFcnJvciBvYmplY3QuCisgICAgICAgIDIuIFNldCBlcnJvci5bW0FnZ3JlZ2F0ZUVycm9yc11d
IHRvIGVycm9ycy4KKyAgICAgICAgMy4gUmV0dXJuIFRocm93Q29tcGxldGlvbihlcnJvcikuCisg
IC4uLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtBZ2dyZWdhdGVFcnJvciwgUHJvbWlz
ZS5hbnksIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKworUHJvbWlzZS5hbnkoW10pCisgIC50aGVu
KAorICAgICgpID0+ICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3
YXMgcmVzb2x2ZWQnKSwKKyAgICBlcnJvciA9PiB7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKE9i
amVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIEFnZ3JlZ2F0ZUVycm9yLnByb3RvdHlwZSk7Cisg
ICAgICBhc3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBBZ2dyZWdhdGVFcnJvcik7CisgICAgICBhc3Nl
cnQuc2FtZVZhbHVlKGVycm9yLmVycm9ycy5sZW5ndGgsIDApOworICAgIH0KKyAgKS50aGVuKCRE
T05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaXRlci1hcmctaXMtZW1wdHktc3RyaW5nLXJlamVjdC5qcyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1lbXB0eS1zdHJp
bmctcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiM2UzMTk3NjZjZGIzMjZlMDdkYjNhNGIwMWEyMmY3
Y2I1OWI4YzQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtZW1wdHktc3RyaW5nLXJlamVjdC5qcwpAQCAtMCww
ICsxLDM5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55
CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueSgnJykgcmVqZWN0cyB3aXRoIEFnZ3JlZ2F0
ZUVycm9yLCBlbXB0eSBlcnJvcnMgYXJyYXkuCitpbmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNz
OiBQZXJmb3JtUHJvbWlzZUFueSAoIGl0ZXJhdG9yUmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0
Q2FwYWJpbGl0eSApCisKKyAgLi4uCisgIDMuIExldCBlcnJvcnMgYmUgYSBuZXcgZW1wdHkgTGlz
dC4KKyAgLi4uCisgIDguIFJlcGVhdCwKKyAgICBhLiBMZXQgbmV4dCBiZSBJdGVyYXRvclN0ZXAo
aXRlcmF0b3JSZWNvcmQpLgorICAgIGIuIElmIG5leHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24s
IHNldCBpdGVyYXRvclJlY29yZC5bW0RvbmVdXSB0byB0cnVlLgorICAgIGMuIFJldHVybklmQWJy
dXB0KG5leHQpLgorICAgIGQuIElmIG5leHQgaXMgZmFsc2UsIHRoZW4KKyAgICAgIGkuIFNldCBp
dGVyYXRvclJlY29yZC5bW0RvbmVdXSB0byB0cnVlLgorICAgICAgaWkuIFNldCByZW1haW5pbmdF
bGVtZW50c0NvdW50LltbVmFsdWVdXSB0byByZW1haW5pbmdFbGVtZW50c0NvdW50LltbVmFsdWVd
XSAtIDEuCisgICAgICBpaWkuIElmIHJlbWFpbmluZ0VsZW1lbnRzQ291bnQuW1tWYWx1ZV1dIGlz
IDAsIHRoZW4KKyAgICAgICAgMS4gTGV0IGVycm9yIGJlIGEgbmV3bHkgY3JlYXRlZCBBZ2dyZWdh
dGVFcnJvciBvYmplY3QuCisgICAgICAgIDIuIFNldCBlcnJvci5bW0FnZ3JlZ2F0ZUVycm9yc11d
IHRvIGVycm9ycy4KKyAgICAgICAgMy4gUmV0dXJuIFRocm93Q29tcGxldGlvbihlcnJvcikuCisg
IC4uLgorCitmZWF0dXJlczogW0FnZ3JlZ2F0ZUVycm9yLCBQcm9taXNlLmFueSwgYXJyb3ctZnVu
Y3Rpb25dCitmbGFnczogW2FzeW5jXQorLS0tKi8KKworUHJvbWlzZS5hbnkoJycpCisgIC50aGVu
KAorICAgICgpID0+ICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3
YXMgcmVzb2x2ZWQnKSwKKyAgICBlcnJvciA9PiB7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKE9i
amVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIEFnZ3JlZ2F0ZUVycm9yLnByb3RvdHlwZSk7Cisg
ICAgICBhc3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBBZ2dyZWdhdGVFcnJvcik7CisgICAgICBhc3Nl
cnQuc2FtZVZhbHVlKGVycm9yLmVycm9ycy5sZW5ndGgsIDApOworICAgIH0KKyAgKS50aGVuKCRE
T05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaXRlci1hcmctaXMtZmFsc2UtcmVqZWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLWZhbHNlLXJlamVjdC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kOWNhMDBlN2QzMzBmOGY2NGM3MmM5NDA3NGViY2MwNTUxMDg0MWE4Ci0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2l0ZXItYXJnLWlzLWZhbHNlLXJlamVjdC5qcwpAQCAtMCwwICsxLDM2IEBACisvLyBDb3B5cmln
aHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlz
IGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiA+Cisg
IFByb21pc2UuYW55KGZhbHNlKSByZWplY3RzIHdpdGggVHlwZUVycm9yLgoraW5mbzogfAorICBQ
cm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgMy4gTGV0IGl0ZXJhdG9yUmVjb3Jk
IGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0
ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgICNzZWMtZ2V0aXRl
cmF0b3IKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQgWyAsIG1ldGhvZCBdIF0gKQorCisg
IC4uLgorICBMZXQgaXRlcmF0b3IgYmUgPyBDYWxsKG1ldGhvZCwgb2JqKS4KKyAgSWYgVHlwZShp
dGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAu
Li4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5
IHsKKyAgUHJvbWlzZS5hbnkoZmFsc2UpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgJERPTkUoJ1Ro
ZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyByZXNvbHZlZCcpOworICB9LCBm
dW5jdGlvbihlcnJvcikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoT2JqZWN0LmdldFByb3RvdHlw
ZU9mKGVycm9yKSwgVHlwZUVycm9yLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGVycm9yIGluc3Rh
bmNlb2YgVHlwZUVycm9yKTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOworfSBjYXRjaCAoZXJy
b3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHRocmV3
IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWApOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLW51bGwtcmVq
ZWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXIt
YXJnLWlzLW51bGwtcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmYWQxZmJlNjYzZjEyNGUzMWQ3Mzk4
ODE4MjU3YTM5ZGE5YjIxOGQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtbnVsbC1yZWplY3QuanMKQEAgLTAs
MCArMSwzNiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5z
ZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2Uu
YW55CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueShudWxsKSByZWplY3RzIHdpdGggVHlw
ZUVycm9yLgoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAg
My4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZB
YnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisg
IC4uLgorCisgICNzZWMtZ2V0aXRlcmF0b3IKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQg
WyAsIG1ldGhvZCBdIF0gKQorCisgIC4uLgorICBMZXQgaXRlcmF0b3IgYmUgPyBDYWxsKG1ldGhv
ZCwgb2JqKS4KKyAgSWYgVHlwZShpdGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBl
RXJyb3IgZXhjZXB0aW9uLgorICAuLi4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCitmbGFnczog
W2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnkobnVsbCkudGhlbihmdW5jdGlv
bigpIHsKKyAgICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2Fz
IHJlc29sdmVkJyk7CisgIH0sIGZ1bmN0aW9uKGVycm9yKSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1
ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YoZXJyb3IpLCBUeXBlRXJyb3IucHJvdG90eXBlKTsKKyAg
ICBhc3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOworICB9KS50aGVuKCRET05FLCAk
RE9ORSk7Cit9IGNhdGNoIChlcnJvcikgeworICAkRE9ORShgVGhlIHByb21pc2Ugc2hvdWxkIGJl
IHJlamVjdGVkLCBidXQgdGhyZXcgYW4gZXhjZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aXRlci1hcmctaXMtbnVtYmVyLXJlamVjdC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1udW1iZXItcmVqZWN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJlMDk2NTdiOGRlNGY4NGRlMDcxMWQ3OWQyZGM0OWU5OTcwZWZmZWYKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmct
aXMtbnVtYmVyLXJlamVjdC5qcwpAQCAtMCwwICsxLDM2IEBACisvLyBDb3B5cmlnaHQgKEMpIDIw
MTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK
Ky8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiA+CisgIFByb21pc2Uu
YW55KG51bWJlcikgcmVqZWN0cyB3aXRoIFR5cGVFcnJvci4KK2luZm86IHwKKyAgUHJvbWlzZS5h
bnkgKCBpdGVyYWJsZSApCisKKyAgLi4uCisgIDMuIExldCBpdGVyYXRvclJlY29yZCBiZSBHZXRJ
dGVyYXRvcihpdGVyYWJsZSkuCisgIDQuIElmQWJydXB0UmVqZWN0UHJvbWlzZShpdGVyYXRvclJl
Y29yZCwgcHJvbWlzZUNhcGFiaWxpdHkpLgorICAuLi4KKworICAjc2VjLWdldGl0ZXJhdG9yCisg
IEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAg
TGV0IGl0ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIElmIFR5cGUoaXRlcmF0b3Ip
IGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgLi4uCitmZWF0
dXJlczogW1Byb21pc2UuYW55XQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3RyeSB7CisgIFBy
b21pc2UuYW55KDEpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgJERPTkUoJ1RoZSBwcm9taXNlIHNo
b3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyByZXNvbHZlZCcpOworICB9LCBmdW5jdGlvbihlcnJv
cikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwg
VHlwZUVycm9yLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVy
cm9yKTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERP
TkUoYFRoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlv
bjogJHtlcnJvci5tZXNzYWdlfWApOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXBvaXNvbmVkLmpzIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXBvaXNvbmVk
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3OWNhNzg4Zjk3MjIyNzZlOWE4MjQ3MmI1OWQ5YWRkYTk5NWIyNDIK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlz
ZS9hbnkvaXRlci1hcmctaXMtcG9pc29uZWQuanMKQEAgLTAsMCArMSw0MiBAQAorLy8gQ29weXJp
Z2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhp
cyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogPgor
ICBQcm9taXNlLmFueShwb2lzb25lZCBpdGVyYWJsZSkgcmVqZWN0cyB3aXRoIHdoYXRldmVyIGVy
cm9yIGlzIHRocm93bi4KK2luZm86IHwKKyAgUHJvbWlzZS5hbnkgKCBpdGVyYWJsZSApCisKKyAg
Li4uCisgIDMuIExldCBpdGVyYXRvclJlY29yZCBiZSBHZXRJdGVyYXRvcihpdGVyYWJsZSkuCisg
IDQuIElmQWJydXB0UmVqZWN0UHJvbWlzZShpdGVyYXRvclJlY29yZCwgcHJvbWlzZUNhcGFiaWxp
dHkpLgorICAuLi4KKworICAjc2VjLWdldGl0ZXJhdG9yCisgIEdldEl0ZXJhdG9yICggb2JqIFsg
LCBoaW50IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgTGV0IGl0ZXJhdG9yIGJlID8gQ2Fs
bChtZXRob2QsIG9iaikuCisgIC4uLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgU3ltYm9sLCBT
eW1ib2wuaXRlcmF0b3IsIGFycm93LWZ1bmN0aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisK
K3ZhciBwb2lzb24gPSBbXTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShwb2lzb24sIFN5bWJvbC5p
dGVyYXRvciwgeworICBnZXQoKSB7CisgICAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigpOworICB9
Cit9KTsKKwordHJ5IHsKKyAgUHJvbWlzZS5hbnkocG9pc29uKS50aGVuKCgpID0+IHsKKyAgICAk
RE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7
CisgIH0sIChlcnJvcikgPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUoT2JqZWN0LmdldFByb3Rv
dHlwZU9mKGVycm9yKSwgVGVzdDI2MkVycm9yLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGVycm9y
IGluc3RhbmNlb2YgVGVzdDI2MkVycm9yKTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOworfSBj
YXRjaCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwg
YnV0IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWApOworfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlz
LXN0cmluZy1yZXNvbHZlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L2l0ZXItYXJnLWlzLXN0cmluZy1yZXNvbHZlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNTUzZWE5
Nzc0NzJhMDJmNzVmOWJhMWIyNThjZDNlN2Q0ZGJiMWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtc3RyaW5n
LXJlc29sdmUuanMKQEAgLTAsMCArMSwzNiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdl
eSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQor
ZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueSgnbm9u
LWVtcHR5LXN0cmluZycpIHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUg
bm9uLWVtcHR5IHN0cmluZworaW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKwor
ICAuLi4KKyAgMy4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4K
KyAgNC4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJp
bGl0eSkuCisgIC4uLgorCisgICNzZWMtZ2V0aXRlcmF0b3IKKyAgR2V0SXRlcmF0b3IgKCBvYmog
WyAsIGhpbnQgWyAsIG1ldGhvZCBdIF0gKQorCisgIC4uLgorICBMZXQgaXRlcmF0b3IgYmUgPyBD
YWxsKG1ldGhvZCwgb2JqKS4KKyAgSWYgVHlwZShpdGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhy
b3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAuLi4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnks
IGFycm93LWZ1bmN0aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3RyeSB7CisgIFByb21p
c2UuYW55KCd4eXonKS50aGVuKHYgPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUodiwgJ3gnKTsK
KyAgICBhc3NlcnQuc2FtZVZhbHVlKHYubGVuZ3RoLCAxKTsKKyAgfSwgZXJyb3IgPT4geworICAg
ICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVzb2x2ZWQsIGJ1dCB3YXMgcmVqZWN0ZWQg
d2l0aCBlcnJvcjogJHtlcnJvci5tZXNzYWdlfWApOworICB9KS50aGVuKCRET05FLCAkRE9ORSk7
Cit9IGNhdGNoIChlcnJvcikgeworICAkRE9ORShgVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlc29s
dmVkLCBidXQgdGhyZXcgYW4gZXhjZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1h
cmctaXMtc3ltYm9sLXJlamVjdC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9pdGVyLWFyZy1pcy1zeW1ib2wtcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjYzk2
ZjE1M2MxMmMzMGMwYzhkZGY3OGY2NTQ1YjY2NzA3MDIyYzgKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtc3lt
Ym9sLXJlamVjdC5qcwpAQCAtMCwwICsxLDQ5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2Vy
Z2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
Citlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiA+CisgIFByb21pc2UuYW55KFN5
bWJvbCgpKSByZWplY3RzIHdpdGggVHlwZUVycm9yLgoraW5mbzogfAorICBQcm9taXNlLmFueSAo
IGl0ZXJhYmxlICkKKworICAuLi4KKyAgMy4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJh
dG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3Jk
LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBo
aW50IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVz
ZW50LCB0aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAg
Yi4gT3RoZXJ3aXNlLCBzZXQgbWV0aG9kIHRvID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvciku
CisgIDQuIExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBl
KGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisg
IC4uLgorCisgIEdldE1ldGhvZAorCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAg
My4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQu
CisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4
Y2VwdGlvbi4KKworICBDYWxsICggRiwgViBbICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJ
ZiBJc0NhbGxhYmxlKEYpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitm
ZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2xdCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwor
dHJ5IHsKKyAgUHJvbWlzZS5hbnkoU3ltYm9sKCkpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgJERP
TkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyByZXNvbHZlZCcpOwor
ICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoT2JqZWN0LmdldFBy
b3RvdHlwZU9mKGVycm9yKSwgVHlwZUVycm9yLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGVycm9y
IGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOworfSBjYXRj
aCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0
IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWApOworfQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXRy
dWUtcmVqZWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2l0ZXItYXJnLWlzLXRydWUtcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2NzhkYjZjNDlkMWMwMDgx
Y2I4NzFhOGQ1OTJhYmFmMmU2YWUyMTUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtdHJ1ZS1yZWplY3QuanMK
QEAgLTAsMCArMSw0OSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0Qg
bGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXBy
b21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueSh0cnVlKSByZWplY3RzIHdp
dGggVHlwZUVycm9yLgoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAu
Li4KKyAgMy4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAg
NC4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0
eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBd
ICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0aGVuCisgICAgYS4g
SWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAgYi4gT3RoZXJ3aXNlLCBzZXQg
bWV0aG9kIHRvID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvcikuCisgIDQuIExldCBpdGVyYXRv
ciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBlKGl0ZXJhdG9yKSBpcyBub3Qg
T2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIC4uLgorCisgIEdldE1ldGhv
ZAorCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRo
ZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElzQ2FsbGFi
bGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKworICBDYWxs
ICggRiwgViBbICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJZiBJc0NhbGxhYmxlKEYpIGlz
IGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0dXJlczogW1Byb21pc2Uu
YW55XQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3RyeSB7CisgIFByb21pc2UuYW55KHRydWUp
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWpl
Y3RlZCwgYnV0IHdhcyByZXNvbHZlZCcpOworICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgIGFz
c2VydC5zYW1lVmFsdWUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwgVHlwZUVycm9yLnBy
b3RvdHlwZSk7CisgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgfSku
dGhlbigkRE9ORSwgJERPTkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9t
aXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5t
ZXNzYWdlfWApOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXVuZGVmaW5lZC1yZWplY3QuanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtdW5kZWZpbmVkLXJl
amVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MjI0OTUzZjliYTQxODg0ZTg0YTcwMWJjNzYwZmViOTU1NDUy
M2NiCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1By
b21pc2UvYW55L2l0ZXItYXJnLWlzLXVuZGVmaW5lZC1yZWplY3QuanMKQEAgLTAsMCArMSw0OSBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNj
cmlwdGlvbjogPgorICBQcm9taXNlLmFueSh1bmRlZmluZWQpIHJlamVjdHMgd2l0aCBUeXBlRXJy
b3IuCitpbmZvOiB8CisgIFByb21pc2UuYW55ICggaXRlcmFibGUgKQorCisgIC4uLgorICAzLiBM
ZXQgaXRlcmF0b3JSZWNvcmQgYmUgR2V0SXRlcmF0b3IoaXRlcmFibGUpLgorICA0LiBJZkFicnVw
dFJlamVjdFByb21pc2UoaXRlcmF0b3JSZWNvcmQsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgLi4u
CisKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQgWyAsIG1ldGhvZCBdIF0gKQorCisgIC4u
LgorICAzLiBJZiBtZXRob2QgaXMgbm90IHByZXNlbnQsIHRoZW4KKyAgICBhLiBJZiBoaW50IGlz
IGFzeW5jLCB0aGVuCisgICAgICAuLi4KKyAgICBiLiBPdGhlcndpc2UsIHNldCBtZXRob2QgdG8g
PyBHZXRNZXRob2Qob2JqLCBAQGl0ZXJhdG9yKS4KKyAgNC4gTGV0IGl0ZXJhdG9yIGJlID8gQ2Fs
bChtZXRob2QsIG9iaikuCisgIDUuIElmIFR5cGUoaXRlcmF0b3IpIGlzIG5vdCBPYmplY3QsIHRo
cm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgLi4uCisKKyAgR2V0TWV0aG9kCisKKyAgMi4g
TGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgorICAzLiBJZiBmdW5jIGlzIGVpdGhlciB1bmRlZmlu
ZWQgb3IgbnVsbCwgcmV0dXJuIHVuZGVmaW5lZC4KKyAgNC4gSWYgSXNDYWxsYWJsZShmdW5jKSBp
cyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorCisgIENhbGwgKCBGLCBWIFsg
LCBhcmd1bWVudHNMaXN0IF0gKQorCisgIDIuIElmIElzQ2FsbGFibGUoRikgaXMgZmFsc2UsIHRo
cm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCitmbGFn
czogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnkodW5kZWZpbmVkKS50aGVu
KGZ1bmN0aW9uKCkgeworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQs
IGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBhc3NlcnQu
c2FtZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5cGVFcnJvci5wcm90b3R5
cGUpOworICAgIGFzc2VydChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgIH0pLnRoZW4o
JERPTkUsICRET05FKTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICRET05FKGBUaGUgcHJvbWlzZSBz
aG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246ICR7ZXJyb3IubWVzc2Fn
ZX1gKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9pdGVyLWFzc2lnbmVkLWZhbHNlLXJlamVjdC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLWZhbHNlLXJlamVjdC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ZTZlMzJhMjEzOGE0Y2U0NTA5NzdjYWVjOWI5MjlmNjVhZGY1NGUzCi0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2l0ZXItYXNzaWduZWQtZmFsc2UtcmVqZWN0LmpzCkBAIC0wLDAgKzEsNTMgQEAKKy8vIENvcHly
aWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3JpcHRpb246ID4K
KyAgUmVqZWN0IHdoZW4gYXJndW1lbnQncyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkgaGFzIHRo
ZSB2YWx1ZSBmYWxzZQoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAu
Li4KKyAgNC4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAg
NS4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0
eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBd
ICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0aGVuCisgICAgYS4g
SWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgaS4gU2V0IG1ldGhvZCB0byA/IEdldE1ldGhv
ZChvYmosIEBAYXN5bmNJdGVyYXRvcikuCisgICAgICBpaS4gSWYgbWV0aG9kIGlzIHVuZGVmaW5l
ZCwgdGhlbgorICAgICAgICAxLiBMZXQgc3luY01ldGhvZCBiZSA/IEdldE1ldGhvZChvYmosIEBA
aXRlcmF0b3IpLgorICAgICAgICAyLiBMZXQgc3luY0l0ZXJhdG9yUmVjb3JkIGJlID8gR2V0SXRl
cmF0b3Iob2JqLCBzeW5jLCBzeW5jTWV0aG9kKS4KKyAgICAgICAgLi4uCisgIDQuIExldCBpdGVy
YXRvciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICAuLi4KKworICBHZXRNZXRob2QKKworICAy
LiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCisgIDMuIElmIGZ1bmMgaXMgZWl0aGVyIHVuZGVm
aW5lZCBvciBudWxsLCByZXR1cm4gdW5kZWZpbmVkLgorICA0LiBJZiBJc0NhbGxhYmxlKGZ1bmMp
IGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisKKyAgQ2FsbCAoIEYsIFYg
WyAsIGFyZ3VtZW50c0xpc3QgXSApCisKKyAgMi4gSWYgSXNDYWxsYWJsZShGKSBpcyBmYWxzZSwg
dGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgU3lt
Ym9sLml0ZXJhdG9yLCBTeW1ib2wsIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzXQorZmxhZ3M6IFth
c3luY10KKy0tLSovCisKK3RyeSB7CisgIFByb21pc2UuYW55KHsKKyAgICBbU3ltYm9sLml0ZXJh
dG9yXTogZmFsc2UKKyAgfSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAkRE9ORSgnVGhlIHByb21p
c2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7CisgIH0sIGZ1bmN0aW9u
KGVycm9yKSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YoZXJy
b3IpLCBUeXBlRXJyb3IucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBU
eXBlRXJyb3IpOworICB9KS50aGVuKCRET05FLCAkRE9ORSk7Cit9IGNhdGNoIChlcnJvcikgewor
ICAkRE9ORShgVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgdGhyZXcgYW4gZXhj
ZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1udWxsLXJlamVjdC5q
cyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2ln
bmVkLW51bGwtcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZTliMThhZDU1MDFiZTFhMWI1ZWZiMGQy
Mjg5NThkZWI4OGFiMzYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1udWxsLXJlamVjdC5qcwpAQCAtMCww
ICsxLDUxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5h
bnkKK2Rlc2NyaXB0aW9uOiA+CisgIFJlamVjdCB3aGVuIGFyZ3VtZW50J3MgU3ltYm9sLml0ZXJh
dG9yIHByb3BlcnR5IGhhcyB0aGUgdmFsdWUgbnVsbAoraW5mbzogfAorICBQcm9taXNlLmFueSAo
IGl0ZXJhYmxlICkKKworICAuLi4KKyAgNC4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJh
dG9yKGl0ZXJhYmxlKS4KKyAgNS4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3Jk
LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBo
aW50IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVz
ZW50LCB0aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAg
Yi4gT3RoZXJ3aXNlLCBzZXQgbWV0aG9kIHRvID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvciku
CisgIDQuIExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBl
KGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisg
IC4uLgorCisgIEdldE1ldGhvZAorCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAg
My4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQu
CisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4
Y2VwdGlvbi4KKworICBDYWxsICggRiwgViBbICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJ
ZiBJc0NhbGxhYmxlKEYpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitm
ZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2wuaXRlcmF0b3IsIFN5bWJvbCwgY29tcHV0ZWQt
cHJvcGVydHktbmFtZXNdCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlz
ZS5hbnkoeworICAgIFtTeW1ib2wuaXRlcmF0b3JdOiBudWxsCisgIH0pLnRoZW4oZnVuY3Rpb24o
KSB7CisgICAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyBy
ZXNvbHZlZCcpOworICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgIGFzc2VydC5zYW1lVmFsdWUo
T2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwgVHlwZUVycm9yLnByb3RvdHlwZSk7CisgICAg
YXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgfSkudGhlbigkRE9ORSwgJERP
TkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3VsZCBiZSBy
ZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWApOworfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0
ZXItYXNzaWduZWQtbnVtYmVyLXJlamVjdC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLW51bWJlci1yZWplY3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGU2MDBiNDI3OGY1OTUzNjIxYTExOTdkNDc4NmM1ZGE3NTRkNzQ1YgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFz
c2lnbmVkLW51bWJlci1yZWplY3QuanMKQEAgLTAsMCArMSw1MSBAQAorLy8gQ29weXJpZ2h0IChD
KSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2Rl
IGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
LgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBSZWpl
Y3Qgd2hlbiBhcmd1bWVudCdzIFN5bWJvbC5pdGVyYXRvciBwcm9wZXJ0eSBoYXMgdGhlIHZhbHVl
IDEKK2luZm86IHwKKyAgUHJvbWlzZS5hbnkgKCBpdGVyYWJsZSApCisKKyAgLi4uCisgIDQuIExl
dCBpdGVyYXRvclJlY29yZCBiZSBHZXRJdGVyYXRvcihpdGVyYWJsZSkuCisgIDUuIElmQWJydXB0
UmVqZWN0UHJvbWlzZShpdGVyYXRvclJlY29yZCwgcHJvbWlzZUNhcGFiaWxpdHkpLgorICAuLi4K
KworICBHZXRJdGVyYXRvciAoIG9iaiBbICwgaGludCBbICwgbWV0aG9kIF0gXSApCisKKyAgLi4u
CisgIDMuIElmIG1ldGhvZCBpcyBub3QgcHJlc2VudCwgdGhlbgorICAgIGEuIElmIGhpbnQgaXMg
YXN5bmMsIHRoZW4KKyAgICAgIC4uLgorICAgIGIuIE90aGVyd2lzZSwgc2V0IG1ldGhvZCB0byA/
IEdldE1ldGhvZChvYmosIEBAaXRlcmF0b3IpLgorICA0LiBMZXQgaXRlcmF0b3IgYmUgPyBDYWxs
KG1ldGhvZCwgb2JqKS4KKyAgNS4gSWYgVHlwZShpdGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhy
b3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAuLi4KKworICBHZXRNZXRob2QKKworICAyLiBM
ZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCisgIDMuIElmIGZ1bmMgaXMgZWl0aGVyIHVuZGVmaW5l
ZCBvciBudWxsLCByZXR1cm4gdW5kZWZpbmVkLgorICA0LiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlz
IGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisKKyAgQ2FsbCAoIEYsIFYgWyAs
IGFyZ3VtZW50c0xpc3QgXSApCisKKyAgMi4gSWYgSXNDYWxsYWJsZShGKSBpcyBmYWxzZSwgdGhy
b3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgU3ltYm9s
Lml0ZXJhdG9yLCBTeW1ib2wsIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzXQorZmxhZ3M6IFthc3lu
Y10KKy0tLSovCisKK3RyeSB7CisgIFByb21pc2UuYW55KHsKKyAgICBbU3ltYm9sLml0ZXJhdG9y
XTogMQorICB9KS50aGVuKGZ1bmN0aW9uKCkgeworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91
bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3Ip
IHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5
cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFzc2VydChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJv
cik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICRET05F
KGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246
ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLXN0cmluZy1yZWplY3QuanMgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1z
dHJpbmctcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMzdlYWNhMzgxYTVkNWM5ZTUyNDIxZDMyNzdj
MjkxZTY5NjA3YmQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1zdHJpbmctcmVqZWN0LmpzCkBAIC0wLDAg
KzEsNTEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFu
eQorZGVzY3JpcHRpb246ID4KKyAgUmVqZWN0IHdoZW4gYXJndW1lbnQncyBTeW1ib2wuaXRlcmF0
b3IgcHJvcGVydHkgaGFzIHRoZSB2YWx1ZSAiIgoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0
ZXJhYmxlICkKKworICAuLi4KKyAgNC4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9y
KGl0ZXJhYmxlKS4KKyAgNS4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBw
cm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50
IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50
LCB0aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAgYi4g
T3RoZXJ3aXNlLCBzZXQgbWV0aG9kIHRvID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvcikuCisg
IDQuIExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBlKGl0
ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIC4u
LgorCisgIEdldE1ldGhvZAorCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4g
SWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisg
IDQuIElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2Vw
dGlvbi4KKworICBDYWxsICggRiwgViBbICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJZiBJ
c0NhbGxhYmxlKEYpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0
dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2wuaXRlcmF0b3IsIFN5bWJvbCwgY29tcHV0ZWQtcHJv
cGVydHktbmFtZXNdCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5h
bnkoeworICAgIFtTeW1ib2wuaXRlcmF0b3JdOiAnJworICB9KS50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2
ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVj
dC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFzc2Vy
dChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsK
K30gY2F0Y2ggKGVycm9yKSB7CisgICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0
ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFz
c2lnbmVkLXN5bWJvbC1yZWplY3QuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1zeW1ib2wtcmVqZWN0LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0
MWFmZDNkNzk2NTQzMDNlOThlMTY3ZWFjN2Y4OWJhOGQxMDFiODgKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25l
ZC1zeW1ib2wtcmVqZWN0LmpzCkBAIC0wLDAgKzEsNTEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAx
OSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKwor
LyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3JpcHRpb246ID4KKyAgUmVqZWN0IHdo
ZW4gYXJndW1lbnQncyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkgaGFzIHRoZSB2YWx1ZSBTeW1i
b2woKQoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgNC4g
TGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNS4gSWZBYnJ1
cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4u
LgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkKKworICAu
Li4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0aGVuCisgICAgYS4gSWYgaGludCBp
cyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAgYi4gT3RoZXJ3aXNlLCBzZXQgbWV0aG9kIHRv
ID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvcikuCisgIDQuIExldCBpdGVyYXRvciBiZSA/IENh
bGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBlKGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0
aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIC4uLgorCisgIEdldE1ldGhvZAorCisgIDIu
IExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZp
bmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykg
aXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKworICBDYWxsICggRiwgViBb
ICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJZiBJc0NhbGxhYmxlKEYpIGlzIGZhbHNlLCB0
aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1i
b2wsIFN5bWJvbC5pdGVyYXRvciwgY29tcHV0ZWQtcHJvcGVydHktbmFtZXNdCitmbGFnczogW2Fz
eW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnkoeworICAgIFtTeW1ib2wuaXRlcmF0
b3JdOiBTeW1ib2woKQorICB9KS50aGVuKGZ1bmN0aW9uKCkgeworICAgICRET05FKCdUaGUgcHJv
bWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgZnVuY3Rp
b24oZXJyb3IpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihl
cnJvciksIFR5cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFzc2VydChlcnJvciBpbnN0YW5jZW9m
IFR5cGVFcnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKK30gY2F0Y2ggKGVycm9yKSB7
CisgICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB0aHJldyBhbiBl
eGNlcHRpb246ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLXRydWUtcmVqZWN0
LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXNz
aWduZWQtdHJ1ZS1yZWplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVlYmIxNTFiZDMxMDA4ZGVjYWFiMDg1
ZDBjMWI4ZjljYmIxYzBiMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLXRydWUtcmVqZWN0LmpzCkBAIC0w
LDAgKzEsNTEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNl
LmFueQorZGVzY3JpcHRpb246ID4KKyAgUmVqZWN0IHdoZW4gYXJndW1lbnQncyBTeW1ib2wuaXRl
cmF0b3IgcHJvcGVydHkgaGFzIHRoZSB2YWx1ZSB0cnVlCitpbmZvOiB8CisgIFByb21pc2UuYW55
ICggaXRlcmFibGUgKQorCisgIC4uLgorICA0LiBMZXQgaXRlcmF0b3JSZWNvcmQgYmUgR2V0SXRl
cmF0b3IoaXRlcmFibGUpLgorICA1LiBJZkFicnVwdFJlamVjdFByb21pc2UoaXRlcmF0b3JSZWNv
cmQsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgLi4uCisKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAs
IGhpbnQgWyAsIG1ldGhvZCBdIF0gKQorCisgIC4uLgorICAzLiBJZiBtZXRob2QgaXMgbm90IHBy
ZXNlbnQsIHRoZW4KKyAgICBhLiBJZiBoaW50IGlzIGFzeW5jLCB0aGVuCisgICAgICAuLi4KKyAg
ICBiLiBPdGhlcndpc2UsIHNldCBtZXRob2QgdG8gPyBHZXRNZXRob2Qob2JqLCBAQGl0ZXJhdG9y
KS4KKyAgNC4gTGV0IGl0ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIDUuIElmIFR5
cGUoaXRlcmF0b3IpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4K
KyAgLi4uCisKKyAgR2V0TWV0aG9kCisKKyAgMi4gTGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgor
ICAzLiBJZiBmdW5jIGlzIGVpdGhlciB1bmRlZmluZWQgb3IgbnVsbCwgcmV0dXJuIHVuZGVmaW5l
ZC4KKyAgNC4gSWYgSXNDYWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgorCisgIENhbGwgKCBGLCBWIFsgLCBhcmd1bWVudHNMaXN0IF0gKQorCisgIDIu
IElmIElzQ2FsbGFibGUoRikgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4K
K2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgU3ltYm9sLCBjb21wdXRl
ZC1wcm9wZXJ0eS1uYW1lc10KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworCit0cnkgeworICBQcm9t
aXNlLmFueSh7CisgICAgW1N5bWJvbC5pdGVyYXRvcl06IHRydWUKKyAgfSkudGhlbihmdW5jdGlv
bigpIHsKKyAgICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2Fz
IHJlc29sdmVkJyk7CisgIH0sIGZ1bmN0aW9uKGVycm9yKSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1
ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YoZXJyb3IpLCBUeXBlRXJyb3IucHJvdG90eXBlKTsKKyAg
ICBhc3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOworICB9KS50aGVuKCRET05FLCAk
RE9ORSk7Cit9IGNhdGNoIChlcnJvcikgeworICAkRE9ORShgVGhlIHByb21pc2Ugc2hvdWxkIGJl
IHJlamVjdGVkLCBidXQgdGhyZXcgYW4gZXhjZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aXRlci1hc3NpZ25lZC11bmRlZmluZWQtcmVqZWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXNzaWduZWQtdW5kZWZpbmVkLXJlamVjdC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMzc2NjkwMTZmZDliNGJmYWYzYjcyYjVkNjY2ZTVlZTdmNWNkMmMyCi0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2l0ZXItYXNzaWduZWQtdW5kZWZpbmVkLXJlamVjdC5qcwpAQCAtMCwwICsxLDUxIEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisv
LyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9u
OiA+CisgIFJlamVjdCB3aGVuIGFyZ3VtZW50J3MgU3ltYm9sLml0ZXJhdG9yIHByb3BlcnR5IGhh
cyB0aGUgdmFsdWUgdW5kZWZpbmVkCitpbmZvOiB8CisgIFByb21pc2UuYW55ICggaXRlcmFibGUg
KQorCisgIC4uLgorICA0LiBMZXQgaXRlcmF0b3JSZWNvcmQgYmUgR2V0SXRlcmF0b3IoaXRlcmFi
bGUpLgorICA1LiBJZkFicnVwdFJlamVjdFByb21pc2UoaXRlcmF0b3JSZWNvcmQsIHByb21pc2VD
YXBhYmlsaXR5KS4KKyAgLi4uCisKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQgWyAsIG1l
dGhvZCBdIF0gKQorCisgIC4uLgorICAzLiBJZiBtZXRob2QgaXMgbm90IHByZXNlbnQsIHRoZW4K
KyAgICBhLiBJZiBoaW50IGlzIGFzeW5jLCB0aGVuCisgICAgICAuLi4KKyAgICBiLiBPdGhlcndp
c2UsIHNldCBtZXRob2QgdG8gPyBHZXRNZXRob2Qob2JqLCBAQGl0ZXJhdG9yKS4KKyAgNC4gTGV0
IGl0ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIDUuIElmIFR5cGUoaXRlcmF0b3Ip
IGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgLi4uCisKKyAg
R2V0TWV0aG9kCisKKyAgMi4gTGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgorICAzLiBJZiBmdW5j
IGlzIGVpdGhlciB1bmRlZmluZWQgb3IgbnVsbCwgcmV0dXJuIHVuZGVmaW5lZC4KKyAgNC4gSWYg
SXNDYWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgor
CisgIENhbGwgKCBGLCBWIFsgLCBhcmd1bWVudHNMaXN0IF0gKQorCisgIDIuIElmIElzQ2FsbGFi
bGUoRikgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBb
UHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgU3ltYm9sLCBjb21wdXRlZC1wcm9wZXJ0eS1u
YW1lc10KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworCit0cnkgeworICBQcm9taXNlLmFueSh7Cisg
ICAgW1N5bWJvbC5pdGVyYXRvcl06IHVuZGVmaW5lZAorICB9KS50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2
ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVj
dC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFzc2Vy
dChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsK
K30gY2F0Y2ggKGVycm9yKSB7CisgICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0
ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLXN0
ZXAtZXJyLW5vLWNsb3NlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L2l0ZXItc3RlcC1lcnItbm8tY2xvc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI5MjQwYjcwNzEy
ZDQyYWQ1MzY2MGYxOGQ0N2ZlODcxNDNlOGI5YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLXN0ZXAtZXJyLW5vLWNsb3Nl
LmpzCkBAIC0wLDAgKzEsNjAgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLCAy
MDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKwor
LyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3JpcHRpb246ID4KKyAgRXJyb3Igd2hl
biBhZHZhbmNpbmcgdGhlIHByb3ZpZGVkIGl0ZXJhYmxlIChub3QgY2xvc2luZyBpdGVyYXRvcikK
K2luZm86IHwKKyAgUHJvbWlzZS5hbnkgKCBpdGVyYWJsZSApCisKKyAgNS4gTGV0IHJlc3VsdCBi
ZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkp
LgorICA2LiBJZiByZXN1bHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHRoZW4KKyAgICBhLiBJ
ZiBpdGVyYXRvclJlY29yZC5bW0RvbmVdXSBpcyBmYWxzZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRv
ckNsb3NlKGl0ZXJhdG9yUmVjb3JkLCByZXN1bHQpLgorICAgIGIuIElmQWJydXB0UmVqZWN0UHJv
bWlzZShyZXN1bHQsIHByb21pc2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczog
UGVyZm9ybVByb21pc2VBbnkKKworICA4LiBSZXBlYXQKKyAgICBhLiBMZXQgbmV4dCBiZSBJdGVy
YXRvclN0ZXAoaXRlcmF0b3JSZWNvcmQpLgorICAgIGIuIElmIG5leHQgaXMgYW4gYWJydXB0IGNv
bXBsZXRpb24sIHNldCBpdGVyYXRvclJlY29yZC5bW2RvbmVdXSB0byB0cnVlLgorICAgIGMuIFJl
dHVybklmQWJydXB0KG5leHQpLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNl
LmFueSwgU3ltYm9sLml0ZXJhdG9yLCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywgU3ltYm9sLCBh
cnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK2xldCByZXR1cm5Db3VudCA9IDA7CitsZXQgcG9pc29u
ZWREb25lID0ge307CitsZXQgZXJyb3IgPSBuZXcgVGVzdDI2MkVycm9yKCk7CitPYmplY3QuZGVm
aW5lUHJvcGVydGllcyhwb2lzb25lZERvbmUsIHsKKyAgZG9uZTogeworICAgIGdldCgpIHsKKyAg
ICAgIHRocm93IGVycm9yOworICAgIH0KKyAgfSwKKyAgdmFsdWU6IHsKKyAgICBnZXQoKSB7fQor
ICB9Cit9KTsKK2xldCBpdGVyU3RlcFRocm93cyA9IHsKKyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7
CisgICAgcmV0dXJuIHsKKyAgICAgIG5leHQoKSB7CisgICAgICAgIHJldHVybiBwb2lzb25lZERv
bmU7CisgICAgICB9LAorICAgICAgcmV0dXJuKCkgeworICAgICAgICByZXR1cm5Db3VudCArPSAx
OworICAgICAgICByZXR1cm4ge307CisgICAgICB9CisgICAgfTsKKyAgfQorfTsKKworUHJvbWlz
ZS5hbnkoaXRlclN0ZXBUaHJvd3MpLnRoZW4oCisgICgpID0+IHsKKyAgJERPTkUoJ1RoZSBwcm9t
aXNlIHNob3VsZCBiZSByZWplY3RlZC4nKTsKK30sIChyZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNh
bWVWYWx1ZShyZWFzb24sIGVycm9yKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZXR1cm5Db3VudCwg
MCk7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1zdGVwLWVyci1yZWplY3QuanMgYi9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1zdGVwLWVyci1yZWpl
Y3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDA2YTJlMDExMWY2MDUwNTBiYjY2OTU4ZjQ0YzQ0YTZmMGY3MThl
NgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9pdGVyLXN0ZXAtZXJyLXJlamVjdC5qcwpAQCAtMCwwICsxLDU2IEBACisvLyBDb3B5
cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkK
K2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHdoZW4gYWR2YW5jaW5nIHRoZSBwcm92aWRlZCBpdGVy
YWJsZSAocmVqZWN0aW5nIHByb21pc2UpCitpbmZvOiB8CisgIFByb21pc2UuYW55ICggaXRlcmFi
bGUgKQorCisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNv
cmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBj
b21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFs
c2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4K
KyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSku
CisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgOC4gUmVwZWF0
CisgICAgYS4gTGV0IG5leHQgYmUgSXRlcmF0b3JTdGVwKGl0ZXJhdG9yUmVjb3JkKS4KKyAgICBi
LiBJZiBuZXh0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCBzZXQgaXRlcmF0b3JSZWNvcmQuW1tk
b25lXV0gdG8gdHJ1ZS4KKyAgICBjLiBSZXR1cm5JZkFicnVwdChuZXh0KS4KKworZmxhZ3M6IFth
c3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgY29tcHV0ZWQt
cHJvcGVydHktbmFtZXMsIFN5bWJvbCwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgcG9p
c29uZWREb25lID0ge307CitsZXQgZXJyb3IgPSBuZXcgVGVzdDI2MkVycm9yKCk7CitPYmplY3Qu
ZGVmaW5lUHJvcGVydGllcyhwb2lzb25lZERvbmUsIHsKKyAgZG9uZTogeworICAgIGdldCgpIHsK
KyAgICAgIHRocm93IGVycm9yOworICAgIH0KKyAgfSwKKyAgdmFsdWU6IHsKKyAgICBnZXQoKSB7
CisgICAgICAkRE9ORSgnVGhlIGB2YWx1ZWAgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBhY2Nlc3Nl
ZC4nKTsKKyAgICB9CisgIH0KK30pOworbGV0IGl0ZXJTdGVwVGhyb3dzID0geworICBbU3ltYm9s
Lml0ZXJhdG9yXSgpIHsKKyAgICByZXR1cm4geworICAgICAgbmV4dCgpIHsKKyAgICAgICAgcmV0
dXJuIHBvaXNvbmVkRG9uZTsKKyAgICAgIH0KKyAgICB9OworICB9Cit9OworCitQcm9taXNlLmFu
eShpdGVyU3RlcFRocm93cykudGhlbigKKyAgKCkgPT4geworICAkRE9ORSgnVGhlIHByb21pc2Ug
c2hvdWxkIGJlIHJlamVjdGVkLicpOworfSwgKHJlYXNvbikgPT4geworICBhc3NlcnQuc2FtZVZh
bHVlKHJlYXNvbiwgZXJyb3IpOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2xlbmd0aC5qcyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9sZW5ndGguanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA0M2E4OGVkZWNlZWUwMTJlNjczMmY5MWFhZmNlMWY0ODU2NzIyZQotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9sZW5n
dGguanMKQEAgLTAsMCArMSwyOCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJh
bm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRo
ZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDog
c2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogUHJvbWlzZS5hbnkgYGxlbmd0aGAgcHJvcGVy
dHkKK2luZm86IHwKKyAgRVMgU2VjdGlvbiAxNzoKKyAgRXZlcnkgYnVpbHQtaW4gRnVuY3Rpb24g
b2JqZWN0LCBpbmNsdWRpbmcgY29uc3RydWN0b3JzLCBoYXMgYSBsZW5ndGgKKyAgcHJvcGVydHkg
d2hvc2UgdmFsdWUgaXMgYW4gaW50ZWdlci4gVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIHRo
aXMgdmFsdWUKKyAgaXMgZXF1YWwgdG8gdGhlIGxhcmdlc3QgbnVtYmVyIG9mIG5hbWVkIGFyZ3Vt
ZW50cyBzaG93biBpbiB0aGUgc3ViY2xhdXNlCisgIGhlYWRpbmdzIGZvciB0aGUgZnVuY3Rpb24g
ZGVzY3JpcHRpb24sIGluY2x1ZGluZyBvcHRpb25hbCBwYXJhbWV0ZXJzLgorCisgIFsuLi5dCisK
KyAgVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIHRoZSBsZW5ndGggcHJvcGVydHkgb2YgYSBi
dWlsdC1pbiBGdW5jdGlvbgorICBvYmplY3QgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgW1tXcml0YWJs
ZV1dOiBmYWxzZSwgW1tFbnVtZXJhYmxlXV06IGZhbHNlLAorICBbW0NvbmZpZ3VyYWJsZV1dOiB0
cnVlIH0uCitpbmNsdWRlczogW3Byb3BlcnR5SGVscGVyLmpzXQorZmVhdHVyZXM6IFtQcm9taXNl
LmFueV0KKy0tLSovCisKK3ZlcmlmeVByb3BlcnR5KFByb21pc2UuYW55LCAnbGVuZ3RoJywgewor
ICBjb25maWd1cmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiBmYWxzZSwKKyAgZW51bWVyYWJsZTog
ZmFsc2UsCisgIHZhbHVlOiAxLAorfSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbmFtZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9uYW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxYTA2NjRlYWViMWIzOGVk
YzhkZTM4MjJmNzc5ZTVjODhhNmZkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbmFtZS5qcwpAQCAtMCwwICsxLDI5IEBACisv
LyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0
aW9uOiBQcm9taXNlLmFueSBgbmFtZWAgcHJvcGVydHkKK2luZm86IHwKKyAgRVMgU2VjdGlvbiAx
NzoKKworICBFdmVyeSBidWlsdC1pbiBGdW5jdGlvbiBvYmplY3QsIGluY2x1ZGluZyBjb25zdHJ1
Y3RvcnMsIHRoYXQgaXMgbm90CisgIGlkZW50aWZpZWQgYXMgYW4gYW5vbnltb3VzIGZ1bmN0aW9u
IGhhcyBhIG5hbWUgcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgYQorICBTdHJpbmcuIFVubGVzcyBv
dGhlcndpc2Ugc3BlY2lmaWVkLCB0aGlzIHZhbHVlIGlzIHRoZSBuYW1lIHRoYXQgaXMgZ2l2ZW4g
dG8KKyAgdGhlIGZ1bmN0aW9uIGluIHRoaXMgc3BlY2lmaWNhdGlvbi4KKworICBbLi4uXQorCisg
IFVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLCB0aGUgbmFtZSBwcm9wZXJ0eSBvZiBhIGJ1aWx0
LWluIEZ1bmN0aW9uCisgIG9iamVjdCwgaWYgaXQgZXhpc3RzLCBoYXMgdGhlIGF0dHJpYnV0ZXMg
eyBbW1dyaXRhYmxlXV06IGZhbHNlLAorICBbW0VudW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmln
dXJhYmxlXV06IHRydWUgfS4KK2luY2x1ZGVzOiBbcHJvcGVydHlIZWxwZXIuanNdCitmZWF0dXJl
czogW1Byb21pc2UuYW55XQorLS0tKi8KKwordmVyaWZ5UHJvcGVydHkoUHJvbWlzZS5hbnksICdu
YW1lJywgeworICBjb25maWd1cmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiBmYWxzZSwKKyAgZW51
bWVyYWJsZTogZmFsc2UsCisgIHZhbHVlOiAnYW55JywKK30pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L25ldy1yZWplY3QtZnVuY3Rpb24u
anMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbmV3LXJlamVj
dC1mdW5jdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzNjYzgyODgyNWQ4YjYyMDI0NmZjOGI1MGNhOGI3
Y2FlYzJjODg4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L25ldy1yZWplY3QtZnVuY3Rpb24uanMKQEAgLTAsMCArMSw1MSBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGlj
ZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXBlcmZv
cm1wcm9taXNlYW55CitkZXNjcmlwdGlvbjogPgorICBFYWNoIFByb21pc2UuYW55IGVsZW1lbnQg
aXMgY2FsbGVkIHdpdGggYSBuZXcgUHJvbWlzZS5hbnkgUmVqZWN0IEVsZW1lbnQgZnVuY3Rpb24u
CitpbmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueSAoIGl0ZXJh
dG9yUmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0Q2FwYWJpbGl0eSApCisKKyAgLi4uCisgIGsu
IExldCByZWplY3RFbGVtZW50IGJlICEgQ3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHN0ZXBzLCDCqyBb
W0FscmVhZHlDYWxsZWRdXSwgW1tJbmRleF1dLCBbW0Vycm9yc11dLCBbW0NhcGFiaWxpdHldXSwg
W1tSZW1haW5pbmdFbGVtZW50c11dIMK7KS4KKyAgLi4uCisgIHIuIFBlcmZvcm0gPyBJbnZva2Uo
bmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0eS5bW1Jlc29sdmVdXSwgcmVq
ZWN0RWxlbWVudCDCuykuCisgIC4uLgorCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8K
KworZnVuY3Rpb24gcmVqZWN0RnVuY3Rpb24oKSB7fQorCitmdW5jdGlvbiBDb25zdHJ1Y3Rvcihl
eGVjdXRvcikgeworICBleGVjdXRvcihyZWplY3RGdW5jdGlvbiwgJEVSUk9SKTsKK30KK0NvbnN0
cnVjdG9yLnJlc29sdmUgPSBmdW5jdGlvbih2KSB7CisgIHJldHVybiB2OworfTsKKwordmFyIGNh
bGxDb3VudDEgPSAwOwordmFyIGNhbGxDb3VudDIgPSAwOwordmFyIHAxT25SZWplY3RlZDsKKwor
dmFyIHAxID0geworICB0aGVuKF8sIG9uUmVqZWN0ZWQpIHsKKyAgICBjYWxsQ291bnQxICs9IDE7
CisgICAgcDFPblJlamVjdGVkID0gb25SZWplY3RlZDsKKyAgICBhc3NlcnQubm90U2FtZVZhbHVl
KG9uUmVqZWN0ZWQsIHJlamVjdEZ1bmN0aW9uLCAncDEudGhlbicpOworICB9Cit9OwordmFyIHAy
ID0geworICB0aGVuKF8sIG9uUmVqZWN0ZWQpIHsKKyAgICBjYWxsQ291bnQyICs9IDE7CisgICAg
YXNzZXJ0Lm5vdFNhbWVWYWx1ZShvblJlamVjdGVkLCByZWplY3RGdW5jdGlvbiwgJ3AyLnRoZW4n
KTsKKyAgICBhc3NlcnQubm90U2FtZVZhbHVlKG9uUmVqZWN0ZWQsIHAxT25SZWplY3RlZCwgJ3Ax
Lm9uUmVqZWN0ZWQgIT0gcDIub25SZWplY3RlZCcpOworICB9Cit9OworCitQcm9taXNlLmFueS5j
YWxsKENvbnN0cnVjdG9yLCBbcDEsIHAyXSk7Cithc3NlcnQuc2FtZVZhbHVlKGNhbGxDb3VudDEs
IDEsICdwMS50aGVuIGNhbGwgY291bnQnKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2FsbENvdW50Miwg
MSwgJ3AyLnRoZW4gY2FsbCBjb3VudCcpOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcHJvcC1kZXNjLmpzIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Byb3AtZGVzYy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjY3
NmE0MGJjMTk4ZTlmMzQ1MTViNzNjNzQ2NTRjZDA1NzMzYjExCi0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Byb3AtZGVzYy5qcwpA
QCAtMCwwICsxLDIxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBs
aWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJv
bWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiBQcm9taXNlLmFueSBwcm9wZXJ0eSBkZXNjcmlwdG9yCitp
bmZvOiB8CisgIEVTIFNlY3Rpb24gMTcKKworICBFdmVyeSBvdGhlciBkYXRhIHByb3BlcnR5IGRl
c2NyaWJlZCBpbiBjbGF1c2VzIDE4IHRocm91Z2ggMjYgYW5kIGluIEFubmV4CisgIEIuMiBoYXMg
dGhlIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiBmYWxz
ZSwKKyAgW1tDb25maWd1cmFibGVdXTogdHJ1ZSB9IHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVk
LgoraW5jbHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnld
CistLS0qLworCit2ZXJpZnlQcm9wZXJ0eShQcm9taXNlLCAnYW55JywgeworICBjb25maWd1cmFi
bGU6IHRydWUsCisgIHdyaXRhYmxlOiB0cnVlLAorICBlbnVtZXJhYmxlOiBmYWxzZSwKK30pOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jl
amVjdC1hbGwtbWl4ZWQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlz
ZS9hbnkvcmVqZWN0LWFsbC1taXhlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTRmNGVlZjE4MmQ3MGFmN2E0
MmFmMGYwNTczY2Y2MzkyNDkxOWU5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1hbGwtbWl4ZWQuanMKQEAgLTAsMCAr
MSwyNiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQor
ZGVzY3JpcHRpb246ID4KKyAgUHJvbWlzZS5hbnkgcmVqZWN0aW9uIHJlYXNvbnMgZnJvbSB2YXJp
b3VzIHJlamVjdGlvbnMgYXJlIGFsbCBwcmVzZW50CitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6
IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgcmVqZWN0aW9ucyA9
IFsKKyAgUHJvbWlzZS5yZWplY3QoJ2EnKSwKKyAgbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4g
cmVqZWN0KCdiJykpLAorICBQcm9taXNlLmFsbChbUHJvbWlzZS5yZWplY3QoJ2MnKV0pLAorICBQ
cm9taXNlLnJlc29sdmUoUHJvbWlzZS5yZWplY3QoJ2QnKSksCitdOworCitQcm9taXNlLmFueShy
ZWplY3Rpb25zKQorICAudGhlbigKKyAgICAoKSA9PiAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxk
IGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyksCisgICAgZXJyb3IgPT4geworICAgICAg
YXNzZXJ0LnNhbWVWYWx1ZShlcnJvci5lcnJvcnMubGVuZ3RoLCByZWplY3Rpb25zLmxlbmd0aCk7
CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKGVycm9yLmVycm9ycy5qb2luKCcnKSwgJ2FiY2QnKTsK
KyAgICB9CisgICkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1kZWZlcnJlZC5qcyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZGVmZXJyZWQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDk2ZmJmZjVmZjU4NTI4MmExY2EyMTVhN2MwM2NiYTEzMzYwZjAwOAotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9yZWplY3QtZGVmZXJyZWQuanMKQEAgLTAsMCArMSwzMSBAQAorLy8gQ29weXJpZ2h0IChDKSAy
MDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3JpcHRpb246
IFJlamVjdGluZyB0aHJvdWdoIGRlZmVycmVkIGludm9jYXRpb24gb2YgdGhlIHByb3ZpZGVkIHJl
c29sdmluZyBmdW5jdGlvbgoraW5mbzogfAorICAuLi4KKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJm
b3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICAu
Li4KKworCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtBZ2dyZWdhdGVFcnJvciwgUHJvbWlz
ZS5hbnksIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKwordmFyIHJlamVjdGlvbiA9IHt9OwordmFy
IHRoZW5hYmxlID0geworICB0aGVuKF8sIHJlamVjdCkgeworICAgIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiByZXNvbHZlKCkpCisgICAgICAudGhlbigoKSA9PiByZWplY3QocmVqZWN0aW9uKSk7
CisgIH0KK307CisKK1Byb21pc2UuYW55KFt0aGVuYWJsZV0pCisgIC50aGVuKCgpID0+IHsKKyAg
ICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLicpOworICB9LCAoYWdncmVn
YXRlKSA9PiB7CisgICAgYXNzZXJ0KGFnZ3JlZ2F0ZSBpbnN0YW5jZW9mIEFnZ3JlZ2F0ZUVycm9y
KTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKGFnZ3JlZ2F0ZS5lcnJvcnMubGVuZ3RoLCAxKTsKKyAg
ICBhc3NlcnQuc2FtZVZhbHVlKGFnZ3JlZ2F0ZS5lcnJvcnNbMF0sIHJlamVjdGlvbik7CisgIH0p
LnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1leHRlbnNpYmxlLmpz
IGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1lbGVt
ZW50LWZ1bmN0aW9uLWV4dGVuc2libGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDMwYmMzNjgzNWIxMDA2YjBl
OWJlMGU3MjQwYjk3ZDA4ZDY1MmJjYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1leHRl
bnNpYmxlLmpzCkBAIC0wLDAgKzEsMjkgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFs
dGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueS1yZWplY3QtZWxlbWVudC1mdW5jdGlv
bnMKK2Rlc2NyaXB0aW9uOiBUaGUgW1tFeHRlbnNpYmxlXV0gc2xvdCBvZiBQcm9taXNlLmFueSBS
ZWplY3QgRWxlbWVudCBmdW5jdGlvbnMKK2luZm86IHwKKyAgMTcgRUNNQVNjcmlwdCBTdGFuZGFy
ZCBCdWlsdC1pbiBPYmplY3RzOgorICAgIFVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlLCB0aGUg
W1tFeHRlbnNpYmxlXV0gaW50ZXJuYWwgc2xvdAorICAgIG9mIGEgYnVpbHQtaW4gb2JqZWN0IGlu
aXRpYWxseSBoYXMgdGhlIHZhbHVlIHRydWUuCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0t
Ki8KKwordmFyIHJlamVjdEVsZW1lbnRGdW5jdGlvbjsKK3ZhciB0aGVuYWJsZSA9IHsKKyAgdGhl
bihfLCByZWplY3QpIHsKKyAgICByZWplY3RFbGVtZW50RnVuY3Rpb24gPSByZWplY3Q7CisgIH0K
K307CisKK2Z1bmN0aW9uIE5vdFByb21pc2UoZXhlY3V0b3IpIHsKKyAgZXhlY3V0b3IoZnVuY3Rp
b24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7Cit9CitOb3RQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlv
bih2KSB7CisgIHJldHVybiB2OworfTsKK1Byb21pc2UuYW55LmNhbGwoTm90UHJvbWlzZSwgW3Ro
ZW5hYmxlXSk7CisKK2Fzc2VydChPYmplY3QuaXNFeHRlbnNpYmxlKHJlamVjdEVsZW1lbnRGdW5j
dGlvbikpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLWxlbmd0aC5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1sZW5n
dGguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTU0MzdmZjczYzg4NmQxMWE2ZTg0MmNiYTJiNzNlMDc2YmY0OTNj
MgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1sZW5ndGguanMKQEAgLTAsMCArMSw0MCBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0Qg
bGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXBy
b21pc2UuYW55LXJlamVjdC1lbGVtZW50LWZ1bmN0aW9ucworZGVzY3JpcHRpb246IFRoZSBgbGVu
Z3RoYCBwcm9wZXJ0eSBvZiBQcm9taXNlLmFueSBSZWplY3QgRWxlbWVudCBmdW5jdGlvbnMKK2lu
Zm86IHwKKyAgVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBhIFByb21pc2UuYW55IFJlamVjdCBFbGVt
ZW50IGZ1bmN0aW9uIGlzIDEuCisKKyAgMTcgRUNNQVNjcmlwdCBTdGFuZGFyZCBCdWlsdC1pbiBP
YmplY3RzOgorICAgIFVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLCB0aGUgbGVuZ3RoIHByb3Bl
cnR5IG9mIGEgYnVpbHQtaW4gRnVuY3Rpb24KKyAgICBvYmplY3QgaGFzIHRoZSBhdHRyaWJ1dGVz
IHsgW1tXcml0YWJsZV1dOiBmYWxzZSwgW1tFbnVtZXJhYmxlXV06IGZhbHNlLAorICAgIFtbQ29u
ZmlndXJhYmxlXV06IHRydWUgfS4KK2luY2x1ZGVzOiBbcHJvcGVydHlIZWxwZXIuanNdCitmZWF0
dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8KKwordmFyIHJlamVjdEVsZW1lbnRGdW5jdGlvbjsK
K3ZhciB0aGVuYWJsZSA9IHsKKyAgdGhlbihfLCByZWplY3QpIHsKKyAgICByZWplY3RFbGVtZW50
RnVuY3Rpb24gPSByZWplY3Q7CisgIH0KK307CisKK2Z1bmN0aW9uIE5vdFByb21pc2UoZXhlY3V0
b3IpIHsKKyAgZXhlY3V0b3IoZnVuY3Rpb24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7Cit9CitOb3RQ
cm9taXNlLnJlc29sdmUgPSBmdW5jdGlvbih2KSB7CisgIHJldHVybiB2OworfTsKK1Byb21pc2Uu
YW55LmNhbGwoTm90UHJvbWlzZSwgW3RoZW5hYmxlXSk7CisKK2Fzc2VydC5zYW1lVmFsdWUocmVq
ZWN0RWxlbWVudEZ1bmN0aW9uLmxlbmd0aCwgMSk7CisKK3ZlcmlmeVByb3BlcnR5KHJlamVjdEVs
ZW1lbnRGdW5jdGlvbiwgJ2xlbmd0aCcsIHsKKyAgdmFsdWU6IDEsCisgIGVudW1lcmFibGU6IGZh
bHNlLAorICB3cml0YWJsZTogZmFsc2UsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKK30pOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVj
dC1lbGVtZW50LWZ1bmN0aW9uLW5hbWUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvcmVqZWN0LWVsZW1lbnQtZnVuY3Rpb24tbmFtZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NDg3ODM2MTM0NDk1ZDBkNjQ2ZjVkZjIyZWE2NDRmZDliNjRjYjM5Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1l
bGVtZW50LWZ1bmN0aW9uLW5hbWUuanMKQEAgLTAsMCArMSwzOSBAQAorLy8gQ29weXJpZ2h0IChD
KSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55LXJlamVjdC1l
bGVtZW50LWZ1bmN0aW9ucworZGVzY3JpcHRpb246IFRoZSBgbmFtZWAgcHJvcGVydHkgb2YgUHJv
bWlzZS5hbnkgUmVqZWN0IEVsZW1lbnQgZnVuY3Rpb25zCitpbmZvOiB8CisgIEEgcHJvbWlzZSBy
ZXNvbHZlIGZ1bmN0aW9uIGlzIGFuIGFub255bW91cyBidWlsdC1pbiBmdW5jdGlvbi4KKworICAx
NyBFQ01BU2NyaXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHM6CisgICAgRXZlcnkgYnVpbHQt
aW4gZnVuY3Rpb24gb2JqZWN0LCBpbmNsdWRpbmcgY29uc3RydWN0b3JzLCBoYXMgYSBgbmFtZWAK
KyAgICBwcm9wZXJ0eSB3aG9zZSB2YWx1ZSBpcyBhIFN0cmluZy4gRnVuY3Rpb25zIHRoYXQgYXJl
IGlkZW50aWZpZWQgYXMKKyAgICBhbm9ueW1vdXMgZnVuY3Rpb25zIHVzZSB0aGUgZW1wdHkgc3Ry
aW5nIGFzIHRoZSB2YWx1ZSBvZiB0aGUgYG5hbWVgCisgICAgcHJvcGVydHkuCisgICAgVW5sZXNz
IG90aGVyd2lzZSBzcGVjaWZpZWQsIHRoZSBgbmFtZWAgcHJvcGVydHkgb2YgYSBidWlsdC1pbiBm
dW5jdGlvbgorICAgIG9iamVjdCBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06ICpm
YWxzZSosIFtbRW51bWVyYWJsZV1dOiAqZmFsc2UqLAorICAgIFtbQ29uZmlndXJhYmxlXV06ICp0
cnVlKiB9LgoraW5jbHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10KK2ZlYXR1cmVzOiBbUHJvbWlz
ZS5hbnldCistLS0qLworCit2YXIgcmVqZWN0RWxlbWVudEZ1bmN0aW9uOwordmFyIHRoZW5hYmxl
ID0geworICB0aGVuKF8sIHJlamVjdCkgeworICAgIHJlamVjdEVsZW1lbnRGdW5jdGlvbiA9IHJl
amVjdDsKKyAgfQorfTsKKworZnVuY3Rpb24gTm90UHJvbWlzZShleGVjdXRvcikgeworICBleGVj
dXRvcihmdW5jdGlvbigpIHt9LCBmdW5jdGlvbigpIHt9KTsKK30KK05vdFByb21pc2UucmVzb2x2
ZSA9IGZ1bmN0aW9uKHYpIHsKKyAgcmV0dXJuIHY7Cit9OworUHJvbWlzZS5hbnkuY2FsbChOb3RQ
cm9taXNlLCBbdGhlbmFibGVdKTsKKwordmVyaWZ5UHJvcGVydHkocmVqZWN0RWxlbWVudEZ1bmN0
aW9uLCAibmFtZSIsIHsKKyAgdmFsdWU6ICIiLCB3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6
IGZhbHNlLCBjb25maWd1cmFibGU6IHRydWUKK30pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLW5v
bmNvbnN0cnVjdG9yLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLW5vbmNvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY4N2U5NmM4YmIzYmY4NTNiOTkzYWUzNmIxNDU3NGNlZWM4NWQ1NTAKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVqZWN0LWVs
ZW1lbnQtZnVuY3Rpb24tbm9uY29uc3RydWN0b3IuanMKQEAgLTAsMCArMSwzMyBAQAorLy8gQ29w
eXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55
LXJlamVjdC1lbGVtZW50LWZ1bmN0aW9ucworZGVzY3JpcHRpb246IFByb21pc2UuYW55IFJlamVj
dCBFbGVtZW50IGZ1bmN0aW9ucyBhcmUgbm90IGNvbnN0cnVjdG9ycworaW5mbzogfAorICAxNyBF
Q01BU2NyaXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHM6CisgICAgQnVpbHQtaW4gZnVuY3Rp
b24gb2JqZWN0cyB0aGF0IGFyZSBub3QgaWRlbnRpZmllZCBhcyBjb25zdHJ1Y3RvcnMgZG8gbm90
CisgICAgaW1wbGVtZW50IHRoZSBbW0NvbnN0cnVjdF1dIGludGVybmFsIG1ldGhvZCB1bmxlc3Mg
b3RoZXJ3aXNlIHNwZWNpZmllZAorICAgIGluIHRoZSBkZXNjcmlwdGlvbiBvZiBhIHBhcnRpY3Vs
YXIgZnVuY3Rpb24uCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8KKwordmFyIHJlamVj
dEVsZW1lbnRGdW5jdGlvbjsKK3ZhciB0aGVuYWJsZSA9IHsKKyAgdGhlbihfLCByZWplY3QpIHsK
KyAgICByZWplY3RFbGVtZW50RnVuY3Rpb24gPSByZWplY3Q7CisgIH0KK307CisKK2Z1bmN0aW9u
IE5vdFByb21pc2UoZXhlY3V0b3IpIHsKKyAgZXhlY3V0b3IoZnVuY3Rpb24oKSB7fSwgZnVuY3Rp
b24oKSB7fSk7Cit9CitOb3RQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlvbih2KSB7CisgIHJldHVy
biB2OworfTsKK1Byb21pc2UuYW55LmNhbGwoTm90UHJvbWlzZSwgW3RoZW5hYmxlXSk7CisKK2Fz
c2VydC5zYW1lVmFsdWUoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlamVj
dEVsZW1lbnRGdW5jdGlvbiwgJ3Byb3RvdHlwZScpLCBmYWxzZSk7Cithc3NlcnQudGhyb3dzKFR5
cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIG5ldyByZWplY3RFbGVtZW50RnVuY3Rpb24oKTsKK30p
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLXByb3RvdHlwZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1wcm90b3R5
cGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjJlMTM2OWJlNjdiMzc3OGVhMmRlYWZhNTJkOGYzYjJkYTE5ZWY3
YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1wcm90b3R5cGUuanMKQEAgLTAsMCArMSwz
MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2Vj
LXByb21pc2UuYW55LXJlamVjdC1lbGVtZW50LWZ1bmN0aW9ucworZGVzY3JpcHRpb246IFRoZSBb
W1Byb3RvdHlwZV1dIG9mIFByb21pc2UuYW55IFJlamVjdCBFbGVtZW50IGZ1bmN0aW9ucworaW5m
bzogfAorICAxNyBFQ01BU2NyaXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHM6CisgICAgVW5s
ZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQgZXZlcnkgYnVpbHQtaW4gZnVuY3Rpb24gYW5kIGV2ZXJ5
IGJ1aWx0LWluCisgICAgY29uc3RydWN0b3IgaGFzIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2Jq
ZWN0LCB3aGljaCBpcyB0aGUgaW5pdGlhbAorICAgIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uIEZ1
bmN0aW9uLnByb3RvdHlwZSAoMTkuMi4zKSwgYXMgdGhlIHZhbHVlIG9mCisgICAgaXRzIFtbUHJv
dG90eXBlXV0gaW50ZXJuYWwgc2xvdC4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLwor
Cit2YXIgcmVqZWN0RWxlbWVudEZ1bmN0aW9uOwordmFyIHRoZW5hYmxlID0geworICB0aGVuKF8s
IHJlamVjdCkgeworICAgIHJlamVjdEVsZW1lbnRGdW5jdGlvbiA9IHJlamVjdDsKKyAgfQorfTsK
KworZnVuY3Rpb24gTm90UHJvbWlzZShleGVjdXRvcikgeworICBleGVjdXRvcihmdW5jdGlvbigp
IHt9LCBmdW5jdGlvbigpIHt9KTsKK30KK05vdFByb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKHYp
IHsKKyAgcmV0dXJuIHY7Cit9OworUHJvbWlzZS5hbnkuY2FsbChOb3RQcm9taXNlLCBbdGhlbmFi
bGVdKTsKKworYXNzZXJ0LnNhbWVWYWx1ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YocmVqZWN0RWxl
bWVudEZ1bmN0aW9uKSwgRnVuY3Rpb24ucHJvdG90eXBlKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWZyb20tcmVqZWN0LWNh
dGNoLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jlc29s
dmUtZnJvbS1yZWplY3QtY2F0Y2guanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJlZmNlZDk2ODdjYWNmZWZjZjVl
ZWM2NTE4M2ZkYTNkNjM4OWUwMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWZyb20tcmVqZWN0LWNhdGNoLmpzCkBA
IC0wLDAgKzEsMjIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNl
bnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlz
ZS5hbnkKK2Rlc2NyaXB0aW9uOiA+CisgIFByb21pc2UuYW55IHJlc29sdmVzIHdpdGggdGhlIGZp
cnN0IGl0ZW0gdGhhdCBkb2VzIG5vdCByZWplY3QuCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6
IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgZnVsZmlsbGFibGVz
ID0gWworICBQcm9taXNlLnJlamVjdCgnYScpLAorICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVq
ZWN0KSA9PiByZWplY3QoJ2InKSksCisgIFByb21pc2UuYWxsKFtQcm9taXNlLnJlamVjdCgnYycp
XSksCisgIFByb21pc2UucmVqZWN0KCdkJykuY2F0Y2godiA9PiB2KSwKK107CisKK1Byb21pc2Uu
YW55KGZ1bGZpbGxhYmxlcykKKyAgLnRoZW4oKHJlc29sdXRpb24pID0+IHsKKyAgICBhc3NlcnQu
c2FtZVZhbHVlKHJlc29sdXRpb24sICdkJyk7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNv
bHZlLWZyb20tcmVzb2x2ZS1yZWplY3QtY2F0Y2guanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZS1mcm9tLXJlc29sdmUtcmVqZWN0LWNhdGNoLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU1Zjk3ZDdlZmRiYjJlMmE0ZDE4M2RlYTAzOGQ2OGM3NWM0ZmQwYjkKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9h
bnkvcmVzb2x2ZS1mcm9tLXJlc29sdmUtcmVqZWN0LWNhdGNoLmpzCkBAIC0wLDAgKzEsMjIgQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0
aW9uOiA+CisgIFByb21pc2UuYW55IHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGl0ZW0gdGhhdCBk
b2VzIG5vdCByZWplY3QuCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwg
YXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgZnVsZmlsbGFibGVzID0gWworICBQcm9taXNl
LnJlamVjdCgnYScpLAorICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3Qo
J2InKSksCisgIFByb21pc2UuYWxsKFtQcm9taXNlLnJlamVjdCgnYycpXSksCisgIFByb21pc2Uu
cmVzb2x2ZShQcm9taXNlLnJlamVjdCgnZCcpLmNhdGNoKHYgPT4gdikpLAorXTsKKworUHJvbWlz
ZS5hbnkoZnVsZmlsbGFibGVzKQorICAudGhlbigocmVzb2x1dGlvbikgPT4geworICAgIGFzc2Vy
dC5zYW1lVmFsdWUocmVzb2x1dGlvbiwgJ2QnKTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jl
c29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi1kZWZlcnJlZC5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWlnbm9yZXMtbGF0ZS1yZWplY3Rp
b24tZGVmZXJyZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ5MzAzY2ZjMDNjODUyYzU2MjEzM2NkZmIzNDI0
ZDZjNDEyYjEyOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWlnbm9yZXMtbGF0ZS1yZWplY3Rpb24tZGVmZXJyZWQu
anMKQEAgLTAsMCArMSw0MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIw
MjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdv
dmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisv
Ki0tLQorZGVzY3JpcHRpb246ID4KKyAgUmVzb2x2ZWQgcHJvbWlzZXMgaWdub3JlIHJlamVjdGlv
bnMgdGhyb3VnaCBkZWZlcnJlZCBpbnZvY2F0aW9uIG9mIHRoZQorICAgIHByb3ZpZGVkIHJlc29s
dmluZyBmdW5jdGlvbgorZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCBy
ZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBh
YmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkKKworICA4
LiBSZXBlYXQKKyAgICAuLi4KKyAgICByLiBQZXJmb3JtID8gSW52b2tlKG5leHRQcm9taXNlLCAi
dGhlbiIsIMKrIHJlc3VsdENhcGFiaWxpdHkuW1tSZXNvbHZlXV0sIHJlamVjdEVsZW1lbnQgwrsp
LgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rp
b25dCistLS0qLworCit2YXIgcmVzb2x2ZXIgPSB7CisgIHRoZW4ocmVzb2x2ZSkgeworICAgIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKCkpCisgICAgICAudGhlbigoKSA9PiByZXNv
bHZlKDQyKSk7CisgIH0KK307Cit2YXIgbGF0ZVJlamVjdG9yID0geworICB0aGVuKHJlc29sdmUs
IHJlamVjdCkgeworICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKCkpCisgICAg
ICAudGhlbigoKSA9PiB7CisgICAgICAgIHJlc29sdmUoOSk7CisgICAgICAgIHJlamVjdCgpOwor
ICAgICAgfSk7CisgIH0KK307CisKK1Byb21pc2UuYW55KFtyZXNvbHZlciwgbGF0ZVJlamVjdG9y
XSkKKyAgLnRoZW4ocmVzb2x1dGlvbiA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyZXNvbHV0
aW9uLCA0Mik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWlnbm9yZXMtbGF0ZS1y
ZWplY3Rpb24uanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
cmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYTY2NTM1MjUx
MzBkZTVmZTYxYzRiYjUyOThjZTg0MjYwMGNhNjgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZS1pZ25vcmVzLWxhdGUt
cmVqZWN0aW9uLmpzCkBAIC0wLDAgKzEsMzcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8g
QmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMg
Y29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIFJlc29sdmVkIHByb21pc2VzIGlnbm9y
ZSByZWplY3Rpb25zIHRocm91Z2ggaW1tZWRpYXRlIGludm9jYXRpb24gb2YgdGhlCisgICAgcHJv
dmlkZWQgcmVzb2x2aW5nIGZ1bmN0aW9uCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwK
KyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywg
cHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlz
ZUFueQorCisgIDguIFJlcGVhdAorICAgIC4uLgorICAgIHIuIFBlcmZvcm0gPyBJbnZva2UobmV4
dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0eS5bW1Jlc29sdmVdXSwgcmVqZWN0
RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBh
cnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK3ZhciByZXNvbHZlciA9IHsKKyAgdGhlbihyZXNvbHZl
KSB7CisgICAgcmVzb2x2ZSg0Mik7CisgIH0KK307Cit2YXIgbGF0ZVJlamVjdG9yID0geworICB0
aGVuKHJlc29sdmUsIHJlamVjdCkgeworICAgIHJlc29sdmUoMzMpOworICAgIHJlamVjdCgpOwor
ICB9Cit9OworCitQcm9taXNlLmFueShbcmVzb2x2ZXIsIGxhdGVSZWplY3Rvcl0pCisgIC50aGVu
KHJlc29sdXRpb24gPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x1dGlvbiwgNDIpOwor
ICB9KS50aGVuKCRET05FLCAkRE9ORSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmV0dXJucy1wcm9taXNlLmpzIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JldHVybnMtcHJvbWlzZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NDU2OTZmZWM2YzZiOGIyY2IyM2U0MDdiMzI3MGI3NTllNTM5ZDRlCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JldHVy
bnMtcHJvbWlzZS5qcwpAQCAtMCwwICsxLDI0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2Vy
Z2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
Citlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiBQcm9taXNlLmFueSByZXR1cm5z
IGEgUHJvbWlzZQoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAyLiBM
ZXQgcHJvbWlzZUNhcGFiaWxpdHkgYmUgPyBOZXdQcm9taXNlQ2FwYWJpbGl0eShDKS4KKyAgMy4g
TGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1
cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDUu
IExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21p
c2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0
aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1
bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFi
cnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDcuIFJldHVy
biBDb21wbGV0aW9uKHJlc3VsdCkuCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8KKwor
dmFyIHAgPSBQcm9taXNlLmFueShbXSk7CisKK2Fzc2VydChwIGluc3RhbmNlb2YgUHJvbWlzZSk7
Cithc3NlcnQuc2FtZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihwKSwgUHJvbWlzZS5wcm90
b3R5cGUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5
L2NyZWF0ZS1oYW5kbGVyLWlzLXJldm9rZWQtcHJveHkuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLWhhbmRsZXItaXMtcmV2b2tlZC1wcm94eS5qcwppbmRl
eCBmYzlhMzQzZGM4YjZmZjVhM2JmZTcwMmFiMDk0Y2QyOTBiZjg3OWMwLi45NWZiNzFjMDM1OTNi
NTNkNTVmMDE3YmRkNzJlNGFkZWRhZjAxNTM5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLWhhbmRsZXItaXMtcmV2b2tlZC1wcm94eS5qcwor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLWhhbmRsZXIt
aXMtcmV2b2tlZC1wcm94eS5qcwpAQCAtMSwyMSArMSwyMiBAQAogLy8gQ29weXJpZ2h0IChDKSAy
MDE1IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBUaGlz
IGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCiAvKi0tLQotZXM2aWQ6IDkuNS4xNQorZXNpZDogc2VjLXByb3h5Y3JlYXRlCiBkZXNj
cmlwdGlvbjogPgotICAgIFByb3h5ICggdGFyZ2V0LCBoYW5kbGVyICkKLSAgICAuLi4KLSAgICA0
LiAgSWYgaGFuZGxlciBpcyBhIFByb3h5IGV4b3RpYyBvYmplY3QgYW5kIHRoZSB2YWx1ZSBvZiB0
aGUKLSAgICBbW1Byb3h5SGFuZGxlcl1dIGludGVybmFsIHNsb3Qgb2YgaGFuZGxlciBpcyBudWxs
LCB0aHJvdyBhCi0gICAgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgICAuLi4KKyAgQSBQcm94eSBp
cyBjcmVhdGVkIHdpdGggaXRzIFtbUHJveHlIYW5kbGVyXV0gYXMgcmV2b2tlZCBQcm94eS4KK2lu
Zm86IHwKKyAgUHJveHlDcmVhdGUgKCB0YXJnZXQsIGhhbmRsZXIgKQorCisgIFsuLi5dCisgIDMu
IExldCBQIGJlICEgTWFrZUJhc2ljT2JqZWN0KMKrIFtbUHJveHlIYW5kbGVyXV0sIFtbUHJveHlU
YXJnZXRdXSDCuykuCisgIFsuLi5dCisgIDcuIFNldCBQLltbUHJveHlIYW5kbGVyXV0gdG8gaGFu
ZGxlci4KKyAgOC4gUmV0dXJuIFAuCiBmZWF0dXJlczogW1Byb3h5XQogLS0tKi8KIAogdmFyIHJl
dm9jYWJsZSA9IFByb3h5LnJldm9jYWJsZSh7fSwge30pOwotCiByZXZvY2FibGUucmV2b2tlKCk7
CiAKLWFzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKLSAgbmV3IFByb3h5KHt9
LCByZXZvY2FibGUucHJveHkpOwotfSk7Cit2YXIgcHJveHkgPSBuZXcgUHJveHkoe30sIHJldm9j
YWJsZS5wcm94eSk7Cithc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBwcm94eSwgIm9iamVjdCIpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L2NyZWF0ZS10
YXJnZXQtaXMtbm90LWNhbGxhYmxlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L1Byb3h5L2NyZWF0ZS10YXJnZXQtaXMtbm90LWNhbGxhYmxlLmpzCmluZGV4IGIzODFhYjU4Nzdj
NGIxNTEzMjUwZDA2OWQ2Y2Q2MjM3OWI1YjExZTkuLmFkNGUzNjdlMjFhOTUzYTQwMzA1MDQxYmEy
NDZlNDUzYWUwNzI2OTQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9Qcm94eS9jcmVhdGUtdGFyZ2V0LWlzLW5vdC1jYWxsYWJsZS5qcworKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLXRhcmdldC1pcy1ub3QtY2FsbGFibGUu
anMKQEAgLTEsNyArMSw3IEBACiAvLyBDb3B5cmlnaHQgKEMpIDIwMTUgdGhlIFY4IHByb2plY3Qg
YXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIC8qLS0tCi1lczZp
ZDogOS41LjE1Citlc2lkOiBzZWMtcHJveHljcmVhdGUKIGRlc2NyaXB0aW9uOiA+CiAgICAgQSBQ
cm94eSBleG90aWMgb2JqZWN0IGlzIG9ubHkgY2FsbGFibGUgaWYgdGhlIGdpdmVuIHRhcmdldCBp
cyBjYWxsYWJsZS4KIGluZm86IHwKQEAgLTIyLDUgKzIyLDUgQEAgZmVhdHVyZXM6IFtQcm94eV0K
IHZhciBwID0gbmV3IFByb3h5KHt9LCB7fSk7CiAKIGFzc2VydC50aHJvd3MoVHlwZUVycm9yLCBm
dW5jdGlvbigpIHsKLSAgcC5jYWxsKCk7CisgIHAoKTsKIH0pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L2NyZWF0ZS10YXJnZXQtaXMtcmV2b2tlZC1m
dW5jdGlvbi1wcm94eS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9j
cmVhdGUtdGFyZ2V0LWlzLXJldm9rZWQtZnVuY3Rpb24tcHJveHkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ4
YWZlZGU4ZDY5M2FmYTI4ZGJlNDVkYTBmYTk2MDlkZjljNTdlNwotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9jcmVhdGUtdGFyZ2V0LWlzLXJl
dm9rZWQtZnVuY3Rpb24tcHJveHkuanMKQEAgLTAsMCArMSwyMyBAQAorLy8gQ29weXJpZ2h0IChD
KSAyMDE1IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLXByb3h5Y3JlYXRlCitkZXNjcmlwdGlvbjogPgor
ICBBIFByb3h5IGlzIGNyZWF0ZWQgd2l0aCBpdHMgW1tQcm94eVRhcmdldF1dIGFzIHJldm9rZWQg
ZnVuY3Rpb24gUHJveHkuCitpbmZvOiB8CisgIFByb3h5Q3JlYXRlICggdGFyZ2V0LCBoYW5kbGVy
ICkKKworICBbLi4uXQorICAzLiBMZXQgUCBiZSAhIE1ha2VCYXNpY09iamVjdCjCqyBbW1Byb3h5
SGFuZGxlcl1dLCBbW1Byb3h5VGFyZ2V0XV0gwrspLgorICBbLi4uXQorICA2LiBTZXQgUC5bW1By
b3h5VGFyZ2V0XV0gdG8gdGFyZ2V0LgorICBbLi4uXQorICA4LiBSZXR1cm4gUC4KK2ZlYXR1cmVz
OiBbUHJveHldCistLS0qLworCit2YXIgcmV2b2NhYmxlID0gUHJveHkucmV2b2NhYmxlKGZ1bmN0
aW9uKCkge30sIHt9KTsKK3Jldm9jYWJsZS5yZXZva2UoKTsKKwordmFyIHByb3h5ID0gbmV3IFBy
b3h5KHJldm9jYWJsZS5wcm94eSwge30pOworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgcHJveHks
ICJmdW5jdGlvbiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L1Byb3h5L2NyZWF0ZS10YXJnZXQtaXMtcmV2b2tlZC1wcm94eS5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9jcmVhdGUtdGFyZ2V0LWlzLXJldm9rZWQtcHJveHkuanMK
aW5kZXggN2UzM2IxZGRiOWVmM2QwNWFiNDJmNDdjOGEwNjFjYmVhM2IyODdkNC4uMTQ1NWEzMDQ5
ZmFlZDIxN2EyNmRlMDc0MzUwYjk3YjdkYTkxOTU2NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L2NyZWF0ZS10YXJnZXQtaXMtcmV2b2tlZC1wcm94eS5q
cworKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLXRhcmdl
dC1pcy1yZXZva2VkLXByb3h5LmpzCkBAIC0xLDIxICsxLDIzIEBACiAvLyBDb3B5cmlnaHQgKEMp
IDIwMTUgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KIC8qLS0tCi1lczZpZDogOS41LjE1Citlc2lkOiBzZWMtcHJveHljcmVhdGUKIGRl
c2NyaXB0aW9uOiA+Ci0gICAgUHJveHkgKCB0YXJnZXQsIGhhbmRsZXIgKQotICAgIC4uLgotICAg
IDIuIElmIHRhcmdldCBpcyBhIFByb3h5IGV4b3RpYyBvYmplY3QgYW5kIHRoZSB2YWx1ZSBvZiB0
aGUKLSAgICBbW1Byb3h5SGFuZGxlcl1dIGludGVybmFsIHNsb3Qgb2YgdGFyZ2V0IGlzIG51bGws
IHRocm93IGEKLSAgICBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICAgIC4uLgorICBBIFByb3h5IGlz
IGNyZWF0ZWQgd2l0aCBpdHMgW1tQcm94eVRhcmdldF1dIGFzIHJldm9rZWQgUHJveHkuCitpbmZv
OiB8CisgIFByb3h5Q3JlYXRlICggdGFyZ2V0LCBoYW5kbGVyICkKKworICBbLi4uXQorICAzLiBM
ZXQgUCBiZSAhIE1ha2VCYXNpY09iamVjdCjCqyBbW1Byb3h5SGFuZGxlcl1dLCBbW1Byb3h5VGFy
Z2V0XV0gwrspLgorICBbLi4uXQorICA2LiBTZXQgUC5bW1Byb3h5VGFyZ2V0XV0gdG8gdGFyZ2V0
LgorICBbLi4uXQorICA4LiBSZXR1cm4gUC4KIGZlYXR1cmVzOiBbUHJveHldCiAtLS0qLwogCiB2
YXIgcmV2b2NhYmxlID0gUHJveHkucmV2b2NhYmxlKHt9LCB7fSk7Ci0KIHJldm9jYWJsZS5yZXZv
a2UoKTsKIAotYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICBuZXcgUHJv
eHkocmV2b2NhYmxlLnByb3h5LCB7fSk7Ci19KTsKK3ZhciBwcm94eSA9IG5ldyBQcm94eShyZXZv
Y2FibGUucHJveHksIHt9KTsKK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIHByb3h5LCAib2JqZWN0
Iik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0
L3RyYXAtaXMtbWlzc2luZy1yZWNlaXZlci1tdWx0aXBsZS1jYWxscy1pbmRleC5qcyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9zZXQvdHJhcC1pcy1taXNzaW5nLXJlY2Vp
dmVyLW11bHRpcGxlLWNhbGxzLWluZGV4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzYjliYzQzZTYwNTc1ODM1
NTNmNTMxMjI2ZTkwYjE4NmZiNzcwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMtbWlzc2luZy1yZWNlaXZlci1tdWx0
aXBsZS1jYWxscy1pbmRleC5qcwpAQCAtMCwwICsxLDc5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIw
MjAgQWxleGV5IFNodmF5a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK
Ky8qLS0tCitlc2lkOiBzZWMtcHJveHktb2JqZWN0LWludGVybmFsLW1ldGhvZHMtYW5kLWludGVy
bmFsLXNsb3RzLXNldC1wLXYtcmVjZWl2ZXIKK2Rlc2NyaXB0aW9uOiA+CisgIElmICJzZXQiIHRy
YXAgaXMgbWlzc2luZywgdGhlIGNhbGwgaXMgcHJvcGVybHkgZm9yd2FyZGVkIHRvIG9yZGluYXJ5
CisgIFtbU2V0XV0gdGhhdCBpbnZva2VzIFtbR2V0T3duUHJvcGVydHldXSBhbmQgW1tEZWZpbmVP
d25Qcm9wZXJ0eV1dIG1ldGhvZHMKKyAgb24gcmVjZWl2ZXIgKHRoYXQgaXMgYSBQcm94eSBpdHNl
bGYpIGV2ZXJ5IHRpbWUgaXQgaXMgY2FsbGVkLgorICAoaW50ZWdlciBpbmRleCBwcm9wZXJ0eSBu
YW1lKQoraW5mbzogfAorICBbW1NldF1dICggUCwgViwgUmVjZWl2ZXIgKQorCisgIFsuLi5dCisg
IDYuIExldCB0cmFwIGJlID8gR2V0TWV0aG9kKGhhbmRsZXIsICJzZXQiKS4KKyAgNy4gSWYgdHJh
cCBpcyB1bmRlZmluZWQsIHRoZW4KKyAgICBhLiBSZXR1cm4gPyB0YXJnZXQuW1tTZXRdXShQLCBW
LCBSZWNlaXZlcikuCisKKyAgT3JkaW5hcnlTZXRXaXRoT3duRGVzY3JpcHRvciAoIE8sIFAsIFYs
IFJlY2VpdmVyLCBvd25EZXNjICkKKworICBbLi4uXQorICAzLiBJZiBJc0RhdGFEZXNjcmlwdG9y
KG93bkRlc2MpIGlzIHRydWUsIHRoZW4KKyAgICBbLi4uXQorICAgIGMuIExldCBleGlzdGluZ0Rl
c2NyaXB0b3IgYmUgPyBSZWNlaXZlci5bW0dldE93blByb3BlcnR5XV0oUCkuCisgICAgZC4gSWYg
ZXhpc3RpbmdEZXNjcmlwdG9yIGlzIG5vdCB1bmRlZmluZWQsIHRoZW4KKyAgICAgIFsuLi5dCisg
ICAgICBpaWkuIExldCB2YWx1ZURlc2MgYmUgdGhlIFByb3BlcnR5RGVzY3JpcHRvciB7IFtbVmFs
dWVdXTogViB9LgorICAgICAgaXYuIFJldHVybiA/IFJlY2VpdmVyLltbRGVmaW5lT3duUHJvcGVy
dHldXShQLCB2YWx1ZURlc2MpLgorICAgIGUuIEVsc2UsCisgICAgICBpLiBBc3NlcnQ6IFJlY2Vp
dmVyIGRvZXMgbm90IGN1cnJlbnRseSBoYXZlIGEgcHJvcGVydHkgUC4KKyAgICAgIGlpLiBSZXR1
cm4gPyBDcmVhdGVEYXRhUHJvcGVydHkoUmVjZWl2ZXIsIFAsIFYpLgorICBbLi4uXQorCisgIFtb
RGVmaW5lT3duUHJvcGVydHldXSAoIFAsIERlc2MgKQorCisgIFsuLi5dCisgIDkuIExldCBib29s
ZWFuVHJhcFJlc3VsdCBiZSAhIFRvQm9vbGVhbig/IENhbGwodHJhcCwgaGFuZGxlciwgwqsgdGFy
Z2V0LCBQLCBkZXNjT2JqIMK7KSkuCisgIFsuLi5dCisgIDE3LiBSZXR1cm4gdHJ1ZS4KK2ZlYXR1
cmVzOiBbUHJveHksIFJlZmxlY3RdCitpbmNsdWRlczogW2NvbXBhcmVBcnJheS5qc10KKy0tLSov
CisKK3ZhciBnZXRPd25Qcm9wZXJ0eUtleXMgPSBbXTsKK3ZhciBkZWZpbmVQcm9wZXJ0eUtleXMg
PSBbXTsKKwordmFyIHAgPSBuZXcgUHJveHkoeworICAiMCI6IG51bGwsCit9LCB7CisgIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcjogZnVuY3Rpb24odGFyZ2V0LCBrZXkpIHsKKyAgICBnZXRPd25Q
cm9wZXJ0eUtleXMucHVzaChrZXkpOworICAgIHJldHVybiBSZWZsZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih0YXJnZXQsIGtleSk7CisgIH0sCisgIGRlZmluZVByb3BlcnR5OiBmdW5jdGlv
bih0YXJnZXQsIGtleSwgZGVzYykgeworICAgIGRlZmluZVByb3BlcnR5S2V5cy5wdXNoKGtleSk7
CisgICAgcmV0dXJuIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGRlc2MpOwor
ICB9LAorfSk7CisKK3BbMF0gPSB0cnVlOworcFswXSA9IHRydWU7CitwWyIwIl0gPSB0cnVlOwor
Cithc3NlcnQuY29tcGFyZUFycmF5KGdldE93blByb3BlcnR5S2V5cywgWyIwIiwgIjAiLCAiMCJd
LAorICAiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBrZXkgcHJlc2VudCBvbiBbW1Byb3h5VGFy
Z2V0XV0iKTsKK2Fzc2VydC5jb21wYXJlQXJyYXkoZGVmaW5lUHJvcGVydHlLZXlzLCBbIjAiLCAi
MCIsICIwIl0sCisgICJkZWZpbmVQcm9wZXJ0eToga2V5IHByZXNlbnQgb24gW1tQcm94eVRhcmdl
dF1dIik7CisKK2dldE93blByb3BlcnR5S2V5cyA9IFtdOworZGVmaW5lUHJvcGVydHlLZXlzID0g
W107CisKK3BbMjJdID0gZmFsc2U7CitwWyIyMiJdID0gZmFsc2U7CitwWzIyXSA9IGZhbHNlOwor
Cithc3NlcnQuY29tcGFyZUFycmF5KGdldE93blByb3BlcnR5S2V5cywgWyIyMiIsICIyMiIsICIy
MiJdLAorICAiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBrZXkgYWJzZW50IG9uIFtbUHJveHlU
YXJnZXRdXSIpOworYXNzZXJ0LmNvbXBhcmVBcnJheShkZWZpbmVQcm9wZXJ0eUtleXMsIFsiMjIi
LCAiMjIiLCAiMjIiXSwKKyAgImRlZmluZVByb3BlcnR5OiBrZXkgYWJzZW50IG9uIFtbUHJveHlU
YXJnZXRdXSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1By
b3h5L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXItbXVsdGlwbGUtY2FsbHMuanMgYi9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMtbWlzc2luZy1yZWNl
aXZlci1tdWx0aXBsZS1jYWxscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTEyMjVjYTNlMzYxYTE5NDE0ZDdm
ZDNlZDdlNzI4Mjg1OTc0NWE5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb3h5L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXItbXVsdGlwbGUt
Y2FsbHMuanMKQEAgLTAsMCArMSw3OCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBT
aHZheWthLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNp
ZDogc2VjLXByb3h5LW9iamVjdC1pbnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90cy1z
ZXQtcC12LXJlY2VpdmVyCitkZXNjcmlwdGlvbjogPgorICBJZiAic2V0IiB0cmFwIGlzIG1pc3Np
bmcsIHRoZSBjYWxsIGlzIHByb3Blcmx5IGZvcndhcmRlZCB0byBvcmRpbmFyeQorICBbW1NldF1d
IHRoYXQgaW52b2tlcyBbW0dldE93blByb3BlcnR5XV0gYW5kIFtbRGVmaW5lT3duUHJvcGVydHld
XSBtZXRob2RzCisgIG9uIHJlY2VpdmVyICh0aGF0IGlzIGEgUHJveHkgaXRzZWxmKSBldmVyeSB0
aW1lIGl0IGlzIGNhbGxlZC4KK2luZm86IHwKKyAgW1tTZXRdXSAoIFAsIFYsIFJlY2VpdmVyICkK
KworICBbLi4uXQorICA2LiBMZXQgdHJhcCBiZSA/IEdldE1ldGhvZChoYW5kbGVyLCAic2V0Iiku
CisgIDcuIElmIHRyYXAgaXMgdW5kZWZpbmVkLCB0aGVuCisgICAgYS4gUmV0dXJuID8gdGFyZ2V0
LltbU2V0XV0oUCwgViwgUmVjZWl2ZXIpLgorCisgIE9yZGluYXJ5U2V0V2l0aE93bkRlc2NyaXB0
b3IgKCBPLCBQLCBWLCBSZWNlaXZlciwgb3duRGVzYyApCisKKyAgWy4uLl0KKyAgMy4gSWYgSXNE
YXRhRGVzY3JpcHRvcihvd25EZXNjKSBpcyB0cnVlLCB0aGVuCisgICAgWy4uLl0KKyAgICBjLiBM
ZXQgZXhpc3RpbmdEZXNjcmlwdG9yIGJlID8gUmVjZWl2ZXIuW1tHZXRPd25Qcm9wZXJ0eV1dKFAp
LgorICAgIGQuIElmIGV4aXN0aW5nRGVzY3JpcHRvciBpcyBub3QgdW5kZWZpbmVkLCB0aGVuCisg
ICAgICBbLi4uXQorICAgICAgaWlpLiBMZXQgdmFsdWVEZXNjIGJlIHRoZSBQcm9wZXJ0eURlc2Ny
aXB0b3IgeyBbW1ZhbHVlXV06IFYgfS4KKyAgICAgIGl2LiBSZXR1cm4gPyBSZWNlaXZlci5bW0Rl
ZmluZU93blByb3BlcnR5XV0oUCwgdmFsdWVEZXNjKS4KKyAgICBlLiBFbHNlLAorICAgICAgaS4g
QXNzZXJ0OiBSZWNlaXZlciBkb2VzIG5vdCBjdXJyZW50bHkgaGF2ZSBhIHByb3BlcnR5IFAuCisg
ICAgICBpaS4gUmV0dXJuID8gQ3JlYXRlRGF0YVByb3BlcnR5KFJlY2VpdmVyLCBQLCBWKS4KKyAg
Wy4uLl0KKworICBbW0RlZmluZU93blByb3BlcnR5XV0gKCBQLCBEZXNjICkKKworICBbLi4uXQor
ICA5LiBMZXQgYm9vbGVhblRyYXBSZXN1bHQgYmUgISBUb0Jvb2xlYW4oPyBDYWxsKHRyYXAsIGhh
bmRsZXIsIMKrIHRhcmdldCwgUCwgZGVzY09iaiDCuykpLgorICBbLi4uXQorICAxNy4gUmV0dXJu
IHRydWUuCitmZWF0dXJlczogW1Byb3h5LCBSZWZsZWN0XQoraW5jbHVkZXM6IFtjb21wYXJlQXJy
YXkuanNdCistLS0qLworCit2YXIgZ2V0T3duUHJvcGVydHlLZXlzID0gW107Cit2YXIgZGVmaW5l
UHJvcGVydHlLZXlzID0gW107CisKK3ZhciBwID0gbmV3IFByb3h5KHsKKyAgZm9vOiAxLAorfSwg
eworICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9uKHRhcmdldCwga2V5KSB7Cisg
ICAgZ2V0T3duUHJvcGVydHlLZXlzLnB1c2goa2V5KTsKKyAgICByZXR1cm4gUmVmbGVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpOworICB9LAorICBkZWZpbmVQcm9wZXJ0
eTogZnVuY3Rpb24odGFyZ2V0LCBrZXksIGRlc2MpIHsKKyAgICBkZWZpbmVQcm9wZXJ0eUtleXMu
cHVzaChrZXkpOworICAgIHJldHVybiBSZWZsZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5
LCBkZXNjKTsKKyAgfSwKK30pOworCitwWyJmb28iXSA9IDI7CitwLmZvbyA9IDI7CitwLmZvbyA9
IDI7CisKK2Fzc2VydC5jb21wYXJlQXJyYXkoZ2V0T3duUHJvcGVydHlLZXlzLCBbImZvbyIsICJm
b28iLCAiZm9vIl0sCisgICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGtleSBwcmVzZW50IG9u
IFtbUHJveHlUYXJnZXRdXSIpOworYXNzZXJ0LmNvbXBhcmVBcnJheShkZWZpbmVQcm9wZXJ0eUtl
eXMsIFsiZm9vIiwgImZvbyIsICJmb28iXSwKKyAgImRlZmluZVByb3BlcnR5OiBrZXkgcHJlc2Vu
dCBvbiBbW1Byb3h5VGFyZ2V0XV0iKTsKKworZ2V0T3duUHJvcGVydHlLZXlzID0gW107CitkZWZp
bmVQcm9wZXJ0eUtleXMgPSBbXTsKKworcC5iYXIgPSAzOworcFsiYmFyIl0gPSAzOworcC5iYXIg
PSAzOworCithc3NlcnQuY29tcGFyZUFycmF5KGdldE93blByb3BlcnR5S2V5cywgWyJiYXIiLCAi
YmFyIiwgImJhciJdLAorICAiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBrZXkgYWJzZW50IG9u
IFtbUHJveHlUYXJnZXRdXSIpOworYXNzZXJ0LmNvbXBhcmVBcnJheShkZWZpbmVQcm9wZXJ0eUtl
eXMsIFsiYmFyIiwgImJhciIsICJiYXIiXSwKKyAgImRlZmluZVByb3BlcnR5OiBrZXkgYWJzZW50
IG9uIFtbUHJveHlUYXJnZXRdXSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb3h5L3NldC90cmFwLWlzLW51bGwtcmVjZWl2ZXIuanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMtbnVsbC1yZWNlaXZlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYWRkNzE5ODQwZmIzZDQzZjE4YTZhZWRlYTVjNjdjNWQ1Mjk5YjY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L3NldC90
cmFwLWlzLW51bGwtcmVjZWl2ZXIuanMKQEAgLTAsMCArMSwzMCBAQAorLy8gQ29weXJpZ2h0IChD
KSAyMDE2IEFsZWtzZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKy8qLS0tCitlc2lkOiBzZWMtcHJveHktb2JqZWN0LWludGVybmFsLW1ldGhvZHMtYW5kLWlu
dGVybmFsLXNsb3RzLXNldC1wLXYtcmVjZWl2ZXIKK2Rlc2NyaXB0aW9uOiA+CisgICAgUGFzcyB0
byB0YXJnZXQncyBbW1NldF1dIGNvcnJlY3QgcmVjZWl2ZXIgaWYgdHJhcCBpcyBtaXNzaW5nCitp
bmZvOiB8CisgICAgW1tTZXRdXSAoUCwgViwgUmVjZWl2ZXIpCisKKyAgICA3LiBJZiB0cmFwIGlz
IHVuZGVmaW5lZCwgdGhlbgorICAgICAgICBhLiBSZXR1cm4gPyB0YXJnZXQuW1tTZXRdXShQLCBW
LCBSZWNlaXZlcikuCitmZWF0dXJlczogW1Byb3h5XQorLS0tKi8KKwordmFyIGNvbnRleHQ7Cit2
YXIgdGFyZ2V0ID0geworICBzZXQgYXR0cih2YWwpIHsKKyAgICBjb250ZXh0ID0gdGhpczsKKyAg
fQorfTsKKwordmFyIHAgPSBuZXcgUHJveHkodGFyZ2V0LCB7CisgIHNldDogbnVsbAorfSk7Citw
LmF0dHIgPSAxOworYXNzZXJ0LnNhbWVWYWx1ZShjb250ZXh0LCBwKTsKKwordmFyIHBQYXJlbnQg
PSBPYmplY3QuY3JlYXRlKG5ldyBQcm94eSh0YXJnZXQsIHt9KSk7CitwUGFyZW50LmF0dHIgPSAz
OworYXNzZXJ0LnNhbWVWYWx1ZShjb250ZXh0LCBwUGFyZW50KTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9zZXQvdHJhcC1pcy11bmRlZmluZWQtcmVj
ZWl2ZXIuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAt
aXMtdW5kZWZpbmVkLXJlY2VpdmVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
YWRkNzE5ODQwZmIzZDQzZjE4YTZhZWRlYTVjNjdjNWQ1Mjk5YjY4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm94eS9zZXQvdHJhcC1pcy11bmRlZmluZWQtcmVjZWl2ZXIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwzMCArMCwwIEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTYgQWxla3NleSBTaHZheWth
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLyotLS0KLWVzaWQ6IHNlYy1w
cm94eS1vYmplY3QtaW50ZXJuYWwtbWV0aG9kcy1hbmQtaW50ZXJuYWwtc2xvdHMtc2V0LXAtdi1y
ZWNlaXZlcgotZGVzY3JpcHRpb246ID4KLSAgICBQYXNzIHRvIHRhcmdldCdzIFtbU2V0XV0gY29y
cmVjdCByZWNlaXZlciBpZiB0cmFwIGlzIG1pc3NpbmcKLWluZm86IHwKLSAgICBbW1NldF1dIChQ
LCBWLCBSZWNlaXZlcikKLQotICAgIDcuIElmIHRyYXAgaXMgdW5kZWZpbmVkLCB0aGVuCi0gICAg
ICAgIGEuIFJldHVybiA/IHRhcmdldC5bW1NldF1dKFAsIFYsIFJlY2VpdmVyKS4KLWZlYXR1cmVz
OiBbUHJveHldCi0tLS0qLwotCi12YXIgY29udGV4dDsKLXZhciB0YXJnZXQgPSB7Ci0gIHNldCBh
dHRyKHZhbCkgewotICAgIGNvbnRleHQgPSB0aGlzOwotICB9Ci19OwotCi12YXIgcCA9IG5ldyBQ
cm94eSh0YXJnZXQsIHsKLSAgc2V0OiBudWxsCi19KTsKLXAuYXR0ciA9IDE7Ci1hc3NlcnQuc2Ft
ZVZhbHVlKGNvbnRleHQsIHApOwotCi12YXIgcFBhcmVudCA9IE9iamVjdC5jcmVhdGUobmV3IFBy
b3h5KHRhcmdldCwge30pKTsKLXBQYXJlbnQuYXR0ciA9IDM7Ci1hc3NlcnQuc2FtZVZhbHVlKGNv
bnRleHQsIHBQYXJlbnQpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQw
Mi9EYXRlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLWNhbGVuZGFyLWludmFsaWQuanMg
Yi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2NvbnN0cnVjdG9y
LW9wdGlvbnMtY2FsZW5kYXItaW52YWxpZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTA3M2VlYzkyZWQ1YzRl
MTY5YWYwZWJlZmMwMTEyNWNmMjQ0M2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLWNhbGVu
ZGFyLWludmFsaWQuanMKQEAgLTAsMCArMSw0MCBAQAorLy8gQ29weXJpZ2h0IDIwMjAgQW5kcsOp
IEJhcmd1bGw7IElnYWxpYSwgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2Rl
IGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
LgorCisvKi0tLQorZXNpZDogc2VjLWluaXRpYWxpemVkYXRldGltZWZvcm1hdAorZGVzY3JpcHRp
b246ID4KKyAgICBDaGVja3MgZXJyb3IgY2FzZXMgZm9yIHRoZSBvcHRpb25zIGFyZ3VtZW50IHRv
IHRoZSBEYXRlVGltZUZvcm1hdCBjb25zdHJ1Y3Rvci4KK2luZm86IHwKKyAgICBJbml0aWFsaXpl
RGF0ZVRpbWVGb3JtYXQgKCBkYXRlVGltZUZvcm1hdCwgbG9jYWxlcywgb3B0aW9ucyApCisKKyAg
ICAuLi4KKyAgICA3LiBJZiBjYWxlbmRhciBpcyBub3QgdW5kZWZpbmVkLCB0aGVuCisgICAgICAg
IGEuIElmIGNhbGVuZGFyIGRvZXMgbm90IG1hdGNoIHRoZSBVbmljb2RlIExvY2FsZSBJZGVudGlm
aWVyIHR5cGUgbm9udGVybWluYWwsIHRocm93IGEgUmFuZ2VFcnJvciBleGNlcHRpb24uCistLS0q
LworCisvKgorIGFscGhhbnVtID0gKEFMUEhBIC8gRElHSVQpICAgICA7IGxldHRlcnMgYW5kIG51
bWJlcnMKKyBudW1iZXJpbmdTeXN0ZW0gPSAoMyo4YWxwaGFudW0pICooIi0iICgzKjhhbHBoYW51
bSkpCisqLworY29uc3QgaW52YWxpZENhbGVuZGFyT3B0aW9ucyA9IFsKKyAgIiIsCisgICJhIiwK
KyAgImFiIiwKKyAgImFiY2RlZmdoaSIsCisgICJhYmMtYWJjZGVmZ2hpIiwKKyAgIiFpbnZhbGlk
ISIsCisgICItZ3JlZ29yeS0iLAorICAiZ3JlZ29yeS0iLAorICAiZ3JlZ29yeS0tIiwKKyAgImdy
ZWdvcnktbnUiLAorICAiZ3JlZ29yeS1udS0iLAorICAiZ3JlZ29yeS1udS1sYXRuIiwKKyAgImdy
ZWdvcnnDqSIsCisgICJncmVnb3J57Jet67KVIiwKK107Citmb3IgKGNvbnN0IGNhbGVuZGFyIG9m
IGludmFsaWRDYWxlbmRhck9wdGlvbnMpIHsKKyAgYXNzZXJ0LnRocm93cyhSYW5nZUVycm9yLCBm
dW5jdGlvbigpIHsKKyAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4nLCB7Y2FsZW5kYXJ9
KTsKKyAgfSwgYG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHtjYWxlbmRhcjogIiR7Y2Fs
ZW5kYXJ9In0pIHRocm93cyBSYW5nZUVycm9yYCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlvbnMtbnVt
YmVyaW5nU3lzdGVtLWludmFsaWQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0Rh
dGVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlvbnMtbnVtYmVyaW5nU3lzdGVtLWludmFsaWQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjBjNWI1MWZjYjljMGNhOGJhNTkxZmZiMmU5NWI3NDhhNTA4ODMzYgot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvRGF0ZVRpbWVG
b3JtYXQvY29uc3RydWN0b3Itb3B0aW9ucy1udW1iZXJpbmdTeXN0ZW0taW52YWxpZC5qcwpAQCAt
MCwwICsxLDQwIEBACisvLyBDb3B5cmlnaHQgMjAyMCBBbmRyw6kgQmFyZ3VsbDsgSWdhbGlhLCBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhl
IEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBz
ZWMtaW5pdGlhbGl6ZWRhdGV0aW1lZm9ybWF0CitkZXNjcmlwdGlvbjogPgorICAgIENoZWNrcyBl
cnJvciBjYXNlcyBmb3IgdGhlIG9wdGlvbnMgYXJndW1lbnQgdG8gdGhlIERhdGVUaW1lRm9ybWF0
IGNvbnN0cnVjdG9yLgoraW5mbzogfAorICAgIEluaXRpYWxpemVEYXRlVGltZUZvcm1hdCAoIGRh
dGVUaW1lRm9ybWF0LCBsb2NhbGVzLCBvcHRpb25zICkKKworICAgIC4uLgorICAgIDEwLiBJZiBu
dW1iZXJpbmdTeXN0ZW0gaXMgbm90IHVuZGVmaW5lZCwgdGhlbgorICAgICAgICBhLiBJZiBudW1i
ZXJpbmdTeXN0ZW0gZG9lcyBub3QgbWF0Y2ggdGhlIFVuaWNvZGUgTG9jYWxlIElkZW50aWZpZXIg
dHlwZSBub250ZXJtaW5hbCwgdGhyb3cgYSBSYW5nZUVycm9yIGV4Y2VwdGlvbi4KKy0tLSovCisK
Ky8qCisgYWxwaGFudW0gPSAoQUxQSEEgLyBESUdJVCkgICAgIDsgbGV0dGVycyBhbmQgbnVtYmVy
cworIG51bWJlcmluZ1N5c3RlbSA9ICgzKjhhbHBoYW51bSkgKigiLSIgKDMqOGFscGhhbnVtKSkK
KyovCitjb25zdCBpbnZhbGlkTnVtYmVyaW5nU3lzdGVtT3B0aW9ucyA9IFsKKyAgIiIsCisgICJh
IiwKKyAgImFiIiwKKyAgImFiY2RlZmdoaSIsCisgICJhYmMtYWJjZGVmZ2hpIiwKKyAgIiFpbnZh
bGlkISIsCisgICItbGF0bi0iLAorICAibGF0bi0iLAorICAibGF0bi0tIiwKKyAgImxhdG4tY2Ei
LAorICAibGF0bi1jYS0iLAorICAibGF0bi1jYS1ncmVnb3J5IiwKKyAgImxhdG7DqSIsCisgICJs
YXRu57yW5Y+3IiwKK107Citmb3IgKGNvbnN0IG51bWJlcmluZ1N5c3RlbSBvZiBpbnZhbGlkTnVt
YmVyaW5nU3lzdGVtT3B0aW9ucykgeworICBhc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsIGZ1bmN0
aW9uKCkgeworICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbicsIHtudW1iZXJpbmdTeXN0
ZW19KTsKKyAgfSwgYG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHtudW1iZXJpbmdTeXN0
ZW06ICIke251bWJlcmluZ1N5c3RlbX0ifSkgdGhyb3dzIFJhbmdlRXJyb3JgKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvaW52YWxp
ZC1udW1iZXJpbmctc3lzdGVtLWNhbGVuZGFyLW9wdGlvbnMuanMgYi9KU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2ludmFsaWQtbnVtYmVyaW5nLXN5c3RlbS1jYWxl
bmRhci1vcHRpb25zLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OGQyZTVmOTNj
Yjc2MGZmYmI0MzJkMTc0ZWFlMjQ2NDAzZTM2ODQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvRGF0ZVRp
bWVGb3JtYXQvaW52YWxpZC1udW1iZXJpbmctc3lzdGVtLWNhbGVuZGFyLW9wdGlvbnMuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAyMCBHb29nbGUgSW5j
LCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0t
LQotZXNpZDogc2VjLWluaXRpYWxpemVkYXRldGltZWZvcm1hdAotZGVzY3JpcHRpb246ID4KLSAg
ICBUZXN0cyB0aGF0IGludmFsaWQgbnVtYmVyaW5nU3lzdGVtIGFuZCBjYWxlbmRhciBvcHRpb24g
dGhyb3dzIFJhbmdlRXJyb3IuCi1hdXRob3I6IENhaW8gTGltYQotLS0tKi8KLQotbGV0IGludmFs
aWRWYWx1ZXMgPSBbImFiIiwgImFhYWFhYWFhYmJiYmJhYmFiYS4iXTsKLQotdmFyIGRlZmF1bHRM
b2NhbGUgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGU7
Ci0KLWludmFsaWRWYWx1ZXMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHsKLSAgICBhc3NlcnQu
dGhyb3dzKFJhbmdlRXJyb3IsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
SW50bC5EYXRlVGltZUZvcm1hdChbZGVmYXVsdExvY2FsZV0sIHtudW1iZXJpbmdTeXN0ZW06IHZh
bHVlfSk7Ci0gICAgfSwgIkludmFsaWQgbnVtYmVyaW5nU3lzdGVtIHZhbHVlICIgKyB2YWx1ZSAr
ICIgd2FzIG5vdCByZWplY3RlZC4iKTsKLSAgICBhc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChb
ZGVmYXVsdExvY2FsZSArICItdS1udS0iICsgdmFsdWVdKTsKLSAgICB9LCAiSW52YWxpZCBudW1i
ZXJpbmdTeXN0ZW0gdmFsdWUgIiArIHZhbHVlICsgIiB3YXMgbm90IHJlamVjdGVkLiIpOwotCi0g
ICAgYXNzZXJ0LnRocm93cyhSYW5nZUVycm9yLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoW2RlZmF1bHRMb2NhbGVdLCB7Y2FsZW5kYXI6
IHZhbHVlfSk7Ci0gICAgfSwgIkludmFsaWQgY2FsZW5kYXIgdmFsdWUgIiArIHZhbHVlICsgIiB3
YXMgbm90IHJlamVjdGVkLiIpOwotICAgIGFzc2VydC50aHJvd3MoUmFuZ2VFcnJvciwgZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFtkZWZh
dWx0TG9jYWxlICsgIi11LWNhLSIgKyB2YWx1ZV0pOwotICAgIH0sICJJbnZhbGlkIGNhbGVuZGFy
IHZhbHVlICIgKyB2YWx1ZSArICIgd2FzIG5vdCByZWplY3RlZC4iKTsKLX0pOwotCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9jb25zdHJ1Y3Rv
ci1vcHRpb25zLW51bWJlcmluZ1N5c3RlbS1pbnZhbGlkLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvY29uc3RydWN0b3Itb3B0aW9ucy1udW1iZXJpbmdTeXN0
ZW0taW52YWxpZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjkxNjdlNWJiNTM2MGYyOTQ5NWEzNWY2ZWNkNTMy
MDUzMzNjNDY2Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQw
Mi9OdW1iZXJGb3JtYXQvY29uc3RydWN0b3Itb3B0aW9ucy1udW1iZXJpbmdTeXN0ZW0taW52YWxp
ZC5qcwpAQCAtMCwwICsxLDQwIEBACisvLyBDb3B5cmlnaHQgMjAyMCBBbmRyw6kgQmFyZ3VsbDsg
SWdhbGlhLCBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
Citlc2lkOiBzZWMtaW5pdGlhbGl6ZW51bWJlcmZvcm1hdAorZGVzY3JpcHRpb246ID4KKyAgICBD
aGVja3MgZXJyb3IgY2FzZXMgZm9yIHRoZSBvcHRpb25zIGFyZ3VtZW50IHRvIHRoZSBOdW1iZXJG
b3JtYXQgY29uc3RydWN0b3IuCitpbmZvOiB8CisgICAgSW5pdGlhbGl6ZU51bWJlckZvcm1hdCAo
IG51bWJlckZvcm1hdCwgbG9jYWxlcywgb3B0aW9ucyApCisKKyAgICAuLi4KKyAgICA4LiBJZiBu
dW1iZXJpbmdTeXN0ZW0gaXMgbm90IHVuZGVmaW5lZCwgdGhlbgorICAgICAgICBhLiBJZiBudW1i
ZXJpbmdTeXN0ZW0gZG9lcyBub3QgbWF0Y2ggdGhlIFVuaWNvZGUgTG9jYWxlIElkZW50aWZpZXIg
dHlwZSBub250ZXJtaW5hbCwgdGhyb3cgYSBSYW5nZUVycm9yIGV4Y2VwdGlvbi4KKy0tLSovCisK
Ky8qCisgYWxwaGFudW0gPSAoQUxQSEEgLyBESUdJVCkgICAgIDsgbGV0dGVycyBhbmQgbnVtYmVy
cworIG51bWJlcmluZ1N5c3RlbSA9ICgzKjhhbHBoYW51bSkgKigiLSIgKDMqOGFscGhhbnVtKSkK
KyovCitjb25zdCBpbnZhbGlkTnVtYmVyaW5nU3lzdGVtT3B0aW9ucyA9IFsKKyAgIiIsCisgICJh
IiwKKyAgImFiIiwKKyAgImFiY2RlZmdoaSIsCisgICJhYmMtYWJjZGVmZ2hpIiwKKyAgIiFpbnZh
bGlkISIsCisgICItbGF0bi0iLAorICAibGF0bi0iLAorICAibGF0bi0tIiwKKyAgImxhdG4tY2Ei
LAorICAibGF0bi1jYS0iLAorICAibGF0bi1jYS1ncmVnb3J5IiwKKyAgImxhdG7DqSIsCisgICJs
YXRu57yW5Y+3IiwKK107Citmb3IgKGNvbnN0IG51bWJlcmluZ1N5c3RlbSBvZiBpbnZhbGlkTnVt
YmVyaW5nU3lzdGVtT3B0aW9ucykgeworICBhc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsIGZ1bmN0
aW9uKCkgeworICAgIG5ldyBJbnRsLk51bWJlckZvcm1hdCgnZW4nLCB7bnVtYmVyaW5nU3lzdGVt
fSk7CisgIH0sIGBuZXcgSW50bC5OdW1iZXJGb3JtYXQoImVuIiwge251bWJlcmluZ1N5c3RlbTog
IiR7bnVtYmVyaW5nU3lzdGVtfSJ9KSB0aHJvd3MgUmFuZ2VFcnJvcmApOworfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvaW52YWxpZC1udW1i
ZXJpbmctc3lzdGVtLW9wdGlvbnMuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL051
bWJlckZvcm1hdC9pbnZhbGlkLW51bWJlcmluZy1zeXN0ZW0tb3B0aW9ucy5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNGFlM2ZjZWY5ZGM1YzA5ZTQ0NTMxNjViYWI3ZDAwZmM1ZDQy
ZTNmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9pbnZhbGlkLW51bWJlcmluZy1z
eXN0ZW0tb3B0aW9ucy5qcworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS8vIENvcHly
aWdodCAyMDIwIEdvb2dsZSBJbmMsIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0v
LyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtaW5pdGlhbGl6ZW51bWJlcmZvcm1hdAot
ZGVzY3JpcHRpb246ID4KLSAgICBUZXN0cyB0aGF0IGludmFsaWQgbnVtYmVyaW5nU3lzdGVtIG9w
dGlvbiB0aHJvd3MgUmFuZ2VFcnJvci4KLWF1dGhvcjogQ2FpbyBMaW1hCi0tLS0qLwotCi1sZXQg
aW52YWxpZFZhbHVlcyA9IFsiYWIiLCAiYWFhYWFhYWFiYmJiYmFiYWJhLiJdOwotCi12YXIgZGVm
YXVsdExvY2FsZSA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxv
Y2FsZTsKLQotaW52YWxpZFZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkgewotICAgIGFz
c2VydC50aHJvd3MoUmFuZ2VFcnJvciwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcmV0dXJu
IG5ldyBJbnRsLk51bWJlckZvcm1hdChbZGVmYXVsdExvY2FsZV0sIHtudW1iZXJpbmdTeXN0ZW06
IHZhbHVlfSk7Ci0gICAgfSwgIkludmFsaWQgbnVtYmVyaW5nU3lzdGVtIHZhbHVlICIgKyB2YWx1
ZSArICIgd2FzIG5vdCByZWplY3RlZC4iKTsKLSAgICBhc3NlcnQudGhyb3dzKFJhbmdlRXJyb3Is
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQo
W2RlZmF1bHRMb2NhbGUgKyAiLXUtbnUtIiArIHZhbHVlXSk7Ci0gICAgfSwgIkludmFsaWQgbnVt
YmVyaW5nU3lzdGVtIHZhbHVlICIgKyB2YWx1ZSArICIgd2FzIG5vdCByZWplY3RlZC4iKTsKLX0p
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9SZWxhdGl2ZVRpbWVG
b3JtYXQvY29uc3RydWN0b3IvY29uc3RydWN0b3Ivb3B0aW9ucy1udW1iZXJpbmdTeXN0ZW0taW52
YWxpZC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvUmVsYXRpdmVUaW1lRm9ybWF0
L2NvbnN0cnVjdG9yL2NvbnN0cnVjdG9yL29wdGlvbnMtbnVtYmVyaW5nU3lzdGVtLWludmFsaWQu
anMKaW5kZXggMjBkYWM2Njc0ZDlkNDNlNmMxNTI2MzVjZWNjNTMyYmZiMzFhODUyMy4uNmFkYmNm
YWE2YWFhNTc0ODRkNzJmMTVhMTUzY2Y3ZDljNTVmOGQxNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvaW50bDQwMi9SZWxhdGl2ZVRpbWVGb3JtYXQvY29uc3RydWN0b3IvY29uc3Ry
dWN0b3Ivb3B0aW9ucy1udW1iZXJpbmdTeXN0ZW0taW52YWxpZC5qcworKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9pbnRsNDAyL1JlbGF0aXZlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci9jb25zdHJ1
Y3Rvci9vcHRpb25zLW51bWJlcmluZ1N5c3RlbS1pbnZhbGlkLmpzCkBAIC0xMCw3ICsxMCw3IEBA
IGluZm86IHwKIAogICAgIC4uLgogICAgIDguIElmIG51bWJlcmluZ1N5c3RlbSBpcyBub3QgdW5k
ZWZpbmVkLCB0aGVuCi0gICAgICAgIGEuIElmIG51bWJlcmluZ1N5c3RlbSBkb2VzIG5vdCBtYXRj
aCB0aGUgWygzKjhhbHBoYW51bSkgKigiLSIgKDMqOGFscGhhbnVtKSldIHNlcXVlbmNlLCB0aHJv
dyBhIFJhbmdlRXJyb3IgZXhjZXB0aW9uLgorICAgICAgICBhLiBJZiBudW1iZXJpbmdTeXN0ZW0g
ZG9lcyBub3QgbWF0Y2ggdGhlIHR5cGUgc2VxdWVuY2UgKGZyb20gVVRTIDM1IFVuaWNvZGUgTG9j
YWxlIElkZW50aWZpZXIsIHNlY3Rpb24gMy4yKSwgdGhyb3cgYSBSYW5nZUVycm9yIGV4Y2VwdGlv
bi4KIAogZmVhdHVyZXM6IFtJbnRsLlJlbGF0aXZlVGltZUZvcm1hdF0KIC0tLSovCkBAIC0zNCw2
ICszNCw4IEBAIGNvbnN0IGludmFsaWROdW1iZXJpbmdTeXN0ZW1PcHRpb25zID0gWwogICAibGF0
bi1jYSIsCiAgICJsYXRuLWNhLSIsCiAgICJsYXRuLWNhLWdyZWdvcnkiLAorICAibGF0bsOpIiwK
KyAgImxhdG7nvJblj7ciLAogXTsKIGZvciAoY29uc3QgbnVtYmVyaW5nU3lzdGVtIG9mIGludmFs
aWROdW1iZXJpbmdTeXN0ZW1PcHRpb25zKSB7CiAgIGFzc2VydC50aHJvd3MoUmFuZ2VFcnJvciwg
ZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwt
Y2hhaW5pbmcuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9j
bGFzcy9lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTI4MDU3NzFlOTkxZDNjOTk3ZWI3N2YxNjIwNmUxMzQ3NzA5Yjk1ZgotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2NsYXNzL2VsZW1lbnRzL2dyYW1tYXItcHJpdmF0ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5q
cwpAQCAtMCwwICsxLDQwIEBACisvLyBUaGlzIGZpbGUgd2FzIHByb2NlZHVyYWxseSBnZW5lcmF0
ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6CisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9n
cmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuY2FzZQorLy8gLSBzcmMvY2xh
c3MtZWxlbWVudHMvZGVmYXVsdC9jbHMtZXhwci50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9u
OiBQcml2YXRlTmFtZSBhZnRlciAnPy4nIGlzIHZhbGlkIHN5bnRheCAoZmllbGQgZGVmaW5pdGlv
bnMgaW4gYSBjbGFzcyBleHByZXNzaW9uKQorZXNpZDogcHJvZC1GaWVsZERlZmluaXRpb24KK2Zl
YXR1cmVzOiBbY2xhc3MtZmllbGRzLXByaXZhdGUsIG9wdGlvbmFsLWNoYWluaW5nLCBjbGFzc10K
K2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5mbzogfAorICAgIFVwZGF0ZWQgUHJvZHVjdGlvbnMKKwor
ICAgIE9wdGlvbmFsQ2hhaW5bWWllbGQsIEF3YWl0XToKKyAgICAgIGA/LmAgYFtgIEV4cHJlc3Np
b25bK0luLCA/WWllbGQsID9Bd2FpdF0gYF1gCisgICAgICBgPy5gIElkZW50aWZpZXJOYW1lCisg
ICAgICBgPy5gIEFyZ3VtZW50c1s/WWllbGQsID9Bd2FpdF0KKyAgICAgIGA/LmAgVGVtcGxhdGVM
aXRlcmFsWz9ZaWVsZCwgP0F3YWl0LCArVGFnZ2VkXQorICAgICAgYD8uYCBQcml2YXRlSWRlbnRp
ZmllcgorCistLS0qLworCisKK3ZhciBDID0gY2xhc3MgeworICAjbSA9ICd0ZXN0MjYyJzsKKwor
ICBzdGF0aWMgYWNjZXNzKG9iaikgeworICAgIHJldHVybiBvYmo/LiNtOworICB9Cit9CisKK2xl
dCBjID0gbmV3IEMoKTsKKworYXNzZXJ0LnNhbWVWYWx1ZShDLmFjY2VzcyhjKSwgJ3Rlc3QyNjIn
KTsKKworYXNzZXJ0LnNhbWVWYWx1ZShDLmFjY2VzcyhudWxsKSwgdW5kZWZpbmVkKTsKK2Fzc2Vy
dC5zYW1lVmFsdWUoQy5hY2Nlc3ModW5kZWZpbmVkKSwgdW5kZWZpbmVkKTsKKworYXNzZXJ0LnRo
cm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBDLmFjY2Vzcyh7fSk7Cit9LCAnYWNjZXNz
ZWQgcHJpdmF0ZSBmaWVsZCBmcm9tIGFuIG9yZGluYXJ5IG9iamVjdCcpOworCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50
cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQtYXNzaWduZWQuanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMt
dmFsaWQtaW5zdGFuY2UtZmllbGQtYXNzaWduZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVlNWJhODJiMGUy
ZThhN2JlYzhmOTNkOGViYTIwYTgzM2NmMjFiOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1h
cy12YWxpZC1pbnN0YW5jZS1maWVsZC1hc3NpZ25lZC5qcwpAQCAtMCwwICsxLDM2IEBACisvLyBU
aGlzIGZpbGUgd2FzIHByb2NlZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNv
dXJjZXM6CisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2Ut
ZmllbGQtYXNzaWduZWQuY2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZGVmYXVsdC9jbHMt
ZXhwci50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMgaXMgYSB2YWxpZCBuYW1l
IG9mIGFuIGluc3RhbmNlIGZpZWxkIChmaWVsZCBkZWZpbml0aW9ucyBpbiBhIGNsYXNzIGV4cHJl
c3Npb24pCitlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1maWVs
ZHMtcHVibGljLCBjbGFzc10KK2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5jbHVkZXM6IFtwcm9wZXJ0
eUhlbHBlci5qc10KK2luZm86IHwKKyAgICBDbGFzc0VsZW1lbnQ6CisgICAgICAuLi4KKyAgICAg
IEZpZWxkRGVmaW5pdGlvbiA7CisKKyAgICBGaWVsZERlZmluaXRpb246CisgICAgICBDbGFzc0Vs
ZW1lbnROYW1lIEluaXRpYWxpemVyX29wdAorCisgICAgQ2xhc3NFbGVtZW50TmFtZToKKyAgICAg
IFByb3BlcnR5TmFtZQorCistLS0qLworCisKK3ZhciBDID0gY2xhc3MgeworICBzdGF0aWMgPSAi
Zm9vIjsKK30KKworbGV0IGMgPSBuZXcgQygpOworCit2ZXJpZnlQcm9wZXJ0eShjLCAic3RhdGlj
IiwgeworICB2YWx1ZTogImZvbyIsCisgIGVudW1lcmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiB0
cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30pOworCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMt
dmFsaWQtaW5zdGFuY2UtZmllbGQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzU1NzAzZjA2YjVhNzBlYzZlY2M4ODExOGY0YjBmMzAxM2YyYTU0Zgot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC5qcwpAQCAt
MCwwICsxLDM2IEBACisvLyBUaGlzIGZpbGUgd2FzIHByb2NlZHVyYWxseSBnZW5lcmF0ZWQgZnJv
bSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6CisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9zdGF0aWMt
YXMtdmFsaWQtaW5zdGFuY2UtZmllbGQuY2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZGVm
YXVsdC9jbHMtZXhwci50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMgaXMgYSB2
YWxpZCBuYW1lIG9mIGFuIGluc3RhbmNlIGZpZWxkIChmaWVsZCBkZWZpbml0aW9ucyBpbiBhIGNs
YXNzIGV4cHJlc3Npb24pCitlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtj
bGFzcy1maWVsZHMtcHVibGljLCBjbGFzc10KK2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5jbHVkZXM6
IFtwcm9wZXJ0eUhlbHBlci5qc10KK2luZm86IHwKKyAgICBDbGFzc0VsZW1lbnQ6CisgICAgICAu
Li4KKyAgICAgIEZpZWxkRGVmaW5pdGlvbiA7CisKKyAgICBGaWVsZERlZmluaXRpb246CisgICAg
ICBDbGFzc0VsZW1lbnROYW1lIEluaXRpYWxpemVyX29wdAorCisgICAgQ2xhc3NFbGVtZW50TmFt
ZToKKyAgICAgIFByb3BlcnR5TmFtZQorCistLS0qLworCisKK3ZhciBDID0gY2xhc3MgeworICBz
dGF0aWM7Cit9CisKK2xldCBjID0gbmV3IEMoKTsKKwordmVyaWZ5UHJvcGVydHkoYywgInN0YXRp
YyIsIHsKKyAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFi
bGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N0YXRp
Yy1hcy12YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3Rh
dGljLWZpZWxkLWFzc2lnbmVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzZjMwYTYzZTRmOTdmYjI0YTk4ZTBj
MDhiNmM2ZTYwZTUxNzA3YjAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3Rh
dGljLWZpZWxkLWFzc2lnbmVkLmpzCkBAIC0wLDAgKzEsMjggQEAKKy8vIFRoaXMgZmlsZSB3YXMg
cHJvY2VkdXJhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBmb2xsb3dpbmcgc291cmNlczoKKy8vIC0g
c3JjL2NsYXNzLWVsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQu
Y2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZGVmYXVsdC9jbHMtZXhwci50ZW1wbGF0ZQor
LyotLS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMgaXMgYSB2YWxpZCBuYW1lIG9mIGEgc3RhdGljIGZp
ZWxkIChmaWVsZCBkZWZpbml0aW9ucyBpbiBhIGNsYXNzIGV4cHJlc3Npb24pCitlc2lkOiBwcm9k
LUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1zdGF0aWMtZmllbGRzLXB1YmxpYywg
Y2xhc3NdCitmbGFnczogW2dlbmVyYXRlZF0KK2luY2x1ZGVzOiBbcHJvcGVydHlIZWxwZXIuanNd
CitpbmZvOiB8CisgICAgQ2xhc3NFbGVtZW50OgorICAgICAgLi4uCisgICAgICBzdGF0aWMgRmll
bGREZWZpbml0aW9uIDsKKworLS0tKi8KKworCit2YXIgQyA9IGNsYXNzIHsKKyAgc3RhdGljIHN0
YXRpYyA9ICJ0ZXN0MjYyIjsKK30KKwordmVyaWZ5UHJvcGVydHkoQywgInN0YXRpYyIsIHsKKyAg
dmFsdWU6ICJ0ZXN0MjYyIiwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUs
CisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1hcy12YWxp
ZC1zdGF0aWMtZmllbGQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJjMGFhYWU3OGE3MGE0ZjM4MWRlYjRhZGJmM2VhMWIzOTIyMjc3NDgKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFz
cy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLmpzCkBAIC0wLDAgKzEsMjgg
QEAKKy8vIFRoaXMgZmlsZSB3YXMgcHJvY2VkdXJhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBmb2xs
b3dpbmcgc291cmNlczoKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1z
dGF0aWMtZmllbGQuY2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZGVmYXVsdC9jbHMtZXhw
ci50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMgaXMgYSB2YWxpZCBuYW1lIG9m
IGEgc3RhdGljIGZpZWxkIChmaWVsZCBkZWZpbml0aW9ucyBpbiBhIGNsYXNzIGV4cHJlc3Npb24p
Citlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1zdGF0aWMtZmll
bGRzLXB1YmxpYywgY2xhc3NdCitmbGFnczogW2dlbmVyYXRlZF0KK2luY2x1ZGVzOiBbcHJvcGVy
dHlIZWxwZXIuanNdCitpbmZvOiB8CisgICAgQ2xhc3NFbGVtZW50OgorICAgICAgLi4uCisgICAg
ICBzdGF0aWMgRmllbGREZWZpbml0aW9uIDsKKworLS0tKi8KKworCit2YXIgQyA9IGNsYXNzIHsK
KyAgc3RhdGljIHN0YXRpYzsKK30KKwordmVyaWZ5UHJvcGVydHkoQywgInN0YXRpYyIsIHsKKyAg
dmFsdWU6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUs
CisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N5bnRheC9lYXJseS1l
cnJvcnMvZ3JhbW1hci1wcml2YXRlLWZpZWxkLW9wdGlvbmFsLWNoYWluaW5nLmpzIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY2xhc3MvZWxlbWVudHMvc3ludGF4
L2Vhcmx5LWVycm9ycy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlZmFlNWU2OGNkZDBlOWE2MzgxYmQ0YjA3
ZGM5YWNmYTQ1ZmYxZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY2xhc3MvZWxl
bWVudHMvc3ludGF4L2Vhcmx5LWVycm9ycy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwt
Y2hhaW5pbmcuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0vLyBUaGlzIGZpbGUg
d2FzIHByb2NlZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6Ci0v
LyAtIHNyYy9jbGFzcy1lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hh
aW5pbmcuY2FzZQotLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvc3ludGF4L2ludmFsaWQvY2xzLWV4
cHItZWxlbWVudHMtaW52YWxpZC1zeW50YXgudGVtcGxhdGUKLS8qLS0tCi1kZXNjcmlwdGlvbjog
UHJpdmF0ZU5hbWUgYWZ0ZXIgJz8uJyBpcyBub3QgdmFsaWQgc3ludGF4IChjbGFzcyBleHByZXNz
aW9uKQotZXNpZDogcHJvZC1DbGFzc0VsZW1lbnQKLWZlYXR1cmVzOiBbY2xhc3MtZmllbGRzLXBy
aXZhdGUsIG9wdGlvbmFsLWNoYWluaW5nLCBjbGFzc10KLWZsYWdzOiBbZ2VuZXJhdGVkXQotbmVn
YXRpdmU6Ci0gIHBoYXNlOiBwYXJzZQotICB0eXBlOiBTeW50YXhFcnJvcgotaW5mbzogfAotICAg
IFVwZGF0ZWQgUHJvZHVjdGlvbnMKLQotICAgIE1lbWJlckV4cHJlc3Npb25bWWllbGRdOgotICAg
ICAgTWVtYmVyRXhwcmVzc2lvbls/WWllbGRdLlByaXZhdGVOYW1lCi0KLS0tLSovCi0KLQotJERP
Tk9URVZBTFVBVEUoKTsKLQotdmFyIEMgPSBjbGFzcyB7Ci0gICNtID0gJ3Rlc3QyNjInOwotCi0g
IGFjY2VzcyhvYmopIHsKLSAgICByZXR1cm4gb2JqPy4jbTsKLSAgfQotfTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLWFuZC1hcmd1bWVudHMtc3RyaWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFyZ3VtZW50
cy1zdHJpY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIzZTRhODhmOTI2Y2ZiNjg5NjYwYWU0ZWM5NTg0YmNm
ZGM5OTA0OQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hcmd1bWVudHMtc3RyaWN0
LmpzCkBAIC0wLDAgKzEsMTggQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
YXNzaWdubWVudC1vcGVyYXRvcnMKK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBT
eW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgYXJndW1lbnRzCisgICAgYXBw
ZWFyIGFzIHRoZSBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIG9mIGEgTG9naWNhbCBBc3NpZ25tZW50
CisgICAgb3BlcmF0b3IoJiY9KQorZmxhZ3M6IFtvbmx5U3RyaWN0XQorbmVnYXRpdmU6CisgIHBo
YXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KKyRET05PVEVWQUxVQVRFKCk7CisKK2FyZ3VtZW50cyAm
Jj0gMjA7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1iaWdp
bnQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzg0ZGNmYzhiOWMwMjEzNTYxNTM2ZjM2ZjBlNmQ0MDQ4N2IyYWI2YgotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2lj
YWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLWJpZ2ludC5qcwpAQCAt
MCwwICsxLDI3IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNE
IGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1h
c3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlw
dGlvbjogTG9naWNhbCBBbmQgQXNzaWdubWVudCBPcGVyYXRvcgorZmVhdHVyZXM6IFtCaWdJbnQs
IGxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCitpbmZvOiB8CisgICAgQXNzaWdubWVudEV4
cHJlc3Npb246CisgICAgICBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uICYmPSBBc3NpZ25tZW50RXhw
cmVzc2lvbgorCisgICAgMS4gTGV0IGxyZWYgYmUgdGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIExl
ZnRIYW5kU2lkZUV4cHJlc3Npb24uCisgICAgMi4gTGV0IGx2YWwgYmUgPyBHZXRWYWx1ZShscmVm
KS4KKyAgICAzLiBMZXQgbGJvb2wgYmUgISBUb0Jvb2xlYW4obHZhbCkuCisgICAgNC4gSWYgbGJv
b2wgaXMgZmFsc2UsIHJldHVybiBsdmFsLgorICAgIDUuIExldCBycmVmIGJlIHRoZSByZXN1bHQg
b2YgZXZhbHVhdGluZyBBc3NpZ25tZW50RXhwcmVzc2lvbi4KKyAgICA2LiBMZXQgcnZhbCBiZSA/
IEdldFZhbHVlKHJyZWYpLgorICAgIDcuIFBlcmZvcm0gPyBQdXRWYWx1ZShscmVmLCBydmFsKS4K
KyAgICA4LiBSZXR1cm4gcnZhbC4KKworLS0tKi8KKwordmFyIHZhbHVlID0gMG47Cithc3NlcnQu
c2FtZVZhbHVlKHZhbHVlICYmPSAxbiwgMG4sICIodmFsdWUgJiY9IDFuKSA9PT0gMG47IHdoZXJl
IHZhbHVlID0gMG4iKTsKKwordmFsdWUgPSAybjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9
IDFuLCAxbiwgIih2YWx1ZSAmJj0gMW4pID09PSAxbjsgd2hlcmUgdmFsdWUgPSAybiIpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNh
bC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3ItbGhzLWJlZm9yZS1yaHMu
anMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFz
c2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1saHMtYmVmb3JlLXJocy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hZjY3ODRiYjU4MjZkN2U2YjdhYjQwM2ZkZjA1YjA2MThiOGRkYmM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3ItbGhzLWJlZm9y
ZS1yaHMuanMKQEAgLTAsMCArMSw1MyBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50
ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
Citlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVh
dGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBUaGUgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBpcyBl
dmFsdWF0ZWQgYmVmb3JlIHRoZSBBc3NpZ25tZW50RXhwcmVzc2lvbi4KK2ZlYXR1cmVzOiBbbG9n
aWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKworZnVuY3Rpb24gRHVtbXlFcnJv
cigpIHsgfQorCithc3NlcnQudGhyb3dzKER1bW15RXJyb3IsIGZ1bmN0aW9uKCkgeworICB2YXIg
YmFzZSA9IG51bGw7CisgIHZhciBwcm9wID0gZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgbmV3IER1
bW15RXJyb3IoKTsKKyAgfTsKKyAgdmFyIGV4cHIgPSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyBu
ZXcgVGVzdDI2MkVycm9yKCJyaWdodC1oYW5kIHNpZGUgZXhwcmVzc2lvbiBldmFsdWF0ZWQiKTsK
KyAgfTsKKworICBiYXNlW3Byb3AoKV0gJiY9IGV4cHIoKTsKK30pOworCithc3NlcnQudGhyb3dz
KFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIHZhciBiYXNlID0gbnVsbDsKKyAgdmFyIHByb3Ag
PSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IFRlc3QyNjJF
cnJvcigicHJvcGVydHkga2V5IGV2YWx1YXRlZCIpOworICAgIH0KKyAgfTsKKyAgdmFyIGV4cHIg
PSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJyaWdodC1oYW5kIHNp
ZGUgZXhwcmVzc2lvbiBldmFsdWF0ZWQiKTsKKyAgfTsKKworICBiYXNlW3Byb3BdICYmPSBleHBy
KCk7Cit9KTsKKwordmFyIGNvdW50ID0gMDsKK3ZhciBvYmogPSB7fTsKK2Z1bmN0aW9uIGluY3Io
KSB7CisgIHJldHVybiArK2NvdW50OworfQorCithc3NlcnQuc2FtZVZhbHVlKG9ialtpbmNyKCld
ICYmPSBpbmNyKCksIHVuZGVmaW5lZCwgIm9ialtpbmNyKCldICYmPSBpbmNyKCkiKTsKK2Fzc2Vy
dC5zYW1lVmFsdWUob2JqWzFdLCB1bmRlZmluZWQsICJvYmpbMV0iKTsKK2Fzc2VydC5zYW1lVmFs
dWUoY291bnQsIDEsICJjb3VudCIpOworCitvYmpbMl0gPSAxOworYXNzZXJ0LnNhbWVWYWx1ZShv
YmpbaW5jcigpXSAmJj0gaW5jcigpLCAzLCAib2JqW2luY3IoKV0gJiY9IGluY3IoKSIpOworYXNz
ZXJ0LnNhbWVWYWx1ZShvYmpbMl0sIDMsICJvYmpbMl0iKTsKK2Fzc2VydC5zYW1lVmFsdWUoY291
bnQsIDMsICJjb3VudCIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3Bl
cmF0b3Itbm8tc2V0LXB1dC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5v
LXNldC1wdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhkNDJkMjE0ZmU3YTk4MzM1YWQwMjNlYjM3MTUwYWFk
Yzc3NGVkMAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJh
dG9yLW5vLXNldC1wdXQuanMKQEAgLTAsMCArMSwyOCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIw
IEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUg
aXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu
CisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRp
Y3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFR5cGVFcnJv
ciBpcyB0aHJvd24gaWYgdGhlIExlZnRIYW5kU2lkZSBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25t
ZW50IG9wZXJhdG9yKCYmPSkgaXMgYSByZWZlcmVuY2UgdG8gYSBkYXRhIHByb3BlcnR5IHdpdGgg
dGhlCisgICAgYXR0cmlidXRlIHZhbHVlIHtbW1NldF1dOnVuZGVmaW5lZH0gYW5kIFB1dFZhbHVl
IHN0ZXAgaXMgcmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVzOiBbbG9naWNh
bC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9OworT2JqZWN0
LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7CisgIGdldDogZnVuY3Rpb24oKSB7CisgICAg
cmV0dXJuIDI7CisgIH0sCisgIHNldDogdW5kZWZpbmVkLAorICBlbnVtZXJhYmxlOiB0cnVlLAor
ICBjb25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVu
Y3Rpb24oKSB7CisgIG9iai5wcm9wICYmPSAxOworfSk7Cithc3NlcnQuc2FtZVZhbHVlKG9iai5w
cm9wLCAyLCAib2JqLnByb3AiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50
LW9wZXJhdG9yLW5vLXNldC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5v
LXNldC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42N2RhMGE1NjE0Zjk2ODAzNzA3OWU1ZWMxMjFkYmU5M2ExODZi
NzM0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3It
bm8tc2V0LmpzCkBAIC0wLDAgKzEsMjUgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIElu
dGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0t
LQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1
YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMgbm90
IHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQg
b3BlcmF0b3IoJiY9KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJvcGVydHkgd2l0aCB0aGUK
KyAgICBhdHRyaWJ1dGUgdmFsdWUge1tbU2V0XV06dW5kZWZpbmVkfSBhbmQgUHV0VmFsdWUgc3Rl
cCBpcyBub3QgcmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVzOiBbbG9naWNh
bC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9OworT2JqZWN0
LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7CisgIGdldDogZnVuY3Rpb24oKSB7CisgICAg
cmV0dXJuIDA7CisgIH0sCisgIHNldDogdW5kZWZpbmVkLAorICBlbnVtZXJhYmxlOiB0cnVlLAor
ICBjb25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQuc2FtZVZhbHVlKG9iai5wcm9wICYm
PSAxLCAwLCAib2JqLnByb3AiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50
LW9wZXJhdG9yLW5vbi1leHRlbnNpYmxlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3Bl
cmF0b3Itbm9uLWV4dGVuc2libGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFlM2NmMDVlYWI2NzQ5MDFiZTRk
ZTBhNTM2MjliMjZkNDYzOWQ0YgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3Np
Z25tZW50LW9wZXJhdG9yLW5vbi1leHRlbnNpYmxlLmpzCkBAIC0wLDAgKzEsMTkgQEAKKy8vIENv
cHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3Jz
LXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0
IE1vZGUgLSBUeXBlRXJyb3IgaXMgbm90IHRocm93biBpZiBUaGUgTGVmdEhhbmRTaWRlIG9mIGEg
TG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IoJiY9KSBpcyBhIHJlZmVyZW5jZSB0byBh
IG5vbi1leGlzdGVudCBwcm9wZXJ0eSBvZiBhbgorICAgIG9iamVjdCB3aG9zZSBbW0V4dGVuc2li
bGVdXSBpbnRlcm5hbCBwcm9wZXJ0eSBpcyBmYWxzZS4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2Zl
YXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9i
aiA9IHt9OworT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7CisKK29iai5wcm9wICYmPSAx
OworYXNzZXJ0LnNhbWVWYWx1ZShvYmoucHJvcCwgdW5kZWZpbmVkLCAib2JqLnByb3AiKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2lj
YWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1zaW1wbGUtbGhz
LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGUzNzczNGVlMmNmYTlmYmIxNjRmNmUyNWU2ZjQ1NTA2OGUzOTExOQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1zaW1w
bGUtbGhzLmpzCkBAIC0wLDAgKzEsMTkgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIElu
dGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0t
LQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXN0YXRpYy1zZW1hbnRpY3MtZWFybHkt
ZXJyb3JzCitkZXNjcmlwdGlvbjogPgorICAgIEl0IGlzIGEgU3ludGF4IEVycm9yIGlmIEFzc2ln
bm1lbnRUYXJnZXRUeXBlIG9mIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gaXMKKyAgICBub3Qgc2lt
cGxlLgorbmVnYXRpdmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVh
dHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCiskRE9OT1RF
VkFMVUFURSgpOworCitmdW5jdGlvbiB0ZXN0KCkge30KK3Rlc3QoKSAmJj0gMTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNz
aWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi13cml0ZWFibGUtcHV0Lmpz
IGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3Np
Z25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmRmZjhiNTcyNjU1ZmVkNDA3M2JkZjM4YWFlNzgzYTczOTliZGM0OAotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi13cml0
ZWFibGUtcHV0LmpzCkBAIC0wLDAgKzEsMjYgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21h
IEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdv
dmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisv
Ki0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2
YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMg
dGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGUgb2YgYSBMb2dpY2FsCisgICAgQXNzaWdubWVudCBv
cGVyYXRvcigmJj0pIGlzIGEgcmVmZXJlbmNlIHRvIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIHRoZQor
ICAgIGF0dHJpYnV0ZSB2YWx1ZSB7W1tXcml0YWJsZV1dOmZhbHNlfSBhbmQgUHV0VmFsdWUgc3Rl
cCBpcyByZWFjaGVkLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dpY2FsLWFz
c2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0ge307CitPYmplY3QuZGVm
aW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsKKyAgdmFsdWU6IDIsCisgIHdyaXRhYmxlOiBmYWxz
ZSwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgY29uZmlndXJhYmxlOiB0cnVlCit9KTsKKworYXNz
ZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBvYmoucHJvcCAmJj0gMTsKK30p
OworYXNzZXJ0LnNhbWVWYWx1ZShvYmoucHJvcCwgMiwgIm9iai5wcm9wIik7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLmpzIGIvSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOWM2N2RlZmFhMTUwNzBiNWFhZmM1ZDZlYmZlZmE5YTRiNmVmNjYxCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS5qcwpA
QCAtMCwwICsxLDIzIEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFs
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUg
QlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNl
Yy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNj
cmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVycm9yIGlzIG5vdCB0aHJvd24gaWYg
dGhlIExlZnRIYW5kU2lkZSBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKCYm
PSkgaXMgYSByZWZlcmVuY2UgdG8gYSBkYXRhIHByb3BlcnR5IHdpdGggdGhlCisgICAgYXR0cmli
dXRlIHZhbHVlIHtbW1dyaXRhYmxlXV06ZmFsc2V9IGFuZCBQdXRWYWx1ZSBzdGVwIGlzIG5vdCBy
ZWFjaGVkLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1l
bnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0ge307CitPYmplY3QuZGVmaW5lUHJv
cGVydHkob2JqLCAicHJvcCIsIHsKKyAgdmFsdWU6IDAsCisgIHdyaXRhYmxlOiBmYWxzZSwKKyAg
ZW51bWVyYWJsZTogdHJ1ZSwKKyAgY29uZmlndXJhYmxlOiB0cnVlCit9KTsKKworYXNzZXJ0LnNh
bWVWYWx1ZShvYmoucHJvcCAmJj0gMSwgMCwgIm9iai5wcm9wIik7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQv
bGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtbGhzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
NGRmMmFiY2Y4M2Y0NGNmZDdmOTE0N2UwNjJkZTA5MzRjNWU1N2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcwpAQCAt
MCwwICsxLDE2IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNE
IGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1h
c3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlw
dGlvbjogPgorICAgIFJlZmVyZW5jZUVycm9yIGlzIHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRl
RXhwcmVzc2lvbiBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKCYmPSkgZXZh
bHVhdGVzIHRvIGFuIHVucmVzb2x2YWJsZSByZWZlcmVuY2UKK2ZsYWdzOiBbb25seVN0cmljdF0K
K2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKworYXNz
ZXJ0LnRocm93cyhSZWZlcmVuY2VFcnJvciwgZnVuY3Rpb24oKSB7CisgIHVucmVzb2x2ZWQgJiY9
IDE7Cit9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLXVu
cmVzb2x2ZWQtcmhzLXB1dC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLXVu
cmVzb2x2ZWQtcmhzLXB1dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTlhMzJlYWE3MmQ2MjdmNDk0OGNjN2Qw
MTc0MDFiODhmZDBlNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1l
bnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMtcHV0LmpzCkBAIC0wLDAgKzEsMTkgQEAKKy8vIENv
cHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3Jz
LXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgUmVmZXJl
bmNlRXJyb3IgaXMgdGhyb3duIGlmIHRoZSBBc3NpZ25tZW50RXhwcmVzc2lvbiBvZiBhIExvZ2lj
YWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKCYmPSkgZXZhbHVhdGVzIHRvIGFuIHVucmVzb2x2
YWJsZSByZWZlcmVuY2UgYW5kIHRoZQorICAgIEFzc2lnbm1lbnRFeHByZXNzaW9uIGlzIGV2YWx1
YXRlZC4KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8K
KwordmFyIHZhbHVlID0gMjsKKworYXNzZXJ0LnRocm93cyhSZWZlcmVuY2VFcnJvciwgZnVuY3Rp
b24oKSB7CisgIHZhbHVlICYmPSB1bnJlc29sdmVkOworfSk7Cithc3NlcnQuc2FtZVZhbHVlKHZh
bHVlLCAyLCAidmFsdWUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9w
ZXJhdG9yLXVucmVzb2x2ZWQtcmhzLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0
b3ItdW5yZXNvbHZlZC1yaHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg2YzZjNDdmMWY0MjlhMDc5NDY2Mzg3
ZmEyYmIyOWEwZWEyMGUzNQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25t
ZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtcmhzLmpzCkBAIC0wLDAgKzEsMTYgQEAKKy8vIENvcHly
aWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1
bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgUmVmZXJlbmNl
RXJyb3IgaXMgbm90IHRocm93biBpZiB0aGUgQXNzaWdubWVudEV4cHJlc3Npb24gb2YgYSBMb2dp
Y2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRvcigmJj0pIGV2YWx1YXRlcyB0byBhbiB1bnJlc29s
dmFibGUgcmVmZXJlbmNlIGFuZCB0aGUKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbiBpcyBub3Qg
ZXZhbHVhdGVkLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCist
LS0qLworCit2YXIgdmFsdWUgPSAwOworCithc3NlcnQuc2FtZVZhbHVlKHZhbHVlICYmPSB1bnJl
c29sdmVkLCAwLCAidmFsdWUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50
LW9wZXJhdG9yLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzE3NjVhMDQxNWE1NDYyMTdkZGU4ZDQ3M2VkYTIzMmMyMmFlNTA0MQotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2lj
YWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLmpzCkBAIC0wLDAgKzEs
NjEgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5z
ZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1l
bnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiBM
b2dpY2FsIEFuZCBBc3NpZ25tZW50IE9wZXJhdG9yCitpbmZvOiB8CisgICAgQXNzaWdubWVudEV4
cHJlc3Npb246CisgICAgICBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uICYmPSBBc3NpZ25tZW50RXhw
cmVzc2lvbgorCisgICAgMS4gTGV0IGxyZWYgYmUgdGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIExl
ZnRIYW5kU2lkZUV4cHJlc3Npb24uCisgICAgMi4gTGV0IGx2YWwgYmUgPyBHZXRWYWx1ZShscmVm
KS4KKyAgICAzLiBMZXQgbGJvb2wgYmUgISBUb0Jvb2xlYW4obHZhbCkuCisgICAgNC4gSWYgbGJv
b2wgaXMgZmFsc2UsIHJldHVybiBsdmFsLgorICAgIDUuIExldCBycmVmIGJlIHRoZSByZXN1bHQg
b2YgZXZhbHVhdGluZyBBc3NpZ25tZW50RXhwcmVzc2lvbi4KKyAgICA2LiBMZXQgcnZhbCBiZSA/
IEdldFZhbHVlKHJyZWYpLgorICAgIDcuIFBlcmZvcm0gPyBQdXRWYWx1ZShscmVmLCBydmFsKS4K
KyAgICA4LiBSZXR1cm4gcnZhbC4KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJh
dG9yc10KKworLS0tKi8KKwordmFyIHZhbHVlID0gdW5kZWZpbmVkOworYXNzZXJ0LnNhbWVWYWx1
ZSh2YWx1ZSAmJj0gMSwgdW5kZWZpbmVkLCAiKHZhbHVlICYmPSAxKSA9PT0gdW5kZWZpbmVkOyB3
aGVyZSB2YWx1ZSA9IHVuZGVmaW5lZCIpOworCit2YWx1ZSA9IG51bGw7Cithc3NlcnQuc2FtZVZh
bHVlKHZhbHVlICYmPSAxLCBudWxsLCAiKHZhbHVlICYmPSAxKSA9PT0gbnVsbCB3aGVyZSB2YWx1
ZSA9IG51bGwiKTsKKwordmFsdWUgPSBmYWxzZTsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9
IDEsIGZhbHNlLCAiKHZhbHVlICYmPSAxKSA9PT0gZmFsc2U7IHdoZXJlIHZhbHVlID0gZmFsc2Ui
KTsKKwordmFsdWUgPSAwOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgMCwgIih2YWx1
ZSAmJj0gMSkgPT09IDA7IHdoZXJlIHZhbHVlID0gMCIpOworCit2YWx1ZSA9IC0wOworYXNzZXJ0
LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgLTAsICIodmFsdWUgJiY9IDEpID09PSAtMDsgd2hlcmUg
dmFsdWUgPSAtMCIpOworCit2YWx1ZSA9IE5hTjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9
IDEsIE5hTiwgIih2YWx1ZSAmJj0gMSkgPT09IE5hTjsgd2hlcmUgdmFsdWUgPSBOYU4iKTsKKwor
dmFsdWUgPSAiIjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9IDEsICIiLCAnKHZhbHVlICYm
PSAxKSA9PT0gIiIgd2hlcmUgdmFsdWUgPSAiIicpOworCisKKwordmFsdWUgPSB0cnVlOworYXNz
ZXJ0LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgMSwgIih2YWx1ZSAmJj0gMSkgPT09IDE7IHdoZXJl
IHZhbHVlID0gdHJ1ZSIpOworCit2YWx1ZSA9IDI7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlICYm
PSAxLCAxLCAiKHZhbHVlICYmPSAxKSA9PT0gMTsgd2hlcmUgdmFsdWUgPSAyIik7CisKK3ZhbHVl
ID0gInRlc3QiOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgMSwgJyh2YWx1ZSAmJj0g
MSkgPT09IDE7IHdoZXJlIHZhbHVlID0gInRlc3QiJyk7CisKK3ZhciBzeW0gPSBTeW1ib2woIiIp
OwordmFsdWUgPSBzeW07Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlICYmPSAxLCAxLCAiKHZhbHVl
ICYmPSAxKSA9PT0gMTsgd2hlcmUgdmFsdWUgPSBTeW1ib2woKSIpOworCit2YXIgb2JqID0ge307
Cit2YWx1ZSA9IG9iajsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9IDEsIDEsICIodmFsdWUg
JiY9IDEpID09PSAxOyB3aGVyZSB2YWx1ZSA9IHt9Iik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1h
bmQtZXZhbC1zdHJpY3QuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtZXZhbC1zdHJpY3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzQ1ZWE5NjBlMWFmMGFiMDhmNjlmMjJlOTAyMjgzNDUwZWVjZTUzMAotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLWFuZC1ldmFsLXN0cmljdC5qcwpAQCAtMCwwICsxLDE3IEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzCitkZXNj
cmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmIHRo
ZSBpZGVudGlmaWVyIGV2YWwgYXBwZWFyCisgICAgYXMgdGhlIExlZnRIYW5kU2lkZUV4cHJlc3Np
b24gb2YgYSBMb2dpY2FsIEFzc2lnbm1lbnQgb3BlcmF0b3IoJiY9KQorZmxhZ3M6IFtvbmx5U3Ry
aWN0XQorbmVnYXRpdmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVh
dHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KKyRET05PVEVWQUxV
QVRFKCk7CisKK2V2YWwgJiY9IDIwOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLW5vbi1zaW1w
bGUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1hbmQtbm9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzdhY2UzMjNh
YzIxMDJlMWY1YTAwODEzYTc2ZGMwYzBiZTBhZThlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtYW5kLW5vbi1zaW1wbGUuanMKQEAgLTAsMCArMSwxNyBAQAorLy8gQ29weXJpZ2h0IChDKSAy
MDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKwor
LyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1zdGF0aWMtc2VtYW50aWNzLWVh
cmx5LWVycm9ycworaW5mbzogfAorICAgIEl0IGlzIGFuIGVhcmx5IFN5bnRheCBFcnJvciBpZiBB
c3NpZ25tZW50VGFyZ2V0VHlwZSBvZgorICAgIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gaXMgaW52
YWxpZCBvciBzdHJpY3QuCitkZXNjcmlwdGlvbjogTG9naWNhbCAiJiY9IiBhc3NpZ25tZW50IHdp
dGggbm9uLXNpbXBsZSB0YXJnZXQKK25lZ2F0aXZlOgorICBwaGFzZTogcGFyc2UKKyAgdHlwZTog
U3ludGF4RXJyb3IKK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKy0t
LSovCiskRE9OT1RFVkFMVUFURSgpOworCisxICYmPSAxOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
YW5kLXdoaXRlc3BhY2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtd2hpdGVzcGFjZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNWI4MTU3MTM1NmRjNzViN2I1ZDAyNDM0MDc4OWMyNTU5Nzk1ZDliCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLXdoaXRlc3BhY2UuanMKQEAgLTAsMCArMSw1OCBAQAorLy8gQ29w
eXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KKworLyotLS0KK2luZm86IHwKKyAgICBXaGl0ZSBTcGFjZSBhbmQgTGluZSBUZXJt
aW5hdG9yIGJldHdlZW4gTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBhbmQgIkA9IgorICAgIG9yIGJl
dHdlZW4gIkA9IiBhbmQgQXNzaWdubWVudEV4cHJlc3Npb24gYXJlIGFsbG93ZWQKK2VzaWQ6IHNl
Yy1hc3NpZ25tZW50LW9wZXJhdG9ycworZGVzY3JpcHRpb246IENoZWNraW5nIGJ5IGV2YWx1YXRp
bmcgZXhwcmVzc2lvbiAieFsuLi5dJiY9Wy4uLl15IgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KK3ZhciB4OworCit4ID0gMTsKK2Fzc2VydC5zYW1lVmFs
dWUoeAkmJj0JMiwgMiwgJ1UrMDAwOSAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUo
eCwgMiwgJ1UrMDAwOSAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAxOworYXNzZXJ0LnNhbWVWYWx1
ZSh4CyYmPQsyLCAyLCAnVSswMDBCIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4
LCAyLCAnVSswMDBCIChzaWRlIGVmZmVjdCknKTsKKworeCA9IDE7Cithc3NlcnQuc2FtZVZhbHVl
KHgMJiY9DDIsIDIsICdVKzAwMEMgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZhbHVlKHgs
IDIsICdVKzAwMEMgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMTsKK2Fzc2VydC5zYW1lVmFsdWUo
eCAmJj0gMiwgMiwgJ1UrMDAyMCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwg
MiwgJ1UrMDAyMCAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAxOworYXNzZXJ0LnNhbWVWYWx1ZSh4
wqAmJj3CoDIsIDIsICdVKzAwQTAgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZhbHVlKHgs
IDIsICdVKzAwQTAgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMTsKK2Fzc2VydC5zYW1lVmFsdWUo
eAorJiY9CisyLCAyLCAnVSswMDBBIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4
LCAyLCAnVSswMDBBIChzaWRlIGVmZmVjdCknKTsKKworeCA9IDE7Cithc3NlcnQuc2FtZVZhbHVl
KHgKKyYmPQorMiwgMiwgJ1UrMDAwRCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUo
eCwgMiwgJ1UrMDAwRCAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAxOworYXNzZXJ0LnNhbWVWYWx1
ZSh44oCoJiY94oCoMiwgMiwgJ1UrMjAyOCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFs
dWUoeCwgMiwgJ1UrMjAyOCAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAxOworYXNzZXJ0LnNhbWVW
YWx1ZSh44oCpJiY94oCpMiwgMiwgJ1UrMjAyOSAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1l
VmFsdWUoeCwgMiwgJ1UrMjAyOSAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAxOworYXNzZXJ0LnNh
bWVWYWx1ZSh4CQsMIMKgCivigKjigKkmJj0JCwwgwqAKK+KAqOKAqTIsIDIsICdVKzAwMDlVKzAw
MEJVKzAwMENVKzAwMjBVKzAwQTBVKzAwMEFVKzAwMERVKzIwMjhVKzIwMjkgKGV4cHJlc3Npb24p
Jyk7Cithc3NlcnQuc2FtZVZhbHVlKHgsIDIsICdVKzAwMDlVKzAwMEJVKzAwMENVKzAwMjBVKzAw
QTBVKzAwMEFVKzAwMERVKzIwMjhVKzIwMjkgKHNpZGUgZWZmZWN0KScpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtbnVsbGlzaC1hcmd1bWVudHMtc3RyaWN0LmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1h
cmd1bWVudHMtc3RyaWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5OWY5ZWEwNDVlMjAxNWVkZjUwMTk4NmFl
OThmZWUwYWEzYWUxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFyZ3Vt
ZW50cy1zdHJpY3QuanMKQEAgLTAsMCArMSwxOCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJp
Y2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0K
K2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycworZGVzY3JpcHRpb246ID4KKyAgICBTdHJp
Y3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiB0aGUgaWRlbnRpZmllciBhcmd1bWVu
dHMKKyAgICBhcHBlYXIgYXMgdGhlIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gb2YgYSBMb2dpY2Fs
IEFzc2lnbm1lbnQKKyAgICBvcGVyYXRvcig/Pz0pCitmbGFnczogW29ubHlTdHJpY3RdCituZWdh
dGl2ZToKKyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6IFN5bnRheEVycm9yCitmZWF0dXJlczogW2xv
Z2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCistLS0qLworJERPTk9URVZBTFVBVEUoKTsKKwor
YXJndW1lbnRzID8/PSAyMDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVu
dC1vcGVyYXRvci1iaWdpbnQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0
b3ItYmlnaW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MjZjZTczMDdkMWNjNTI3NDVmYmMxYTViMDdlZGNj
MWQ1N2U1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQt
b3BlcmF0b3ItYmlnaW50LmpzCkBAIC0wLDAgKzEsMjYgQEAKKy8vIENvcHlyaWdodCAoYykgMjAy
MCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2Rl
IGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
LgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50
aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiBMb2dpY2FsIE51bGxpc2ggQXNzaWdubWVudCBP
cGVyYXRvcgorZmVhdHVyZXM6IFtCaWdJbnQsIGxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNd
CitpbmZvOiB8CisgICAgQXNzaWdubWVudEV4cHJlc3Npb246CisgICAgICBMZWZ0SGFuZFNpZGVF
eHByZXNzaW9uID8/PSBBc3NpZ25tZW50RXhwcmVzc2lvbgorCisgICAgMS4gTGV0IGxyZWYgYmUg
dGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIExlZnRIYW5kU2lkZUV4cHJlc3Npb24uCisgICAgMi4g
TGV0IGx2YWwgYmUgPyBHZXRWYWx1ZShscmVmKS4KKyAgICAzLiBJZiBsdmFsIGlzIG5laXRoZXIg
dW5kZWZpbmVkIG5vciBudWxsLCByZXR1cm4gbHZhbC4KKyAgICA0LiBMZXQgcnJlZiBiZSB0aGUg
cmVzdWx0IG9mIGV2YWx1YXRpbmcgQXNzaWdubWVudEV4cHJlc3Npb24uCisgICAgNS4gTGV0IHJ2
YWwgYmUgPyBHZXRWYWx1ZShycmVmKS4KKyAgICA2LiBQZXJmb3JtID8gUHV0VmFsdWUobHJlZiwg
cnZhbCkuCisgICAgNy4gUmV0dXJuIHJ2YWwuCisKKy0tLSovCisKK3ZhciB2YWx1ZSA9IDBuOwor
YXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSA/Pz0gMW4sIDBuLCAiKHZhbHVlID8/PSAxbikgPT09IDBu
OyB3aGVyZSB2YWx1ZSA9IDBuIik7CisKK3ZhbHVlID0gMm47Cithc3NlcnQuc2FtZVZhbHVlKHZh
bHVlID8/PSAxbiwgMm4sICIodmFsdWUgPz89IDFuKSA9PT0gMm47IHdoZXJlIHZhbHVlID0gMm4i
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1saHMt
YmVmb3JlLXJocy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1saHMt
YmVmb3JlLXJocy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmQ1ZDFiZDU1NjkwMjUyNzBjMThiOWJiMDVlYzYw
MjFkNGZhOWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50
LW9wZXJhdG9yLWxocy1iZWZvcmUtcmhzLmpzCkBAIC0wLDAgKzEsNTMgQEAKKy8vIENvcHlyaWdo
dCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRp
bWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgVGhlIExlZnRIYW5k
U2lkZUV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIGJlZm9yZSB0aGUgQXNzaWdubWVudEV4cHJlc3Np
b24uCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisK
K2Z1bmN0aW9uIER1bW15RXJyb3IoKSB7IH0KKworYXNzZXJ0LnRocm93cyhEdW1teUVycm9yLCBm
dW5jdGlvbigpIHsKKyAgdmFyIGJhc2UgPSBudWxsOworICB2YXIgcHJvcCA9IGZ1bmN0aW9uKCkg
eworICAgIHRocm93IG5ldyBEdW1teUVycm9yKCk7CisgIH07CisgIHZhciBleHByID0gZnVuY3Rp
b24oKSB7CisgICAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigicmlnaHQtaGFuZCBzaWRlIGV4cHJl
c3Npb24gZXZhbHVhdGVkIik7CisgIH07CisKKyAgYmFzZVtwcm9wKCldID8/PSBleHByKCk7Cit9
KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICB2YXIgYmFzZSA9
IG51bGw7CisgIHZhciBwcm9wID0geworICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsKKyAgICAg
IHRocm93IG5ldyBUZXN0MjYyRXJyb3IoInByb3BlcnR5IGtleSBldmFsdWF0ZWQiKTsKKyAgICB9
CisgIH07CisgIHZhciBleHByID0gZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgbmV3IFRlc3QyNjJF
cnJvcigicmlnaHQtaGFuZCBzaWRlIGV4cHJlc3Npb24gZXZhbHVhdGVkIik7CisgIH07CisKKyAg
YmFzZVtwcm9wXSA/Pz0gZXhwcigpOworfSk7CisKK3ZhciBjb3VudCA9IDA7Cit2YXIgb2JqID0g
e307CitmdW5jdGlvbiBpbmNyKCkgeworICByZXR1cm4gKytjb3VudDsKK30KKworYXNzZXJ0LnNh
bWVWYWx1ZShvYmpbaW5jcigpXSA/Pz0gaW5jcigpLCAyLCAib2JqW2luY3IoKV0gPz89IGluY3Io
KSIpOworYXNzZXJ0LnNhbWVWYWx1ZShvYmpbMV0sIDIsICJvYmpbMV0iKTsKK2Fzc2VydC5zYW1l
VmFsdWUoY291bnQsIDIsICJjb3VudCIpOworCitvYmpbM10gPSAxOworYXNzZXJ0LnNhbWVWYWx1
ZShvYmpbaW5jcigpXSA/Pz0gaW5jcigpLCAxLCAib2JqW2luY3IoKV0gPz89IGluY3IoKSIpOwor
YXNzZXJ0LnNhbWVWYWx1ZShvYmpbM10sIDEsICJvYmpbM10iKTsKK2Fzc2VydC5zYW1lVmFsdWUo
Y291bnQsIDMsICJjb3VudCIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25t
ZW50LW9wZXJhdG9yLW5vLXNldC1wdXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQt
b3BlcmF0b3Itbm8tc2V0LXB1dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDQ0NDFiZmFkN2Y2ZWI5ZmJkMTYw
NmY0ZjIwNDE2MDJiNjYyMGM1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1h
c3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC1wdXQuanMKQEAgLTAsMCArMSwyOCBAQAorLy8gQ29w
eXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMt
cnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3Qg
TW9kZSAtIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgdGhlIExlZnRIYW5kU2lkZSBvZiBhIExvZ2lj
YWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKD8/PSkgaXMgYSByZWZlcmVuY2UgdG8gYSBkYXRh
IHByb3BlcnR5IHdpdGggdGhlCisgICAgYXR0cmlidXRlIHZhbHVlIHtbW1NldF1dOnVuZGVmaW5l
ZH0gYW5kIFB1dFZhbHVlIHN0ZXAgaXMgcmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2Zl
YXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9i
aiA9IHt9OworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7CisgIGdldDogZnVu
Y3Rpb24oKSB7CisgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgfSwKKyAgc2V0OiB1bmRlZmluZWQs
CisgIGVudW1lcmFibGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKK2Fzc2Vy
dC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgb2JqLnByb3AgPz89IDE7Cit9KTsK
K2Fzc2VydC5zYW1lVmFsdWUob2JqLnByb3AsIHVuZGVmaW5lZCwgIm9iai5wcm9wIik7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LmpzIGIv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43ODhmMjc2YTc1Y2M3YThhNjg0Y2MxNGYyZDZlY2E0M2IxNGE2ZDhiCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC5qcwpAQCAt
MCwwICsxLDI1IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNE
IGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1h
c3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlw
dGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVycm9yIGlzIG5vdCB0aHJvd24gaWYgdGhl
IExlZnRIYW5kU2lkZSBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKD8/PSkg
aXMgYSByZWZlcmVuY2UgdG8gYSBkYXRhIHByb3BlcnR5IHdpdGggdGhlCisgICAgYXR0cmlidXRl
IHZhbHVlIHtbW1NldF1dOnVuZGVmaW5lZH0gYW5kIFB1dFZhbHVlIHN0ZXAgaXMgbm90IHJlYWNo
ZWQuCitmbGFnczogW29ubHlTdHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1v
cGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciBvYmogPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0
eShvYmosICJwcm9wIiwgeworICBnZXQ6IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiAwOworICB9
LAorICBzZXQ6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgY29uZmlndXJhYmxl
OiB0cnVlCit9KTsKKworYXNzZXJ0LnNhbWVWYWx1ZShvYmoucHJvcCA/Pz0gMSwgMCwgIm9iai5w
cm9wIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3It
bm9uLWV4dGVuc2libGUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3It
bm9uLWV4dGVuc2libGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU1NjUxOTk1NmRjMDJjYTdiYjFiMjk1NWFj
OThlNDNjZTVlMWI2NgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdu
bWVudC1vcGVyYXRvci1ub24tZXh0ZW5zaWJsZS5qcwpAQCAtMCwwICsxLDIxIEBACisvLyBDb3B5
cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1y
dW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBN
b2RlIC0gVHlwZUVycm9yIGlzIHRocm93biBpZiBUaGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNh
bAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IoPz89KSBpcyBhIHJlZmVyZW5jZSB0byBhIG5vbi1l
eGlzdGVudCBwcm9wZXJ0eQorICAgIG9mIGFuIG9iamVjdCB3aG9zZSBbW0V4dGVuc2libGVdXSBp
bnRlcm5hbCBwcm9wZXJ0eSBpcyBmYWxzZS4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVz
OiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9
OworT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9iaik7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVy
cm9yLCBmdW5jdGlvbigpIHsKKyAgb2JqLnByb3AgPz89IDE7Cit9KTsKK2Fzc2VydC5zYW1lVmFs
dWUob2JqLnByb3AsIHVuZGVmaW5lZCwgIm9iai5wcm9wIik7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMgYi9KU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmYyZGQ1MzBhZDJkNDliNGZmZTkwZDFiOGVkNGYzOTliYWRlZDcwNwotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxo
cy5qcwpAQCAtMCwwICsxLDE5IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5h
dGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Vz
aWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1zdGF0aWMtc2VtYW50aWNzLWVhcmx5LWVycm9y
cworZGVzY3JpcHRpb246ID4KKyAgICBJdCBpcyBhIFN5bnRheCBFcnJvciBpZiBBc3NpZ25tZW50
VGFyZ2V0VHlwZSBvZiBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGlzCisgICAgbm90IHNpbXBsZS4K
K25lZ2F0aXZlOgorICBwaGFzZTogcGFyc2UKKyAgdHlwZTogU3ludGF4RXJyb3IKK2ZlYXR1cmVz
OiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKworJERPTk9URVZBTFVB
VEUoKTsKKworZnVuY3Rpb24gdGVzdCgpIHt9Cit0ZXN0KCkgPz89IDE7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMg
Yi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjdkMjE5ZDYxOGYxMTRkNzJmMTI0MzAyMjM2ODBjNzkxMmI3MjgzOQot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1u
b24td3JpdGVhYmxlLXB1dC5qcwpAQCAtMCwwICsxLDI2IEBACisvLyBDb3B5cmlnaHQgKGMpIDIw
MjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFu
dGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVy
cm9yIGlzIHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2ln
bm1lbnQgb3BlcmF0b3IoPz89KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJvcGVydHkgd2l0
aCB0aGUKKyAgICBhdHRyaWJ1dGUgdmFsdWUge1tbV3JpdGFibGVdXTpmYWxzZX0gYW5kIFB1dFZh
bHVlIHN0ZXAgaXMgcmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVzOiBbbG9n
aWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9OworT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7CisgIHZhbHVlOiB1bmRlZmluZWQsCisg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgY29uZmlndXJhYmxlOiB0
cnVlCit9KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBvYmou
cHJvcCA/Pz0gMTsKK30pOworYXNzZXJ0LnNhbWVWYWx1ZShvYmoucHJvcCwgdW5kZWZpbmVkLCAi
b2JqLnByb3AiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVy
YXRvci1ub24td3JpdGVhYmxlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJh
dG9yLW5vbi13cml0ZWFibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU4OWE0MzQ3NDliMmE3YTJkNGM1YTdm
ZmE2NDZjYmVkMDRiNmI1YgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNz
aWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLmpzCkBAIC0wLDAgKzEsMjMgQEAKKy8vIENv
cHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3Jz
LXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0
IE1vZGUgLSBUeXBlRXJyb3IgaXMgbm90IHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEg
TG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IoPz89KSBpcyBhIHJlZmVyZW5jZSB0byBh
IGRhdGEgcHJvcGVydHkgd2l0aCB0aGUKKyAgICBhdHRyaWJ1dGUgdmFsdWUge1tbV3JpdGFibGVd
XTpmYWxzZX0gYW5kIFB1dFZhbHVlIHN0ZXAgaXMgbm90IHJlYWNoZWQuCitmbGFnczogW29ubHlT
dHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSov
CisKK3ZhciBvYmogPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgewor
ICB2YWx1ZTogMCwKKyAgd3JpdGFibGU6IGZhbHNlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICBj
b25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQuc2FtZVZhbHVlKG9iai5wcm9wID8/PSAx
LCAwLCAib2JqLnByb3AiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVu
dC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVu
dC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDY2MzIzNGQyMTg3ZDM0
ZTNlYTg0YzI4YmY1YmM1MDk0NmExMzIxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVs
bGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtbGhzLmpzCkBAIC0wLDAgKzEsMTYg
QEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQt
b3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+Cisg
ICAgUmVmZXJlbmNlRXJyb3IgaXMgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGVFeHByZXNzaW9u
IG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IoPz89KSBldmFsdWF0ZXMgdG8g
YW4gdW5yZXNvbHZhYmxlIHJlZmVyZW5jZQorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6
IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCithc3NlcnQudGhyb3dz
KFJlZmVyZW5jZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgdW5yZXNvbHZlZCA/Pz0gMTsKK30pOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2
ZWQtcmhzLXB1dC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci11bnJl
c29sdmVkLXJocy1wdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkxYzk3M2YwNDllYTc3MDVjNTBlN2JjOGJm
ZmVlYjZhN2NlNDkyNAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdu
bWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy1wdXQuanMKQEAgLTAsMCArMSwxOSBAQAorLy8g
Q29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRv
cnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBSZWZl
cmVuY2VFcnJvciBpcyB0aHJvd24gaWYgdGhlIEFzc2lnbm1lbnRFeHByZXNzaW9uIG9mIGEgTG9n
aWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IoPz89KSBldmFsdWF0ZXMgdG8gYW4gdW5yZXNv
bHZhYmxlIHJlZmVyZW5jZSBhbmQgdGhlCisgICAgQXNzaWdubWVudEV4cHJlc3Npb24gaXMgZXZh
bHVhdGVkLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0q
LworCit2YXIgdmFsdWUgPSB1bmRlZmluZWQ7CisKK2Fzc2VydC50aHJvd3MoUmVmZXJlbmNlRXJy
b3IsIGZ1bmN0aW9uKCkgeworICB2YWx1ZSA/Pz0gdW5yZXNvbHZlZDsKK30pOworYXNzZXJ0LnNh
bWVWYWx1ZSh2YWx1ZSwgdW5kZWZpbmVkLCAidmFsdWUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy5qcyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMzMwNDEzODU2MzkwNjVlM2IwMzgzOThlNGU0NTdhM2MwYzM3YjZlCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtcmhz
LmpzCkBAIC0wLDAgKzEsMTYgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0
aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNp
ZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24K
K2Rlc2NyaXB0aW9uOiA+CisgICAgUmVmZXJlbmNlRXJyb3IgaXMgbm90IHRocm93biBpZiB0aGUg
QXNzaWdubWVudEV4cHJlc3Npb24gb2YgYSBMb2dpY2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRv
cig/Pz0pIGV2YWx1YXRlcyB0byBhbiB1bnJlc29sdmFibGUgcmVmZXJlbmNlIGFuZCB0aGUKKyAg
ICBBc3NpZ25tZW50RXhwcmVzc2lvbiBpcyBub3QgZXZhbHVhdGVkLgorZmVhdHVyZXM6IFtsb2dp
Y2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgdmFsdWUgPSAwOworCith
c3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSB1bnJlc29sdmVkLCAwLCAidmFsdWUiKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci5qcyBiL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDk0ZWNjM2FlYWM5
ZDdmNTgxZDg0MzRmYWYyNzU1YTM2MGFkMGUxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
bnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLmpzCkBAIC0wLDAgKzEsNjAgQEAKKy8vIENvcHly
aWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1
bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiBMb2dpY2FsIE51bGxpc2gg
QXNzaWdubWVudCBPcGVyYXRvcgoraW5mbzogfAorICAgIEFzc2lnbm1lbnRFeHByZXNzaW9uOgor
ICAgICAgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiA/Pz0gQXNzaWdubWVudEV4cHJlc3Npb24KKwor
ICAgIDEuIExldCBscmVmIGJlIHRoZSByZXN1bHQgb2YgZXZhbHVhdGluZyBMZWZ0SGFuZFNpZGVF
eHByZXNzaW9uLgorICAgIDIuIExldCBsdmFsIGJlID8gR2V0VmFsdWUobHJlZikuCisgICAgMy4g
SWYgbHZhbCBpcyBuZWl0aGVyIHVuZGVmaW5lZCBub3IgbnVsbCwgcmV0dXJuIGx2YWwuCisgICAg
NC4gTGV0IHJyZWYgYmUgdGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIEFzc2lnbm1lbnRFeHByZXNz
aW9uLgorICAgIDUuIExldCBydmFsIGJlID8gR2V0VmFsdWUocnJlZikuCisgICAgNi4gUGVyZm9y
bSA/IFB1dFZhbHVlKGxyZWYsIHJ2YWwpLgorICAgIDcuIFJldHVybiBydmFsLgorZmVhdHVyZXM6
IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgdmFsdWUgPSB1
bmRlZmluZWQ7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxLCAxLCAiKHZhbHVlID8/PSAx
KSA9PT0gMTsgd2hlcmUgdmFsdWUgPSB1bmRlZmluZWQiKTsKKwordmFsdWUgPSBudWxsOworYXNz
ZXJ0LnNhbWVWYWx1ZSh2YWx1ZSA/Pz0gMSwgMSwgIih2YWx1ZSA/Pz0gMSkgPT09IDE7IHdoZXJl
IHZhbHVlID0gbnVsbCIpOworCit2YWx1ZSA9IGZhbHNlOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1
ZSA/Pz0gMSwgZmFsc2UsICIodmFsdWUgPz89IDEpID09PSBmYWxzZTsgd2hlcmUgdmFsdWUgPSBm
YWxzZSIpOworCit2YWx1ZSA9IDA7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxLCAwLCAi
KHZhbHVlID8/PSAxKSA9PT0gMDsgd2hlcmUgdmFsdWUgPSAwIik7CisKK3ZhbHVlID0gLTA7Cith
c3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxLCAtMCwgIih2YWx1ZSA/Pz0gMSkgPT09IC0wOyB3
aGVyZSB2YWx1ZSA9IC0wIik7CisKK3ZhbHVlID0gTmFOOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1
ZSA/Pz0gMSwgTmFOLCAiKHZhbHVlID8/PSAxKSA9PT0gTmFOOyB3aGVyZSB2YWx1ZSA9IE5hTiIp
OworCit2YWx1ZSA9ICIiOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSA/Pz0gMSwgIiIsICcodmFs
dWUgPz89IDEpID09PSAiIiB3aGVyZSB2YWx1ZSA9ICIiJyk7CisKKworCit2YWx1ZSA9IHRydWU7
Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxLCB0cnVlLCAiKHZhbHVlID8/PSAxKSA9PT0g
dHJ1ZTsgd2hlcmUgdmFsdWUgPSB0cnVlIik7CisKK3ZhbHVlID0gMjsKK2Fzc2VydC5zYW1lVmFs
dWUodmFsdWUgPz89IDEsIDIsICIodmFsdWUgPz89IDEpID09PSAyOyB3aGVyZSB2YWx1ZSA9IDIi
KTsKKwordmFsdWUgPSAidGVzdCI7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxLCAidGVz
dCIsICcodmFsdWUgPz89IDEpID09PSAidGVzdCI7IHdoZXJlIHZhbHVlID0gInRlc3QiJyk7CisK
K3ZhciBzeW0gPSBTeW1ib2woIiIpOwordmFsdWUgPSBzeW07Cithc3NlcnQuc2FtZVZhbHVlKHZh
bHVlID8/PSAxLCBzeW0sICIodmFsdWUgPz89IDEpID09PSBTeW1ib2woKTsgd2hlcmUgdmFsdWUg
PSBTeW1ib2woKSIpOworCit2YXIgb2JqID0ge307Cit2YWx1ZSA9IG9iajsKK2Fzc2VydC5zYW1l
VmFsdWUodmFsdWUgPz89IDEsIG9iaiwgIih2YWx1ZSA/Pz0gMSkgPT09IHt9OyB3aGVyZSB2YWx1
ZSA9IHt9Iik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWV2YWwtc3RyaWN0LmpzIGIv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtbnVsbGlzaC1ldmFsLXN0cmljdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGNkM2M5YmNhNTU3
YTlhYmY4MGUzNDBkMjUwZGUwMGZmOTVhNDQxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
bnVsbGlzaC1ldmFsLXN0cmljdC5qcwpAQCAtMCwwICsxLDE3IEBACisvLyBDb3B5cmlnaHQgKEMp
IDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlz
IGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
CisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzCitkZXNjcmlwdGlvbjogPgor
ICAgIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBpZGVudGlmaWVy
IGV2YWwgYXBwZWFyCisgICAgYXMgdGhlIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gb2YgYSBMb2dp
Y2FsIEFzc2lnbm1lbnQgb3BlcmF0b3IoPz89KQorZmxhZ3M6IFtvbmx5U3RyaWN0XQorbmVnYXRp
dmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVhdHVyZXM6IFtsb2dp
Y2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KKyRET05PVEVWQUxVQVRFKCk7CisKK2V2
YWwgPz89IDIwOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1ub24tc2ltcGxlLmpzIGIv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtbnVsbGlzaC1ub24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMzEyMTcxNjY1ZTU2
ZGNkYTNkODFkOGNlYTZhZjk3MWUyNWM5NWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1u
dWxsaXNoLW5vbi1zaW1wbGUuanMKQEAgLTAsMCArMSwxNyBAQAorLy8gQ29weXJpZ2h0IChDKSAy
MDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKwor
LyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1zdGF0aWMtc2VtYW50aWNzLWVh
cmx5LWVycm9ycworaW5mbzogfAorICAgIEl0IGlzIGFuIGVhcmx5IFN5bnRheCBFcnJvciBpZiBB
c3NpZ25tZW50VGFyZ2V0VHlwZSBvZgorICAgIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gaXMgaW52
YWxpZCBvciBzdHJpY3QuCitkZXNjcmlwdGlvbjogTG9naWNhbCAiPz89IiBhc3NpZ25tZW50IHdp
dGggbm9uLXNpbXBsZSB0YXJnZXQKK25lZ2F0aXZlOgorICBwaGFzZTogcGFyc2UKKyAgdHlwZTog
U3ludGF4RXJyb3IKK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKy0t
LSovCiskRE9OT1RFVkFMVUFURSgpOworCisxID8/PSAxOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
bnVsbGlzaC13aGl0ZXNwYWNlLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC13aGl0ZXNwYWNlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdmYzY0ODQyMDdkMzRlODc1OGU1ODU4NGYyZDkzZWFmMDkxNTNmNjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLXdoaXRlc3BhY2UuanMKQEAgLTAsMCArMSw1
OCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2luZm86IHwKKyAgICBXaGl0ZSBTcGFjZSBh
bmQgTGluZSBUZXJtaW5hdG9yIGJldHdlZW4gTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBhbmQgIkA9
IgorICAgIG9yIGJldHdlZW4gIkA9IiBhbmQgQXNzaWdubWVudEV4cHJlc3Npb24gYXJlIGFsbG93
ZWQKK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycworZGVzY3JpcHRpb246IENoZWNraW5n
IGJ5IGV2YWx1YXRpbmcgZXhwcmVzc2lvbiAieFsuLi5dPz89Wy4uLl15IgorZmVhdHVyZXM6IFts
b2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KK3ZhciB4OworCit4ID0gbnVsbDsK
K2Fzc2VydC5zYW1lVmFsdWUoeAk/Pz0JMSwgMSwgJ1UrMDAwOSAoZXhwcmVzc2lvbiknKTsKK2Fz
c2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMDAwOSAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSBudWxs
OworYXNzZXJ0LnNhbWVWYWx1ZSh4Cz8/PQsxLCAxLCAnVSswMDBCIChleHByZXNzaW9uKScpOwor
YXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSswMDBCIChzaWRlIGVmZmVjdCknKTsKKworeCA9IG51
bGw7Cithc3NlcnQuc2FtZVZhbHVlKHgMPz89DDEsIDEsICdVKzAwMEMgKGV4cHJlc3Npb24pJyk7
Cithc3NlcnQuc2FtZVZhbHVlKHgsIDEsICdVKzAwMEMgKHNpZGUgZWZmZWN0KScpOworCit4ID0g
bnVsbDsKK2Fzc2VydC5zYW1lVmFsdWUoeCA/Pz0gMSwgMSwgJ1UrMDAyMCAoZXhwcmVzc2lvbikn
KTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMDAyMCAoc2lkZSBlZmZlY3QpJyk7CisKK3gg
PSBudWxsOworYXNzZXJ0LnNhbWVWYWx1ZSh4wqA/Pz3CoDEsIDEsICdVKzAwQTAgKGV4cHJlc3Np
b24pJyk7Cithc3NlcnQuc2FtZVZhbHVlKHgsIDEsICdVKzAwQTAgKHNpZGUgZWZmZWN0KScpOwor
Cit4ID0gbnVsbDsKK2Fzc2VydC5zYW1lVmFsdWUoeAorPz89CisxLCAxLCAnVSswMDBBIChleHBy
ZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSswMDBBIChzaWRlIGVmZmVjdCkn
KTsKKworeCA9IG51bGw7Cithc3NlcnQuc2FtZVZhbHVlKHgKKz8/PQorMSwgMSwgJ1UrMDAwRCAo
ZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMDAwRCAoc2lkZSBlZmZl
Y3QpJyk7CisKK3ggPSBudWxsOworYXNzZXJ0LnNhbWVWYWx1ZSh44oCoPz894oCoMSwgMSwgJ1Ur
MjAyOCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMjAyOCAoc2lk
ZSBlZmZlY3QpJyk7CisKK3ggPSBudWxsOworYXNzZXJ0LnNhbWVWYWx1ZSh44oCpPz894oCpMSwg
MSwgJ1UrMjAyOSAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMjAy
OSAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSBudWxsOworYXNzZXJ0LnNhbWVWYWx1ZSh4CQsMIMKg
CivigKjigKk/Pz0JCwwgwqAKK+KAqOKAqTEsIDEsICdVKzAwMDlVKzAwMEJVKzAwMENVKzAwMjBV
KzAwQTBVKzAwMEFVKzAwMERVKzIwMjhVKzIwMjkgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2Ft
ZVZhbHVlKHgsIDEsICdVKzAwMDlVKzAwMEJVKzAwMENVKzAwMjBVKzAwQTBVKzAwMEFVKzAwMERV
KzIwMjhVKzIwMjkgKHNpZGUgZWZmZWN0KScpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXJn
dW1lbnRzLXN0cmljdC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFyZ3VtZW50cy1zdHJpY3QuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzY3YjUzNTUwMTZjZTAyM2ExYWM2NjMyNWFiOGFmMGYwNGFmMWNlMwotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2lj
YWwtYXNzaWdubWVudC9sZ2NsLW9yLWFyZ3VtZW50cy1zdHJpY3QuanMKQEAgLTAsMCArMSwxOCBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9y
cworZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93
biBpZiB0aGUgaWRlbnRpZmllciBhcmd1bWVudHMKKyAgICBhcHBlYXIgYXMgdGhlIExlZnRIYW5k
U2lkZUV4cHJlc3Npb24gb2YgYSBMb2dpY2FsIEFzc2lnbm1lbnQKKyAgICBvcGVyYXRvcih8fD0p
CitmbGFnczogW29ubHlTdHJpY3RdCituZWdhdGl2ZToKKyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6
IFN5bnRheEVycm9yCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCist
LS0qLworJERPTk9URVZBTFVBVEUoKTsKKworYXJndW1lbnRzIHx8PSAyMDsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3ItYmlnaW50LmpzIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3It
YXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NkNGRiMmYxMDYzYjY5
MjY5ODhhY2Y5M2EzOGY1ZWE2YTk4YzVlYQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9y
LWFzc2lnbm1lbnQtb3BlcmF0b3ItYmlnaW50LmpzCkBAIC0wLDAgKzEsMjcgQEAKKy8vIENvcHly
aWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1
bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiBMb2dpY2FsIE9yIEFzc2ln
bm1lbnQgT3BlcmF0b3IKK2ZlYXR1cmVzOiBbQmlnSW50LCBsb2dpY2FsLWFzc2lnbm1lbnQtb3Bl
cmF0b3JzXQoraW5mbzogfAorICAgIEFzc2lnbm1lbnRFeHByZXNzaW9uOgorICAgICAgTGVmdEhh
bmRTaWRlRXhwcmVzc2lvbiB8fD0gQXNzaWdubWVudEV4cHJlc3Npb24KKworICAgIDEuIExldCBs
cmVmIGJlIHRoZSByZXN1bHQgb2YgZXZhbHVhdGluZyBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uLgor
ICAgIDIuIExldCBsdmFsIGJlID8gR2V0VmFsdWUobHJlZikuCisgICAgMy4gTGV0IGxib29sIGJl
ICEgVG9Cb29sZWFuKGx2YWwpLgorICAgIDQuIElmIGxib29sIGlzIHRydWUsIHJldHVybiBsdmFs
LgorICAgIDUuIExldCBycmVmIGJlIHRoZSByZXN1bHQgb2YgZXZhbHVhdGluZyBBc3NpZ25tZW50
RXhwcmVzc2lvbi4KKyAgICA2LiBMZXQgcnZhbCBiZSA/IEdldFZhbHVlKHJyZWYpLgorICAgIDcu
IFBlcmZvcm0gPyBQdXRWYWx1ZShscmVmLCBydmFsKS4KKyAgICA4LiBSZXR1cm4gcnZhbC4KKwor
LS0tKi8KKwordmFyIHZhbHVlID0gMG47Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlIHx8PSAxbiwg
MW4sICIodmFsdWUgfHw9IDFuKSA9PT0gMW47IHdoZXJlIHZhbHVlID0gMG4iKTsKKwordmFsdWUg
PSAybjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgfHw9IDFuLCAybiwgIih2YWx1ZSB8fD0gMW4p
ID09PSAybjsgd2hlcmUgdmFsdWUgPSAybiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNz
aWdubWVudC1vcGVyYXRvci1saHMtYmVmb3JlLXJocy5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1l
bnQtb3BlcmF0b3ItbGhzLWJlZm9yZS1yaHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NiZTJjYTQzZTE5MGFl
ZDY0ZWE4NjU5MzFiODQ3YWY5Zjk4ZDBmYgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9y
LWFzc2lnbm1lbnQtb3BlcmF0b3ItbGhzLWJlZm9yZS1yaHMuanMKQEAgLTAsMCArMSw1MyBAQAor
Ly8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVy
YXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBU
aGUgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgYmVmb3JlIHRoZSBBc3NpZ25t
ZW50RXhwcmVzc2lvbi4KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10K
KworLS0tKi8KKworZnVuY3Rpb24gRHVtbXlFcnJvcigpIHsgfQorCithc3NlcnQudGhyb3dzKER1
bW15RXJyb3IsIGZ1bmN0aW9uKCkgeworICB2YXIgYmFzZSA9IG51bGw7CisgIHZhciBwcm9wID0g
ZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgbmV3IER1bW15RXJyb3IoKTsKKyAgfTsKKyAgdmFyIGV4
cHIgPSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJyaWdodC1oYW5k
IHNpZGUgZXhwcmVzc2lvbiBldmFsdWF0ZWQiKTsKKyAgfTsKKworICBiYXNlW3Byb3AoKV0gfHw9
IGV4cHIoKTsKK30pOworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7Cisg
IHZhciBiYXNlID0gbnVsbDsKKyAgdmFyIHByb3AgPSB7CisgICAgdG9TdHJpbmc6IGZ1bmN0aW9u
KCkgeworICAgICAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigicHJvcGVydHkga2V5IGV2YWx1YXRl
ZCIpOworICAgIH0KKyAgfTsKKyAgdmFyIGV4cHIgPSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyBu
ZXcgVGVzdDI2MkVycm9yKCJyaWdodC1oYW5kIHNpZGUgZXhwcmVzc2lvbiBldmFsdWF0ZWQiKTsK
KyAgfTsKKworICBiYXNlW3Byb3BdIHx8PSBleHByKCk7Cit9KTsKKwordmFyIGNvdW50ID0gMDsK
K3ZhciBvYmogPSB7fTsKK2Z1bmN0aW9uIGluY3IoKSB7CisgIHJldHVybiArK2NvdW50OworfQor
Cithc3NlcnQuc2FtZVZhbHVlKG9ialtpbmNyKCldIHx8PSBpbmNyKCksIDIsICJvYmpbaW5jcigp
XSB8fD0gaW5jcigpIik7Cithc3NlcnQuc2FtZVZhbHVlKG9ialsxXSwgMiwgIm9ialsxXSIpOwor
YXNzZXJ0LnNhbWVWYWx1ZShjb3VudCwgMiwgImNvdW50Iik7CisKK29ialszXSA9IDE7Cithc3Nl
cnQuc2FtZVZhbHVlKG9ialtpbmNyKCldIHx8PSBpbmNyKCksIDEsICJvYmpbaW5jcigpXSB8fD0g
aW5jcigpIik7Cithc3NlcnQuc2FtZVZhbHVlKG9ialszXSwgMSwgIm9ialszXSIpOworYXNzZXJ0
LnNhbWVWYWx1ZShjb3VudCwgMywgImNvdW50Iik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1h
c3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC1wdXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50
LW9wZXJhdG9yLW5vLXNldC1wdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA4NTZlZWE2ZWFkMzM4OWZlNTYy
NmY0NTJiY2U3MWI4OTBkYTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2ln
bm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1dC5qcwpAQCAtMCwwICsxLDI4IEBACisvLyBDb3B5cmln
aHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v
IFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJ
Q0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50
aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2Rl
IC0gVHlwZUVycm9yIGlzIHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAor
ICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IofHw9KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJv
cGVydHkgd2l0aCB0aGUKKyAgICBhdHRyaWJ1dGUgdmFsdWUge1tbU2V0XV06dW5kZWZpbmVkfSBh
bmQgUHV0VmFsdWUgc3RlcCBpcyByZWFjaGVkLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVy
ZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0g
e307CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsKKyAgZ2V0OiBmdW5jdGlv
bigpIHsKKyAgICByZXR1cm4gMDsKKyAgfSwKKyAgc2V0OiB1bmRlZmluZWQsCisgIGVudW1lcmFi
bGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKK2Fzc2VydC50aHJvd3MoVHlw
ZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgb2JqLnByb3AgfHw9IDE7Cit9KTsKK2Fzc2VydC5zYW1l
VmFsdWUob2JqLnByb3AsIDAsICJvYmoucHJvcCIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3It
YXNzaWdubWVudC1vcGVyYXRvci1uby1zZXQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9w
ZXJhdG9yLW5vLXNldC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2FiNzIyNzdmZmQ4NGI0MDMwODdkYzYxYWU4
OTVhOGNhYWFjMDZlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1v
cGVyYXRvci1uby1zZXQuanMKQEAgLTAsMCArMSwyNSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIw
IEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUg
aXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUu
CisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRp
Y3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFR5cGVFcnJv
ciBpcyBub3QgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGUgb2YgYSBMb2dpY2FsCisgICAgQXNz
aWdubWVudCBvcGVyYXRvcih8fD0pIGlzIGEgcmVmZXJlbmNlIHRvIGEgZGF0YSBwcm9wZXJ0eSB3
aXRoIHRoZQorICAgIGF0dHJpYnV0ZSB2YWx1ZSB7W1tTZXRdXTp1bmRlZmluZWR9IGFuZCBQdXRW
YWx1ZSBzdGVwIGlzIG5vdCByZWFjaGVkLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6
IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0ge307
CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsKKyAgZ2V0OiBmdW5jdGlvbigp
IHsKKyAgICByZXR1cm4gMjsKKyAgfSwKKyAgc2V0OiB1bmRlZmluZWQsCisgIGVudW1lcmFibGU6
IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKK2Fzc2VydC5zYW1lVmFsdWUob2Jq
LnByb3AgfHw9IDEsIDIsICJvYmoucHJvcCIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNz
aWdubWVudC1vcGVyYXRvci1ub24tZXh0ZW5zaWJsZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1l
bnQtb3BlcmF0b3Itbm9uLWV4dGVuc2libGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYyNzViZjcxNzZjZTUx
Y2U3NTZjNDQxZmI3ZjJhNDk1NjIyZGU1YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9y
LWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLWV4dGVuc2libGUuanMKQEAgLTAsMCArMSwyMSBAQAor
Ly8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVy
YXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBT
dHJpY3QgTW9kZSAtIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgVGhlIExlZnRIYW5kU2lkZSBvZiBh
IExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKHx8PSkgaXMgYSByZWZlcmVuY2UgdG8g
YSBub24tZXhpc3RlbnQgcHJvcGVydHkKKyAgICBvZiBhbiBvYmplY3Qgd2hvc2UgW1tFeHRlbnNp
YmxlXV0gaW50ZXJuYWwgcHJvcGVydHkgaXMgZmFsc2UuCitmbGFnczogW29ubHlTdHJpY3RdCitm
ZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciBv
YmogPSB7fTsKK09iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOworCithc3NlcnQudGhyb3dz
KFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIG9iai5wcm9wIHx8PSAxOworfSk7Cithc3NlcnQu
c2FtZVZhbHVlKG9iai5wcm9wLCB1bmRlZmluZWQsICJvYmoucHJvcCIpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5qcyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9s
Z2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmEzNWM4OTY0YjUwYmEyMTc0MzEwYTM0MDZmNTY4NzhiMDY2NzAzNQotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNz
aWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKQEAg
LTAsMCArMSwxOSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
YXNzaWdubWVudC1vcGVyYXRvcnMtc3RhdGljLXNlbWFudGljcy1lYXJseS1lcnJvcnMKK2Rlc2Ny
aXB0aW9uOiA+CisgICAgSXQgaXMgYSBTeW50YXggRXJyb3IgaWYgQXNzaWdubWVudFRhcmdldFR5
cGUgb2YgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBpcworICAgIG5vdCBzaW1wbGUuCituZWdhdGl2
ZToKKyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6IFN5bnRheEVycm9yCitmZWF0dXJlczogW2xvZ2lj
YWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKKyRET05PVEVWQUxVQVRFKCk7CisK
K2Z1bmN0aW9uIHRlc3QoKSB7fQordGVzdCgpIHx8PSAxOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
b3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLXB1dC5qcyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9y
LWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY1
N2RkNzA4OTIwMmEwYmVmN2VkZWY2ZWY1ZTljZTgyNWEwNDIwZAotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMKQEAg
LTAsMCArMSwyNiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
YXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3Jp
cHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgdGhlIExl
ZnRIYW5kU2lkZSBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKHx8PSkgaXMg
YSByZWZlcmVuY2UgdG8gYSBkYXRhIHByb3BlcnR5IHdpdGggdGhlCisgICAgYXR0cmlidXRlIHZh
bHVlIHtbW1dyaXRhYmxlXV06ZmFsc2V9IGFuZCBQdXRWYWx1ZSBzdGVwIGlzIHJlYWNoZWQuCitm
bGFnczogW29ubHlTdHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRv
cnNdCisKKy0tLSovCisKK3ZhciBvYmogPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmos
ICJwcm9wIiwgeworICB2YWx1ZTogMCwKKyAgd3JpdGFibGU6IGZhbHNlLAorICBlbnVtZXJhYmxl
OiB0cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQudGhyb3dzKFR5cGVF
cnJvciwgZnVuY3Rpb24oKSB7CisgIG9iai5wcm9wIHx8PSAxOworfSk7Cithc3NlcnQuc2FtZVZh
bHVlKG9iai5wcm9wLCAwLCAib2JqLnByb3AiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFz
c2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1l
bnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTQzY2Q2YjFiZTk0MTA3
YjZlYTY0YjNkMTg3ZjE3ZmIxMjk2Y2YzCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3It
YXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLmpzCkBAIC0wLDAgKzEsMjMgQEAKKy8v
IENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0
b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3Ry
aWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMgbm90IHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9m
IGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IofHw9KSBpcyBhIHJlZmVyZW5jZSB0
byBhIGRhdGEgcHJvcGVydHkgd2l0aCB0aGUKKyAgICBhdHRyaWJ1dGUgdmFsdWUge1tbV3JpdGFi
bGVdXTpmYWxzZX0gYW5kIFB1dFZhbHVlIHN0ZXAgaXMgbm90IHJlYWNoZWQuCitmbGFnczogW29u
bHlTdHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0t
LSovCisKK3ZhciBvYmogPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwg
eworICB2YWx1ZTogMiwKKyAgd3JpdGFibGU6IGZhbHNlLAorICBlbnVtZXJhYmxlOiB0cnVlLAor
ICBjb25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQuc2FtZVZhbHVlKG9iai5wcm9wIHx8
PSAxLCAyLCAib2JqLnByb3AiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQt
b3BlcmF0b3ItdW5yZXNvbHZlZC1saHMuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJh
dG9yLXVucmVzb2x2ZWQtbGhzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNjZhNTRkMzdiNmI2YjkwOGU4MDll
MTA4Yjg3ZThmYzg3Mzc0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25t
ZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtbGhzLmpzCkBAIC0wLDAgKzEsMTYgQEAKKy8vIENvcHly
aWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1
bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgUmVmZXJlbmNl
RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIG9mIGEgTG9naWNh
bAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IofHw9KSBldmFsdWF0ZXMgdG8gYW4gdW5yZXNvbHZh
YmxlIHJlZmVyZW5jZQorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dpY2FsLWFz
c2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCithc3NlcnQudGhyb3dzKFJlZmVyZW5jZUVy
cm9yLCBmdW5jdGlvbigpIHsKKyAgdW5yZXNvbHZlZCB8fD0gMTsKK30pOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy1wdXQuanMgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtcmhzLXB1dC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZTI5MTkxOWIyY2VjNjBmODE3NmRjZGNiOTlmYWQ4Yjk5MmM3NWJmCi0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJo
cy1wdXQuanMKQEAgLTAsMCArMSwxOSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50
ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
Citlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVh
dGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBSZWZlcmVuY2VFcnJvciBpcyB0aHJvd24gaWYgdGhl
IEFzc2lnbm1lbnRFeHByZXNzaW9uIG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0
b3IofHw9KSBldmFsdWF0ZXMgdG8gYW4gdW5yZXNvbHZhYmxlIHJlZmVyZW5jZSBhbmQgdGhlCisg
ICAgQXNzaWdubWVudEV4cHJlc3Npb24gaXMgZXZhbHVhdGVkLgorZmVhdHVyZXM6IFtsb2dpY2Fs
LWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgdmFsdWUgPSAwOworCithc3Nl
cnQudGhyb3dzKFJlZmVyZW5jZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgdmFsdWUgfHw9IHVucmVz
b2x2ZWQ7Cit9KTsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUsIDAsICJ2YWx1ZSIpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy5qcyBi
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjUzYWM4MWQ5YjgwNWZjYjE0OGE0OWFiZTczNGI5ZDBmMTFlMTY0ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2lj
YWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMu
anMKQEAgLTAsMCArMSwxNiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRp
b25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lk
OiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgor
ZGVzY3JpcHRpb246ID4KKyAgICBSZWZlcmVuY2VFcnJvciBpcyBub3QgdGhyb3duIGlmIHRoZSBB
c3NpZ25tZW50RXhwcmVzc2lvbiBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9y
KHx8PSkgZXZhbHVhdGVzIHRvIGFuIHVucmVzb2x2YWJsZSByZWZlcmVuY2UgYW5kIHRoZQorICAg
IEFzc2lnbm1lbnRFeHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQuCitmZWF0dXJlczogW2xvZ2lj
YWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciB2YWx1ZSA9IDI7CisKK2Fz
c2VydC5zYW1lVmFsdWUodmFsdWUgfHw9IHVucmVzb2x2ZWQsIDIsICJ2YWx1ZSIpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFz
c2lnbm1lbnQtb3BlcmF0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EwNjQ4ZjhlOTZhNTQ1M2VlMDliYTUz
ODEyNGYwNDMwMzNjOTdhYgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1l
bnQtb3BlcmF0b3IuanMKQEAgLTAsMCArMSw2MSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVj
bWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK
Ky8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3Mt
ZXZhbHVhdGlvbgorZGVzY3JpcHRpb246IExvZ2ljYWwgT3IgQXNzaWdubWVudCBPcGVyYXRvcgor
aW5mbzogfAorICAgIEFzc2lnbm1lbnRFeHByZXNzaW9uOgorICAgICAgTGVmdEhhbmRTaWRlRXhw
cmVzc2lvbiB8fD0gQXNzaWdubWVudEV4cHJlc3Npb24KKworICAgIDEuIExldCBscmVmIGJlIHRo
ZSByZXN1bHQgb2YgZXZhbHVhdGluZyBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uLgorICAgIDIuIExl
dCBsdmFsIGJlID8gR2V0VmFsdWUobHJlZikuCisgICAgMy4gTGV0IGxib29sIGJlICEgVG9Cb29s
ZWFuKGx2YWwpLgorICAgIDQuIElmIGxib29sIGlzIHRydWUsIHJldHVybiBsdmFsLgorICAgIDUu
IExldCBycmVmIGJlIHRoZSByZXN1bHQgb2YgZXZhbHVhdGluZyBBc3NpZ25tZW50RXhwcmVzc2lv
bi4KKyAgICA2LiBMZXQgcnZhbCBiZSA/IEdldFZhbHVlKHJyZWYpLgorICAgIDcuIFBlcmZvcm0g
PyBQdXRWYWx1ZShscmVmLCBydmFsKS4KKyAgICA4LiBSZXR1cm4gcnZhbC4KK2ZlYXR1cmVzOiBb
bG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIHZhbHVlID0gdW5k
ZWZpbmVkOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSB8fD0gMSwgMSwgIih2YWx1ZSB8fD0gMSkg
PT09IDE7IHdoZXJlIHZhbHVlID0gdW5kZWZpbmVkIik7CisKK3ZhbHVlID0gbnVsbDsKK2Fzc2Vy
dC5zYW1lVmFsdWUodmFsdWUgfHw9IDEsIDEsICIodmFsdWUgfHw9IDEpID09PSAxOyB3aGVyZSB2
YWx1ZSA9IG51bGwiKTsKKwordmFsdWUgPSBmYWxzZTsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUg
fHw9IDEsIDEsICIodmFsdWUgfHw9IDEpID09PSAxOyB3aGVyZSB2YWx1ZSA9IGZhbHNlIik7CisK
K3ZhbHVlID0gMDsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgfHw9IDEsIDEsICIodmFsdWUgfHw9
IDEpID09PSAxOyB3aGVyZSB2YWx1ZSA9IDAiKTsKKwordmFsdWUgPSAtMDsKK2Fzc2VydC5zYW1l
VmFsdWUodmFsdWUgfHw9IDEsIDEsICIodmFsdWUgfHw9IDEpID09PSAxOyB3aGVyZSB2YWx1ZSA9
IC0wIik7CisKK3ZhbHVlID0gTmFOOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSB8fD0gMSwgMSwg
Iih2YWx1ZSB8fD0gMSkgPT09IDE7IHdoZXJlIHZhbHVlID0gTmFOIik7CisKK3ZhbHVlID0gIiI7
Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlIHx8PSAxLCAxLCAnKHZhbHVlIHx8PSAxKSA9PT0gMTsg
d2hlcmUgdmFsdWUgPSAiIicpOworCisKKwordmFsdWUgPSB0cnVlOworYXNzZXJ0LnNhbWVWYWx1
ZSh2YWx1ZSB8fD0gMSwgdHJ1ZSwgIih2YWx1ZSB8fD0gMSkgPT09IHRydWU7IHdoZXJlIHZhbHVl
ID0gdHJ1ZSIpOworCit2YWx1ZSA9IDI7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlIHx8PSAxLCAy
LCAiKHZhbHVlIHx8PSAxKSA9PT0gMjsgd2hlcmUgdmFsdWUgPSAyIik7CisKK3ZhbHVlID0gInRl
c3QiOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSB8fD0gMSwgInRlc3QiLCAnKHZhbHVlIHx8PSAx
KSA9PT0gInRlc3QiOyB3aGVyZSB2YWx1ZSA9ICJ0ZXN0IicpOworCit2YXIgc3ltID0gU3ltYm9s
KCIiKTsKK3ZhbHVlID0gc3ltOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSB8fD0gMSwgc3ltLCAi
KHZhbHVlIHx8PSAxKSA9PT0gU3ltYm9sKCk7IHdoZXJlIHZhbHVlID0gU3ltYm9sKCkiKTsKKwor
dmFyIG9iaiA9IHt9OwordmFsdWUgPSBvYmo7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlIHx8PSAx
LCBvYmosICIodmFsdWUgfHw9IDEpID09PSB7fTsgd2hlcmUgdmFsdWUgPSB7fSIpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtb3ItZXZhbC1zdHJpY3QuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1ldmFsLXN0cmlj
dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xZDNhOWUyMzQ3MjMxMGNjMGY2OTNmZGNlZTM0ZmZkNzZlZmM0NWM2
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItZXZhbC1zdHJpY3QuanMKQEAgLTAsMCAr
MSwxNyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9w
ZXJhdG9ycworZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlz
IHRocm93biBpZiB0aGUgaWRlbnRpZmllciBldmFsIGFwcGVhcgorICAgIGFzIHRoZSBMZWZ0SGFu
ZFNpZGVFeHByZXNzaW9uIG9mIGEgTG9naWNhbCBBc3NpZ25tZW50IG9wZXJhdG9yKHx8PSkKK2Zs
YWdzOiBbb25seVN0cmljdF0KK25lZ2F0aXZlOgorICBwaGFzZTogcGFyc2UKKyAgdHlwZTogU3lu
dGF4RXJyb3IKK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKy0tLSov
CiskRE9OT1RFVkFMVUFURSgpOworCitldmFsIHx8PSAyMDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW9yLW5vbi1zaW1wbGUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1ub24tc2ltcGxlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkwNjM5NTIwZWM2OTY3YzMxYWY4MDRlMjI1NmY0ZWQzM2QyYWFjYjMKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFz
c2lnbm1lbnQvbGdjbC1vci1ub24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTcgQEAKKy8vIENvcHly
aWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlz
IGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtc3RhdGljLXNl
bWFudGljcy1lYXJseS1lcnJvcnMKK2luZm86IHwKKyAgICBJdCBpcyBhbiBlYXJseSBTeW50YXgg
RXJyb3IgaWYgQXNzaWdubWVudFRhcmdldFR5cGUgb2YKKyAgICBMZWZ0SGFuZFNpZGVFeHByZXNz
aW9uIGlzIGludmFsaWQgb3Igc3RyaWN0LgorZGVzY3JpcHRpb246IExvZ2ljYWwgInx8PSIgYXNz
aWdubWVudCB3aXRoIG5vbi1zaW1wbGUgdGFyZ2V0CituZWdhdGl2ZToKKyAgcGhhc2U6IHBhcnNl
CisgIHR5cGU6IFN5bnRheEVycm9yCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVy
YXRvcnNdCistLS0qLworJERPTk9URVZBTFVBVEUoKTsKKworMSB8fD0gMTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLW9yLXdoaXRlc3BhY2UuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci13aGl0ZXNwYWNlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJhZTE1MjY2MzNkNzM4ZmE4NGYzOGFhN2U2NWE4ZTRlNGVmY2QyZjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci13aGl0ZXNwYWNlLmpzCkBAIC0wLDAgKzEsNTggQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitpbmZvOiB8CisgICAgV2hpdGUgU3BhY2UgYW5kIExp
bmUgVGVybWluYXRvciBiZXR3ZWVuIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gYW5kICJAPSIKKyAg
ICBvciBiZXR3ZWVuICJAPSIgYW5kIEFzc2lnbm1lbnRFeHByZXNzaW9uIGFyZSBhbGxvd2VkCitl
c2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMKK2Rlc2NyaXB0aW9uOiBDaGVja2luZyBieSBl
dmFsdWF0aW5nIGV4cHJlc3Npb24gInhbLi4uXXx8PVsuLi5deSIKK2ZlYXR1cmVzOiBbbG9naWNh
bC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKy0tLSovCit2YXIgeDsKKworeCA9IDA7Cithc3NlcnQu
c2FtZVZhbHVlKHgJfHw9CTEsIDEsICdVKzAwMDkgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2Ft
ZVZhbHVlKHgsIDEsICdVKzAwMDkgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMDsKK2Fzc2VydC5z
YW1lVmFsdWUoeAt8fD0LMSwgMSwgJ1UrMDAwQiAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1l
VmFsdWUoeCwgMSwgJ1UrMDAwQiAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAwOworYXNzZXJ0LnNh
bWVWYWx1ZSh4DHx8PQwxLCAxLCAnVSswMDBDIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVW
YWx1ZSh4LCAxLCAnVSswMDBDIChzaWRlIGVmZmVjdCknKTsKKworeCA9IDA7Cithc3NlcnQuc2Ft
ZVZhbHVlKHggfHw9IDEsIDEsICdVKzAwMjAgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZh
bHVlKHgsIDEsICdVKzAwMjAgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMDsKK2Fzc2VydC5zYW1l
VmFsdWUoeMKgfHw9wqAxLCAxLCAnVSswMEEwIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVW
YWx1ZSh4LCAxLCAnVSswMEEwIChzaWRlIGVmZmVjdCknKTsKKworeCA9IDA7Cithc3NlcnQuc2Ft
ZVZhbHVlKHgKK3x8PQorMSwgMSwgJ1UrMDAwQSAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1l
VmFsdWUoeCwgMSwgJ1UrMDAwQSAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAwOworYXNzZXJ0LnNh
bWVWYWx1ZSh4Cit8fD0KKzEsIDEsICdVKzAwMEQgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2Ft
ZVZhbHVlKHgsIDEsICdVKzAwMEQgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMDsKK2Fzc2VydC5z
YW1lVmFsdWUoeOKAqHx8PeKAqDEsIDEsICdVKzIwMjggKGV4cHJlc3Npb24pJyk7Cithc3NlcnQu
c2FtZVZhbHVlKHgsIDEsICdVKzIwMjggKHNpZGUgZWZmZWN0KScpOworCit4ID0gMDsKK2Fzc2Vy
dC5zYW1lVmFsdWUoeOKAqXx8PeKAqTEsIDEsICdVKzIwMjkgKGV4cHJlc3Npb24pJyk7Cithc3Nl
cnQuc2FtZVZhbHVlKHgsIDEsICdVKzIwMjkgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMDsKK2Fz
c2VydC5zYW1lVmFsdWUoeAkLDCDCoAor4oCo4oCpfHw9CQsMIMKgCivigKjigKkxLCAxLCAnVSsw
MDA5VSswMDBCVSswMDBDVSswMDIwVSswMEEwVSswMDBBVSswMDBEVSsyMDI4VSsyMDI5IChleHBy
ZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSswMDA5VSswMDBCVSswMDBDVSsw
MDIwVSswMEEwVSswMDBBVSswMDBEVSsyMDI4VSsyMDI5IChzaWRlIGVmZmVjdCknKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3RlbXBsYXRl
LWxpdGVyYWwvdW5pY29kZS1lc2NhcGUtbm8taGV4LWVyci5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3RlbXBsYXRlLWxpdGVyYWwvdW5pY29kZS1lc2NhcGUt
bm8taGV4LWVyci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmFiZDIyNTRhMDk1MmQ3ZmM0MTk5ZWFmYjM0Njk4
MTNhYmY4OTc4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvdGVtcGxhdGUtbGl0ZXJhbC91bmljb2RlLWVzY2FwZS1uby1oZXgtZXJy
LmpzCkBAIC0wLDAgKzEsNTAgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlr
YS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUg
QlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHBy
b2QtVGVtcGxhdGUKK2Rlc2NyaXB0aW9uOiA+CisgIFx1IGlzIGF0IHRoZSBlbmQgb2Ygc3RyaW5n
LCBIZXg0RGlnaXRzIGlzIHJlcXVpcmVkLgoraW5mbzogfAorICBUZW1wbGF0ZSA6OgorICAgIE5v
U3Vic3RpdHV0aW9uVGVtcGxhdGUKKyAgICBUZW1wbGF0ZUhlYWQKKworICBOb1N1YnN0aXR1dGlv
blRlbXBsYXRlIDo6CisgICAgYCBUZW1wbGF0ZUNoYXJhY3RlcnNfb3B0IGAKKworICBUZW1wbGF0
ZUNoYXJhY3RlcnMgOjoKKyAgICBUZW1wbGF0ZUNoYXJhY3RlciBUZW1wbGF0ZUNoYXJhY3RlcnNf
b3B0CisKKyAgVGVtcGxhdGVDaGFyYWN0ZXIgOjoKKyAgICAkIFtsb29rYWhlYWQg4omgIHtdCisg
ICAgXCBFc2NhcGVTZXF1ZW5jZQorICAgIFwgTm90RXNjYXBlU2VxdWVuY2UKKyAgICBMaW5lQ29u
dGludWF0aW9uCisgICAgTGluZVRlcm1pbmF0b3JTZXF1ZW5jZQorICAgIFNvdXJjZUNoYXJhY3Rl
ciBidXQgbm90IG9uZSBvZiBgIG9yIFwgb3IgJCBvciBMaW5lVGVybWluYXRvcgorCisgIEVzY2Fw
ZVNlcXVlbmNlIDo6CisgICAgQ2hhcmFjdGVyRXNjYXBlU2VxdWVuY2UKKyAgICAwIFtsb29rYWhl
YWQg4oiJIERlY2ltYWxEaWdpdF0KKyAgICBIZXhFc2NhcGVTZXF1ZW5jZQorICAgIFVuaWNvZGVF
c2NhcGVTZXF1ZW5jZQorCisgIFVuaWNvZGVFc2NhcGVTZXF1ZW5jZSA6OgorICAgIHUgSGV4NERp
Z2l0cworICAgIHV7IENvZGVQb2ludCB9CisKKyAgSGV4NERpZ2l0cyA6OgorICAgIEhleERpZ2l0
IEhleERpZ2l0IEhleERpZ2l0IEhleERpZ2l0CisKKyAgSGV4RGlnaXQgOjogb25lIG9mCisgICAg
MCAxIDIgMyA0IDUgNiA3IDggOSBhIGIgYyBkIGUgZiBBIEIgQyBEIEUgRgorCituZWdhdGl2ZToK
KyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6IFN5bnRheEVycm9yCistLS0qLworCiskRE9OT1RFVkFM
VUFURSgpOworCitgXHVgCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9saXRlcmFscy9zdHJpbmcvdW5pY29kZS1lc2NhcGUtbm8taGV4LWVyci1kb3VibGUuanMgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9saXRlcmFscy9zdHJpbmcvdW5pY29kZS1lc2Nh
cGUtbm8taGV4LWVyci1kb3VibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcxYzQ3YTU1MzIyYjIyMGMzYjg2
NWE4OWQyZmY1Njc2ZDgxN2ZkOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3N0cmluZy91bmljb2RlLWVzY2FwZS1uby1oZXgtZXJyLWRv
dWJsZS5qcwpAQCAtMCwwICsxLDQ2IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNo
dmF5a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lk
OiBwcm9kLVN0cmluZ0xpdGVyYWwKK2Rlc2NyaXB0aW9uOiA+CisgIFx1IGlzIGF0IHRoZSBlbmQg
b2Ygc3RyaW5nLCBIZXg0RGlnaXRzIGlzIHJlcXVpcmVkLgoraW5mbzogfAorICBTdHJpbmdMaXRl
cmFsIDo6CisgICAgIiBEb3VibGVTdHJpbmdDaGFyYWN0ZXJzX29wdCAiCisgICAgJyBTaW5nbGVT
dHJpbmdDaGFyYWN0ZXJzX29wdCAnCisKKyAgRG91YmxlU3RyaW5nQ2hhcmFjdGVycyA6OgorICAg
IERvdWJsZVN0cmluZ0NoYXJhY3RlciBEb3VibGVTdHJpbmdDaGFyYWN0ZXJzX29wdAorCisgIERv
dWJsZVN0cmluZ0NoYXJhY3RlciA6OgorICAgIFNvdXJjZUNoYXJhY3RlciBidXQgbm90IG9uZSBv
ZiAiIG9yIFwgb3IgTGluZVRlcm1pbmF0b3IKKyAgICA8TFM+CisgICAgPFBTPgorICAgIFwgRXNj
YXBlU2VxdWVuY2UKKyAgICBMaW5lQ29udGludWF0aW9uCisKKyAgRXNjYXBlU2VxdWVuY2UgOjoK
KyAgICBDaGFyYWN0ZXJFc2NhcGVTZXF1ZW5jZQorICAgIDAgW2xvb2thaGVhZCDiiIkgRGVjaW1h
bERpZ2l0XQorICAgIEhleEVzY2FwZVNlcXVlbmNlCisgICAgVW5pY29kZUVzY2FwZVNlcXVlbmNl
CisKKyAgVW5pY29kZUVzY2FwZVNlcXVlbmNlIDo6CisgICAgdSBIZXg0RGlnaXRzCisgICAgdXsg
Q29kZVBvaW50IH0KKworICBIZXg0RGlnaXRzIDo6CisgICAgSGV4RGlnaXQgSGV4RGlnaXQgSGV4
RGlnaXQgSGV4RGlnaXQKKworICBIZXhEaWdpdCA6OiBvbmUgb2YKKyAgICAwIDEgMiAzIDQgNSA2
IDcgOCA5IGEgYiBjIGQgZSBmIEEgQiBDIEQgRSBGCisKK25lZ2F0aXZlOgorICBwaGFzZTogcGFy
c2UKKyAgdHlwZTogU3ludGF4RXJyb3IKKy0tLSovCisKKyRET05PVEVWQUxVQVRFKCk7CisKKyJc
dSIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3N0
cmluZy91bmljb2RlLWVzY2FwZS1uby1oZXgtZXJyLXNpbmdsZS5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3N0cmluZy91bmljb2RlLWVzY2FwZS1uby1oZXgtZXJy
LXNpbmdsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzRlNGJhY2FkYjdiNTJiN2M4MWMzZjg1MWNkOTM4Mzk3
ZGQwYzBhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
bGl0ZXJhbHMvc3RyaW5nL3VuaWNvZGUtZXNjYXBlLW5vLWhleC1lcnItc2luZ2xlLmpzCkBAIC0w
LDAgKzEsNDYgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHByb2QtU3RyaW5n
TGl0ZXJhbAorZGVzY3JpcHRpb246ID4KKyAgXHUgaXMgYXQgdGhlIGVuZCBvZiBzdHJpbmcsIEhl
eDREaWdpdHMgaXMgcmVxdWlyZWQuCitpbmZvOiB8CisgIFN0cmluZ0xpdGVyYWwgOjoKKyAgICAi
IERvdWJsZVN0cmluZ0NoYXJhY3RlcnNfb3B0ICIKKyAgICAnIFNpbmdsZVN0cmluZ0NoYXJhY3Rl
cnNfb3B0ICcKKworICBTaW5nbGVTdHJpbmdDaGFyYWN0ZXJzIDo6CisgICAgU2luZ2xlU3RyaW5n
Q2hhcmFjdGVyIFNpbmdsZVN0cmluZ0NoYXJhY3RlcnNfb3B0CisKKyAgU2luZ2xlU3RyaW5nQ2hh
cmFjdGVyIDo6CisgICAgU291cmNlQ2hhcmFjdGVyIGJ1dCBub3Qgb25lIG9mICcgb3IgXCBvciBM
aW5lVGVybWluYXRvcgorICAgIDxMUz4KKyAgICA8UFM+CisgICAgXCBFc2NhcGVTZXF1ZW5jZQor
ICAgIExpbmVDb250aW51YXRpb24KKworICBFc2NhcGVTZXF1ZW5jZSA6OgorICAgIENoYXJhY3Rl
ckVzY2FwZVNlcXVlbmNlCisgICAgMCBbbG9va2FoZWFkIOKIiSBEZWNpbWFsRGlnaXRdCisgICAg
SGV4RXNjYXBlU2VxdWVuY2UKKyAgICBVbmljb2RlRXNjYXBlU2VxdWVuY2UKKworICBVbmljb2Rl
RXNjYXBlU2VxdWVuY2UgOjoKKyAgICB1IEhleDREaWdpdHMKKyAgICB1eyBDb2RlUG9pbnQgfQor
CisgIEhleDREaWdpdHMgOjoKKyAgICBIZXhEaWdpdCBIZXhEaWdpdCBIZXhEaWdpdCBIZXhEaWdp
dAorCisgIEhleERpZ2l0IDo6IG9uZSBvZgorICAgIDAgMSAyIDMgNCA1IDYgNyA4IDkgYSBiIGMg
ZCBlIGYgQSBCIEMgRCBFIEYKKworbmVnYXRpdmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBT
eW50YXhFcnJvcgorLS0tKi8KKworJERPTk9URVZBTFVBVEUoKTsKKworJ1x1JwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50
cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL2dyYW1tYXItcHJp
dmF0ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWE2YmIwMzFmMmRm
ZTUwZjVlMGUyN2Q3ZDNiNTg2N2NjYTYwYWVkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9ncmFtbWFyLXBy
aXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMKQEAgLTAsMCArMSw0MCBAQAorLy8gVGhp
cyBmaWxlIHdhcyBwcm9jZWR1cmFsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGZvbGxvd2luZyBzb3Vy
Y2VzOgorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZ3JhbW1hci1wcml2YXRlLWZpZWxkLW9wdGlv
bmFsLWNoYWluaW5nLmNhc2UKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL2RlZmF1bHQvY2xzLWRl
Y2wudGVtcGxhdGUKKy8qLS0tCitkZXNjcmlwdGlvbjogUHJpdmF0ZU5hbWUgYWZ0ZXIgJz8uJyBp
cyB2YWxpZCBzeW50YXggKGZpZWxkIGRlZmluaXRpb25zIGluIGEgY2xhc3MgZGVjbGFyYXRpb24p
Citlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1maWVsZHMtcHJp
dmF0ZSwgb3B0aW9uYWwtY2hhaW5pbmcsIGNsYXNzXQorZmxhZ3M6IFtnZW5lcmF0ZWRdCitpbmZv
OiB8CisgICAgVXBkYXRlZCBQcm9kdWN0aW9ucworCisgICAgT3B0aW9uYWxDaGFpbltZaWVsZCwg
QXdhaXRdOgorICAgICAgYD8uYCBgW2AgRXhwcmVzc2lvblsrSW4sID9ZaWVsZCwgP0F3YWl0XSBg
XWAKKyAgICAgIGA/LmAgSWRlbnRpZmllck5hbWUKKyAgICAgIGA/LmAgQXJndW1lbnRzWz9ZaWVs
ZCwgP0F3YWl0XQorICAgICAgYD8uYCBUZW1wbGF0ZUxpdGVyYWxbP1lpZWxkLCA/QXdhaXQsICtU
YWdnZWRdCisgICAgICBgPy5gIFByaXZhdGVJZGVudGlmaWVyCisKKy0tLSovCisKKworY2xhc3Mg
QyB7CisgICNtID0gJ3Rlc3QyNjInOworCisgIHN0YXRpYyBhY2Nlc3Mob2JqKSB7CisgICAgcmV0
dXJuIG9iaj8uI207CisgIH0KK30KKworbGV0IGMgPSBuZXcgQygpOworCithc3NlcnQuc2FtZVZh
bHVlKEMuYWNjZXNzKGMpLCAndGVzdDI2MicpOworCithc3NlcnQuc2FtZVZhbHVlKEMuYWNjZXNz
KG51bGwpLCB1bmRlZmluZWQpOworYXNzZXJ0LnNhbWVWYWx1ZShDLmFjY2Vzcyh1bmRlZmluZWQp
LCB1bmRlZmluZWQpOworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7Cisg
IEMuYWNjZXNzKHt9KTsKK30sICdhY2Nlc3NlZCBwcml2YXRlIGZpZWxkIGZyb20gYW4gb3JkaW5h
cnkgb2JqZWN0Jyk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3RhbmNlLWZpZWxk
LWFzc2lnbmVkLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9j
bGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQtYXNzaWduZWQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTg4ODYwZjNmYjAwZDc1NDkxODNiYjg4YjhjNGRhZTM5OWUzZWQ4MAotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMv
Y2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3RhbmNlLWZpZWxkLWFzc2lnbmVkLmpz
CkBAIC0wLDAgKzEsMzYgQEAKKy8vIFRoaXMgZmlsZSB3YXMgcHJvY2VkdXJhbGx5IGdlbmVyYXRl
ZCBmcm9tIHRoZSBmb2xsb3dpbmcgc291cmNlczoKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL3N0
YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC1hc3NpZ25lZC5jYXNlCisvLyAtIHNyYy9jbGFz
cy1lbGVtZW50cy9kZWZhdWx0L2Nscy1kZWNsLnRlbXBsYXRlCisvKi0tLQorZGVzY3JpcHRpb246
IHN0YXRpYyBpcyBhIHZhbGlkIG5hbWUgb2YgYW4gaW5zdGFuY2UgZmllbGQgKGZpZWxkIGRlZmlu
aXRpb25zIGluIGEgY2xhc3MgZGVjbGFyYXRpb24pCitlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlv
bgorZmVhdHVyZXM6IFtjbGFzcy1maWVsZHMtcHVibGljLCBjbGFzc10KK2ZsYWdzOiBbZ2VuZXJh
dGVkXQoraW5jbHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10KK2luZm86IHwKKyAgICBDbGFzc0Vs
ZW1lbnQ6CisgICAgICAuLi4KKyAgICAgIEZpZWxkRGVmaW5pdGlvbiA7CisKKyAgICBGaWVsZERl
ZmluaXRpb246CisgICAgICBDbGFzc0VsZW1lbnROYW1lIEluaXRpYWxpemVyX29wdAorCisgICAg
Q2xhc3NFbGVtZW50TmFtZToKKyAgICAgIFByb3BlcnR5TmFtZQorCistLS0qLworCisKK2NsYXNz
IEMgeworICBzdGF0aWMgPSAiZm9vIjsKK30KKworbGV0IGMgPSBuZXcgQygpOworCit2ZXJpZnlQ
cm9wZXJ0eShjLCAic3RhdGljIiwgeworICB2YWx1ZTogImZvbyIsCisgIGVudW1lcmFibGU6IHRy
dWUsCisgIHdyaXRhYmxlOiB0cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30pOworCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2Vs
ZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC5qcyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlk
LWluc3RhbmNlLWZpZWxkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYmY3MzM0YjY3Zjc3MjM4YWFjYzMwZjc5
N2RjNTNmMjRmN2U2ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5j
ZS1maWVsZC5qcwpAQCAtMCwwICsxLDM2IEBACisvLyBUaGlzIGZpbGUgd2FzIHByb2NlZHVyYWxs
eSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6CisvLyAtIHNyYy9jbGFzcy1l
bGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQuY2FzZQorLy8gLSBzcmMvY2xh
c3MtZWxlbWVudHMvZGVmYXVsdC9jbHMtZGVjbC50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9u
OiBzdGF0aWMgaXMgYSB2YWxpZCBuYW1lIG9mIGFuIGluc3RhbmNlIGZpZWxkIChmaWVsZCBkZWZp
bml0aW9ucyBpbiBhIGNsYXNzIGRlY2xhcmF0aW9uKQorZXNpZDogcHJvZC1GaWVsZERlZmluaXRp
b24KK2ZlYXR1cmVzOiBbY2xhc3MtZmllbGRzLXB1YmxpYywgY2xhc3NdCitmbGFnczogW2dlbmVy
YXRlZF0KK2luY2x1ZGVzOiBbcHJvcGVydHlIZWxwZXIuanNdCitpbmZvOiB8CisgICAgQ2xhc3NF
bGVtZW50OgorICAgICAgLi4uCisgICAgICBGaWVsZERlZmluaXRpb24gOworCisgICAgRmllbGRE
ZWZpbml0aW9uOgorICAgICAgQ2xhc3NFbGVtZW50TmFtZSBJbml0aWFsaXplcl9vcHQKKworICAg
IENsYXNzRWxlbWVudE5hbWU6CisgICAgICBQcm9wZXJ0eU5hbWUKKworLS0tKi8KKworCitjbGFz
cyBDIHsKKyAgc3RhdGljOworfQorCitsZXQgYyA9IG5ldyBDKCk7CisKK3ZlcmlmeVByb3BlcnR5
KGMsICJzdGF0aWMiLCB7CisgIHZhbHVlOiB1bmRlZmluZWQsCisgIGVudW1lcmFibGU6IHRydWUs
CisgIHdyaXRhYmxlOiB0cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30pOworCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1l
bnRzL3N0YXRpYy1hcy12YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQuanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1hcy12
YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRkNmQwODViZjcwNTNk
N2QzMjc0OGM5Yzg1MzZhZTllNTdiYmU2YgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZh
bGlkLXN0YXRpYy1maWVsZC1hc3NpZ25lZC5qcwpAQCAtMCwwICsxLDI4IEBACisvLyBUaGlzIGZp
bGUgd2FzIHByb2NlZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6
CisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLWFz
c2lnbmVkLmNhc2UKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL2RlZmF1bHQvY2xzLWRlY2wudGVt
cGxhdGUKKy8qLS0tCitkZXNjcmlwdGlvbjogc3RhdGljIGlzIGEgdmFsaWQgbmFtZSBvZiBhIHN0
YXRpYyBmaWVsZCAoZmllbGQgZGVmaW5pdGlvbnMgaW4gYSBjbGFzcyBkZWNsYXJhdGlvbikKK2Vz
aWQ6IHByb2QtRmllbGREZWZpbml0aW9uCitmZWF0dXJlczogW2NsYXNzLXN0YXRpYy1maWVsZHMt
cHVibGljLCBjbGFzc10KK2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5jbHVkZXM6IFtwcm9wZXJ0eUhl
bHBlci5qc10KK2luZm86IHwKKyAgICBDbGFzc0VsZW1lbnQ6CisgICAgICAuLi4KKyAgICAgIHN0
YXRpYyBGaWVsZERlZmluaXRpb24gOworCistLS0qLworCisKK2NsYXNzIEMgeworICBzdGF0aWMg
c3RhdGljID0gInRlc3QyNjIiOworfQorCit2ZXJpZnlQcm9wZXJ0eShDLCAic3RhdGljIiwgewor
ICB2YWx1ZTogInRlc3QyNjIiLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJsZTogdHJ1
ZSwKKyAgY29uZmlndXJhYmxlOiB0cnVlCit9KTsKKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFs
aWQtc3RhdGljLWZpZWxkLmpzIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVt
ZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc3YThjMWVhMDJlZThhZTQ2MDBjMjYyNDQ0ZjA5MzMyZDA0M2ZhZWQKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNz
L2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1zdGF0aWMtZmllbGQuanMKQEAgLTAsMCArMSwyOCBA
QAorLy8gVGhpcyBmaWxlIHdhcyBwcm9jZWR1cmFsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGZvbGxv
d2luZyBzb3VyY2VzOgorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLXN0
YXRpYy1maWVsZC5jYXNlCisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9kZWZhdWx0L2Nscy1kZWNs
LnRlbXBsYXRlCisvKi0tLQorZGVzY3JpcHRpb246IHN0YXRpYyBpcyBhIHZhbGlkIG5hbWUgb2Yg
YSBzdGF0aWMgZmllbGQgKGZpZWxkIGRlZmluaXRpb25zIGluIGEgY2xhc3MgZGVjbGFyYXRpb24p
Citlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1zdGF0aWMtZmll
bGRzLXB1YmxpYywgY2xhc3NdCitmbGFnczogW2dlbmVyYXRlZF0KK2luY2x1ZGVzOiBbcHJvcGVy
dHlIZWxwZXIuanNdCitpbmZvOiB8CisgICAgQ2xhc3NFbGVtZW50OgorICAgICAgLi4uCisgICAg
ICBzdGF0aWMgRmllbGREZWZpbml0aW9uIDsKKworLS0tKi8KKworCitjbGFzcyBDIHsKKyAgc3Rh
dGljIHN0YXRpYzsKK30KKwordmVyaWZ5UHJvcGVydHkoQywgInN0YXRpYyIsIHsKKyAgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCisgIGNv
bmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3ludGF4L2Vhcmx5LWVycm9ycy9n
cmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMgYi9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3N5bnRheC9lYXJseS1l
cnJvcnMvZ3JhbW1hci1wcml2YXRlLWZpZWxkLW9wdGlvbmFsLWNoYWluaW5nLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzE3MjBkYTM5YWQxNmM3MTk2OTRjMWMzNTI2ZGQyOTJm
NjMxZjk2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3lu
dGF4L2Vhcmx5LWVycm9ycy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0vLyBUaGlzIGZpbGUgd2FzIHByb2Nl
ZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6Ci0vLyAtIHNyYy9j
bGFzcy1lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuY2Fz
ZQotLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvc3ludGF4L2ludmFsaWQvY2xzLWRlY2wtZWxlbWVu
dHMtaW52YWxpZC1zeW50YXgudGVtcGxhdGUKLS8qLS0tCi1kZXNjcmlwdGlvbjogUHJpdmF0ZU5h
bWUgYWZ0ZXIgJz8uJyBpcyBub3QgdmFsaWQgc3ludGF4IChjbGFzcyBkZWNsYXJhdGlvbikKLWVz
aWQ6IHByb2QtQ2xhc3NFbGVtZW50Ci1mZWF0dXJlczogW2NsYXNzLWZpZWxkcy1wcml2YXRlLCBv
cHRpb25hbC1jaGFpbmluZywgY2xhc3NdCi1mbGFnczogW2dlbmVyYXRlZF0KLW5lZ2F0aXZlOgot
ICBwaGFzZTogcGFyc2UKLSAgdHlwZTogU3ludGF4RXJyb3IKLWluZm86IHwKLSAgICBVcGRhdGVk
IFByb2R1Y3Rpb25zCi0KLSAgICBNZW1iZXJFeHByZXNzaW9uW1lpZWxkXToKLSAgICAgIE1lbWJl
ckV4cHJlc3Npb25bP1lpZWxkXS5Qcml2YXRlTmFtZQotCi0tLS0qLwotCi0KLSRET05PVEVWQUxV
QVRFKCk7Ci0KLWNsYXNzIEMgewotICAjbSA9ICd0ZXN0MjYyJzsKLQotICBhY2Nlc3Mob2JqKSB7
Ci0gICAgcmV0dXJuIG9iaj8uI207Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLW5v
bi10aHJvdy1nZXQtbWV0aG9kLWFicnVwdC5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQt
bWV0aG9kLWFicnVwdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmMyYjc3NmU5M2NmZDViZTBmY2MyMGQzNTBl
YTllZjJmNWY0YzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRlcmF0b3ItY2xvc2Utbm9uLXRocm93LWdl
dC1tZXRob2QtYWJydXB0LmpzCkBAIC0wLDAgKzEsNTMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAy
MCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8q
LS0tCitlc2lkOiBzZWMtYXN5bmNpdGVyYXRvcmNsb3NlCitkZXNjcmlwdGlvbjogPgorICBJZiBy
ZXRyaWV2aW5nIGFuIGl0ZXJhdG9yJ3MgYHJldHVybmAgbWV0aG9kIGdlbmVyYXRlcyBhbiBlcnJv
ciB3aGlsZQorICBjbG9zaW5nIHRoZSBpdGVyYXRvciB3aXRoIG5vbi10aHJvdyBjb21wbGV0aW9u
LCB0aGUgZXJyb3Igc2hvdWxkIGJlCisgIGZvcndhcmRlZCB0byB0aGUgcnVudGltZS4KK2luZm86
IHwKKyAgQXN5bmNJdGVyYXRvckNsb3NlICggaXRlcmF0b3JSZWNvcmQsIGNvbXBsZXRpb24gKQor
CisgIFsuLi5dCisgIDQuIExldCBpbm5lclJlc3VsdCBiZSBHZXRNZXRob2QoaXRlcmF0b3IsICJy
ZXR1cm4iKS4KKyAgNS4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgbm9ybWFsLAorICAgIFsu
Li5dCisgIDYuIElmIGNvbXBsZXRpb24uW1tUeXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0
aW9uKGNvbXBsZXRpb24pLgorICA3LiBJZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBpcyB0aHJvdywg
cmV0dXJuIENvbXBsZXRpb24oaW5uZXJSZXN1bHQpLgorCisgIEdldE1ldGhvZCAoIFYsIFAgKQor
CisgIFsuLi5dCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KK2ZlYXR1cmVzOiBbYXN5
bmMtaXRlcmF0aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK2NvbnN0IGlubmVyRXJyb3Ig
PSB7IG5hbWU6ICJpbm5lciBlcnJvciIgfTsKK2NvbnN0IGFzeW5jSXRlcmFibGUgPSB7fTsKK2Fz
eW5jSXRlcmFibGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CisgIHJldHVy
biB7CisgICAgbmV4dDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwg
dmFsdWU6IG51bGwgfTsKKyAgICB9LAorICAgIGdldCByZXR1cm4oKSB7CisgICAgICB0aHJvdyBp
bm5lckVycm9yOworICAgIH0sCisgIH07Cit9OworCitsZXQgaXRlcmF0aW9uQ291bnQgPSAwOwor
Y29uc3QgcHJvbWlzZSA9IChhc3luYyBmdW5jdGlvbigpIHsKKyAgZm9yIGF3YWl0IChjb25zdCB4
IG9mIGFzeW5jSXRlcmFibGUpIHsKKyAgICBpdGVyYXRpb25Db3VudCArPSAxOworICAgIGJyZWFr
OworICB9Cit9KSgpOworCitwcm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKKyAgdGhyb3cg
bmV3IFRlc3QyNjJFcnJvcigiUHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGdvdDogIiArIHZh
bHVlKTsKK30sIGZ1bmN0aW9uKGVycm9yKSB7CisgIGFzc2VydC5zYW1lVmFsdWUoZXJyb3IsIGlu
bmVyRXJyb3IpOworICBhc3NlcnQuc2FtZVZhbHVlKGl0ZXJhdGlvbkNvdW50LCAxLCAiVGhlIGxv
b3AgYm9keSBpcyBldmFsdWF0ZWQiKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9m
L2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcyBiL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJh
dG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZjI4YTE4OGEyMzgzMzE5ZDI0MDk1MWU1NDc0NWM1OTNlMDQyOWEwCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQt
b2YvaXRlcmF0b3ItY2xvc2Utbm9uLXRocm93LWdldC1tZXRob2Qtbm9uLWNhbGxhYmxlLmpzCkBA
IC0wLDAgKzEsNTIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxp
Y2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXN5bmNp
dGVyYXRvcmNsb3NlCitkZXNjcmlwdGlvbjogPgorICBJZiByZXRyaWV2aW5nIGFuIGl0ZXJhdG9y
J3MgYHJldHVybmAgbWV0aG9kIGdlbmVyYXRlcyBhbiBlcnJvciB3aGlsZQorICBjbG9zaW5nIHRo
ZSBpdGVyYXRvciB3aXRoIG5vbi10aHJvdyBjb21wbGV0aW9uLCB0aGUgZXJyb3Igc2hvdWxkIGJl
CisgIGZvcndhcmRlZCB0byB0aGUgcnVudGltZS4KK2luZm86IHwKKyAgQXN5bmNJdGVyYXRvckNs
b3NlICggaXRlcmF0b3JSZWNvcmQsIGNvbXBsZXRpb24gKQorCisgIFsuLi5dCisgIDQuIExldCBp
bm5lclJlc3VsdCBiZSBHZXRNZXRob2QoaXRlcmF0b3IsICJyZXR1cm4iKS4KKyAgNS4gSWYgaW5u
ZXJSZXN1bHQuW1tUeXBlXV0gaXMgbm9ybWFsLAorICAgIFsuLi5dCisgIDYuIElmIGNvbXBsZXRp
b24uW1tUeXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0aW9uKGNvbXBsZXRpb24pLgorICA3
LiBJZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBpcyB0aHJvdywgcmV0dXJuIENvbXBsZXRpb24oaW5u
ZXJSZXN1bHQpLgorCisgIEdldE1ldGhvZCAoIFYsIFAgKQorCisgIFsuLi5dCisgIDIuIExldCBm
dW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9y
IG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFs
c2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBbYXN5bmMtaXRlcmF0
aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK2NvbnN0IGFzeW5jSXRlcmFibGUgPSB7fTsK
K2FzeW5jSXRlcmFibGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CisgIHJl
dHVybiB7CisgICAgbmV4dDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4geyBkb25lOiBmYWxz
ZSwgdmFsdWU6IG51bGwgfTsKKyAgICB9LAorICAgIHJldHVybjogU3ltYm9sKCksCisgIH07Cit9
OworCitsZXQgaXRlcmF0aW9uQ291bnQgPSAwOworY29uc3QgcHJvbWlzZSA9IChhc3luYyBmdW5j
dGlvbigpIHsKKyAgZm9yIGF3YWl0IChjb25zdCB4IG9mIGFzeW5jSXRlcmFibGUpIHsKKyAgICBp
dGVyYXRpb25Db3VudCArPSAxOworICAgIGJyZWFrOworICB9Cit9KSgpOworCitwcm9taXNlLnRo
ZW4oZnVuY3Rpb24odmFsdWUpIHsKKyAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigiUHJvbWlzZSBz
aG91bGQgYmUgcmVqZWN0ZWQsIGdvdDogIiArIHZhbHVlKTsKK30sIGZ1bmN0aW9uKGVycm9yKSB7
CisgIGFzc2VydC5zYW1lVmFsdWUoZXJyb3IuY29uc3RydWN0b3IsIFR5cGVFcnJvcik7CisgIGFz
c2VydC5zYW1lVmFsdWUoaXRlcmF0aW9uQ291bnQsIDEsICJUaGUgbG9vcCBib2R5IGlzIGV2YWx1
YXRlZCIpOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRlcmF0b3ItY2xvc2Ut
dGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9zdGF0ZW1lbnRzL2Zvci1hd2FpdC1vZi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0aG9k
LWFicnVwdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDFmMDA2OWYxMTFkNGRlN2EwYzA2NDQwM2I2MGEwZWZk
NDdhNTBlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
c3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRlcmF0b3ItY2xvc2UtdGhyb3ctZ2V0LW1ldGhvZC1h
YnJ1cHQuanMKQEAgLTAsMCArMSw1MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBT
aHZheWthLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6
IHNlYy1hc3luY2l0ZXJhdG9yY2xvc2UKK2Rlc2NyaXB0aW9uOiA+CisgIElmIHJldHJpZXZpbmcg
YW4gaXRlcmF0b3IncyBgcmV0dXJuYCBtZXRob2QgZ2VuZXJhdGVzIGFuIGVycm9yIHdoaWxlCisg
IGNsb3NpbmcgdGhlIGl0ZXJhdG9yIHdpdGggdGhyb3cgY29tcGxldGlvbiwgdGhpcyBlcnJvciBz
aG91bGQgYmUgc3VwcHJlc3NlZC4KK2luZm86IHwKKyAgQXN5bmNJdGVyYXRvckNsb3NlICggaXRl
cmF0b3JSZWNvcmQsIGNvbXBsZXRpb24gKQorCisgIFsuLi5dCisgIDQuIExldCBpbm5lclJlc3Vs
dCBiZSBHZXRNZXRob2QoaXRlcmF0b3IsICJyZXR1cm4iKS4KKyAgNS4gSWYgaW5uZXJSZXN1bHQu
W1tUeXBlXV0gaXMgbm9ybWFsLAorICAgIFsuLi5dCisgIDYuIElmIGNvbXBsZXRpb24uW1tUeXBl
XV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0aW9uKGNvbXBsZXRpb24pLgorICA3LiBJZiBpbm5l
clJlc3VsdC5bW1R5cGVdXSBpcyB0aHJvdywgcmV0dXJuIENvbXBsZXRpb24oaW5uZXJSZXN1bHQp
LgorCisgIEdldE1ldGhvZCAoIFYsIFAgKQorCisgIFsuLi5dCisgIDIuIExldCBmdW5jIGJlID8g
R2V0VihWLCBQKS4KK2ZlYXR1cmVzOiBbYXN5bmMtaXRlcmF0aW9uXQorZmxhZ3M6IFthc3luY10K
Ky0tLSovCisKK2NvbnN0IGFzeW5jSXRlcmFibGUgPSB7fTsKK2FzeW5jSXRlcmFibGVbU3ltYm9s
LmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CisgIHJldHVybiB7CisgICAgbmV4dDogZnVu
Y3Rpb24oKSB7CisgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IG51bGwgfTsKKyAg
ICB9LAorICAgIGdldCByZXR1cm4oKSB7CisgICAgICB0aHJvdyB7IG5hbWU6ICJpbm5lciBlcnJv
ciIgfTsKKyAgICB9LAorICB9OworfTsKKworbGV0IGl0ZXJhdGlvbkNvdW50ID0gMDsKK2NvbnN0
IHByb21pc2UgPSAoYXN5bmMgZnVuY3Rpb24oKSB7CisgIGZvciBhd2FpdCAoY29uc3QgeCBvZiBh
c3luY0l0ZXJhYmxlKSB7CisgICAgaXRlcmF0aW9uQ291bnQgKz0gMTsKKyAgICB0aHJvdyBuZXcg
VGVzdDI2MkVycm9yKCJzaG91bGQgbm90IGJlIG92ZXJyaWRlbiIpOworICB9Cit9KSgpOworCitw
cm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKKyAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigi
UHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGdvdDogIiArIHZhbHVlKTsKK30sIGZ1bmN0aW9u
KGVycm9yKSB7CisgIGFzc2VydC5zYW1lVmFsdWUoZXJyb3IuY29uc3RydWN0b3IsIFRlc3QyNjJF
cnJvcik7CisgIGFzc2VydC5zYW1lVmFsdWUoaXRlcmF0aW9uQ291bnQsIDEsICJUaGUgbG9vcCBi
b2R5IGlzIGV2YWx1YXRlZCIpOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRl
cmF0b3ItY2xvc2UtdGhyb3ctZ2V0LW1ldGhvZC1ub24tY2FsbGFibGUuanMgYi9KU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1hd2FpdC1vZi9pdGVyYXRvci1jbG9z
ZS10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2RmM2M0Y2Vm
MDFjYTQ5YjM3M2JmNWMwNmExYmE5Y2Q5ODliN2RmCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRlcmF0b3It
Y2xvc2UtdGhyb3ctZ2V0LW1ldGhvZC1ub24tY2FsbGFibGUuanMKQEAgLTAsMCArMSw1MSBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBTaHZheWthLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2VzaWQ6IHNlYy1hc3luY2l0ZXJhdG9yY2xvc2UKK2Rl
c2NyaXB0aW9uOiA+CisgIElmIHJldHJpZXZpbmcgYW4gaXRlcmF0b3IncyBgcmV0dXJuYCBtZXRo
b2QgZ2VuZXJhdGVzIGFuIGVycm9yIHdoaWxlCisgIGNsb3NpbmcgdGhlIGl0ZXJhdG9yIHdpdGgg
dGhyb3cgY29tcGxldGlvbiwgdGhpcyBlcnJvciBzaG91bGQgYmUgc3VwcHJlc3NlZC4KK2luZm86
IHwKKyAgQXN5bmNJdGVyYXRvckNsb3NlICggaXRlcmF0b3JSZWNvcmQsIGNvbXBsZXRpb24gKQor
CisgIFsuLi5dCisgIDQuIExldCBpbm5lclJlc3VsdCBiZSBHZXRNZXRob2QoaXRlcmF0b3IsICJy
ZXR1cm4iKS4KKyAgNS4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgbm9ybWFsLAorICAgIFsu
Li5dCisgIDYuIElmIGNvbXBsZXRpb24uW1tUeXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0
aW9uKGNvbXBsZXRpb24pLgorICA3LiBJZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBpcyB0aHJvdywg
cmV0dXJuIENvbXBsZXRpb24oaW5uZXJSZXN1bHQpLgorCisgIEdldE1ldGhvZCAoIFYsIFAgKQor
CisgIFsuLi5dCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBp
cyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElz
Q2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2Zl
YXR1cmVzOiBbYXN5bmMtaXRlcmF0aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK2NvbnN0
IGFzeW5jSXRlcmFibGUgPSB7fTsKK2FzeW5jSXRlcmFibGVbU3ltYm9sLmFzeW5jSXRlcmF0b3Jd
ID0gZnVuY3Rpb24oKSB7CisgIHJldHVybiB7CisgICAgbmV4dDogZnVuY3Rpb24oKSB7CisgICAg
ICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IG51bGwgfTsKKyAgICB9LAorICAgIHJldHVy
bjogdHJ1ZSwKKyAgfTsKK307CisKK2xldCBpdGVyYXRpb25Db3VudCA9IDA7Citjb25zdCBwcm9t
aXNlID0gKGFzeW5jIGZ1bmN0aW9uKCkgeworICBmb3IgYXdhaXQgKGNvbnN0IHggb2YgYXN5bmNJ
dGVyYWJsZSkgeworICAgIGl0ZXJhdGlvbkNvdW50ICs9IDE7CisgICAgdGhyb3cgbmV3IFRlc3Qy
NjJFcnJvcigic2hvdWxkIG5vdCBiZSBvdmVycmlkZW4iKTsKKyAgfQorfSkoKTsKKworcHJvbWlz
ZS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7CisgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoIlByb21p
c2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBnb3Q6ICIgKyB2YWx1ZSk7Cit9LCBmdW5jdGlvbihlcnJv
cikgeworICBhc3NlcnQuc2FtZVZhbHVlKGVycm9yLmNvbnN0cnVjdG9yLCBUZXN0MjYyRXJyb3Ip
OworICBhc3NlcnQuc2FtZVZhbHVlKGl0ZXJhdGlvbkNvdW50LCAxLCAiVGhlIGxvb3AgYm9keSBp
cyBldmFsdWF0ZWQiKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3Nl
LWdldC1tZXRob2QtZXJyb3IuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0
ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS1nZXQtbWV0aG9kLWVycm9yLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWMyODU0NTM0ZjA3OTQ3YjQwNWZhMGI0YWZiMWFmNjE1
NzQ1ZGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNs
b3NlLWdldC1tZXRob2QtZXJyb3IuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0v
LyBDb3B5cmlnaHQgKEMpIDIwMTUgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS8qLS0tCi1lczZpZDogMTMuNi40LjEzCi1kZXNjcmlw
dGlvbjogPgotICAgIElmIHJldHJpZXZpbmcgYW4gaXRlcmF0b3IncyBgcmV0dXJuYCBtZXRob2Qg
Z2VuZXJhdGVzIGFuIGVycm9yIHdoaWxlCi0gICAgY2xvc2luZyB0aGUgaXRlcmF0b3IsIHRoZSBl
cnJvciBzaG91bGQgYmUgZm9yd2FyZGVkIHRvIHRoZSBydW50aW1lLgotZmVhdHVyZXM6IFtTeW1i
b2wuaXRlcmF0b3JdCi0tLS0qLwotCi12YXIgaXRlcmFibGUgPSB7fTsKLXZhciBpdGVyYXRpb25D
b3VudCA9IDA7Ci0KLWl0ZXJhYmxlW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsKLSAg
cmV0dXJuIHsKLSAgICBuZXh0OiBmdW5jdGlvbigpIHsKLSAgICAgIHJldHVybiB7IGRvbmU6IGZh
bHNlLCB2YWx1ZTogbnVsbCB9OwotICAgIH0sCi0gICAgZ2V0IHJldHVybigpIHsKLSAgICAgIHRo
cm93IG5ldyBUZXN0MjYyRXJyb3IoKTsKLSAgICB9Ci0gIH07Ci19OwotCi1hc3NlcnQudGhyb3dz
KFRlc3QyNjJFcnJvciwgZnVuY3Rpb24oKSB7Ci0gIGZvciAodmFyIHggb2YgaXRlcmFibGUpIHsK
LSAgICBpdGVyYXRpb25Db3VudCArPSAxOwotICAgIGJyZWFrOwotICB9Ci19KTsKLQotYXNzZXJ0
LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgJ1RoZSBsb29wIGJvZHkgaXMgZXZhbHVhdGVk
Jyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRz
L2Zvci1vZi9pdGVyYXRvci1jbG9zZS1ub24tdGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanMgYi9K
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1j
bG9zZS1ub24tdGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZhODA2ODQ5
ZjkzMzkyMzI4OGY1MjAzNzU0ZGJjYTJjNTc0ZTM1NAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3Nl
LW5vbi10aHJvdy1nZXQtbWV0aG9kLWFicnVwdC5qcwpAQCAtMCwwICsxLDQ3IEBACisvLyBDb3B5
cmlnaHQgKEMpIDIwMTUgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtaXRlcmF0b3JjbG9zZQorZGVzY3Jp
cHRpb246ID4KKyAgSWYgcmV0cmlldmluZyBhbiBpdGVyYXRvcidzIGByZXR1cm5gIG1ldGhvZCBn
ZW5lcmF0ZXMgYW4gZXJyb3Igd2hpbGUKKyAgY2xvc2luZyB0aGUgaXRlcmF0b3Igd2l0aCBub24t
dGhyb3cgY29tcGxldGlvbiwgdGhlIGVycm9yIHNob3VsZCBiZQorICBmb3J3YXJkZWQgdG8gdGhl
IHJ1bnRpbWUuCitpbmZvOiB8CisgIEl0ZXJhdG9yQ2xvc2UgKCBpdGVyYXRvclJlY29yZCwgY29t
cGxldGlvbiApCisKKyAgWy4uLl0KKyAgNC4gTGV0IGlubmVyUmVzdWx0IGJlIEdldE1ldGhvZChp
dGVyYXRvciwgInJldHVybiIpLgorICA1LiBJZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBpcyBub3Jt
YWwsCisgICAgWy4uLl0KKyAgNi4gSWYgY29tcGxldGlvbi5bW1R5cGVdXSBpcyB0aHJvdywgcmV0
dXJuIENvbXBsZXRpb24oY29tcGxldGlvbikuCisgIDcuIElmIGlubmVyUmVzdWx0LltbVHlwZV1d
IGlzIHRocm93LCByZXR1cm4gQ29tcGxldGlvbihpbm5lclJlc3VsdCkuCisKKyAgR2V0TWV0aG9k
ICggViwgUCApCisKKyAgWy4uLl0KKyAgMi4gTGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgorZmVh
dHVyZXM6IFtTeW1ib2wuaXRlcmF0b3JdCistLS0qLworCit2YXIgaXRlcmFibGUgPSB7fTsKK3Zh
ciBpdGVyYXRpb25Db3VudCA9IDA7CisKK2l0ZXJhYmxlW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5j
dGlvbigpIHsKKyAgcmV0dXJuIHsKKyAgICBuZXh0OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVy
biB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogbnVsbCB9OworICAgIH0sCisgICAgZ2V0IHJldHVybigp
IHsKKyAgICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoKTsKKyAgICB9CisgIH07Cit9OworCith
c3NlcnQudGhyb3dzKFRlc3QyNjJFcnJvciwgZnVuY3Rpb24oKSB7CisgIGZvciAodmFyIHggb2Yg
aXRlcmFibGUpIHsKKyAgICBpdGVyYXRpb25Db3VudCArPSAxOworICAgIGJyZWFrOworICB9Cit9
KTsKKworYXNzZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgJ1RoZSBsb29wIGJvZHkg
aXMgZXZhbHVhdGVkJyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS1ub24tdGhyb3ctZ2V0LW1ldGhvZC1u
b24tY2FsbGFibGUuanMgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRz
L2Zvci1vZi9pdGVyYXRvci1jbG9zZS1ub24tdGhyb3ctZ2V0LW1ldGhvZC1ub24tY2FsbGFibGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDQyMjg1MjFkODBhM2NiY2JkNzA3ZDM1OTZhZTE0NTFhZDBkODEzMQot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVu
dHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJs
ZS5qcwpAQCAtMCwwICsxLDQ3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5
a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhl
IEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2Vj
LWl0ZXJhdG9yY2xvc2UKK2Rlc2NyaXB0aW9uOiA+CisgIElmIHJldHJpZXZpbmcgYW4gaXRlcmF0
b3IncyBgcmV0dXJuYCBtZXRob2QgZ2VuZXJhdGVzIGFuIGVycm9yIHdoaWxlCisgIGNsb3Npbmcg
dGhlIGl0ZXJhdG9yIHdpdGggbm9uLXRocm93IGNvbXBsZXRpb24sIHRoZSBlcnJvciBzaG91bGQg
YmUKKyAgZm9yd2FyZGVkIHRvIHRoZSBydW50aW1lLgoraW5mbzogfAorICBJdGVyYXRvckNsb3Nl
ICggaXRlcmF0b3JSZWNvcmQsIGNvbXBsZXRpb24gKQorCisgIFsuLi5dCisgIDQuIExldCBpbm5l
clJlc3VsdCBiZSBHZXRNZXRob2QoaXRlcmF0b3IsICJyZXR1cm4iKS4KKyAgNS4gSWYgaW5uZXJS
ZXN1bHQuW1tUeXBlXV0gaXMgbm9ybWFsLAorICAgIFsuLi5dCisgIDYuIElmIGNvbXBsZXRpb24u
W1tUeXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0aW9uKGNvbXBsZXRpb24pLgorICA3LiBJ
ZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBpcyB0aHJvdywgcmV0dXJuIENvbXBsZXRpb24oaW5uZXJS
ZXN1bHQpLgorCisgIEdldE1ldGhvZCAoIFYsIFAgKQorCisgIFsuLi5dCisgIDIuIExldCBmdW5j
IGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51
bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2Us
IHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBbU3ltYm9sLml0ZXJhdG9y
XQorLS0tKi8KKwordmFyIGl0ZXJhYmxlID0ge307Cit2YXIgaXRlcmF0aW9uQ291bnQgPSAwOwor
CitpdGVyYWJsZVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CisgIHJldHVybiB7Cisg
ICAgbmV4dDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6
IG51bGwgfTsKKyAgICB9LAorICAgIHJldHVybjogMSwKKyAgfTsKK307CisKK2Fzc2VydC50aHJv
d3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgZm9yICh2YXIgeCBvZiBpdGVyYWJsZSkgewor
ICAgIGl0ZXJhdGlvbkNvdW50ICs9IDE7CisgICAgYnJlYWs7CisgIH0KK30pOworCithc3NlcnQu
c2FtZVZhbHVlKGl0ZXJhdGlvbkNvdW50LCAxLCAnVGhlIGxvb3AgYm9keSBpcyBldmFsdWF0ZWQn
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMv
Zm9yLW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzIGIvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3Itb2YvaXRlcmF0b3ItY2xvc2Ut
dGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc3NTJjOTI5MjdjM2RiNzM5
NjhmYjhkMWIwNTJkNWUyMjllODYyNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdl
dC1tZXRob2QtYWJydXB0LmpzCkBAIC0wLDAgKzEsNDYgQEAKKy8vIENvcHlyaWdodCAoQykgMjAy
MCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8q
LS0tCitlc2lkOiBzZWMtaXRlcmF0b3JjbG9zZQorZGVzY3JpcHRpb246ID4KKyAgSWYgcmV0cmll
dmluZyBhbiBpdGVyYXRvcidzIGByZXR1cm5gIG1ldGhvZCBnZW5lcmF0ZXMgYW4gZXJyb3Igd2hp
bGUKKyAgY2xvc2luZyB0aGUgaXRlcmF0b3Igd2l0aCB0aHJvdyBjb21wbGV0aW9uLCB0aGlzIGVy
cm9yIHNob3VsZCBiZSBzdXBwcmVzc2VkLgoraW5mbzogfAorICBJdGVyYXRvckNsb3NlICggaXRl
cmF0b3JSZWNvcmQsIGNvbXBsZXRpb24gKQorCisgIFsuLi5dCisgIDQuIExldCBpbm5lclJlc3Vs
dCBiZSBHZXRNZXRob2QoaXRlcmF0b3IsICJyZXR1cm4iKS4KKyAgNS4gSWYgaW5uZXJSZXN1bHQu
W1tUeXBlXV0gaXMgbm9ybWFsLAorICAgIFsuLi5dCisgIDYuIElmIGNvbXBsZXRpb24uW1tUeXBl
XV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0aW9uKGNvbXBsZXRpb24pLgorICA3LiBJZiBpbm5l
clJlc3VsdC5bW1R5cGVdXSBpcyB0aHJvdywgcmV0dXJuIENvbXBsZXRpb24oaW5uZXJSZXN1bHQp
LgorCisgIEdldE1ldGhvZCAoIFYsIFAgKQorCisgIFsuLi5dCisgIDIuIExldCBmdW5jIGJlID8g
R2V0VihWLCBQKS4KK2ZlYXR1cmVzOiBbU3ltYm9sLml0ZXJhdG9yXQorLS0tKi8KKwordmFyIGl0
ZXJhYmxlID0ge307Cit2YXIgaXRlcmF0aW9uQ291bnQgPSAwOworCitpdGVyYWJsZVtTeW1ib2wu
aXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CisgIHJldHVybiB7CisgICAgbmV4dDogZnVuY3Rpb24o
KSB7CisgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IG51bGwgfTsKKyAgICB9LAor
ICAgIGdldCByZXR1cm4oKSB7CisgICAgICB0aHJvdyB7IG5hbWU6ICdpbm5lciBlcnJvcicgfTsK
KyAgICB9LAorICB9OworfTsKKworYXNzZXJ0LnRocm93cyhUZXN0MjYyRXJyb3IsIGZ1bmN0aW9u
KCkgeworICBmb3IgKHZhciB4IG9mIGl0ZXJhYmxlKSB7CisgICAgaXRlcmF0aW9uQ291bnQgKz0g
MTsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCdzaG91bGQgbm90IGJlIG92ZXJyaWRlbicp
OworICB9Cit9KTsKKworYXNzZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgJ1RoZSBs
b29wIGJvZHkgaXMgZXZhbHVhdGVkJyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0
aG9kLW5vbi1jYWxsYWJsZS5qcyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRl
bWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRob2Qtbm9uLWNhbGxhYmxl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxZTFjYzYzNTQwMTRlNmUyZDM4Yzk3MTYyM2NlZmI2Mjg5YmMzNmQK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1l
bnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5q
cwpAQCAtMCwwICsxLDQ2IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2Eu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLWl0
ZXJhdG9yY2xvc2UKK2Rlc2NyaXB0aW9uOiA+CisgIElmIHJldHJpZXZpbmcgYW4gaXRlcmF0b3In
cyBgcmV0dXJuYCBtZXRob2QgZ2VuZXJhdGVzIGFuIGVycm9yIHdoaWxlCisgIGNsb3NpbmcgdGhl
IGl0ZXJhdG9yIHdpdGggdGhyb3cgY29tcGxldGlvbiwgdGhpcyBlcnJvciBzaG91bGQgYmUgc3Vw
cHJlc3NlZC4KK2luZm86IHwKKyAgSXRlcmF0b3JDbG9zZSAoIGl0ZXJhdG9yUmVjb3JkLCBjb21w
bGV0aW9uICkKKworICBbLi4uXQorICA0LiBMZXQgaW5uZXJSZXN1bHQgYmUgR2V0TWV0aG9kKGl0
ZXJhdG9yLCAicmV0dXJuIikuCisgIDUuIElmIGlubmVyUmVzdWx0LltbVHlwZV1dIGlzIG5vcm1h
bCwKKyAgICBbLi4uXQorICA2LiBJZiBjb21wbGV0aW9uLltbVHlwZV1dIGlzIHRocm93LCByZXR1
cm4gQ29tcGxldGlvbihjb21wbGV0aW9uKS4KKyAgNy4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0g
aXMgdGhyb3csIHJldHVybiBDb21wbGV0aW9uKGlubmVyUmVzdWx0KS4KKworICBHZXRNZXRob2Qg
KCBWLCBQICkKKworICBbLi4uXQorICAyLiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCisgIDMu
IElmIGZ1bmMgaXMgZWl0aGVyIHVuZGVmaW5lZCBvciBudWxsLCByZXR1cm4gdW5kZWZpbmVkLgor
ICA0LiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNl
cHRpb24uCitmZWF0dXJlczogW1N5bWJvbC5pdGVyYXRvcl0KKy0tLSovCisKK3ZhciBpdGVyYWJs
ZSA9IHt9OwordmFyIGl0ZXJhdGlvbkNvdW50ID0gMDsKKworaXRlcmFibGVbU3ltYm9sLml0ZXJh
dG9yXSA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4geworICAgIG5leHQ6IGZ1bmN0aW9uKCkgewor
ICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBudWxsIH07CisgICAgfSwKKyAgICBy
ZXR1cm46ICdzdHInLAorICB9OworfTsKKworYXNzZXJ0LnRocm93cyhUZXN0MjYyRXJyb3IsIGZ1
bmN0aW9uKCkgeworICBmb3IgKHZhciB4IG9mIGl0ZXJhYmxlKSB7CisgICAgaXRlcmF0aW9uQ291
bnQgKz0gMTsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCdzaG91bGQgbm90IGJlIG92ZXJy
aWRlbicpOworICB9Cit9KTsKKworYXNzZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwg
J1RoZSBsb29wIGJvZHkgaXMgZXZhbHVhdGVkJyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3Qy
NjIvdGVzdDI2Mi1SZXZpc2lvbi50eHQgYi9KU1Rlc3RzL3Rlc3QyNjIvdGVzdDI2Mi1SZXZpc2lv
bi50eHQKaW5kZXggZDJjMzhjOWFkMTAzMjJhNTMyNjgxNGNiYzA3YmNlN2IzNzMyNzU5Ny4uZjY2
ODI5ZTNkOTFmMmMwNjFkNWM5ZTE3ZjA4MTkzY2Q4ZDM4ZmZiMyAxMDA2NDQKLS0tIGEvSlNUZXN0
cy90ZXN0MjYyL3Rlc3QyNjItUmV2aXNpb24udHh0CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi90ZXN0
MjYyLVJldmlzaW9uLnR4dApAQCAtMSwyICsxLDIgQEAKLXRlc3QyNjIgcmVtb3RlIHVybDogaHR0
cHM6Ly9naXRodWIuY29tL3RjMzkvdGVzdDI2Mi5naXQKLXRlc3QyNjIgcmV2aXNpb246IDk2Y2Y3
NTc3MGVjYzcwNDM4YjAwZjQzMWMyNjZiODM0ZTQxYjkxY2UKK3Rlc3QyNjIgcmVtb3RlIHVybDog
Z2l0QGdpdGh1Yi5jb206dGMzOS90ZXN0MjYyLmdpdAordGVzdDI2MiByZXZpc2lvbjogNjJiOGZj
ZTM4OTcxNTJkYTJjYzRmOGJkMWUyNzg3OGE0MDlhYjk3NQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395436</attachid>
            <date>2020-04-03 22:27:48 -0700</date>
            <delta_ts>2020-04-03 23:13:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209979-20200404082745.patch</filename>
            <type>text/plain</type>
            <size>295981</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTk1MjgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDIwLTA0LTAzICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgdGVzdDI2MiB0byBjb21taXQgNjJiOGZjZTM4
OTcxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk5
NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIC5n
aXRhdHRyaWJ1dGVzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOiBTa2lw
ICJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzIiBhbmQgIlByb21pc2UuYW55IiBmZWF0dXJl
cy4KKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorICAgICAgICAqIHRlc3Qy
NjIvaGFybmVzcy8qOiBVcGRhdGVkLgorICAgICAgICAqIHRlc3QyNjIvbGF0ZXN0LWNoYW5nZXMt
c3VtbWFyeS50eHQ6CisgICAgICAgICogdGVzdDI2Mi90ZXN0Lyo6IFVwZGF0ZWQuCisgICAgICAg
ICogdGVzdDI2Mi90ZXN0MjYyLVJldmlzaW9uLnR4dDoKKwogMjAyMC0wNC0wMyAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIGNhbm9uaWNhbGl6ZUxv
Y2FsZUxpc3Qgc2hvdWxkIGdyYWNlZnVsbHkgdGhyb3cgT09NIGVycm9yIGlmIGlucHV0ICsgZXJy
b3IgbWVzc2FnZSBpcyB0b28gbGFyZ2UKSW5kZXg6IEpTVGVzdHMvLmdpdGF0dHJpYnV0ZXMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy8uZ2l0YXR0cmlidXRlcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rl
c3RzLy5naXRhdHRyaWJ1dGVzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAordGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC13
aGl0ZXNwYWNlLmpzIHN2bi1wcm9wZXJ0aWVzPWFsbG93LXRhYnM9b24KK3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci13aGl0ZXNwYWNl
LmpzIHN2bi1wcm9wZXJ0aWVzPWFsbG93LXRhYnM9b24KK3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLXdoaXRlc3BhY2UuanMg
c3ZuLXByb3BlcnRpZXM9YWxsb3ctdGFicz1vbgpJbmRleDogSlNUZXN0cy90ZXN0MjYyL2NvbmZp
Zy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAkocmV2aXNp
b24gMjU5NTI2KQorKysgSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNyw4ICsxNywxMyBAQCBza2lwOgogICAgIC0gY2xhc3Mtc3RhdGljLWZpZWxkcy1wcml2
YXRlCiAgICAgLSBjbGFzcy1zdGF0aWMtbWV0aG9kcy1wcml2YXRlCiAgICAgLSBob3N0LWdjLXJl
cXVpcmVkCisgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy
NDc1CiAgICAgLSByZWdleHAtbWF0Y2gtaW5kaWNlcwogICAgIC0gdG9wLWxldmVsLWF3YWl0Cisg
ICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisgICAg
LSBsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzCisgICAgIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNTY2CisgICAgLSBQcm9taXNlLmFueQogICAgIC0gQWdn
cmVnYXRlRXJyb3IKICAgICAtIEZpbmFsaXphdGlvblJlZ2lzdHJ5CiAgICAgLSBJbnRsLkRhdGVU
aW1lRm9ybWF0LWRhdGV0aW1lc3R5bGUKQEAgLTE1Myw3ICsxNTgsMyBAQCBza2lwOgogICAgICMg
VGhlc2UgdGVzdHMgdGltZW91dCBldmVuIHdpdGggLS10aW1lb3V0IHBhcmFtZXRlciBzZXQKICAg
ICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg2MzkKICAgICAt
IHRlc3QvYnVpbHQtaW5zL0FycmF5L3Byb3RvdHlwZS9sYXN0SW5kZXhPZi9sZW5ndGgtbmVhci1p
bnRlZ2VyLWxpbWl0LmpzCi0KLSAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDM1MTEKLSAgICAtIHRlc3QvYnVpbHQtaW5zL0pTT04vc3RyaW5naWZ5L3JlcGxh
Y2VyLWZ1bmN0aW9uLXN0YWNrLW92ZXJmbG93LmpzCi0gICAgLSB0ZXN0L2J1aWx0LWlucy9KU09O
L3N0cmluZ2lmeS92YWx1ZS10b2pzb24tc3RhY2stb3ZlcmZsb3cuanMKSW5kZXg6IEpTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWwJKHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtNjA5LDYgKzYwOSw5IEBAIHRlc3Qv
YW5uZXhCL2xhbmd1YWdlL2dsb2JhbC1jb2RlL3N3aXRjaC0KICAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogQW4gaW5pdGlhbGl6ZWQgYmluZGluZyBpcyBub3QgY3JlYXRlZCBwcmlvciB0byBldmFs
dWF0aW9uIEV4cGVjdGVkIGEgUmVmZXJlbmNlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9nbG9iYWwtY29k
ZS9zd2l0Y2gtZGZsdC1nbG9iYWwtc2tpcC1lYXJseS1lcnIuanM6CiAgIGRlZmF1bHQ6ICJTeW50
YXhFcnJvcjogQ2Fubm90IGRlY2xhcmUgYSBmdW5jdGlvbiB0aGF0IHNoYWRvd3MgYSBsZXQvY29u
c3QvY2xhc3MvZnVuY3Rpb24gdmFyaWFibGUgJ2YnIGluIHN0cmljdCBtb2RlLiIKK3Rlc3QvYW5u
ZXhCL2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9sZWdhY3ktb2N0YWwtZXNjYXBlLmpzOgorICBk
ZWZhdWx0OiAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJy9c
XDAxMTEvLmV4ZWMoJ1xceDA5MScpWzBdJykiCisgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiBu
dWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJy9cXDAxMTEvLmV4ZWMoJ1xceDA5MScp
WzBdJykiCiB0ZXN0L2FubmV4Qi9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1j
bG9zZS1yZXR1cm4tZW11bGF0ZXMtdW5kZWZpbmVkLXRocm93cy13aGVuLWNhbGxlZC5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiAgIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2Vw
dGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKQEAgLTEyMTksNiArMTIyMiwxNSBAQCB0ZXN0L2J1aWx0
LWlucy9Qcm94eS9jb25zdHJ1Y3QvcmV0dXJuLW5vCiB0ZXN0L2J1aWx0LWlucy9Qcm94eS9jb25z
dHJ1Y3QvdHJhcC1pcy1ub3QtY2FsbGFibGUtcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUeXBlRXJyb3InCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVHlw
ZUVycm9yJwordGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLWhhbmRsZXItaXMtcmV2b2tlZC1w
cm94eS5qczoKKyAgZGVmYXVsdDogIlR5cGVFcnJvcjogQSBQcm94eSdzICdoYW5kbGVyJyBzaG91
bGRuJ3QgYmUgYSByZXZva2VkIFByb3h5IgorICBzdHJpY3QgbW9kZTogIlR5cGVFcnJvcjogQSBQ
cm94eSdzICdoYW5kbGVyJyBzaG91bGRuJ3QgYmUgYSByZXZva2VkIFByb3h5IgordGVzdC9idWls
dC1pbnMvUHJveHkvY3JlYXRlLXRhcmdldC1pcy1yZXZva2VkLWZ1bmN0aW9uLXByb3h5LmpzOgor
ICBkZWZhdWx0OiAiVHlwZUVycm9yOiBBIFByb3h5J3MgJ3RhcmdldCcgc2hvdWxkbid0IGJlIGEg
cmV2b2tlZCBQcm94eSIKKyAgc3RyaWN0IG1vZGU6ICJUeXBlRXJyb3I6IEEgUHJveHkncyAndGFy
Z2V0JyBzaG91bGRuJ3QgYmUgYSByZXZva2VkIFByb3h5IgordGVzdC9idWlsdC1pbnMvUHJveHkv
Y3JlYXRlLXRhcmdldC1pcy1yZXZva2VkLXByb3h5LmpzOgorICBkZWZhdWx0OiAiVHlwZUVycm9y
OiBBIFByb3h5J3MgJ3RhcmdldCcgc2hvdWxkbid0IGJlIGEgcmV2b2tlZCBQcm94eSIKKyAgc3Ry
aWN0IG1vZGU6ICJUeXBlRXJyb3I6IEEgUHJveHkncyAndGFyZ2V0JyBzaG91bGRuJ3QgYmUgYSBy
ZXZva2VkIFByb3h5IgogdGVzdC9idWlsdC1pbnMvUHJveHkvZGVmaW5lUHJvcGVydHkvdHJhcC1p
cy11bmRlZmluZWQtdGFyZ2V0LWlzLXByb3h5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEg
VHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwpAQCAtMTIzNCw2ICsxMjQ2LDEyIEBAIHRlc3QvYnVpbHQtaW5zL1Byb3h5L2dldE93blByb3Bl
cnR5RGVzY3IKIHRlc3QvYnVpbHQtaW5zL1Byb3h5L293bktleXMvdHJhcC1pcy11bmRlZmluZWQt
dGFyZ2V0LWlzLXByb3h5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBb
bGVuZ3RoLCBmb28sIDAsIFN5bWJvbCgpXSBhbmQgW1N5bWJvbCgpLCBsZW5ndGgsIGZvbywgMF0g
dG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgW2xlbmd0aCwgZm9vLCAwLCBTeW1ib2woKV0gYW5kIFtTeW1ib2woKSwgbGVu
Z3RoLCBmb28sIDBdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKK3Rlc3QvYnVpbHQtaW5z
L1Byb3h5L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXItbXVsdGlwbGUtY2FsbHMtaW5kZXgu
anM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFswXSBhbmQgWzAsIDAsIDBd
IHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjoga2V5
IHByZXNlbnQgb24gW1tQcm94eVRhcmdldF1dJworICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjog
QXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS4nCit0ZXN0L2J1aWx0LWlu
cy9Qcm94eS9zZXQvdHJhcC1pcy1taXNzaW5nLXJlY2VpdmVyLW11bHRpcGxlLWNhbGxzLmpzOgor
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbZm9vXSBhbmQgW2ZvbywgZm9vLCBm
b29dIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjog
a2V5IHByZXNlbnQgb24gW1tQcm94eVRhcmdldF1dJworICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJv
cjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS4nCiB0ZXN0L2J1aWx0
LWlucy9Qcm94eS9zZXQvdHJhcC1pcy1taXNzaW5nLXRhcmdldC1pcy1wcm94eS5qczoKICAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMMK7LCDCqzHCuykgdG8g
YmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hhbmdl
IGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuJwpAQCAt
MTkyNiw5ICsxOTQ0LDEyIEBAIHRlc3QvaW50bDQwMi9Db2xsYXRvci91c2FnZS1kZS5qczoKIHRl
c3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1jYWxlbmRhci1udW1iZXJpbmdT
eXN0ZW0tb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtsb2Nh
bGVNYXRjaGVyLCBob3VyMTJdIGFuZCBbbG9jYWxlTWF0Y2hlciwgY2FsZW5kYXIsIG51bWJlcmlu
Z1N5c3RlbSwgaG91cjEyXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbbG9jYWxlTWF0Y2hlciwgaG91cjEyXSBhbmQg
W2xvY2FsZU1hdGNoZXIsIGNhbGVuZGFyLCBudW1iZXJpbmdTeXN0ZW0sIGhvdXIxMl0gdG8gaGF2
ZSB0aGUgc2FtZSBjb250ZW50cy4gJwotdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2ludmFs
aWQtbnVtYmVyaW5nLXN5c3RlbS1jYWxlbmRhci1vcHRpb25zLmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBJbnZhbGlkIG51bWJlcmluZ1N5c3RlbSB2YWx1ZSBhYiB3YXMgbm90IHJlamVj
dGVkLiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24g
d2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBJbnZhbGlk
IG51bWJlcmluZ1N5c3RlbSB2YWx1ZSBhYiB3YXMgbm90IHJlamVjdGVkLiBFeHBlY3RlZCBhIFJh
bmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
Cit0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvY29uc3RydWN0b3Itb3B0aW9ucy1jYWxlbmRh
ci1pbnZhbGlkLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBuZXcgSW50bC5EYXRlVGlt
ZUZvcm1hdCgiZW4iLCB7Y2FsZW5kYXI6ICIifSkgdGhyb3dzIFJhbmdlRXJyb3IgRXhwZWN0ZWQg
YSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogbmV3IEludGwuRGF0ZVRpbWVGb3Jt
YXQoImVuIiwge2NhbGVuZGFyOiAiIn0pIHRocm93cyBSYW5nZUVycm9yIEV4cGVjdGVkIGEgUmFu
Z2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
K3Rlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLW51bWJlcmlu
Z1N5c3RlbS1pbnZhbGlkLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBuZXcgSW50bC5E
YXRlVGltZUZvcm1hdCgiZW4iLCB7bnVtYmVyaW5nU3lzdGVtOiAiIn0pIHRocm93cyBSYW5nZUVy
cm9yIEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRs
LkRhdGVUaW1lRm9ybWF0KCJlbiIsIHtudW1iZXJpbmdTeXN0ZW06ICIifSkgdGhyb3dzIFJhbmdl
RXJyb3IgRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L251bWJlcmlu
Zy1zeXN0ZW0tY2FsZW5kYXItb3B0aW9ucy5qczoKICAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjog
T3B0aW9ucyB2YWx1ZSBmb3IgcHJvcGVydHkgbnVtYmVyaW5nU3lzdGVtIGRvZXNuJ3Qgb3ZlcnJp
ZGUgbG9jYWxlIGV4dGVuc2lvbiBrZXkgbnUuIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2FyYWLCuywg
wqtsYXRuwrspIHRvIGJlIHRydWUiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVycm9yOiBPcHRp
b25zIHZhbHVlIGZvciBwcm9wZXJ0eSBudW1iZXJpbmdTeXN0ZW0gZG9lc24ndCBvdmVycmlkZSBs
b2NhbGUgZXh0ZW5zaW9uIGtleSBudS4gRXhwZWN0ZWQgU2FtZVZhbHVlKMKrYXJhYsK7LCDCq2xh
dG7CuykgdG8gYmUgdHJ1ZSIKQEAgLTE5NzEsMTIgKzE5OTIsMTIgQEAgdGVzdC9pbnRsNDAyL0lu
dGwvZ2V0Q2Fub25pY2FsTG9jYWxlcy9wcgogdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9jb25z
dHJ1Y3Rvci1udW1iZXJpbmdTeXN0ZW0tb3JkZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIFtsb2NhbGVNYXRjaGVyLCBzdHlsZV0gYW5kIFtsb2NhbGVNYXRjaGVyLCBu
dW1iZXJpbmdTeXN0ZW0sIHN0eWxlXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbbG9jYWxlTWF0Y2hlciwgc3R5bGVd
IGFuZCBbbG9jYWxlTWF0Y2hlciwgbnVtYmVyaW5nU3lzdGVtLCBzdHlsZV0gdG8gaGF2ZSB0aGUg
c2FtZSBjb250ZW50cy4gJwordGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9jb25zdHJ1Y3Rvci1v
cHRpb25zLW51bWJlcmluZ1N5c3RlbS1pbnZhbGlkLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoImVuIiwge251bWJlcmluZ1N5c3RlbTogIiJ9KSB0
aHJvd3MgUmFuZ2VFcnJvciBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoImVuIiwge251bWJlcmluZ1N5c3RlbTogIiJ9KSB0
aHJvd3MgUmFuZ2VFcnJvciBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCiB0ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0
L2NvbnN0cnVjdG9yLW9wdGlvbnMtdGhyb3dpbmctZ2V0dGVycy5qczoKICAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhjZXB0aW9uIGZyb20gbnVtYmVyaW5nU3lzdGVtIGdldHRlciBzaG91bGQg
YmUgcHJvcGFnYXRlZCBFeHBlY3RlZCBhIEN1c3RvbUVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhjZXB0aW9uIGZyb20gbnVtYmVyaW5nU3lzdGVtIGdldHRlciBzaG91bGQgYmUgcHJvcGFn
YXRlZCBFeHBlY3RlZCBhIEN1c3RvbUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9pbnZhbGlkLW51
bWJlcmluZy1zeXN0ZW0tb3B0aW9ucy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogSW52
YWxpZCBudW1iZXJpbmdTeXN0ZW0gdmFsdWUgYWIgd2FzIG5vdCByZWplY3RlZC4gRXhwZWN0ZWQg
YSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogSW52YWxpZCBudW1iZXJpbmdTeXN0
ZW0gdmFsdWUgYWIgd2FzIG5vdCByZWplY3RlZC4gRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRsNDAy
L051bWJlckZvcm1hdC9udW1iZXJpbmctc3lzdGVtLW9wdGlvbnMuanM6CiAgIGRlZmF1bHQ6ICJU
ZXN0MjYyRXJyb3I6IE9wdGlvbnMgdmFsdWUgZm9yIHByb3BlcnR5IG51bWJlcmluZ1N5c3RlbSBk
b2Vzbid0IG92ZXJyaWRlIGxvY2FsZSBleHRlbnNpb24ga2V5IG51LiBFeHBlY3RlZCBTYW1lVmFs
dWUowqthcmFiwrssIMKrbGF0bsK7KSB0byBiZSB0cnVlIgogICBzdHJpY3QgbW9kZTogIlRlc3Qy
NjJFcnJvcjogT3B0aW9ucyB2YWx1ZSBmb3IgcHJvcGVydHkgbnVtYmVyaW5nU3lzdGVtIGRvZXNu
J3Qgb3ZlcnJpZGUgbG9jYWxlIGV4dGVuc2lvbiBrZXkgbnUuIEV4cGVjdGVkIFNhbWVWYWx1ZSjC
q2FyYWLCuywgwqtsYXRuwrspIHRvIGJlIHRydWUiCkBAIC0yMTI4LDkgKzIxNDksNiBAQCB0ZXN0
L2xhbmd1YWdlL2Jsb2NrLXNjb3BlL3N5bnRheC9yZWRlY2xhCiAgIGRlZmF1bHQ6ICdUZXN0MjYy
OiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCiB0ZXN0L2xhbmd1YWdl
L2Jsb2NrLXNjb3BlL3N5bnRheC9yZWRlY2xhcmF0aW9uL3Zhci1yZWRlY2xhcmF0aW9uLWF0dGVt
cHQtYWZ0ZXItZ2VuZXJhdG9yLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1l
bnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwotdGVzdC9sYW5ndWFnZS9ldmFsLWNvZGUvZGly
ZWN0L25ldy50YXJnZXQtYXJyb3cuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCq2Z1bmN0aW9uIFJlZmVyZW5jZUVycm9yKCkgeycKLSAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2Z1bmN0aW9uIFJlZmVyZW5j
ZUVycm9yKCkgeycKIHRlc3QvbGFuZ3VhZ2UvZXZhbC1jb2RlL2RpcmVjdC9ub24tZGVmaW5hYmxl
LWZ1bmN0aW9uLXdpdGgtZnVuY3Rpb24uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgT2JqZWN0XcK7LCDCq3VuZGVmaW5lZMK7KSB0byBi
ZSB0cnVlJwogdGVzdC9sYW5ndWFnZS9ldmFsLWNvZGUvZGlyZWN0L25vbi1kZWZpbmFibGUtZnVu
Y3Rpb24td2l0aC12YXJpYWJsZS5qczoKQEAgLTMyMDcsNiArMzIyNSwxMiBAQCB0ZXN0L2xhbmd1
YWdlL2lkZW50aWZpZXJzL3N0YXJ0LXVuaWNvZGUtCiB0ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3Jl
Z2V4cC91LWFzdHJhbC1jaGFyLWNsYXNzLWludmVydC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrssIMKrbnVsbMK7KSB0byBiZSB0cnVlJwog
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr77+9wrss
IMKrbnVsbMK7KSB0byBiZSB0cnVlJwordGVzdC9sYW5ndWFnZS9saXRlcmFscy9zdHJpbmcvdW5p
Y29kZS1lc2NhcGUtbm8taGV4LWVyci1kb3VibGUuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyOiBU
aGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCisgIHN0cmljdCBtb2RlOiAn
VGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuJwordGVzdC9s
YW5ndWFnZS9saXRlcmFscy9zdHJpbmcvdW5pY29kZS1lc2NhcGUtbm8taGV4LWVyci1zaW5nbGUu
anM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2
YWx1YXRlZC4nCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxk
IG5vdCBiZSBldmFsdWF0ZWQuJwogdGVzdC9sYW5ndWFnZS9tb2R1bGUtY29kZS9ldmFsLXJxc3Rk
LW9uY2UuanM6CiAgIG1vZHVsZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIg
J2FzJy4gRXhwZWN0ZWQgJ2Zyb20nIGJlZm9yZSBleHBvcnRlZCBtb2R1bGUgbmFtZS4iCiB0ZXN0
L2xhbmd1YWdlL21vZHVsZS1jb2RlL2V2YWwtcnFzdGQtb3JkZXIuanM6CkBAIC0zNjExLDYgKzM2
MzUsOSBAQCB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2hlYWQtbGhzCiB0ZXN0L2xh
bmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2hlYWQtdmFyLW5vLWV4cHIuanM6CiAgIGRlZmF1bHQ6
ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4nCiAgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0
ZWQuJwordGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS10aHJv
dy1nZXQtbWV0aG9kLWFicnVwdC5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUZXN0MjYyRXJyb3IgYnV0IGdvdCBhIE9iamVjdCcKKyAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIGJ1dCBnb3QgYSBPYmplY3QnCiB0ZXN0
L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9mL2xldC1hcnJheS13aXRoLW5ld2xpbmUuanM6CiAg
IGRlZmF1bHQ6ICdUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRl
ZC4nCiB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yL2hlYWQtbGhzLWxldC5qczoKSW5kZXg6
IEpTVGVzdHMvdGVzdDI2Mi9sYXRlc3QtY2hhbmdlcy1zdW1tYXJ5LnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL3Rlc3QyNjIvbGF0ZXN0LWNoYW5nZXMtc3VtbWFyeS50eHQJKHJldmlzaW9uIDI1
OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi9sYXRlc3QtY2hhbmdlcy1zdW1tYXJ5LnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSw5ICsxLDE2OCBAQAotTSBoYXJuZXNzL2Fzc2VydC5qcwotTSBoYXJu
ZXNzL3Byb3BlcnR5SGVscGVyLmpzCi1EIHRlc3QvYnVpbHQtaW5zL0pTT04vc3RyaW5naWZ5L3Jl
cGxhY2VyLWZ1bmN0aW9uLXN0YWNrLW92ZXJmbG93LmpzCi1EIHRlc3QvYnVpbHQtaW5zL0pTT04v
c3RyaW5naWZ5L3ZhbHVlLXRvanNvbi1zdGFjay1vdmVyZmxvdy5qcwotQSB0ZXN0L2J1aWx0LWlu
cy9OYXRpdmVFcnJvcnMvQWdncmVnYXRlRXJyb3IvbmV3dGFyZ2V0LWlzLXVuZGVmaW5lZC5qcwot
TSB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL1N5bWJvbC5yZXBsYWNlL3BvaXNvbmVk
LXN0ZGxpYi5qcwotTSB0ZXN0L2hhcm5lc3MvYXNzZXJ0LXNhbWV2YWx1ZS16ZXJvcy5qcwotQSB0
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3ByaXZhdGUtZmllbGQtYWZ0
ZXItb3B0aW9uYWwtY2hhaW4uanMKLUEgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2Vs
ZW1lbnRzL3ByaXZhdGUtZmllbGQtYWZ0ZXItb3B0aW9uYWwtY2hhaW4uanMKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCitNIGhhcm5lc3MvYXN5bmMtZ2MuanMKK00gdGVzdC9hbm5leEIvbGFu
Z3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL2xlZ2FjeS1vY3RhbC1lc2NhcGUuanMKK0QgdGVzdC9idWls
dC1pbnMvQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLy5EU19TdG9yZQorRCB0ZXN0L2J1
aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvbmV4dC8uRFNfU3RvcmUKK0Eg
dGVzdC9idWlsdC1pbnMvQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlL25leHQvYWJzZW50
LXZhbHVlLW5vdC1wYXNzZWQuanMKK0EgdGVzdC9idWlsdC1pbnMvQXN5bmNGcm9tU3luY0l0ZXJh
dG9yUHJvdG90eXBlL3JldHVybi9hYnNlbnQtdmFsdWUtbm90LXBhc3NlZC5qcworQSB0ZXN0L2J1
aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvdGhyb3cvYWJzZW50LXZhbHVl
LW5vdC1wYXNzZWQuanMKK0QgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmlu
YWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvU3ltYm9sLnRvU3RyaW5n
VGFnLmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlv
blJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtam9iLW5vdC1hY3RpdmUtdGhy
b3dzLmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlv
blJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbGVuZ3RoLmpzCitEIHRlc3Qv
YnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51
cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbWlzc2luZy1pbnRlcm5hbC10aHJvd3MuanMKK0QgdGVz
dC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVh
bnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1uYW1lLmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFs
aXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90
eXBlL25leHQtbm90LW9iamVjdC10aHJvd3MuanMKK0QgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0
aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUv
bmV4dC1wcm9wLWRlc2MuanMKK0QgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkv
RmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvcHJvdG8uanMKK00g
dGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvZ2MtaGFzLW9uZS1jaGFuY2UtdG8t
Y2FsbC1jbGVhbnVwQ2FsbGJhY2suanMKK0QgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVn
aXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NhbGxiYWNrLWl0ZXJhdG9yLXByb3RvLmpzCitN
IHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29t
ZS9jbGVhbnVwLXByZXZlbnRlZC13aXRoLXJlZmVyZW5jZS5qcworTSB0ZXN0L2J1aWx0LWlucy9G
aW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC1wcmV2ZW50
ZWQtd2l0aC11bnJlZ2lzdGVyLmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lz
dHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9jbGVhbnVwY2FsbGJhY2staXRlcmF0b3ItcHJvdG8u
anMKK1IwNzYgdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2Ns
ZWFudXBTb21lL2l0ZXJhdG9yLWhvbGRpbmdzLW11bHRpcGxlLXZhbHVlcy5qcyB0ZXN0L2J1aWx0
LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvaG9sZGluZ3Mt
bXVsdGlwbGUtdmFsdWVzLmpzCitEIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5
L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9wb2lzb25lZC1jYWxsYmFjay10aHJvd3MuanMKK1IwNjkg
dGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21l
L2NsZWFudXAtdGhyb3dzLWluLWNhbGxiYWNrLmpzIHRlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlv
blJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9yZWVudHJhbmN5LmpzCitNIHRlc3QvYnVp
bHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9yZXR1cm4t
dW5kZWZpbmVkLXdpdGgtZ2MuanMKK00gdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0
cnkvcHJvdG90eXBlL3VucmVnaXN0ZXIvdW5yZWdpc3Rlci1jbGVhbmVkLXVwLWNlbGwuanMKK0Eg
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1jYWxsZWQtdHdp
Y2UuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1u
b3QtY2FsbGFibGUuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LWN0b3ItdGhy
b3dzLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2N0eC1jdG9yLmpzCitBIHRlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2N0eC1ub24tY3Rvci5qcworQSB0ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1lcnJvci1jbG9zZS5qcworQSB0ZXN0L2J1aWx0LWlu
cy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1lcnJvci1yZWplY3QuanMKK0EgdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LWVycm9yLWNsb3NlLmpzCitBIHRl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWdldC1lcnJvci1yZWplY3Qu
anMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LW9uY2Ut
bXVsdGlwbGUtY2FsbHMuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJl
c29sdmUtZ2V0LW9uY2Utbm8tY2FsbHMuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aW52b2tlLXJlc29sdmUtbm90LWNhbGxhYmxlLXJlamVjdHMtd2l0aC10eXBlcnJvci5qcworQSB0
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVy
eS1pdGVyYXRpb24tb2YtY3VzdG9tLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2lu
dm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCitB
IHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXZhbHVlcy1ldmVy
eS1pdGVyYXRpb24tb2YtY3VzdG9tLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2lu
dm9rZS1yZXNvbHZlLW9uLXZhbHVlcy1ldmVyeS1pdGVyYXRpb24tb2YtcHJvbWlzZS5qcworQSB0
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS5qcworQSB0ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1lcnJvci1jbG9zZS5qcworQSB0ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1lcnJvci1yZWplY3QuanMKK0EgdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4tZ2V0LWVycm9yLWNsb3NlLmpzCitBIHRlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLWdldC1lcnJvci1yZWplY3QuanMKK0Eg
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4tb24tcHJvbWlzZXMtZXZlcnkt
aXRlcmF0aW9uLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLmpz
CitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2lzLWZ1bmN0aW9uLmpzCitBIHRlc3QvYnVp
bHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLWVtcHR5LWl0ZXJhYmxlLXJlamVjdC5qcwor
QSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1lbXB0eS1zdHJpbmctcmVq
ZWN0LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLWZhbHNlLXJl
amVjdC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1udWxsLXJl
amVjdC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1udW1iZXIt
cmVqZWN0LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXBvaXNv
bmVkLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXN0cmluZy1y
ZXNvbHZlLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXN5bWJv
bC1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtdHJ1
ZS1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtdW5k
ZWZpbmVkLXJlamVjdC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2ln
bmVkLWZhbHNlLXJlamVjdC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFz
c2lnbmVkLW51bGwtcmVqZWN0LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXIt
YXNzaWduZWQtbnVtYmVyLXJlamVjdC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9p
dGVyLWFzc2lnbmVkLXN0cmluZy1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9h
bnkvaXRlci1hc3NpZ25lZC1zeW1ib2wtcmVqZWN0LmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L2l0ZXItYXNzaWduZWQtdHJ1ZS1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvaXRlci1hc3NpZ25lZC11bmRlZmluZWQtcmVqZWN0LmpzCitBIHRlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L2l0ZXItc3RlcC1lcnItbm8tY2xvc2UuanMKK0EgdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvaXRlci1zdGVwLWVyci1yZWplY3QuanMKK0EgdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvbGVuZ3RoLmpzCitBIHRlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L25hbWUu
anMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbmV3LXJlamVjdC1mdW5jdGlvbi5qcwor
QSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9wcm9wLWRlc2MuanMKK0EgdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvcmVqZWN0LWFsbC1taXhlZC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9yZWplY3QtZGVmZXJyZWQuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
cmVqZWN0LWVsZW1lbnQtZnVuY3Rpb24tZXh0ZW5zaWJsZS5qcworQSB0ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1sZW5ndGguanMKK0EgdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvcmVqZWN0LWVsZW1lbnQtZnVuY3Rpb24tbmFtZS5qcworQSB0ZXN0
L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1ub25jb25zdHJ1
Y3Rvci5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5j
dGlvbi1wcm90b3R5cGUuanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZS1m
cm9tLXJlamVjdC1jYXRjaC5qcworQSB0ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZl
LWZyb20tcmVzb2x2ZS1yZWplY3QtY2F0Y2guanMKK0EgdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9h
bnkvcmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLWRlZmVycmVkLmpzCitBIHRlc3QvYnVp
bHQtaW5zL1Byb21pc2UvYW55L3Jlc29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi5qcworQSB0
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXR1cm5zLXByb21pc2UuanMKK00gdGVzdC9idWls
dC1pbnMvUHJveHkvY3JlYXRlLWhhbmRsZXItaXMtcmV2b2tlZC1wcm94eS5qcworTSB0ZXN0L2J1
aWx0LWlucy9Qcm94eS9jcmVhdGUtdGFyZ2V0LWlzLW5vdC1jYWxsYWJsZS5qcworQSB0ZXN0L2J1
aWx0LWlucy9Qcm94eS9jcmVhdGUtdGFyZ2V0LWlzLXJldm9rZWQtZnVuY3Rpb24tcHJveHkuanMK
K00gdGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLXRhcmdldC1pcy1yZXZva2VkLXByb3h5Lmpz
CitBIHRlc3QvYnVpbHQtaW5zL1Byb3h5L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXItbXVs
dGlwbGUtY2FsbHMtaW5kZXguanMKK0EgdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMt
bWlzc2luZy1yZWNlaXZlci1tdWx0aXBsZS1jYWxscy5qcworUjEwMCB0ZXN0L2J1aWx0LWlucy9Q
cm94eS9zZXQvdHJhcC1pcy11bmRlZmluZWQtcmVjZWl2ZXIuanMgdGVzdC9idWlsdC1pbnMvUHJv
eHkvc2V0L3RyYXAtaXMtbnVsbC1yZWNlaXZlci5qcworQSB0ZXN0L2ludGw0MDIvRGF0ZVRpbWVG
b3JtYXQvY29uc3RydWN0b3Itb3B0aW9ucy1jYWxlbmRhci1pbnZhbGlkLmpzCitBIHRlc3QvaW50
bDQwMi9EYXRlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLW51bWJlcmluZ1N5c3RlbS1p
bnZhbGlkLmpzCitEIHRlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9pbnZhbGlkLW51bWJlcmlu
Zy1zeXN0ZW0tY2FsZW5kYXItb3B0aW9ucy5qcworQSB0ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0
L2NvbnN0cnVjdG9yLW9wdGlvbnMtbnVtYmVyaW5nU3lzdGVtLWludmFsaWQuanMKK0QgdGVzdC9p
bnRsNDAyL051bWJlckZvcm1hdC9pbnZhbGlkLW51bWJlcmluZy1zeXN0ZW0tb3B0aW9ucy5qcwor
TSB0ZXN0L2ludGw0MDIvUmVsYXRpdmVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yL2NvbnN0cnVjdG9y
L29wdGlvbnMtbnVtYmVyaW5nU3lzdGVtLWludmFsaWQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hh
aW5pbmcuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0
aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQtYXNzaWduZWQuanMKK0EgdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQu
anMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMt
dmFsaWQtc3RhdGljLWZpZWxkLWFzc2lnbmVkLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLXN0YXRpYy1maWVsZC5qcworRCB0ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N5bnRheC9lYXJseS1lcnJvcnMv
Z3JhbW1hci1wcml2YXRlLWZpZWxkLW9wdGlvbmFsLWNoYWluaW5nLmpzCitBIHRlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFyZ3VtZW50cy1zdHJp
Y3QuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1s
aHMtYmVmb3JlLXJocy5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNz
aWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC1wdXQuanMKK0EgdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdu
bWVudC1vcGVyYXRvci1uby1zZXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dp
Y2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1ub24tZXh0ZW5zaWJs
ZS5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1zaW1wbGUtbGhzLmpzCitBIHRlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3Bl
cmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVh
YmxlLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1saHMuanMKK0EgdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1v
cGVyYXRvci11bnJlc29sdmVkLXJocy1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29s
dmVkLXJocy5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVu
dC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWV2YWwtc3RyaWN0LmpzCitBIHRlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLW5vbi1zaW1w
bGUuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1hbmQtd2hpdGVzcGFjZS5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXJndW1lbnRzLXN0cmljdC5qcworQSB0ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVu
dC1vcGVyYXRvci1iaWdpbnQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItbGhzLWJlZm9yZS1y
aHMuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1dC5qcworQSB0ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVu
dC1vcGVyYXRvci1uby1zZXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLWV4dGVuc2li
bGUuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKK0EgdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2ln
bm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMKK0EgdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0
b3Itbm9uLXdyaXRlYWJsZS5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLWxo
cy5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy1wdXQuanMKK0EgdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFz
c2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMuanMKK0EgdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0
b3IuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1udWxsaXNoLWV2YWwtc3RyaWN0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1ub24tc2ltcGxlLmpzCitBIHRlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC13aGl0ZXNwYWNl
LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
b3ItYXJndW1lbnRzLXN0cmljdC5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2lj
YWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3ItYmlnaW50LmpzCitBIHRl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdu
bWVudC1vcGVyYXRvci1saHMtYmVmb3JlLXJocy5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0
LXB1dC5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9s
Z2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1u
b24tZXh0ZW5zaWJsZS5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNz
aWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKK0Eg
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3Np
Z25tZW50LW9wZXJhdG9yLW5vbi13cml0ZWFibGUtcHV0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1u
b24td3JpdGVhYmxlLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3Np
Z25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcworQSB0
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2ln
bm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMtcHV0LmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci11
bnJlc29sdmVkLXJocy5qcworQSB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNz
aWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMKK0EgdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1ldmFsLXN0cmljdC5qcworQSB0
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLW5vbi1z
aW1wbGUuanMKK0EgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQv
bGdjbC1vci13aGl0ZXNwYWNlLmpzCitBIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvdGVtcGxh
dGUtbGl0ZXJhbC91bmljb2RlLWVzY2FwZS1uby1oZXgtZXJyLmpzCitBIHRlc3QvbGFuZ3VhZ2Uv
bGl0ZXJhbHMvc3RyaW5nL3VuaWNvZGUtZXNjYXBlLW5vLWhleC1lcnItZG91YmxlLmpzCitBIHRl
c3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvc3RyaW5nL3VuaWNvZGUtZXNjYXBlLW5vLWhleC1lcnItc2lu
Z2xlLmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9ncmFtbWFy
LXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMKK0EgdGVzdC9sYW5ndWFnZS9zdGF0
ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC1hc3Np
Z25lZC5qcworQSB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGlj
LWFzLXZhbGlkLWluc3RhbmNlLWZpZWxkLmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9j
bGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLWFzc2lnbmVkLmpzCitB
IHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQt
c3RhdGljLWZpZWxkLmpzCitEIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50
cy9zeW50YXgvZWFybHktZXJyb3JzL2dyYW1tYXItcHJpdmF0ZS1maWVsZC1vcHRpb25hbC1jaGFp
bmluZy5qcworQSB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9y
LWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLWFicnVwdC5qcworQSB0ZXN0L2xhbmd1YWdlL3N0
YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9k
LW5vbi1jYWxsYWJsZS5qcworQSB0ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9m
L2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCitBIHRlc3QvbGFuZ3Vh
Z2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRlcmF0b3ItY2xvc2UtdGhyb3ctZ2V0LW1ldGhv
ZC1ub24tY2FsbGFibGUuanMKK1IwNTEgdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9p
dGVyYXRvci1jbG9zZS1nZXQtbWV0aG9kLWVycm9yLmpzIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50
cy9mb3Itb2YvaXRlcmF0b3ItY2xvc2Utbm9uLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCitB
IHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3Itb2YvaXRlcmF0b3ItY2xvc2Utbm9uLXRocm93
LWdldC1tZXRob2Qtbm9uLWNhbGxhYmxlLmpzCitBIHRlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9m
b3Itb2YvaXRlcmF0b3ItY2xvc2UtdGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanMKK0EgdGVzdC9s
YW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0aG9k
LW5vbi1jYWxsYWJsZS5qcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IEpTVGVz
dHMvdGVzdDI2Mi90ZXN0MjYyLVJldmlzaW9uLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdDI2Mi1SZXZpc2lvbi50eHQJKHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMv
dGVzdDI2Mi90ZXN0MjYyLVJldmlzaW9uLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyICsxLDIg
QEAKLXRlc3QyNjIgcmVtb3RlIHVybDogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvdGVzdDI2Mi5n
aXQKLXRlc3QyNjIgcmV2aXNpb246IDk2Y2Y3NTc3MGVjYzcwNDM4YjAwZjQzMWMyNjZiODM0ZTQx
YjkxY2UKK3Rlc3QyNjIgcmVtb3RlIHVybDogZ2l0QGdpdGh1Yi5jb206dGMzOS90ZXN0MjYyLmdp
dAordGVzdDI2MiByZXZpc2lvbjogNjJiOGZjZTM4OTcxNTJkYTJjYzRmOGJkMWUyNzg3OGE0MDlh
Yjk3NQpJbmRleDogSlNUZXN0cy90ZXN0MjYyL2hhcm5lc3MvYXN5bmMtZ2MuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL2hhcm5lc3MvYXN5bmMtZ2MuanMJKHJldmlzaW9uIDI1OTUy
NikKKysrIEpTVGVzdHMvdGVzdDI2Mi9oYXJuZXNzL2FzeW5jLWdjLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0yMSwxMCArMjEsMTAgQEAgZnVuY3Rpb24gYXN5bmNHQyguLi50YXJnZXRzKSB7CiAgIHRh
cmdldHMgPSBudWxsOwogCiAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJ3RpY2snKS50aGVuKCgp
ID0+IGFzeW5jR0NEZXJlZigpKS50aGVuKCgpID0+IHsKLSAgICB2YXIgbmFtZXM7CisgICAgdmFy
IG5hbWVzID0gW107CiAKICAgICAvLyBjb25zdW1lIGl0ZXJhdG9yIHRvIGNhcHR1cmUgbmFtZXMK
LSAgICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShpdGVyID0+IHsgbmFtZXMgPSBb
Li4uaXRlcl07IH0pOworICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKG5hbWUg
PT4geyBuYW1lcy5wdXNoKG5hbWUpOyB9KTsKIAogICAgIGlmICghbmFtZXMgfHwgbmFtZXMubGVu
Z3RoICE9IGxlbmd0aCkgewogICAgICAgdGhyb3cgYXN5bmNHQy5ub3RDb2xsZWN0ZWQ7CkluZGV4
OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9hbm5leEIvbGFuZ3VhZ2UvbGl0ZXJhbHMvcmVnZXhwL2xl
Z2FjeS1vY3RhbC1lc2NhcGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YW5uZXhCL2xhbmd1YWdlL2xpdGVyYWxzL3JlZ2V4cC9sZWdhY3ktb2N0YWwtZXNjYXBlLmpzCShy
ZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9hbm5leEIvbGFuZ3VhZ2Uv
bGl0ZXJhbHMvcmVnZXhwL2xlZ2FjeS1vY3RhbC1lc2NhcGUuanMJKHdvcmtpbmcgY29weSkKQEAg
LTIsMTAgKzIsOSBAQAogLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5z
ZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogLyotLS0KIGVzaWQ6IHNlYy1yZWd1bGFyLWV4
cHJlc3Npb25zLXBhdHRlcm5zCi1lczZpZDogQi4xLjQKIGRlc2NyaXB0aW9uOiBMZWdhY3kgT2N0
YWwgRXNjYXBlIFNlcXVlbmNlCiBpbmZvOiB8Ci0gICAgQ2hhcmFjdGVyRXNjYXBlW1VdOjoKKyAg
ICBDaGFyYWN0ZXJFc2NhcGVbVV0gOjoKICAgICAgICAgQ29udHJvbEVzY2FwZQogICAgICAgICBj
IENvbnRyb2xMZXR0ZXIKICAgICAgICAgMCBbbG9va2FoZWFkIOKIiSBEZWNpbWFsRGlnaXRdCkBA
IC0xNCwxMyArMTMsMTcgQEAgaW5mbzogfAogICAgICAgICBbflVdIExlZ2FjeU9jdGFsRXNjYXBl
U2VxdWVuY2UKICAgICAgICAgSWRlbnRpdHlFc2NhcGVbP1VdCiAKLSAgICBUaGUgcHJvZHVjdGlv
biBDaGFyYWN0ZXJFc2NhcGU6OkxlZ2FjeU9jdGFsRXNjYXBlU2VxdWVuY2UgZXZhbHVhdGVzIGJ5
CisgICAgTGVnYWN5T2N0YWxFc2NhcGVTZXF1ZW5jZSA6OgorICAgICAgICBPY3RhbERpZ2l0IFts
b29rYWhlYWQg4oiJIE9jdGFsRGlnaXRdCisgICAgICAgIFplcm9Ub1RocmVlIE9jdGFsRGlnaXQg
W2xvb2thaGVhZCDiiIkgT2N0YWxEaWdpdF0KKyAgICAgICAgRm91clRvU2V2ZW4gT2N0YWxEaWdp
dAorICAgICAgICBaZXJvVG9UaHJlZSBPY3RhbERpZ2l0IE9jdGFsRGlnaXQKKworICAgIFRoZSBw
cm9kdWN0aW9uIENoYXJhY3RlckVzY2FwZSA6OiBMZWdhY3lPY3RhbEVzY2FwZVNlcXVlbmNlIGV2
YWx1YXRlcyBieQogICAgIGV2YWx1YXRpbmcgdGhlIFNWIG9mIHRoZSBMZWdhY3lPY3RhbEVzY2Fw
ZVNlcXVlbmNlIChzZWUgQi4xLjIpIGFuZAogICAgIHJldHVybmluZyBpdHMgY2hhcmFjdGVyIHJl
c3VsdC4KIC0tLSovCiAKLXZhciBtYXRjaDsKLQogYXNzZXJ0LnNhbWVWYWx1ZSgvXDEvLmV4ZWMo
J1x4MDEnKVswXSwgJ1x4MDEnLCAnXFwxJyk7CiBhc3NlcnQuc2FtZVZhbHVlKC9cMi8uZXhlYygn
XHgwMicpWzBdLCAnXHgwMicsICdcXDInKTsKIGFzc2VydC5zYW1lVmFsdWUoL1wzLy5leGVjKCdc
eDAzJylbMF0sICdceDAzJywgJ1xcMycpOwpAQCAtNDEsNyArNDQsNyBAQCBhc3NlcnQuc2FtZVZh
bHVlKC9cNDcvLmV4ZWMoJ1x4MjcnKVswXSwgCiBhc3NlcnQuc2FtZVZhbHVlKC9cNzAvLmV4ZWMo
J1x4MzgnKVswXSwgJ1x4MzgnLCAnXFw3MCcpOwogYXNzZXJ0LnNhbWVWYWx1ZSgvXDc3Ly5leGVj
KCdceDNmJylbMF0sICdceDNmJywgJ1xcNzcnKTsKIAotLy8gU2VxdWVuY2UgaXMgYm91bmRlZCBh
Y2NvcmRpbmcgdG8gdGhlIFN0cmluZyBWYWx1ZSAobm90IG51bWJlciBvZiBjaGFyYWN0ZXJzKQor
Ly8gU2VxdWVuY2UgaXMgYm91bmRlZCBhY2NvcmRpbmcgdG8gdGhlIFN0cmluZyBWYWx1ZQogYXNz
ZXJ0LnNhbWVWYWx1ZSgvXDQwMC8uZXhlYygnXHgyMDAnKVswXSwgJ1x4MjAwJywgJ1xcNDAwJyk7
CiBhc3NlcnQuc2FtZVZhbHVlKC9cNDcwLy5leGVjKCdceDI3MCcpWzBdLCAnXHgyNzAnLCAnXFw0
NzAnKTsKIGFzc2VydC5zYW1lVmFsdWUoL1w3MDAvLmV4ZWMoJ1x4MzgwJylbMF0sICdceDM4MCcs
ICdcXDcwMCcpOwpAQCAtNTQsOCArNTcsMTQgQEAgYXNzZXJ0LnNhbWVWYWx1ZSgvXDA3MC8uZXhl
YygnXHgzOCcpWzBdLAogYXNzZXJ0LnNhbWVWYWx1ZSgvXDMwMC8uZXhlYygnXHhjMCcpWzBdLCAn
XHhjMCcsICdcXDMwMCcpOwogYXNzZXJ0LnNhbWVWYWx1ZSgvXDMwNy8uZXhlYygnXHhjNycpWzBd
LCAnXHhjNycsICdcXDMwNycpOwogYXNzZXJ0LnNhbWVWYWx1ZSgvXDM3MC8uZXhlYygnXHhmOCcp
WzBdLCAnXHhmOCcsICdcXDM3MCcpOworYXNzZXJ0LnNhbWVWYWx1ZSgvXDM3Ny8uZXhlYygnXHhm
ZicpWzBdLCAnXHhmZicsICdcXDM3NycpOworCisvLyBTZXF1ZW5jZSBpcyAzIGNoYXJhY3RlcnMg
bWF4LCBpbmNsdWRpbmcgbGVhZGluZyB6ZXJvcworYXNzZXJ0LnNhbWVWYWx1ZSgvXDAxMTEvLmV4
ZWMoJ1x4MDkxJylbMF0sICdceDA5MScsICdcXDAxMTEnKTsKK2Fzc2VydC5zYW1lVmFsdWUoL1ww
MDIyLy5leGVjKCdceDAyMicpWzBdLCAnXHgwMjInLCAnXFwwMDIyJyk7Cithc3NlcnQuc2FtZVZh
bHVlKC9cMDAwMy8uZXhlYygnXHgwMDMnKVswXSwgJ1x4MDAzJywgJ1xcMDAwMycpOwogCi1tYXRj
aCA9IC8oLilcMS8uZXhlYygnYVx4MDEgYWEnKTsKK3ZhciBtYXRjaCA9IC8oLilcMS8uZXhlYygn
YVx4MDEgYWEnKTsKIGFzc2VydC5zYW1lVmFsdWUoCiAgIG1hdGNoWzBdLCAnYWEnLCAnRGVjaW1h
bEVzY2FwZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgTGVnYWN5T2N0YWxFc2NhcGVTZXF1ZW5jZScK
ICk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXN5bmNGcm9tU3luY0l0
ZXJhdG9yUHJvdG90eXBlL25leHQvYWJzZW50LXZhbHVlLW5vdC1wYXNzZWQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FzeW5jRnJvbVN5bmNJdGVyYXRv
clByb3RvdHlwZS9uZXh0L2Fic2VudC12YWx1ZS1ub3QtcGFzc2VkLmpzCShub25leGlzdGVudCkK
KysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQ
cm90b3R5cGUvbmV4dC9hYnNlbnQtdmFsdWUtbm90LXBhc3NlZC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBs
aWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtJWFz
eW5jZnJvbXN5bmNpdGVyYXRvcnByb3RvdHlwZSUubmV4dAorZGVzY3JpcHRpb246ID4KKyAgYG5l
eHRgIG1ldGhvZCBkb2VzIG5vdCBwYXNzIGFic2VudCBgdmFsdWVgLgoraW5mbzogfAorICAlQXN5
bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0ICggdmFsdWUgKQorCisgIFsuLi5dCisg
IDUuIElmIHZhbHVlIGlzIHByZXNlbnQsIHRoZW4KKyAgICBbLi4uXQorICA2LiBFbHNlLAorICAg
IGEuIExldCByZXN1bHQgYmUgSXRlcmF0b3JOZXh0KHN5bmNJdGVyYXRvclJlY29yZCkuCisgIFsu
Li5dCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFthc3luYy1pdGVyYXRpb25dCistLS0qLwor
Cit2YXIgbmV4dEFyZ3VtZW50c0xlbmd0aDsKK3ZhciBzeW5jSXRlcmF0b3IgPSB7CisgIFtTeW1i
b2wuaXRlcmF0b3JdKCkgeworICAgIHJldHVybiB0aGlzOworICB9LAorICBuZXh0KCkgeworICAg
IG5leHRBcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOworICAgIHJldHVybiB7ZG9u
ZTogdHJ1ZX07CisgIH0sCit9OworCit2YXIgYXN5bmNJdGVyYXRvciA9IChhc3luYyBmdW5jdGlv
biogKCkgeworICB5aWVsZCogc3luY0l0ZXJhdG9yOworfSkoKTsKKworYXN5bmNJdGVyYXRvci5u
ZXh0KCkudGhlbihmdW5jdGlvbigpIHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShuZXh0QXJndW1lbnRz
TGVuZ3RoLCAwKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvcmV0dXJuL2Fi
c2VudC12YWx1ZS1ub3QtcGFzc2VkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvcmV0dXJuL2Fic2Vu
dC12YWx1ZS1ub3QtcGFzc2VkLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUvcmV0dXJuL2Fic2Vu
dC12YWx1ZS1ub3QtcGFzc2VkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8v
IENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy0lYXN5bmNmcm9tc3luY2l0ZXJhdG9y
cHJvdG90eXBlJS5yZXR1cm4KK2Rlc2NyaXB0aW9uOiA+CisgIGByZXR1cm5gIG1ldGhvZCBkb2Vz
IG5vdCBwYXNzIGFic2VudCBgdmFsdWVgLgoraW5mbzogfAorICAlQXN5bmNGcm9tU3luY0l0ZXJh
dG9yUHJvdG90eXBlJS5yZXR1cm4gKCB2YWx1ZSApCisKKyAgWy4uLl0KKyAgOC4gSWYgdmFsdWUg
aXMgcHJlc2VudCwgdGhlbgorICAgIFsuLi5dCisgIDkuIEVsc2UsCisgICAgYS4gTGV0IHJlc3Vs
dCBiZSBDYWxsKHJldHVybiwgc3luY0l0ZXJhdG9yKS4KKyAgWy4uLl0KK2ZsYWdzOiBbYXN5bmNd
CitmZWF0dXJlczogW2FzeW5jLWl0ZXJhdGlvbl0KKy0tLSovCisKK3ZhciByZXR1cm5Bcmd1bWVu
dHNMZW5ndGg7Cit2YXIgc3luY0l0ZXJhdG9yID0geworICBbU3ltYm9sLml0ZXJhdG9yXSgpIHsK
KyAgICByZXR1cm4gdGhpczsKKyAgfSwKKyAgbmV4dCgpIHsKKyAgICByZXR1cm4ge2RvbmU6IGZh
bHNlfTsKKyAgfSwKKyAgcmV0dXJuKCkgeworICAgIHJldHVybkFyZ3VtZW50c0xlbmd0aCA9IGFy
Z3VtZW50cy5sZW5ndGg7CisgICAgcmV0dXJuIHtkb25lOiB0cnVlfTsKKyAgfSwKK307CisKK3Zh
ciBhc3luY0l0ZXJhdG9yID0gKGFzeW5jIGZ1bmN0aW9uKiAoKSB7CisgIHlpZWxkKiBzeW5jSXRl
cmF0b3I7Cit9KSgpOworCithc3luY0l0ZXJhdG9yLm5leHQoKS50aGVuKGZ1bmN0aW9uKCkgewor
ICByZXR1cm4gYXN5bmNJdGVyYXRvci5yZXR1cm4oKTsKK30pLnRoZW4oZnVuY3Rpb24oKSB7Cisg
IGFzc2VydC5zYW1lVmFsdWUocmV0dXJuQXJndW1lbnRzTGVuZ3RoLCAwKTsKK30pLnRoZW4oJERP
TkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Bc3luY0Zy
b21TeW5jSXRlcmF0b3JQcm90b3R5cGUvdGhyb3cvYWJzZW50LXZhbHVlLW5vdC1wYXNzZWQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0FzeW5jRnJvbVN5
bmNJdGVyYXRvclByb3RvdHlwZS90aHJvdy9hYnNlbnQtdmFsdWUtbm90LXBhc3NlZC5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvQXN5bmNGcm9tU3lu
Y0l0ZXJhdG9yUHJvdG90eXBlL3Rocm93L2Fic2VudC12YWx1ZS1ub3QtcGFzc2VkLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkg
U2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Vz
aWQ6IHNlYy0lYXN5bmNmcm9tc3luY2l0ZXJhdG9ycHJvdG90eXBlJS50aHJvdworZGVzY3JpcHRp
b246ID4KKyAgYHRocm93YCBtZXRob2QgZG9lcyBub3QgcGFzcyBhYnNlbnQgYHZhbHVlYC4KK2lu
Zm86IHwKKyAgJUFzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZSUudGhyb3cgKCB2YWx1ZSAp
CisKKyAgWy4uLl0KKyAgOC4gSWYgdmFsdWUgaXMgcHJlc2VudCwgdGhlbgorICAgIFsuLi5dCisg
IDkuIEVsc2UsCisgICAgYS4gTGV0IHJlc3VsdCBiZSBDYWxsKHRocm93LCBzeW5jSXRlcmF0b3Ip
LgorICBbLi4uXQorZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbYXN5bmMtaXRlcmF0aW9uXQor
LS0tKi8KKwordmFyIHRocm93QXJndW1lbnRzTGVuZ3RoOwordmFyIHN5bmNJdGVyYXRvciA9IHsK
KyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CisgICAgcmV0dXJuIHRoaXM7CisgIH0sCisgIG5leHQo
KSB7CisgICAgcmV0dXJuIHtkb25lOiBmYWxzZX07CisgIH0sCisgIHRocm93KCkgeworICAgIHRo
cm93QXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsKKyAgICByZXR1cm4ge2RvbmU6
IHRydWV9OworICB9LAorfTsKKwordmFyIGFzeW5jSXRlcmF0b3IgPSAoYXN5bmMgZnVuY3Rpb24q
ICgpIHsKKyAgeWllbGQqIHN5bmNJdGVyYXRvcjsKK30pKCk7CisKK2FzeW5jSXRlcmF0b3IubmV4
dCgpLnRoZW4oZnVuY3Rpb24oKSB7CisgIHJldHVybiBhc3luY0l0ZXJhdG9yLnRocm93KCk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJQcm9t
aXNlIHNob3VsZCBiZSByZWplY3RlZCwgZ290OiAiICsgcmVzdWx0LnZhbHVlKTsKK30sIGZ1bmN0
aW9uKCkgeworICBhc3NlcnQuc2FtZVZhbHVlKHRocm93QXJndW1lbnRzTGVuZ3RoLCAwKTsKK30p
LnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRv
clByb3RvdHlwZS9TeW1ib2wudG9TdHJpbmdUYWcuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJl
Z2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL1N5bWJvbC50b1N0cmluZ1RhZy5qcwkocmV2
aXNpb24gMjU5NTI2KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBl
L1N5bWJvbC50b1N0cmluZ1RhZy5qcwkobm9uZXhpc3RlbnQpCkBAIC0xLDY0ICswLDAgQEAKLS8v
IENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXByb3BlcnRpZXMtb2YtdGhlLWZpbmFsaXph
dGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgotZGVzY3JpcHRpb246ID4KLSAgRmluYWxpemF0aW9u
UmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUgQEB0b1N0cmluZ1RhZwotaW5mbzogfAot
ICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNr
IF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4K
LSAgLi4uCi0gIDUuIFBlcmZvcm0gISBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxp
emF0aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4KLSAgLi4uCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlv
blJlZ2lzdHJ5ICggZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4u
LgotICAzLiBMZXQgaXRlcmF0b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFu
dXBJdGVyYXRvcihmaW5hbGl6YXRpb25SZWdpc3RyeSkuCi0gIC4uLgotICA2LiBMZXQgcmVzdWx0
IGJlIENhbGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQot
ICAlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUlIFsgQEB0b1N0
cmluZ1RhZyBdCi0KLSAgVGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIEBAdG9TdHJpbmdUYWcgcHJv
cGVydHkgaXMgdGhlIFN0cmluZyB2YWx1ZSAiRmluYWxpemF0aW9uUmVnaXN0cnkgQ2xlYW51cCBJ
dGVyYXRvciIuCi0KLSAgVGhpcyBwcm9wZXJ0eSBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBbW1dyaXRh
YmxlXV06IGZhbHNlLCBbW0VudW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxlXV06IHRy
dWUgfS4KLWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIGhvc3QtZ2MtcmVxdWlyZWQs
IFN5bWJvbCwgU3ltYm9sLnRvU3RyaW5nVGFnXQotaW5jbHVkZXM6IFthc3luYy1nYy5qcywgcHJv
cGVydHlIZWxwZXIuanNdCi1mbGFnczogW2FzeW5jLCBub24tZGV0ZXJtaW5pc3RpY10KLS0tLSov
Ci0KLXZhciBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZTsKLXZh
ciBjYWxsZWQgPSAwOwotdmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlv
blJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwotCi1mdW5jdGlvbiBjYWxsYmFjayhpdGVyYXRvcikg
ewotICBjYWxsZWQgKz0gMTsKLSAgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQ
cm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaXRlcmF0b3IpOwotfQotCi1mdW5jdGlv
biBlbXB0eUNlbGxzKCkgewotICB2YXIgdGFyZ2V0ID0ge307Ci0gIGZpbmFsaXphdGlvblJlZ2lz
dHJ5LnJlZ2lzdGVyKHRhcmdldCk7Ci0KLSAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7Ci0g
IHRhcmdldCA9IG51bGw7Ci0KLSAgcmV0dXJuIHByb207Ci19Ci0KLWVtcHR5Q2VsbHMoKS50aGVu
KGZ1bmN0aW9uKCkgewotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFj
ayk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdjbGVhbnVwIHN1Y2Nlc3NmdWwn
KTsKLSAgCi0gIHZlcmlmeVByb3BlcnR5KEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJh
dG9yUHJvdG90eXBlLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsKLSAgICB2YWx1ZTogJ0ZpbmFsaXph
dGlvblJlZ2lzdHJ5IENsZWFudXAgSXRlcmF0b3InLAotICAgIHdyaXRhYmxlOiBmYWxzZSwKLSAg
ICBlbnVtZXJhYmxlOiBmYWxzZSwKLSAgICBjb25maWd1cmFibGU6IHRydWUKLSAgfSk7ICAKLX0p
LnRoZW4oJERPTkUsIHJlc29sdmVBc3luY0dDKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFu
dXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LWpvYi1ub3QtYWN0aXZlLXRocm93cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0
cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1qb2It
bm90LWFjdGl2ZS10aHJvd3MuanMJKHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3Ry
eUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LWpvYi1ub3QtYWN0aXZlLXRocm93cy5qcwko
bm9uZXhpc3RlbnQpCkBAIC0xLDY5ICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8g
QmFsdGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNp
ZDogc2VjLXByb3BlcnRpZXMtb2YtdGhlLWZpbmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3Rv
cgotZGVzY3JpcHRpb246ID4KLSAgVGhyb3dzIGEgVHlwZUVycm9yIGlmIFtbSXNGaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBKb2JBY3RpdmVdXSBpcyBmYWxzZQotaW5mbzogfAotICBGaW5hbGl6
YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQotCi0g
IDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAgLi4uCi0g
IDUuIFBlcmZvcm0gISBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxpemF0aW9uUmVn
aXN0cnksIGNhbGxiYWNrKS4KLSAgLi4uCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5
ICggZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4uLgotICAzLiBM
ZXQgaXRlcmF0b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRv
cihmaW5hbGl6YXRpb25SZWdpc3RyeSkuCi0gIC4uLgotICA1LiBTZXQgZmluYWxpemF0aW9uUmVn
aXN0cnkuW1tJc0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEpvYkFjdGl2ZV1dIHRvIHRydWUu
Ci0gIDYuIExldCByZXN1bHQgYmUgQ2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBpdGVyYXRv
ciDCuykuCi0gIDcuIFNldCBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0lzRmluYWxpemF0aW9uUmVn
aXN0cnlDbGVhbnVwSm9iQWN0aXZlXV0gdG8gZmFsc2UuCi0gIC4uLgotCi0gICVGaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSUubmV4dCAoICkKLQotICAxLiBMZXQg
aXRlcmF0b3IgYmUgdGhlIHRoaXMgdmFsdWUuCi0gIDIuIElmIFR5cGUoaXRlcmF0b3IpIGlzIG5v
dCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgMy4gSWYgaXRlcmF0b3Ig
ZG9lcyBub3QgaGF2ZSBhIFtbRmluYWxpemF0aW9uUmVnaXN0cnldXSBpbnRlcm5hbCBzbG90LCB0
aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCi1mZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lz
dHJ5LCBXZWFrUmVmLCBob3N0LWdjLXJlcXVpcmVkLCBTeW1ib2xdCi1pbmNsdWRlczogW2FzeW5j
LWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRldGVybWluaXN0aWNdCi0tLS0qLwotCi12YXIg
aXRlcjsKLXZhciBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZTsK
LXZhciBjYWxsZWQgPSAwOwotdmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXph
dGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwotCi1mdW5jdGlvbiBjYWxsYmFjayhpdGVyYXRv
cikgewotICBjYWxsZWQgKz0gMTsKLSAgaXRlciA9IGl0ZXJhdG9yOwotICBGaW5hbGl6YXRpb25S
ZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihp
dGVyYXRvcik7Ci19Ci0KLWZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7Ci0gIHZhciB0YXJnZXQgPSB7
fTsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIodGFyZ2V0LCAndGFyZ2V0Jyk7Ci0K
LSAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7Ci0gIHRhcmdldCA9IG51bGw7Ci0KLSAgcmV0
dXJuIHByb207Ci19Ci0KLWVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewotICBmaW5hbGl6
YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFjayk7Ci0KLSAgLy8gTWFrZSBzdXJlIGV2
ZXJ5dGhpbmcgaXMgc2V0Ci0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxLCAnY2xlYW51cCBz
dWNjZXNzZnVsJyk7Ci0gIGFzc2VydC5zYW1lVmFsdWUodHlwZW9mIGl0ZXIsICdvYmplY3QnKTsK
LSAgYXNzZXJ0LnNhbWVWYWx1ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YoaXRlciksIEZpbmFsaXph
dGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlKTsKLQotICAvLyBUbyB0aGUgYWN0
dWFsIGFzc2VydGlvbgotICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7Ci0g
ICAgaXRlci5uZXh0KCk7Ci0gIH0sICdJdGVyIHNob3VsZCBmYWlsIGlmIG5vdCBjYWxsZWQgZHVy
aW5nIHRoZSBjbGVhbnVwU29tZSBjYWxsJyk7Ci19KS50aGVuKCRET05FLCByZXNvbHZlQXN5bmNH
Qyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVn
aXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1s
ZW5ndGguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0Zp
bmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJv
dG90eXBlL25leHQtbGVuZ3RoLmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0
cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1sZW5ndGguanMJKG5vbmV4aXN0ZW50KQpA
QCAtMSw3NCArMCwwIEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0
aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9u
OiA+Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlLm5leHQu
bGVuZ3RoIHByb3BlcnR5IGRlc2NyaXB0b3IKLWluZm86IHwKLSAgRmluYWxpemF0aW9uUmVnaXN0
cnkucHJvdG90eXBlLmNsZWFudXBTb21lICggWyBjYWxsYmFjayBdICkKLQotICAxLiBMZXQgZmlu
YWxpemF0aW9uUmVnaXN0cnkgYmUgdGhlIHRoaXMgdmFsdWUuCi0gIC4uLgotICA1LiBQZXJmb3Jt
ICEgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZpbmFsaXphdGlvblJlZ2lzdHJ5LCBjYWxs
YmFjaykuCi0gIC4uLgotCi0gIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeSAoIGZpbmFsaXph
dGlvblJlZ2lzdHJ5IFsgLCBjYWxsYmFjayBdICkKLQotICAuLi4KLSAgMy4gTGV0IGl0ZXJhdG9y
IGJlICEgQ3JlYXRlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IoZmluYWxpemF0
aW9uUmVnaXN0cnkpLgotICAuLi4KLSAgNi4gTGV0IHJlc3VsdCBiZSBDYWxsKGNhbGxiYWNrLCB1
bmRlZmluZWQsIMKrIGl0ZXJhdG9yIMK7KS4KLSAgLi4uCi0KLSAgMTcgRUNNQVNjcmlwdCBTdGFu
ZGFyZCBCdWlsdC1pbiBPYmplY3RzCi0KLSAgRXZlcnkgYnVpbHQtaW4gZnVuY3Rpb24gb2JqZWN0
LCBpbmNsdWRpbmcgY29uc3RydWN0b3JzLCBoYXMgYSBsZW5ndGgKLSAgcHJvcGVydHkgd2hvc2Ug
dmFsdWUgaXMgYW4gaW50ZWdlci4gVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIHRoaXMKLSAg
dmFsdWUgaXMgZXF1YWwgdG8gdGhlIGxhcmdlc3QgbnVtYmVyIG9mIG5hbWVkIGFyZ3VtZW50cyBz
aG93biBpbiB0aGUKLSAgc3ViY2xhdXNlIGhlYWRpbmdzIGZvciB0aGUgZnVuY3Rpb24gZGVzY3Jp
cHRpb24uIE9wdGlvbmFsIHBhcmFtZXRlcnMKLSAgKHdoaWNoIGFyZSBpbmRpY2F0ZWQgd2l0aCBi
cmFja2V0czogWyBdKSBvciByZXN0IHBhcmFtZXRlcnMgKHdoaWNoCi0gIGFyZSBzaG93biB1c2lu
ZyB0aGUgZm9ybSDCqy4uLm5hbWXCuykgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgZGVmYXVsdAot
ICBhcmd1bWVudCBjb3VudC4KLQotICBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgdGhlIGxl
bmd0aCBwcm9wZXJ0eSBvZiBhIGJ1aWx0LWluCi0gIGZ1bmN0aW9uIG9iamVjdCBoYXMgdGhlIGF0
dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06IGZhbHNlLAotICBbW0VudW1lcmFibGVdXTogZmFsc2Us
IFtbQ29uZmlndXJhYmxlXV06IHRydWUgfS4KLWluY2x1ZGVzOiBbYXN5bmMtZ2MuanMsIHByb3Bl
cnR5SGVscGVyLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRldGVybWluaXN0aWNdCi1mZWF0dXJl
czogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBob3N0LWdjLXJlcXVpcmVkLCBTeW1ib2xdCi0tLS0q
LwotCi12YXIgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGU7Ci12
YXIgY2FsbGVkID0gMDsKLXZhciBmaW5hbGl6YXRpb25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRp
b25SZWdpc3RyeShmdW5jdGlvbigpIHt9KTsKLQotZnVuY3Rpb24gY2FsbGJhY2soaXRlcmF0b3Ip
IHsKLSAgY2FsbGVkICs9IDE7Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9y
UHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKLX0KLQotZnVuY3Rp
b24gZW1wdHlDZWxscygpIHsKLSAgdmFyIHRhcmdldCA9IHt9OwotICBmaW5hbGl6YXRpb25SZWdp
c3RyeS5yZWdpc3Rlcih0YXJnZXQpOwotCi0gIHZhciBwcm9tID0gYXN5bmNHQyh0YXJnZXQpOwot
ICB0YXJnZXQgPSBudWxsOwotCi0gIHJldHVybiBwcm9tOwotfQotCi1lbXB0eUNlbGxzKCkudGhl
bihmdW5jdGlvbigpIHsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2FsbGJh
Y2spOwotCi0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxLCAnY2xlYW51cCBzdWNjZXNzZnVs
Jyk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVh
bnVwSXRlcmF0b3JQcm90b3R5cGUubmV4dCwgJ2Z1bmN0aW9uJyk7Ci0KLSAgdmVyaWZ5UHJvcGVy
dHkoRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUubmV4dCwgJ2xl
bmd0aCcsIHsKLSAgICB2YWx1ZTogMCwKLSAgICBlbnVtZXJhYmxlOiBmYWxzZSwKLSAgICB3cml0
YWJsZTogZmFsc2UsCi0gICAgY29uZmlndXJhYmxlOiB0cnVlLAotICB9KTsKLX0pLnRoZW4oJERP
TkUsIHJlc29sdmVBc3luY0dDKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRv
clByb3RvdHlwZS9uZXh0LW1pc3NpbmctaW50ZXJuYWwtdGhyb3dzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9GaW5h
bGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LW1pc3NpbmctaW50
ZXJuYWwtdGhyb3dzLmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVh
bnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1taXNzaW5nLWludGVybmFsLXRocm93cy5qcwkobm9u
ZXhpc3RlbnQpCkBAIC0xLDkwICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFs
dGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRo
ZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDog
c2VjLXByb3BlcnRpZXMtb2YtdGhlLWZpbmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3Rvcgot
ZGVzY3JpcHRpb246ID4KLSAgSWYgaXRlcmF0b3IgZG9lcyBub3QgaGF2ZSBhIFtbRmluYWxpemF0
aW9uUmVnaXN0cnldXSBpbnRlcm5hbCBzbG90LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24u
Ci1pbmZvOiB8Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZSAo
IFsgY2FsbGJhY2sgXSApCi0KLSAgMS4gTGV0IGZpbmFsaXphdGlvblJlZ2lzdHJ5IGJlIHRoZSB0
aGlzIHZhbHVlLgotICAuLi4KLSAgNS4gUGVyZm9ybSAhIENsZWFudXBGaW5hbGl6YXRpb25SZWdp
c3RyeShmaW5hbGl6YXRpb25SZWdpc3RyeSwgY2FsbGJhY2spLgotICAuLi4KLQotICBDbGVhbnVw
RmluYWxpemF0aW9uUmVnaXN0cnkgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSBbICwgY2FsbGJhY2sg
XSApCi0KLSAgLi4uCi0gIDMuIExldCBpdGVyYXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJl
Z2lzdHJ5Q2xlYW51cEl0ZXJhdG9yKGZpbmFsaXphdGlvblJlZ2lzdHJ5KS4KLSAgLi4uCi0gIDYu
IExldCByZXN1bHQgYmUgQ2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBpdGVyYXRvciDCuyku
Ci0gIC4uLgotCi0gICVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlw
ZSUubmV4dCAoICkKLQotICAxLiBMZXQgaXRlcmF0b3IgYmUgdGhlIHRoaXMgdmFsdWUuCi0gIDIu
IElmIFR5cGUoaXRlcmF0b3IpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2Vw
dGlvbi4KLSAgMy4gSWYgaXRlcmF0b3IgZG9lcyBub3QgaGF2ZSBhIFtbRmluYWxpemF0aW9uUmVn
aXN0cnldXSBpbnRlcm5hbCBzbG90LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCi1mZWF0
dXJlczogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBXZWFrUmVmLCBob3N0LWdjLXJlcXVpcmVkLCBT
eW1ib2xdCi1pbmNsdWRlczogW2FzeW5jLWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRldGVy
bWluaXN0aWNdCi0tLS0qLwotCi12YXIgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0
b3JQcm90b3R5cGU7Ci12YXIgY2FsbGVkID0gMDsKLXZhciBlbmRPZkNhbGwgPSAwOwotdmFyIGZp
bmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkg
e30pOwotCi1mdW5jdGlvbiBjYWxsYmFjayhpdGVyYXRvcikgewotICBjYWxsZWQgKz0gMTsKLSAg
Ly8gT25seSB0aGUgaXRlcmF0b3IgaXRzZWxmIHdpbGwgaGF2ZSBhIFtbRmluYWxpemF0aW9uUmVn
aXN0cnldXSBpbnRlcm5hbAotICBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclBy
b3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihpdGVyYXRvcik7Ci0KLSAgLy8gSXQncyBz
ZW5zaXRpdmUgdGhlIGFzc2VydGlvbnMgcmVtYWluIGluc2lkZSB0aGlzIGZ1bmN0aW9uIGluIG9y
ZGVyIHRvIHNlY3VyZQotICAvLyBbW0lzRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSm9iQWN0
aXZlXV0gaXMgdHJ1ZQotICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBGaW5hbGl6YXRpb25SZWdp
c3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS5uZXh0LCAnZnVuY3Rpb24nKTsKLQotICB2YXIg
bmV4dCA9IEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlLm5leHQ7
Ci0KLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIG5leHQuY2Fs
bCh7fSk7Ci0gIH0sICd7fScpOwotCi0gIGFzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlv
bigpIHsKLSAgICBuZXh0LmNhbGwoRmluYWxpemF0aW9uUmVnaXN0cnkpOwotICB9LCAnRmluYWxp
emF0aW9uUmVnaXN0cnknKTsKLQotICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24o
KSB7Ci0gICAgbmV4dC5jYWxsKEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJv
dG90eXBlKTsKLSAgfSwgJ0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90
eXBlJyk7Ci0KLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIG5l
eHQuY2FsbChmaW5hbGl6YXRpb25SZWdpc3RyeSk7Ci0gIH0sICdGaW5hbGl6YXRpb25SZWdpc3Ry
eSBpbnN0YW5jZScpOwotCi0gIHZhciB3ciA9IG5ldyBXZWFrUmVmKHt9KTsKLSAgYXNzZXJ0LnRo
cm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIG5leHQuY2FsbCh3cik7Ci0gIH0sICdX
ZWFrUmVmIGluc3RhbmNlJyk7Ci0KLSAgLy8gQWJydXB0IGNvbXBsZXRpb25zIGFyZSBub3QgZGly
ZWN0bHkgcmV0dXJuZWQuCi0gIGVuZE9mQ2FsbCArPSAxOwotfQotCi1mdW5jdGlvbiBlbXB0eUNl
bGxzKCkgewotICB2YXIgdGFyZ2V0ID0ge307Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lz
dGVyKHRhcmdldCk7Ci0KLSAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7Ci0gIHRhcmdldCA9
IG51bGw7Ci0KLSAgcmV0dXJuIHByb207Ci19Ci0KLWVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9u
KCkgewotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFjayk7Ci0KLSAg
YXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdjbGVhbnVwIHN1Y2Nlc3NmdWwnKTsKLSAgYXNz
ZXJ0LnNhbWVWYWx1ZShlbmRPZkNhbGwsIDEsICdBYnJ1cHQgY29tcGxldGlvbnMgYXJlIG5vdCBk
aXJlY3RseSByZXR1cm5lZC4nKTsKLX0pLnRoZW4oJERPTkUsIHJlc29sdmVBc3luY0dDKTsKSW5k
ZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9G
aW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LW5hbWUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlv
blJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25l
eHQtbmFtZS5qcwkocmV2aXNpb24gMjU5NTI2KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0
ZXJhdG9yUHJvdG90eXBlL25leHQtbmFtZS5qcwkobm9uZXhpc3RlbnQpCkBAIC0xLDc1ICswLDAg
QEAKLS8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgotCi0vKi0tLQotZXNpZDogc2VjLXByb3BlcnRpZXMtb2YtdGhlLWZp
bmFsaXphdGlvbi1yZWdpc3RyeS1jb25zdHJ1Y3RvcgotZGVzY3JpcHRpb246ID4KLSAgRmluYWxp
emF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUubmV4dC5uYW1lIHByb3BlcnR5
IGRlc2NyaXB0b3IKLWluZm86IHwKLSAgRmluYWxpemF0aW9uUmVnaXN0cnkucHJvdG90eXBlLmNs
ZWFudXBTb21lICggWyBjYWxsYmFjayBdICkKLQotICAxLiBMZXQgZmluYWxpemF0aW9uUmVnaXN0
cnkgYmUgdGhlIHRoaXMgdmFsdWUuCi0gIC4uLgotICA1LiBQZXJmb3JtICEgQ2xlYW51cEZpbmFs
aXphdGlvblJlZ2lzdHJ5KGZpbmFsaXphdGlvblJlZ2lzdHJ5LCBjYWxsYmFjaykuCi0gIC4uLgot
Ci0gIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeSAoIGZpbmFsaXphdGlvblJlZ2lzdHJ5IFsg
LCBjYWxsYmFjayBdICkKLQotICAuLi4KLSAgMy4gTGV0IGl0ZXJhdG9yIGJlICEgQ3JlYXRlRmlu
YWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IoZmluYWxpemF0aW9uUmVnaXN0cnkpLgot
ICAuLi4KLSAgNi4gTGV0IHJlc3VsdCBiZSBDYWxsKGNhbGxiYWNrLCB1bmRlZmluZWQsIMKrIGl0
ZXJhdG9yIMK7KS4KLSAgLi4uCi0KLSAgMTcgRUNNQVNjcmlwdCBTdGFuZGFyZCBCdWlsdC1pbiBP
YmplY3RzCi0KLSAgRXZlcnkgYnVpbHQtaW4gZnVuY3Rpb24gb2JqZWN0LCBpbmNsdWRpbmcgY29u
c3RydWN0b3JzLCB0aGF0IGlzIG5vdAotICBpZGVudGlmaWVkIGFzIGFuIGFub255bW91cyBmdW5j
dGlvbiBoYXMgYSBuYW1lIHByb3BlcnR5IHdob3NlIHZhbHVlCi0gIGlzIGEgU3RyaW5nLiBVbmxl
c3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgdGhpcyB2YWx1ZSBpcyB0aGUgbmFtZSB0aGF0Ci0gIGlz
IGdpdmVuIHRvIHRoZSBmdW5jdGlvbiBpbiB0aGlzIHNwZWNpZmljYXRpb24uIEZvciBmdW5jdGlv
bnMgdGhhdAotICBhcmUgc3BlY2lmaWVkIGFzIHByb3BlcnRpZXMgb2Ygb2JqZWN0cywgdGhlIG5h
bWUgdmFsdWUgaXMgdGhlCi0gIHByb3BlcnR5IG5hbWUgc3RyaW5nIHVzZWQgdG8gYWNjZXNzIHRo
ZSBmdW5jdGlvbi4gWy4uLl0KLQotICBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgdGhlIG5h
bWUgcHJvcGVydHkgb2YgYSBidWlsdC1pbiBmdW5jdGlvbgotICBvYmplY3QsIGlmIGl0IGV4aXN0
cywgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwKLSAgW1tFbnVtZXJh
YmxlXV06IGZhbHNlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0uCi1pbmNsdWRlczogW2FzeW5j
LWdjLmpzLCBwcm9wZXJ0eUhlbHBlci5qc10KLWZsYWdzOiBbYXN5bmMsIG5vbi1kZXRlcm1pbmlz
dGljXQotZmVhdHVyZXM6IFtGaW5hbGl6YXRpb25SZWdpc3RyeSwgaG9zdC1nYy1yZXF1aXJlZCwg
U3ltYm9sXQotLS0tKi8KLQotdmFyIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9y
UHJvdG90eXBlOwotdmFyIGNhbGxlZCA9IDA7Ci12YXIgZmluYWxpemF0aW9uUmVnaXN0cnkgPSBu
ZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoZnVuY3Rpb24oKSB7fSk7Ci0KLWZ1bmN0aW9uIGNhbGxi
YWNrKGl0ZXJhdG9yKSB7Ci0gIGNhbGxlZCArPSAxOwotICBGaW5hbGl6YXRpb25SZWdpc3RyeUNs
ZWFudXBJdGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihpdGVyYXRvcik7
Ci19Ci0KLWZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7Ci0gIHZhciB0YXJnZXQgPSB7fTsKLSAgZmlu
YWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIodGFyZ2V0KTsKLQotICB2YXIgcHJvbSA9IGFzeW5j
R0ModGFyZ2V0KTsKLSAgdGFyZ2V0ID0gbnVsbDsKLQotICByZXR1cm4gcHJvbTsKLX0KLQotZW1w
dHlDZWxscygpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFu
dXBTb21lKGNhbGxiYWNrKTsKLQotICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgMSwgJ2NsZWFu
dXAgc3VjY2Vzc2Z1bCcpOwotCi0gIGFzc2VydC5zYW1lVmFsdWUodHlwZW9mIEZpbmFsaXphdGlv
blJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlLm5leHQsICdmdW5jdGlvbicpOwotCi0g
IHZhciBuZXh0ID0gRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUu
bmV4dDsKLQotICB2ZXJpZnlQcm9wZXJ0eShuZXh0LCAnbmFtZScsIHsKLSAgICB2YWx1ZTogJ25l
eHQnLAotICAgIGVudW1lcmFibGU6IGZhbHNlLAotICAgIHdyaXRhYmxlOiBmYWxzZSwKLSAgICBj
b25maWd1cmFibGU6IHRydWUsCi0gIH0pOwotfSkudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0Mp
OwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lz
dHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtbm90
LW9iamVjdC10aHJvd3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0
ZXJhdG9yUHJvdG90eXBlL25leHQtbm90LW9iamVjdC10aHJvd3MuanMJKHJldmlzaW9uIDI1OTUy
NikKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3Ry
eS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9uZXh0LW5vdC1v
YmplY3QtdGhyb3dzLmpzCShub25leGlzdGVudCkKQEAgLTEsODkgKzAsMCBAQAotLy8gQ29weXJp
Z2h0IChDKSAyMDE5IExlbyBCYWx0ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtcHJvcGVydGllcy1vZi10aGUtZmluYWxpemF0aW9uLXJl
Z2lzdHJ5LWNvbnN0cnVjdG9yCi1kZXNjcmlwdGlvbjogPgotICBGaW5hbGl6YXRpb25SZWdpc3Ry
eUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS5uZXh0KCkgdGhyb3dzIGlmIHRoaXMgaXMgbm90IE9i
amVjdAotaW5mbzogfAotICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNv
bWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0
aGUgdGhpcyB2YWx1ZS4KLSAgLi4uCi0gIDUuIFBlcmZvcm0gISBDbGVhbnVwRmluYWxpemF0aW9u
UmVnaXN0cnkoZmluYWxpemF0aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4KLSAgLi4uCi0KLSAgQ2xl
YW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5ICggZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxi
YWNrIF0gKQotCi0gIC4uLgotICAzLiBMZXQgaXRlcmF0b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvcihmaW5hbGl6YXRpb25SZWdpc3RyeSkuCi0gIC4uLgot
ICA2LiBMZXQgcmVzdWx0IGJlIENhbGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3Ig
wrspLgotICAuLi4KLQotICAlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90
b3R5cGUlLm5leHQgKCApCi0KLSAgMS4gTGV0IGl0ZXJhdG9yIGJlIHRoZSB0aGlzIHZhbHVlLgot
ICAyLiBJZiBUeXBlKGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBl
eGNlcHRpb24uCi1mZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBob3N0LWdjLXJlcXVp
cmVkLCBTeW1ib2xdCi1pbmNsdWRlczogW2FzeW5jLWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9u
LWRldGVybWluaXN0aWNdCi0tLS0qLwotCi12YXIgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVw
SXRlcmF0b3JQcm90b3R5cGU7Ci12YXIgY2FsbGVkID0gMDsKLXZhciBmaW5hbGl6YXRpb25SZWdp
c3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbigpIHt9KTsKLQotZnVuY3Rp
b24gY2FsbGJhY2soaXRlcmF0b3IpIHsKLSAgY2FsbGVkICs9IDE7Ci0gIEZpbmFsaXphdGlvblJl
Z2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGl0
ZXJhdG9yKTsKLX0KLQotZnVuY3Rpb24gZW1wdHlDZWxscygpIHsKLSAgdmFyIHRhcmdldCA9IHt9
OwotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5yZWdpc3Rlcih0YXJnZXQpOwotCi0gIHZhciBwcm9t
ID0gYXN5bmNHQyh0YXJnZXQpOwotICB0YXJnZXQgPSBudWxsOwotCi0gIHJldHVybiBwcm9tOwot
fQotCi1lbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKLSAgZmluYWxpemF0aW9uUmVnaXN0
cnkuY2xlYW51cFNvbWUoY2FsbGJhY2spOwotCi0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAx
LCAnY2xlYW51cCBzdWNjZXNzZnVsJyk7Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgRmlu
YWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUubmV4dCwgJ2Z1bmN0aW9u
Jyk7Ci0KLSAgdmFyIG5leHQgPSBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclBy
b3RvdHlwZS5uZXh0OwotCi0gIGFzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsK
LSAgICBuZXh0LmNhbGwodW5kZWZpbmVkKTsKLSAgfSwgJ3VuZGVmaW5lZCcpOwotCi0gIGFzc2Vy
dC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKLSAgICBuZXh0LmNhbGwobnVsbCk7Ci0g
IH0sICdudWxsJyk7Ci0KLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewot
ICAgIG5leHQuY2FsbCh0cnVlKTsKLSAgfSwgJ3RydWUnKTsKLQotICBhc3NlcnQudGhyb3dzKFR5
cGVFcnJvciwgZnVuY3Rpb24oKSB7Ci0gICAgbmV4dC5jYWxsKGZhbHNlKTsKLSAgfSwgJ2ZhbHNl
Jyk7Ci0KLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIG5leHQu
Y2FsbCgxKTsKLSAgfSwgJzEnKTsKLQotICBhc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rp
b24oKSB7Ci0gICAgbmV4dC5jYWxsKCdzdHJpbmcnKTsKLSAgfSwgJ3N0cmluZycpOwotCi0gIHZh
ciBzeW1ib2wgPSBTeW1ib2woKTsKLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9u
KCkgewotICAgIG5leHQuY2FsbChzeW1ib2wpOwotICB9LCAnc3ltYm9sJyk7Ci19KS50aGVuKCRE
T05FLCByZXNvbHZlQXN5bmNHQyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvRmluYWxpemF0aW9uUmVnaXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0
b3JQcm90b3R5cGUvbmV4dC1wcm9wLWRlc2MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lz
dHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL25leHQtcHJvcC1kZXNjLmpzCShyZXZpc2lvbiAy
NTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVn
aXN0cnkvRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUvbmV4dC1w
cm9wLWRlc2MuanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NyArMCwwIEBACi0vLyBDb3B5cmlnaHQg
KEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBp
cyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K
LQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0
cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9uOiA+Ci0gIFByb3AgZGVzY3JpcHRvciBmb3IgRmlu
YWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUubmV4dAotaW5mbzogfAot
ICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNr
IF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4K
LSAgLi4uCi0gIDUuIFBlcmZvcm0gISBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxp
emF0aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4KLSAgLi4uCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlv
blJlZ2lzdHJ5ICggZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4u
LgotICAzLiBMZXQgaXRlcmF0b3IgYmUgISBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFu
dXBJdGVyYXRvcihmaW5hbGl6YXRpb25SZWdpc3RyeSkuCi0gIC4uLgotICA2LiBMZXQgcmVzdWx0
IGJlIENhbGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQot
ICAxNyBFQ01BU2NyaXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHM6Ci0KLSAgRXZlcnkgb3Ro
ZXIgZGF0YSBwcm9wZXJ0eSBkZXNjcmliZWQgaW4gY2xhdXNlcyAxOCB0aHJvdWdoIDI2IGFuZCBp
biBBbm5leCBCLjIKLSAgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiB0cnVlLCBb
W0VudW1lcmFibGVdXTogZmFsc2UsCi0gIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfSB1bmxlc3Mg
b3RoZXJ3aXNlIHNwZWNpZmllZC4KLWluY2x1ZGVzOiBbcHJvcGVydHlIZWxwZXIuanMsIGFzeW5j
LWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRldGVybWluaXN0aWNdCi1mZWF0dXJlczogW0Zp
bmFsaXphdGlvblJlZ2lzdHJ5LCBob3N0LWdjLXJlcXVpcmVkLCBTeW1ib2xdCi0tLS0qLwotCi12
YXIgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGU7Ci12YXIgY2Fs
bGVkID0gMDsKLXZhciBmaW5hbGl6YXRpb25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdp
c3RyeShmdW5jdGlvbigpIHt9KTsKLQotZnVuY3Rpb24gY2FsbGJhY2soaXRlcmF0b3IpIHsKLSAg
Y2FsbGVkICs9IDE7Ci0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90
eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKLX0KLQotZnVuY3Rpb24gZW1w
dHlDZWxscygpIHsKLSAgdmFyIHRhcmdldCA9IHt9OwotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5y
ZWdpc3Rlcih0YXJnZXQpOwotCi0gIHZhciBwcm9tID0gYXN5bmNHQyh0YXJnZXQpOwotICB0YXJn
ZXQgPSBudWxsOwotCi0gIHJldHVybiBwcm9tOwotfQotCi1lbXB0eUNlbGxzKCkudGhlbihmdW5j
dGlvbigpIHsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2FsbGJhY2spOwot
Ci0gIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAxLCAnY2xlYW51cCBzdWNjZXNzZnVsJyk7Ci0K
LSAgYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRl
cmF0b3JQcm90b3R5cGUubmV4dCwgJ2Z1bmN0aW9uJyk7Ci0KLSAgdmFyIG5leHQgPSBGaW5hbGl6
YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS5uZXh0OwotCi0gIHZlcmlmeVBy
b3BlcnR5KEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlLCAnbmV4
dCcsIHsKLSAgICBlbnVtZXJhYmxlOiBmYWxzZSwKLSAgICB3cml0YWJsZTogdHJ1ZSwKLSAgICBj
b25maWd1cmFibGU6IHRydWUsCi0gIH0pOwotfSkudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0Mp
OwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lz
dHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlL3Byb3RvLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRp
b25SZWdpc3RyeS9GaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZS9w
cm90by5qcwkocmV2aXNpb24gMjU5NTI2KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJh
dG9yUHJvdG90eXBlL3Byb3RvLmpzCShub25leGlzdGVudCkKQEAgLTEsOTEgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtcHJvcGVydGllcy1vZi10aGUtZmluYWxpemF0
aW9uLXJlZ2lzdHJ5LWNvbnN0cnVjdG9yCi1kZXNjcmlwdGlvbjogPgotICBGaW5hbGl6YXRpb25S
ZWdpc3RyeUNsZWFudXBJdGVyYXRvciBoYXMgYSBbW1Byb3RvdHlwZV1dIGludGVybmFsIHNsb3Qg
d2hvc2UgdmFsdWUgaXMgdGhlIGludHJpbnNpYwotICBvYmplY3QgJUl0ZXJhdG9yUHJvdG90eXBl
JS4KLWluZm86IHwKLSAgVGhlICVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclBy
b3RvdHlwZSUgT2JqZWN0Ci0KLSAgLSBoYXMgcHJvcGVydGllcyB0aGF0IGFyZSBpbmhlcml0ZWQg
YnkgYWxsIEZpbmFsaXphdGlvblJlZ2lzdHJ5IENsZWFudXAgSXRlcmF0b3IgT2JqZWN0cy4KLSAg
LSBpcyBhbiBvcmRpbmFyeSBvYmplY3QuCi0gIC0gaGFzIGEgW1tQcm90b3R5cGVdXSBpbnRlcm5h
bCBzbG90IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRyaW5zaWMgb2JqZWN0ICVJdGVyYXRvclByb3Rv
dHlwZSUuCi0gIC4uLgotCi0gIEZpbmFsaXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVw
U29tZSAoIFsgY2FsbGJhY2sgXSApCi0KLSAgMS4gTGV0IGZpbmFsaXphdGlvblJlZ2lzdHJ5IGJl
IHRoZSB0aGlzIHZhbHVlLgotICAyLiBJZiBUeXBlKGZpbmFsaXphdGlvblJlZ2lzdHJ5KSBpcyBu
b3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCi0gIDMuIElmIGZpbmFsaXph
dGlvblJlZ2lzdHJ5IGRvZXMgbm90IGhhdmUgYSBbW0NlbGxzXV0gaW50ZXJuYWwgc2xvdCwgdGhy
b3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICA0LiBJZiBjYWxsYmFjayBpcyBub3QgdW5kZWZp
bmVkIGFuZCBJc0NhbGxhYmxlKGNhbGxiYWNrKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgotICA1LiBQZXJmb3JtICEgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZp
bmFsaXphdGlvblJlZ2lzdHJ5LCBjYWxsYmFjaykuCi0gIDYuIFJldHVybiB1bmRlZmluZWQuCi0K
LSAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5ICggZmluYWxpemF0aW9uUmVnaXN0cnkgWyAs
IGNhbGxiYWNrIF0gKQotCi0gIC4uLgotICAyLiBJZiBDaGVja0ZvckVtcHR5Q2VsbHMoZmluYWxp
emF0aW9uUmVnaXN0cnkpIGlzIGZhbHNlLCByZXR1cm4uCi0gIDMuIExldCBpdGVyYXRvciBiZSAh
IENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yKGZpbmFsaXphdGlvblJl
Z2lzdHJ5KS4KLSAgNC4gSWYgY2FsbGJhY2sgaXMgdW5kZWZpbmVkLCBzZXQgY2FsbGJhY2sgdG8g
ZmluYWxpemF0aW9uUmVnaXN0cnkuW1tDbGVhbnVwQ2FsbGJhY2tdXS4KLSAgNS4gU2V0IGZpbmFs
aXphdGlvblJlZ2lzdHJ5LltbSXNGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBKb2JBY3RpdmVd
XSB0byB0cnVlLgotICA2LiBMZXQgcmVzdWx0IGJlIENhbGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwg
wqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQotICBDaGVja0ZvckVtcHR5Q2VsbHMgKCBmaW5hbGl6
YXRpb25SZWdpc3RyeSApCi0KLSAgLi4uCi0gIDIuIEZvciBlYWNoIGNlbGwgaW4gZmluYWxpemF0
aW9uUmVnaXN0cnkuW1tDZWxsc11dLCBkbwotICAgIGEuIElmIGNlbGwuW1tUYXJnZXRdXSBpcyBl
bXB0eSwgdGhlbgotICAgICAgaS4gUmV0dXJuIHRydWUuCi0gIDMuIFJldHVybiBmYWxzZS4KLQot
ICBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvciAoIGZpbmFsaXphdGlv
blJlZ2lzdHJ5ICkKLQotICAuLi4KLSAgNC4gTGV0IHByb3RvdHlwZSBiZSBmaW5hbGl6YXRpb25S
ZWdpc3RyeS5bW1JlYWxtXV0uW1tJbnRyaW5zaWNzXV0uW1slRmluYWxpemF0aW9uUmVnaXN0cnlD
bGVhbnVwSXRlcmF0b3JQcm90b3R5cGUlXV0uCi0gIDUuIExldCBpdGVyYXRvciBiZSBPYmplY3RD
cmVhdGUocHJvdG90eXBlLCDCqyBbW0ZpbmFsaXphdGlvblJlZ2lzdHJ5XV0gwrspLgotICA2LiBT
ZXQgaXRlcmF0b3IuW1tGaW5hbGl6YXRpb25SZWdpc3RyeV1dIHRvIGZpbmFsaXphdGlvblJlZ2lz
dHJ5LgotICA3LiBSZXR1cm4gaXRlcmF0b3IuCi1mZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lz
dHJ5LCBob3N0LWdjLXJlcXVpcmVkXQotaW5jbHVkZXM6IFthc3luYy1nYy5qc10KLWZsYWdzOiBb
YXN5bmMsIG5vbi1kZXRlcm1pbmlzdGljXQotLS0tKi8KLQotdmFyIEl0ZXJhdG9yUHJvdG90eXBl
ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKE9iamVjdC5nZXRQcm90b3R5cGVPZihbXVtTeW1ib2wu
aXRlcmF0b3JdKCkpKTsKLXZhciBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclBy
b3RvdHlwZTsKLXZhciBjYWxsZWQgPSAwOwotdmFyIGNsZWFudXBDYWxsYmFja0NhbGxlZCA9IDA7
Ci0KLWZ1bmN0aW9uIGNhbGxiYWNrKGl0ZXJhdG9yKSB7Ci0gIGNhbGxlZCArPSAxOwotCi0gIEZp
bmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LmdldFBy
b3RvdHlwZU9mKGl0ZXJhdG9yKTsKLX0KLQotdmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3
IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0aW9uKCkge30pOwotCi1mdW5jdGlvbiBlbXB0eUNl
bGxzKCkgewotICB2YXIgdGFyZ2V0ID0ge307Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lz
dGVyKHRhcmdldCk7Ci0KLSAgdmFyIHByb20gPSBhc3luY0dDKHRhcmdldCk7Ci0gIHRhcmdldCA9
IG51bGw7Ci0KLSAgcmV0dXJuIHByb207Ci19Ci0KLWVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9u
KCkgewotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFjayk7Ci0KLSAg
YXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdjbGVhbnVwIHN1Y2Nlc3NmdWwnKTsKLQotICB2
YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoRmluYWxpemF0aW9uUmVnaXN0cnlDbGVh
bnVwSXRlcmF0b3JQcm90b3R5cGUpOwotICBhc3NlcnQuc2FtZVZhbHVlKAotICAgIHByb3RvLCBJ
dGVyYXRvclByb3RvdHlwZSwKLSAgICAnW1tQcm90b3R5cGVdXSBpbnRlcm5hbCBzbG90IHdob3Nl
IHZhbHVlIGlzIHRoZSBpbnRyaW5zaWMgb2JqZWN0ICVJdGVyYXRvclByb3RvdHlwZSUnCi0gICk7
Ci0KLSAgYXNzZXJ0LnNhbWVWYWx1ZShjbGVhbnVwQ2FsbGJhY2tDYWxsZWQsIDAsICdpZiBhIGNh
bGxiYWNrIGlzIGdpdmVuLCBkbyBub3QgY2FsbCBjbGVhbnVwQ2FsbGJhY2snKTsKLX0pLnRoZW4o
JERPTkUsIHJlc29sdmVBc3luY0dDKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9nYy1oYXMtb25lLWNoYW5jZS10by1jYWxsLWNsZWFu
dXBDYWxsYmFjay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvRmluYWxpemF0aW9uUmVnaXN0cnkvZ2MtaGFzLW9uZS1jaGFuY2UtdG8tY2FsbC1jbGVhbnVw
Q2FsbGJhY2suanMJKHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9nYy1oYXMtb25lLWNoYW5jZS10by1jYWxsLWNs
ZWFudXBDYWxsYmFjay5qcwkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMzLDggQEAgaW5jbHVk
ZXM6IFthc3luYy1nYy5qc10KIHZhciBjbGVhbnVwQ2FsbGJhY2sgPSAwOwogdmFyIGNhbGxlZCA9
IDA7CiAKLS8vIGJvdGggdGhpcyBjYiBhbmQgdGhlIGZpbmFsaXphdGlvblJlZ2lzdHJ5IGNhbGxi
YWNrIGFyZSBub3QgZXhoYXVzdGluZyB0aGUgaXRlcmF0b3IgdG8gcHJldmVudAotLy8gdGhlIHRh
cmdldCBjZWxsIGZyb20gYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZSBmaW5hbGl6YXRpb25SZWdpc3Ry
eS5bW0NlbGxzXV0uCi0vLyBNb3JlIGluZm8gYXQgJUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51
cEl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0ICggKQotZnVuY3Rpb24gY2IoKSB7CitmdW5jdGlvbiBj
Yihob2xkaW5nKSB7CisgIGFzc2VydC5zYW1lVmFsdWUoaG9sZGluZywgJ2EnKTsKICAgY2FsbGVk
ICs9IDE7CiB9CiAKQEAgLTU0LDE0ICs1MiwxNyBAQCBmdW5jdGlvbiBlbXB0eUNlbGxzKCkgewog
ICByZXR1cm4gcHJvbTsKIH0KIAotLy8gTGV0J3MgYWRkIHNvbWUgYXN5bmMgdGlja3MsIGFzIHRo
ZSBjbGVhbnVwQ2FsbGJhY2sgaXMgbm90IG1lYW50IHRvIGludGVycnVwdAotLy8gc3luY2hyb25v
dXMgb3BlcmF0aW9ucy4KLWFzeW5jIGZ1bmN0aW9uIGZuKCkgeworZW1wdHlDZWxscygpCisgIC50
aGVuKGFzeW5jIGZ1bmN0aW9uKCkgewogICBhd2FpdCBQcm9taXNlLnJlc29sdmUoMSk7CiAKICAg
ZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2IpOworCisgIC8vIGNsZWFudXBTb21l
IHdpbGwgYmUgaW52b2tlZCBpZiB0aGVyZSBhcmUgZW1wdHkgY2VsbHMgbGVmdC4gSWYgdGhlCisg
IC8vIGNsZWFudXBDYWxsYmFjayBhbHJlYWR5IHJhbiwgdGhlbiBjYiB3b24ndCBiZSBjYWxsZWQu
CisgIGxldCBleHBlY3RlZENhbGxlZCA9IGNsZWFudXBDYWxsYmFjayA9PT0gMSA/IDAgOiAxOwog
ICAvLyBUaGlzIGFzc2VydHMgdGhlIHJlZ2lzdGVyZWQgb2JqZWN0IHdhcyBlbXB0aWVkIGluIHRo
ZSBwcmV2aW91cyBHQy4KLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsICdjbGVhbnVwU29t
ZSBjYWxsYmFjayBmb3IgdGhlIGZpcnN0IHRpbWUnKTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxs
ZWQsIGV4cGVjdGVkQ2FsbGVkLCAnY2xlYW51cFNvbWUgY2FsbGJhY2sgZm9yIHRoZSBmaXJzdCB0
aW1lJyk7CiAKICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgY2FuJ3QgYXNzZXJ0IGlmIGNsZWFudXBD
YWxsYmFjayB3YXMgY2FsbGVkLCBiZWNhdXNlIGl0J3MKICAgLy8gb3B0aW9uYWwuIEFsdGhvdWdo
LCB3ZSBjYW4gZmluYWxseSBhc3NlcnQgaXQncyBub3QgZ29ubmEgYmUgY2FsbGVkIGFueW1vcmUK
QEAgLTcxLDggKzcyLDggQEAgYXN5bmMgZnVuY3Rpb24gZm4oKSB7CiAgIGFzc2VydChjbGVhbnVw
Q2FsbGJhY2sgPj0gMCwgJ2NsZWFudXBDYWxsYmFjayBtaWdodCBiZSAwJyk7CiAgIGFzc2VydChj
bGVhbnVwQ2FsbGJhY2sgPD0gMSwgJ2NsZWFudXBDYWxsYmFjayBtaWdodCBiZSAxJyk7CiAKLSAg
Ly8gUmVzdG9yaW5nIHRoZSBjbGVhbnVwQ2FsbGJhY2sgdmFyaWFibGUgdG8gMCB3aWxsIGhlbHAg
dXMgYXNzZXJ0aW5nIHRoZSBmaW5hbGl6YXRpb25SZWdpc3RyeQotICAvLyBjYWxsYmFjayBpcyBu
b3QgY2FsbGVkIGFnYWluLgorICAvLyBSZXN0b3JpbmcgdGhlIGNsZWFudXBDYWxsYmFjayB2YXJp
YWJsZSB0byAwIHdpbGwgaGVscCB1cyBhc3NlcnRpbmcgdGhlCisgIC8vIGZpbmFsaXphdGlvblJl
Z2lzdHJ5IGNhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdhaW4uCiAgIGNsZWFudXBDYWxsYmFjayA9
IDA7CiAKICAgYXdhaXQgJDI2Mi5nYygpOwpAQCAtODAsOSArODEsNyBAQCBhc3luYyBmdW5jdGlv
biBmbigpIHsKIAogICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShjYik7CiAKLSAg
Ly8gVGhpcyBjYiBpcyBjYWxsZWQgYWdhaW4gYmVjYXVzZSBmaW5hbGl6YXRpb25SZWdpc3RyeSBz
dGlsbCBob2xkcyBhbiBlbXB0aWVkIGNlbGwsIGJ1dCBpdCdzCi0gIC8vIG5vdCB5ZXQgcmVtb3Zl
ZCBmcm9tIHRoZSAKLSAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDIsICdjbGVhbnVwU29tZSBj
YWxsYmFjayBmb3IgdGhlIHNlY29uZCB0aW1lJyk7CisgIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVk
LCBleHBlY3RlZENhbGxlZCwgJ2NsZWFudXBTb21lIGNhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYW55
bW9yZSwgbm8gZW1wdHkgY2VsbHMnKTsKICAgYXNzZXJ0LnNhbWVWYWx1ZShjbGVhbnVwQ2FsbGJh
Y2ssIDAsICdjbGVhbnVwQ2FsbGJhY2sgaXMgbm90IGNhbGxlZCBhZ2FpbiAjMScpOwogCiAgIGF3
YWl0ICQyNjIuZ2MoKTsKQEAgLTkwLDQ2ICs4OSw5IEBAIGFzeW5jIGZ1bmN0aW9uIGZuKCkgewog
CiAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNiKTsKIAotICBhc3NlcnQuc2Ft
ZVZhbHVlKGNhbGxlZCwgMywgJ2NsZWFudXBTb21lIGNhbGxiYWNrIGZvciB0aGUgdGhpcmQgdGlt
ZScpOworICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgZXhwZWN0ZWRDYWxsZWQsICdjbGVhbnVw
U29tZSBjYWxsYmFjayBpcyBub3QgY2FsbGVkIGFnYWluICMyJyk7CiAgIGFzc2VydC5zYW1lVmFs
dWUoY2xlYW51cENhbGxiYWNrLCAwLCAnY2xlYW51cENhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdh
aW4gIzInKTsKIAogICBhd2FpdCAkMjYyLmdjKCk7Ci19Ci0KLWVtcHR5Q2VsbHMoKQotICAudGhl
bihhc3luYyBmdW5jdGlvbigpIHsKLSAgICBhd2FpdCBmbigpOy8vIHRpY2sKLSAgICBhd2FpdCBQ
cm9taXNlLnJlc29sdmUoNCk7IC8vIHRpY2sKLQotICAgIGFzc2VydC5zYW1lVmFsdWUoY2xlYW51
cENhbGxiYWNrLCAwLCAnY2xlYW51cENhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdhaW4gIzMnKTsK
LQotICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNiKTsKLQotICAgIGFzc2Vy
dC5zYW1lVmFsdWUoY2FsbGVkLCA0LCAnY2xlYW51cFNvbWUgY2FsbGJhY2sgZm9yIHRoZSBmb3Vy
dGggdGltZScpOwotICAgIGFzc2VydC5zYW1lVmFsdWUoY2xlYW51cENhbGxiYWNrLCAwLCAnY2xl
YW51cENhbGxiYWNrIGlzIG5vdCBjYWxsZWQgYWdhaW4gIzQnKTsKLSAgICAKLSAgICBhd2FpdCAk
MjYyLmdjKCk7Ci0KLSAgICAvLyBOb3cgd2UgYXJlIGV4aGF1c3RpbmcgdGhlIGl0ZXJhdG9yLCBz
byBjbGVhbnVwU29tZSBjYWxsYmFjayB3aWxsIGFsc28gbm90IGJlIGNhbGxlZC4KLSAgICBmaW5h
bGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShpdGVyYXRvciA9PiB7Ci0gICAgICB2YXIgZXho
YXVzdGVkID0gWy4uLml0ZXJhdG9yXTsKLSAgICAgIGFzc2VydC5zYW1lVmFsdWUoZXhoYXVzdGVk
Lmxlbmd0aCwgMSk7Ci0gICAgICBhc3NlcnQuc2FtZVZhbHVlKGV4aGF1c3RlZFswXSwgJ2EnKTsK
LSAgICAgIGNhbGxlZCArPSAxOwotICAgIH0pOwotCi0gICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxs
ZWQsIDUsICdjbGVhbnVwU29tZSBjYWxsYmFjayBmb3IgdGhlIGZpZnRoIHRpbWUnKTsKLSAgICBh
c3NlcnQuc2FtZVZhbHVlKGNsZWFudXBDYWxsYmFjaywgMCwgJ2NsZWFudXBDYWxsYmFjayBpcyBu
b3QgY2FsbGVkIGFnYWluICM0Jyk7Ci0KLSAgICBhd2FpdCAkMjYyLmdjKCk7Ci0KLSAgICBhd2Fp
dCBQcm9taXNlLnJlc29sdmUoNSk7IC8vIHRpY2sKLSAgICBhd2FpdCBhd2FpdCBQcm9taXNlLnJl
c29sdmUoNik7IC8vIG1vcmUgdGlja3MKLSAgICBhd2FpdCBhd2FpdCBhd2FpdCBQcm9taXNlLnJl
c29sdmUoNyk7IC8vIGV2ZW4gbW9yZSB0aWNrcwotCi0gICAgZmluYWxpemF0aW9uUmVnaXN0cnku
Y2xlYW51cFNvbWUoY2IpOwotCi0gICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDUsICdjbGVh
bnVwU29tZSBjYWxsYmFjayBpcyBub3QgY2FsbGVkIGFueW1vcmUsIG5vIGVtcHR5IGNlbGxzJyk7
Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZShjbGVhbnVwQ2FsbGJhY2ssIDAsICdjbGVhbnVwQ2FsbGJh
Y2sgaXMgbm90IGNhbGxlZCBhZ2FpbiAjNScpOwogICB9KQogICAudGhlbigkRE9ORSwgcmVzb2x2
ZUFzeW5jR0MpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9jYWxsYmFjay1pdGVyYXRvci1wcm90
by5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxp
emF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NhbGxiYWNrLWl0ZXJhdG9yLXBy
b3RvLmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NhbGxiYWNrLWl0
ZXJhdG9yLXByb3RvLmpzCShub25leGlzdGVudCkKQEAgLTEsOTggKzAsMCBAQAotLy8gQ29weXJp
Z2h0IChDKSAyMDE5IExlbyBCYWx0ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtcHJvcGVydGllcy1vZi10aGUtZmluYWxpemF0aW9uLXJl
Z2lzdHJ5LWNvbnN0cnVjdG9yCi1kZXNjcmlwdGlvbjogPgotICBUaGUgY2FsbGJhY2sgZnVuY3Rp
b24gaXMgY2FsbGVkIHdpdGggYSBGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvcgot
aW5mbzogfAotICBUaGUgJUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90
eXBlJSBPYmplY3QKLQotICAtIGhhcyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGluaGVyaXRlZCBieSBh
bGwgRmluYWxpemF0aW9uUmVnaXN0cnkgQ2xlYW51cCBJdGVyYXRvciBPYmplY3RzLgotICAtIGlz
IGFuIG9yZGluYXJ5IG9iamVjdC4KLSAgLSBoYXMgYSBbW1Byb3RvdHlwZV1dIGludGVybmFsIHNs
b3Qgd2hvc2UgdmFsdWUgaXMgdGhlIGludHJpbnNpYyBvYmplY3QgJUl0ZXJhdG9yUHJvdG90eXBl
JS4KLSAgLi4uCi0KLSAgRmluYWxpemF0aW9uUmVnaXN0cnkucHJvdG90eXBlLmNsZWFudXBTb21l
ICggWyBjYWxsYmFjayBdICkKLQotICAxLiBMZXQgZmluYWxpemF0aW9uUmVnaXN0cnkgYmUgdGhl
IHRoaXMgdmFsdWUuCi0gIDIuIElmIFR5cGUoZmluYWxpemF0aW9uUmVnaXN0cnkpIGlzIG5vdCBP
YmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgMy4gSWYgZmluYWxpemF0aW9u
UmVnaXN0cnkgZG9lcyBub3QgaGF2ZSBhIFtbQ2VsbHNdXSBpbnRlcm5hbCBzbG90LCB0aHJvdyBh
IFR5cGVFcnJvciBleGNlcHRpb24uCi0gIDQuIElmIGNhbGxiYWNrIGlzIG5vdCB1bmRlZmluZWQg
YW5kIElzQ2FsbGFibGUoY2FsbGJhY2spIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNl
cHRpb24uCi0gIDUuIFBlcmZvcm0gISBDbGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxp
emF0aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4KLSAgNi4gUmV0dXJuIHVuZGVmaW5lZC4KLQotICBD
bGVhbnVwRmluYWxpemF0aW9uUmVnaXN0cnkgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSBbICwgY2Fs
bGJhY2sgXSApCi0KLSAgLi4uCi0gIDIuIElmIENoZWNrRm9yRW1wdHlDZWxscyhmaW5hbGl6YXRp
b25SZWdpc3RyeSkgaXMgZmFsc2UsIHJldHVybi4KLSAgMy4gTGV0IGl0ZXJhdG9yIGJlICEgQ3Jl
YXRlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IoZmluYWxpemF0aW9uUmVnaXN0
cnkpLgotICA0LiBJZiBjYWxsYmFjayBpcyB1bmRlZmluZWQsIHNldCBjYWxsYmFjayB0byBmaW5h
bGl6YXRpb25SZWdpc3RyeS5bW0NsZWFudXBDYWxsYmFja11dLgotICA1LiBTZXQgZmluYWxpemF0
aW9uUmVnaXN0cnkuW1tJc0ZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEpvYkFjdGl2ZV1dIHRv
IHRydWUuCi0gIDYuIExldCByZXN1bHQgYmUgQ2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBp
dGVyYXRvciDCuykuCi0gIC4uLgotCi0gIENoZWNrRm9yRW1wdHlDZWxscyAoIGZpbmFsaXphdGlv
blJlZ2lzdHJ5ICkKLQotICAuLi4KLSAgMi4gRm9yIGVhY2ggY2VsbCBpbiBmaW5hbGl6YXRpb25S
ZWdpc3RyeS5bW0NlbGxzXV0sIGRvCi0gICAgYS4gSWYgY2VsbC5bW1RhcmdldF1dIGlzIGVtcHR5
LCB0aGVuCi0gICAgICBpLiBSZXR1cm4gdHJ1ZS4KLSAgMy4gUmV0dXJuIGZhbHNlLgotCi0gIENy
ZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yICggZmluYWxpemF0aW9uUmVn
aXN0cnkgKQotCi0gIC4uLgotICA0LiBMZXQgcHJvdG90eXBlIGJlIGZpbmFsaXphdGlvblJlZ2lz
dHJ5LltbUmVhbG1dXS5bW0ludHJpbnNpY3NdXS5bWyVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFu
dXBJdGVyYXRvclByb3RvdHlwZSVdXS4KLSAgNS4gTGV0IGl0ZXJhdG9yIGJlIE9iamVjdENyZWF0
ZShwcm90b3R5cGUsIMKrIFtbRmluYWxpemF0aW9uUmVnaXN0cnldXSDCuykuCi0gIDYuIFNldCBp
dGVyYXRvci5bW0ZpbmFsaXphdGlvblJlZ2lzdHJ5XV0gdG8gZmluYWxpemF0aW9uUmVnaXN0cnku
Ci0gIDcuIFJldHVybiBpdGVyYXRvci4KLWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnks
IGhvc3QtZ2MtcmVxdWlyZWRdCi1pbmNsdWRlczogW2FzeW5jLWdjLmpzXQotZmxhZ3M6IFthc3lu
Yywgbm9uLWRldGVybWluaXN0aWNdCi0tLS0qLwotCi12YXIgSXRlcmF0b3JQcm90b3R5cGUgPSBP
YmplY3QuZ2V0UHJvdG90eXBlT2YoT2JqZWN0LmdldFByb3RvdHlwZU9mKFtdW1N5bWJvbC5pdGVy
YXRvcl0oKSkpOwotdmFyIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90
eXBlOwotdmFyIGNhbGxlZCA9IDA7Ci12YXIgY2xlYW51cENhbGxiYWNrQ2FsbGVkID0gMDsKLQot
ZnVuY3Rpb24gY2FsbGJhY2soaXRlcmF0b3IpIHsKLSAgY2FsbGVkICs9IDE7Ci0KLSAgRmluYWxp
emF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90
eXBlT2YoaXRlcmF0b3IpOwotfQotCi12YXIgZmluYWxpemF0aW9uUmVnaXN0cnkgPSBuZXcgRmlu
YWxpemF0aW9uUmVnaXN0cnkoZnVuY3Rpb24oKSB7Ci0gIGNsZWFudXBDYWxsYmFja0NhbGxlZCAr
PSAxOwotfSk7Ci0KLWFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKCkgewotICB2YXIgdGFyZ2V0ID0g
e307Ci0gIGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKHRhcmdldCk7Ci0gIHZhciBwcm9t
ID0gYXN5bmNHQyh0YXJnZXQpOwotICAKLSAgdGFyZ2V0ID0gbnVsbDsKLSAgYXNzZXJ0LnNhbWVW
YWx1ZShjYWxsZWQsIDApOyAvLyBuZXZlciBjYWxsZWQgaW4gc3luYyBleGVjdXRpb24KLQotICBy
ZXR1cm4gcHJvbTsKLX0KLQotcmVnaXN0ZXIoKQotICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAv
LyBXZSBjYW4ndCBvYnNlcnZlIGlmIHRoZSBjbGVhbnVwQ2FsbGJhY2sgd2FzIGNhbGxlZCwgYnV0
IHdlIGNhbiBtYWtlIHN1cmUgY2xlYW51cFNvbWUgd29uJ3QgY2FsbCBpdC4KLSAgICBjbGVhbnVw
Q2FsbGJhY2tDYWxsZWQgPSAwOwotCi0gICAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNv
bWUoY2FsbGJhY2spOwotCi0gICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEpOwotCi0gICAg
dmFyIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xl
YW51cEl0ZXJhdG9yUHJvdG90eXBlKTsKLSAgICBhc3NlcnQuc2FtZVZhbHVlKAotICAgICAgcHJv
dG8sIEl0ZXJhdG9yUHJvdG90eXBlLAotICAgICAgJ1tbUHJvdG90eXBlXV0gaW50ZXJuYWwgc2xv
dCB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50cmluc2ljIG9iamVjdCAlSXRlcmF0b3JQcm90b3R5cGUl
JwotICAgICk7Ci0KLSAgICBhc3NlcnQuc2FtZVZhbHVlKGNsZWFudXBDYWxsYmFja0NhbGxlZCwg
MCwgJ2lmIGEgY2FsbGJhY2sgaXMgZ2l2ZW4sIGRvIG5vdCBjYWxsIGNsZWFudXBDYWxsYmFjaycp
OwotICB9KQotICAudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0MpOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVh
bnVwU29tZS9jbGVhbnVwLXByZXZlbnRlZC13aXRoLXJlZmVyZW5jZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJv
dG90eXBlL2NsZWFudXBTb21lL2NsZWFudXAtcHJldmVudGVkLXdpdGgtcmVmZXJlbmNlLmpzCShy
ZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxp
emF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NsZWFudXAtcHJldmVudGVkLXdp
dGgtcmVmZXJlbmNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw5ICsxOCw5IEBAIGluY2x1ZGVz
OiBbYXN5bmMtZ2MuanNdCiBmbGFnczogW2FzeW5jLCBub24tZGV0ZXJtaW5pc3RpY10KIC0tLSov
CiAKLXZhciBob2xkaW5nc0xpc3Q7Ci1mdW5jdGlvbiBjYihpdGVyYXRvcikgewotICBob2xkaW5n
c0xpc3QgPSBbLi4uaXRlcmF0b3JdOwordmFyIGhvbGRpbmdzTGlzdCA9IFtdOworZnVuY3Rpb24g
Y2IoaG9sZGluZykgeworICBob2xkaW5nc0xpc3QucHVzaChob2xkaW5nKTsKIH07CiB2YXIgZmlu
YWxpemF0aW9uUmVnaXN0cnkgPSBuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoZnVuY3Rpb24oKSB7
fSk7CiAKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25S
ZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC1wcmV2ZW50ZWQtd2l0aC11bnJl
Z2lzdGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9G
aW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC1wcmV2ZW50
ZWQtd2l0aC11bnJlZ2lzdGVyLmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBT
b21lL2NsZWFudXAtcHJldmVudGVkLXdpdGgtdW5yZWdpc3Rlci5qcwkod29ya2luZyBjb3B5KQpA
QCAtNDYsNyArNDYsNyBAQCBlbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKICAgdmFyIHJl
cyA9IGZpbmFsaXphdGlvblJlZ2lzdHJ5LnVucmVnaXN0ZXIodG9rZW4pOwogICBhc3NlcnQuc2Ft
ZVZhbHVlKHJlcywgdHJ1ZSwgJ3VucmVnaXN0ZXIgdGFyZ2V0IGJlZm9yZSBpdGVyYXRpbmcgb3Zl
ciBpdCBpbiBjbGVhbnVwJyk7CiAKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUo
ZnVuY3Rpb24gY2IoaXRlcmF0b3IpIHsKKyAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNv
bWUoZnVuY3Rpb24gY2IoaG9sZGluZykgewogICAgIGNhbGxlZCArPSAxOwogICB9KTsKICAgCklu
ZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkv
cHJvdG90eXBlL2NsZWFudXBTb21lL2NsZWFudXAtdGhyb3dzLWluLWNhbGxiYWNrLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdp
c3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC10aHJvd3MtaW4tY2FsbGJhY2suanMJ
KHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5h
bGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvY2xlYW51cC10aHJvd3MtaW4t
Y2FsbGJhY2suanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NSArMCwwIEBACi0vLyBDb3B5cmlnaHQg
KEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBp
cyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K
LQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0
cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9uOiA+Ci0gIFRoZSBjbGVhbnVwU29tZSgpIG1ldGhv
ZCB0aHJvd3MgaWYgY2xlYW51cCBpcyBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MuIAotaW5mbzogfAot
ICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNr
IF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4K
LSAgLi4uCi0gIDQuIElmIGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbSXNGaW5hbGl6YXRpb25SZWdp
c3RyeUNsZWFudXBKb2JBY3RpdmVdXSBpcyB0cnVlLCAKLSAgICAgdGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgotCi1mZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBob3N0LWdjLXJl
cXVpcmVkXQotaW5jbHVkZXM6IFthc3luYy1nYy5qc10KLWZsYWdzOiBbYXN5bmMsIG5vbi1kZXRl
cm1pbmlzdGljXQotLS0tKi8KLQotdmFyIGNhbGxlZCA9IDA7Ci12YXIgZW5kT2ZDYWxsID0gMDsK
LXZhciBmaW5hbGl6YXRpb25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShmdW5j
dGlvbigpIHt9KTsKLQotZnVuY3Rpb24gY2FsbGJhY2soaXRlcmF0b3IpIHsKLSAgY2FsbGVkICs9
IDE7Ci0KLSAgaWYgKGNhbGxlZCA9PT0gMSkgewotICAgIC8vIEF0ZW1wdCB0byByZS1lbnRlciB0
aGUgY2FsbGJhY2suCi0gICAgdmFyIG5lc3RlZENhbGxiYWNrUmFuID0gZmFsc2U7Ci0gICAgYXNz
ZXJ0LnRocm93cyhUeXBlRXJyb3IsICgpID0+IHsKLSAgICAgIGZpbmFsaXphdGlvblJlZ2lzdHJ5
LmNsZWFudXBTb21lKCgpID0+IHsgbmVzdGVkQ2FsbGJhY2tSYW4gPSB0cnVlIH0pOwotICAgIH0p
OwotICAgIGFzc2VydC5zYW1lVmFsdWUobmVzdGVkQ2FsbGJhY2tSYW4sIGZhbHNlKTsKLSAgfQot
Ci0gIGVuZE9mQ2FsbCArPSAxOwotfQotCi1mdW5jdGlvbiBlbXB0eUNlbGxzKCkgewotICB2YXIg
bzEgPSB7fTsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIobzEsICdob2xkaW5ncyAx
Jyk7Ci0KLSAgdmFyIHByb20gPSBhc3luY0dDKG8xKTsKLSAgbzEgPSBudWxsOwotCi0gIHJldHVy
biBwcm9tOwotfQotCi1lbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKLSAgZmluYWxpemF0
aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2FsbGJhY2spOwotCi0gIGFzc2VydC5zYW1lVmFsdWUo
Y2FsbGVkLCAxLCAnY2FsbGJhY2sgd2FzIGNhbGxlZCcpOwotICBhc3NlcnQuc2FtZVZhbHVlKGVu
ZE9mQ2FsbCwgMSwgJ2NhbGxiYWNrIGZpbmlzaGVkJyk7Ci19KS50aGVuKCRET05FLCByZXNvbHZl
QXN5bmNHQyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvRmluYWxpemF0
aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NsZWFudXBjYWxsYmFjay1pdGVyYXRv
ci1wcm90by5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
RmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL2NsZWFudXBjYWxsYmFj
ay1pdGVyYXRvci1wcm90by5qcwkocmV2aXNpb24gMjU5NTI2KQorKysgSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29t
ZS9jbGVhbnVwY2FsbGJhY2staXRlcmF0b3ItcHJvdG8uanMJKG5vbmV4aXN0ZW50KQpAQCAtMSw4
NiArMCwwIEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlci4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyotLS0KLWVzaWQ6IHNlYy1wcm9wZXJ0aWVzLW9m
LXRoZS1maW5hbGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0b3IKLWRlc2NyaXB0aW9uOiA+Ci0g
IFRoZSBjbGVhbnVwIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIGEgRmluYWxpemF0
aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3IKLWluZm86IHwKLSAgVGhlICVGaW5hbGl6YXRpb25S
ZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSUgT2JqZWN0Ci0KLSAgLSBoYXMgcHJvcGVy
dGllcyB0aGF0IGFyZSBpbmhlcml0ZWQgYnkgYWxsIEZpbmFsaXphdGlvblJlZ2lzdHJ5IENsZWFu
dXAgSXRlcmF0b3IgT2JqZWN0cy4KLSAgLSBpcyBhbiBvcmRpbmFyeSBvYmplY3QuCi0gIC0gaGFz
IGEgW1tQcm90b3R5cGVdXSBpbnRlcm5hbCBzbG90IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRyaW5z
aWMgb2JqZWN0ICVJdGVyYXRvclByb3RvdHlwZSUuCi0gIC4uLgotCi0gIEZpbmFsaXphdGlvblJl
Z2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZSAoIFsgY2FsbGJhY2sgXSApCi0KLSAgMS4gTGV0
IGZpbmFsaXphdGlvblJlZ2lzdHJ5IGJlIHRoZSB0aGlzIHZhbHVlLgotICAyLiBJZiBUeXBlKGZp
bmFsaXphdGlvblJlZ2lzdHJ5KSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNl
cHRpb24uCi0gIDMuIElmIGZpbmFsaXphdGlvblJlZ2lzdHJ5IGRvZXMgbm90IGhhdmUgYSBbW0Nl
bGxzXV0gaW50ZXJuYWwgc2xvdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICA0LiBJ
ZiBjYWxsYmFjayBpcyBub3QgdW5kZWZpbmVkIGFuZCBJc0NhbGxhYmxlKGNhbGxiYWNrKSBpcyBm
YWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICA1LiBQZXJmb3JtICEgQ2xlYW51
cEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZpbmFsaXphdGlvblJlZ2lzdHJ5LCBjYWxsYmFjaykuCi0g
IDYuIFJldHVybiB1bmRlZmluZWQuCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5ICgg
ZmluYWxpemF0aW9uUmVnaXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4uLgotICAyLiBJZiBD
aGVja0ZvckVtcHR5Q2VsbHMoZmluYWxpemF0aW9uUmVnaXN0cnkpIGlzIGZhbHNlLCByZXR1cm4u
Ci0gIDMuIExldCBpdGVyYXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51
cEl0ZXJhdG9yKGZpbmFsaXphdGlvblJlZ2lzdHJ5KS4KLSAgNC4gSWYgY2FsbGJhY2sgaXMgdW5k
ZWZpbmVkLCBzZXQgY2FsbGJhY2sgdG8gZmluYWxpemF0aW9uUmVnaXN0cnkuW1tDbGVhbnVwQ2Fs
bGJhY2tdXS4KLSAgNS4gU2V0IGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbSXNGaW5hbGl6YXRpb25S
ZWdpc3RyeUNsZWFudXBKb2JBY3RpdmVdXSB0byB0cnVlLgotICA2LiBMZXQgcmVzdWx0IGJlIENh
bGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQotICBDaGVj
a0ZvckVtcHR5Q2VsbHMgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSApCi0KLSAgLi4uCi0gIDIuIEZv
ciBlYWNoIGNlbGwgaW4gZmluYWxpemF0aW9uUmVnaXN0cnkuW1tDZWxsc11dLCBkbwotICAgIGEu
IElmIGNlbGwuW1tUYXJnZXRdXSBpcyBlbXB0eSwgdGhlbgotICAgICAgaS4gUmV0dXJuIHRydWUu
Ci0gIDMuIFJldHVybiBmYWxzZS4KLQotICBDcmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFu
dXBJdGVyYXRvciAoIGZpbmFsaXphdGlvblJlZ2lzdHJ5ICkKLQotICAuLi4KLSAgNC4gTGV0IHBy
b3RvdHlwZSBiZSBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW1JlYWxtXV0uW1tJbnRyaW5zaWNzXV0u
W1slRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSXRlcmF0b3JQcm90b3R5cGUlXV0uCi0gIDUu
IExldCBpdGVyYXRvciBiZSBPYmplY3RDcmVhdGUocHJvdG90eXBlLCDCqyBbW0ZpbmFsaXphdGlv
blJlZ2lzdHJ5XV0gwrspLgotICA2LiBTZXQgaXRlcmF0b3IuW1tGaW5hbGl6YXRpb25SZWdpc3Ry
eV1dIHRvIGZpbmFsaXphdGlvblJlZ2lzdHJ5LgotICA3LiBSZXR1cm4gaXRlcmF0b3IuCi1mZWF0
dXJlczogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBob3N0LWdjLXJlcXVpcmVkXQotaW5jbHVkZXM6
IFthc3luYy1nYy5qc10KLWZsYWdzOiBbYXN5bmMsIG5vbi1kZXRlcm1pbmlzdGljXQotLS0tKi8K
LQotdmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKE9iamVjdC5n
ZXRQcm90b3R5cGVPZihbXVtTeW1ib2wuaXRlcmF0b3JdKCkpKTsKLXZhciBGaW5hbGl6YXRpb25S
ZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZTsKLXZhciBjYWxsZWQgPSAwOwotCi1mdW5j
dGlvbiBjYWxsYmFjayhpdGVyYXRvcikgewotICBjYWxsZWQgKz0gMTsKLQotICBGaW5hbGl6YXRp
b25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVP
ZihpdGVyYXRvcik7Ci19Ci0KLXZhciBmaW5hbGl6YXRpb25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6
YXRpb25SZWdpc3RyeShmdW5jdGlvbigpIHt9KTsKLQotZnVuY3Rpb24gZW1wdHlDZWxscygpIHsK
LSAgdmFyIHRhcmdldCA9IHt9OwotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5yZWdpc3Rlcih0YXJn
ZXQpOwotCi0gIHZhciBwcm9tID0gYXN5bmNHQyh0YXJnZXQpOwotICB0YXJnZXQgPSBudWxsOwot
Ci0gIHJldHVybiBwcm9tOwotfQotCi1lbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKLSAg
ZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2FsbGJhY2spOwotICBhc3NlcnQuc2Ft
ZVZhbHVlKGNhbGxlZCwgMSk7Ci0KLSAgdmFyIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9m
KEZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0ZXJhdG9yUHJvdG90eXBlKTsKLSAgYXNzZXJ0
LnNhbWVWYWx1ZSgKLSAgICBwcm90bywgSXRlcmF0b3JQcm90b3R5cGUsCi0gICAgJ1tbUHJvdG90
eXBlXV0gaW50ZXJuYWwgc2xvdCB3aG9zZSB2YWx1ZSBpcyB0aGUgaW50cmluc2ljIG9iamVjdCAl
SXRlcmF0b3JQcm90b3R5cGUlJwotICApOwotfSkudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0Mp
OwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lz
dHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9ob2xkaW5ncy1tdWx0aXBsZS12YWx1ZXMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJl
Z2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9ob2xkaW5ncy1tdWx0aXBsZS12YWx1ZXMuanMJ
KG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9ob2xkaW5ncy1tdWx0aXBsZS12YWx1
ZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2OSBAQAorLy8gQ29weXJpZ2h0IChDKSAy
MDE5IExlbyBCYWx0ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292
ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8q
LS0tCitlc2lkOiBzZWMtcHJvcGVydGllcy1vZi10aGUtZmluYWxpemF0aW9uLXJlZ2lzdHJ5LWNv
bnN0cnVjdG9yCitkZXNjcmlwdGlvbjogPgorICBJdGVyYXRlcyBvdmVyIGRpZmZlcmVudCB0eXBl
IHZhbHVlcyBpbiBob2xkaW5ncworaW5mbzogfAorICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90
b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQorCisgIDEuIExldCBmaW5hbGl6YXRp
b25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KKyAgLi4uCisgIDUuIFBlcmZvcm0gISBDbGVh
bnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxpemF0aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4K
KyAgLi4uCisKKyAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5ICggZmluYWxpemF0aW9uUmVn
aXN0cnkgWyAsIGNhbGxiYWNrIF0gKQorCisgIC4uLgorICAzLiBXaGlsZSBmaW5hbGl6YXRpb25S
ZWdpc3RyeS5bW0NlbGxzXV0gY29udGFpbnMgYSBSZWNvcmQgY2VsbCBzdWNoIHRoYXQgY2VsbC5b
W1dlYWtSZWZUYXJnZXRdXSBpcyB+ZW1wdHl+LCB0aGVuIGFuIGltcGxlbWVudGF0aW9uIG1heSBw
ZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMsCisgICAgYS4gQ2hvb3NlIGFueSBzdWNoIGNlbGwu
CisgICAgYi4gUmVtb3ZlIGNlbGwgZnJvbSBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0NlbGxzXV0u
CisgICAgYy4gUGVyZm9ybSA/IENhbGwoY2FsbGJhY2ssIHVuZGVmaW5lZCwgPDwgY2VsbC5bW0hl
bGRWYWx1ZV1dID4+KS4KKyAgLi4uCisKKworZmVhdHVyZXM6IFtGaW5hbGl6YXRpb25SZWdpc3Ry
eSwgU3ltYm9sLCBob3N0LWdjLXJlcXVpcmVkXQoraW5jbHVkZXM6IFthc3luYy1nYy5qc10KK2Zs
YWdzOiBbYXN5bmMsIG5vbi1kZXRlcm1pbmlzdGljXQorLS0tKi8KKworZnVuY3Rpb24gY2hlY2so
dmFsdWUsIGV4cGVjdGVkTmFtZSkgeworICB2YXIgaG9sZGluZ3MgPSBbXTsKKyAgdmFyIGNhbGxl
ZCA9IDA7CisgIHZhciBmaW5hbGl6YXRpb25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdp
c3RyeShmdW5jdGlvbigpIHt9KTsKKworICBmdW5jdGlvbiBjYWxsYmFjayhob2xkaW5nKSB7Cisg
ICAgY2FsbGVkICs9IDE7CisgICAgaG9sZGluZ3MucHVzaChob2xkaW5nKTsKKyAgfQorCisgIC8v
IFRoaXMgaXMgaW50ZXJuYWwgdG8gYXZvaWQgY29uZmxpY3RzCisgIGZ1bmN0aW9uIGVtcHR5Q2Vs
bHModmFsdWUpIHsKKyAgICB2YXIgdGFyZ2V0ID0ge307CisgICAgZmluYWxpemF0aW9uUmVnaXN0
cnkucmVnaXN0ZXIodGFyZ2V0LCB2YWx1ZSk7CisKKyAgICB2YXIgcHJvbSA9IGFzeW5jR0ModGFy
Z2V0KTsKKyAgICB0YXJnZXQgPSBudWxsOworCisgICAgcmV0dXJuIHByb207CisgIH0KKworICBy
ZXR1cm4gZW1wdHlDZWxscyh2YWx1ZSkudGhlbihmdW5jdGlvbigpIHsKKyAgICBmaW5hbGl6YXRp
b25SZWdpc3RyeS5jbGVhbnVwU29tZShjYWxsYmFjayk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShj
YWxsZWQsIDEsIGV4cGVjdGVkTmFtZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShob2xkaW5ncy5s
ZW5ndGgsIDEsIGV4cGVjdGVkTmFtZSk7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShob2xkaW5nc1sw
XSwgdmFsdWUsIGV4cGVjdGVkTmFtZSk7CisgIH0pOworfQorCitQcm9taXNlLmFsbChbCisgIGNo
ZWNrKHVuZGVmaW5lZCwgJ3VuZGVmaW5lZCcpLAorICBjaGVjayhudWxsLCAnbnVsbCcpLAorICBj
aGVjaygnJywgJ3RoZSBlbXB0eSBzdHJpbmcnKSwKKyAgY2hlY2soe30sICdvYmplY3QnKSwKKyAg
Y2hlY2soNDIsICdudW1iZXInKSwKKyAgY2hlY2sodHJ1ZSwgJ3RydWUnKSwKKyAgY2hlY2soZmFs
c2UsICdmYWxzZScpLAorICBjaGVjayhTeW1ib2woMSksICdzeW1ib2wnKSwKK10pLnRoZW4oKCkg
PT4gJERPTkUoKSwgcmVzb2x2ZUFzeW5jR0MpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9pdGVy
YXRvci1ob2xkaW5ncy1tdWx0aXBsZS12YWx1ZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVh
bnVwU29tZS9pdGVyYXRvci1ob2xkaW5ncy1tdWx0aXBsZS12YWx1ZXMuanMJKHJldmlzaW9uIDI1
OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdp
c3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvaXRlcmF0b3ItaG9sZGluZ3MtbXVsdGlwbGUtdmFs
dWVzLmpzCShub25leGlzdGVudCkKQEAgLTEsNzQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChDKSAy
MDE5IExlbyBCYWx0ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNvZGUgaXMgZ292
ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8q
LS0tCi1lc2lkOiBzZWMtcHJvcGVydGllcy1vZi10aGUtZmluYWxpemF0aW9uLXJlZ2lzdHJ5LWNv
bnN0cnVjdG9yCi1kZXNjcmlwdGlvbjogPgotICBJdGVyYXRlcyBvdmVyIGRpZmZlcmVudCB0eXBl
IHZhbHVlcyBpbiBob2xkaW5ncwotaW5mbzogfAotICBGaW5hbGl6YXRpb25SZWdpc3RyeS5wcm90
b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5hbGl6YXRp
b25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAgLi4uCi0gIDUuIFBlcmZvcm0gISBDbGVh
bnVwRmluYWxpemF0aW9uUmVnaXN0cnkoZmluYWxpemF0aW9uUmVnaXN0cnksIGNhbGxiYWNrKS4K
LSAgLi4uCi0KLSAgQ2xlYW51cEZpbmFsaXphdGlvblJlZ2lzdHJ5ICggZmluYWxpemF0aW9uUmVn
aXN0cnkgWyAsIGNhbGxiYWNrIF0gKQotCi0gIC4uLgotICAzLiBMZXQgaXRlcmF0b3IgYmUgISBD
cmVhdGVGaW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvcihmaW5hbGl6YXRpb25SZWdp
c3RyeSkuCi0gIC4uLgotICA2LiBMZXQgcmVzdWx0IGJlIENhbGwoY2FsbGJhY2ssIHVuZGVmaW5l
ZCwgwqsgaXRlcmF0b3IgwrspLgotICAuLi4KLQotICAlRmluYWxpemF0aW9uUmVnaXN0cnlDbGVh
bnVwSXRlcmF0b3JQcm90b3R5cGUlLm5leHQgKCApCi0KLSAgOC4gSWYgZmluYWxpemF0aW9uUmVn
aXN0cnkuW1tDZWxsc11dIGNvbnRhaW5zIGEgUmVjb3JkIGNlbGwgc3VjaCB0aGF0IGNlbGwuW1tU
YXJnZXRdXSBpcyBlbXB0eSwKLSAgICBhLiBDaG9vc2UgYW55IHN1Y2ggY2VsbC4KLSAgICBiLiBS
ZW1vdmUgY2VsbCBmcm9tIGZpbmFsaXphdGlvblJlZ2lzdHJ5LltbQ2VsbHNdXS4KLSAgICBjLiBS
ZXR1cm4gQ3JlYXRlSXRlclJlc3VsdE9iamVjdChjZWxsLltbSG9sZGluZ3NdXSwgZmFsc2UpLgot
ICA5LiBPdGhlcndpc2UsIHJldHVybiBDcmVhdGVJdGVyUmVzdWx0T2JqZWN0KHVuZGVmaW5lZCwg
dHJ1ZSkuCi1mZWF0dXJlczogW0ZpbmFsaXphdGlvblJlZ2lzdHJ5LCBTeW1ib2wsIGhvc3QtZ2Mt
cmVxdWlyZWRdCi1pbmNsdWRlczogW2FzeW5jLWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRl
dGVybWluaXN0aWNdCi0tLS0qLwotCi1mdW5jdGlvbiBjaGVjayh2YWx1ZSwgZXhwZWN0ZWROYW1l
KSB7Ci0gIHZhciBob2xkaW5nczsKLSAgdmFyIGNhbGxlZCA9IDA7Ci0gIHZhciBmaW5hbGl6YXRp
b25SZWdpc3RyeSA9IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbigpIHt9KTsKLQot
ICBmdW5jdGlvbiBjYWxsYmFjayhpdGVyYXRvcikgewotICAgIGNhbGxlZCArPSAxOwotICAgIGhv
bGRpbmdzID0gWy4uLml0ZXJhdG9yXTsKLSAgfQotCi0gIC8vIFRoaXMgaXMgaW50ZXJuYWwgdG8g
YXZvaWQgY29uZmxpY3RzCi0gIGZ1bmN0aW9uIGVtcHR5Q2VsbHModmFsdWUpIHsKLSAgICB2YXIg
dGFyZ2V0ID0ge307Ci0gICAgZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIodGFyZ2V0LCB2
YWx1ZSk7Ci0KLSAgICB2YXIgcHJvbSA9IGFzeW5jR0ModGFyZ2V0KTsKLSAgICB0YXJnZXQgPSBu
dWxsOwotCi0gICAgcmV0dXJuIHByb207Ci0gIH0KLQotICByZXR1cm4gZW1wdHlDZWxscyh2YWx1
ZSkudGhlbihmdW5jdGlvbigpIHsKLSAgICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29t
ZShjYWxsYmFjayk7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEsIGV4cGVjdGVkTmFt
ZSk7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZShob2xkaW5ncy5sZW5ndGgsIDEsIGV4cGVjdGVkTmFt
ZSk7Ci0gICAgYXNzZXJ0LnNhbWVWYWx1ZShob2xkaW5nc1swXSwgdmFsdWUsIGV4cGVjdGVkTmFt
ZSk7Ci0gIH0pOwotfQotCi1Qcm9taXNlLmFsbChbCi0gIGNoZWNrKHVuZGVmaW5lZCwgJ3VuZGVm
aW5lZCcpLAotICBjaGVjayhudWxsLCAnbnVsbCcpLAotICBjaGVjaygnJywgJ3RoZSBlbXB0eSBz
dHJpbmcnKSwKLSAgY2hlY2soe30sICdvYmplY3QnKSwKLSAgY2hlY2soNDIsICdudW1iZXInKSwK
LSAgY2hlY2sodHJ1ZSwgJ3RydWUnKSwKLSAgY2hlY2soZmFsc2UsICdmYWxzZScpLAotICBjaGVj
ayhTeW1ib2woMSksICdzeW1ib2wnKSwKLV0pLnRoZW4oKCkgPT4gJERPTkUoKSwgcmVzb2x2ZUFz
eW5jR0MpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlv
blJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9wb2lzb25lZC1jYWxsYmFjay10aHJvd3Mu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9wb2lzb25lZC1jYWxsYmFjay10aHJv
d3MuanMJKHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvcG9pc29uZWQtY2Fs
bGJhY2stdGhyb3dzLmpzCShub25leGlzdGVudCkKQEAgLTEsNjIgKzAsMCBAQAotLy8gQ29weXJp
Z2h0IChDKSAyMDE5IExlbyBCYWx0ZXIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtZmluYWxpemF0aW9uLXJlZ2lzdHJ5LnByb3RvdHlwZS5j
bGVhbnVwU29tZQotZGVzY3JpcHRpb246IFJldHVybiBhYnJ1cHQgY29tcGxldGlvbiBmcm9tIENs
ZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeQotaW5mbzogfAotICBGaW5hbGl6YXRpb25SZWdpc3Ry
eS5wcm90b3R5cGUuY2xlYW51cFNvbWUgKCBbIGNhbGxiYWNrIF0gKQotCi0gIDEuIExldCBmaW5h
bGl6YXRpb25SZWdpc3RyeSBiZSB0aGUgdGhpcyB2YWx1ZS4KLSAgMi4gSWYgVHlwZShmaW5hbGl6
YXRpb25SZWdpc3RyeSkgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9u
LgotICAzLiBJZiBmaW5hbGl6YXRpb25SZWdpc3RyeSBkb2VzIG5vdCBoYXZlIGEgW1tDZWxsc11d
IGludGVybmFsIHNsb3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgNC4gSWYgY2Fs
bGJhY2sgaXMgbm90IHVuZGVmaW5lZCBhbmQgSXNDYWxsYWJsZShjYWxsYmFjaykgaXMgZmFsc2Us
IHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KLSAgNS4gUGVyZm9ybSA/IENsZWFudXBGaW5h
bGl6YXRpb25SZWdpc3RyeShmaW5hbGl6YXRpb25SZWdpc3RyeSwgY2FsbGJhY2spLgotICA2LiBS
ZXR1cm4gdW5kZWZpbmVkLgotCi0gIENsZWFudXBGaW5hbGl6YXRpb25SZWdpc3RyeSAoIGZpbmFs
aXphdGlvblJlZ2lzdHJ5IFsgLCBjYWxsYmFjayBdICkKLQotICA0LiBJZiBjYWxsYmFjayBpcyB1
bmRlZmluZWQsIHNldCBjYWxsYmFjayB0byBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0NsZWFudXBD
YWxsYmFja11dLgotICA1LiBTZXQgZmluYWxpemF0aW9uUmVnaXN0cnkuW1tJc0ZpbmFsaXphdGlv
blJlZ2lzdHJ5Q2xlYW51cEpvYkFjdGl2ZV1dIHRvIHRydWUuCi0gIDYuIExldCByZXN1bHQgYmUg
Q2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBpdGVyYXRvciDCuykuCi0gIDcuIFNldCBmaW5h
bGl6YXRpb25SZWdpc3RyeS5bW0lzRmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSm9iQWN0aXZl
XV0gdG8gZmFsc2UuCi0gIDguIElmIHJlc3VsdCBpcyBhbiBhYnJ1cHQgY29tcGxldGlvbiwgcmV0
dXJuIHJlc3VsdC4KLWZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIGFycm93LWZ1bmN0
aW9uLCBhc3luYy1mdW5jdGlvbnMsIGFzeW5jLWl0ZXJhdGlvbiwgY2xhc3MsIGhvc3QtZ2MtcmVx
dWlyZWRdCi1pbmNsdWRlczogW2FzeW5jLWdjLmpzXQotZmxhZ3M6IFthc3luYywgbm9uLWRldGVy
bWluaXN0aWNdCi0tLS0qLwotCi12YXIgY2FsbGVkID0gMDsKLXZhciBpdGVyYXRvciA9IGZhbHNl
OwotCi1mdW5jdGlvbiBwb2lzb25lZChpdGVyKSB7Ci0gIGNhbGxlZCArPSAxOwotICBpdGVyYXRv
ciA9IGl0ZXI7Ci0gIGl0ZXIubmV4dCgpOyAvLyBXb24ndCB0aHJvdwotICB0aHJvdyBuZXcgVGVz
dDI2MkVycm9yKCk7Ci19Ci12YXIgZmluYWxpemF0aW9uUmVnaXN0cnkgPSBuZXcgRmluYWxpemF0
aW9uUmVnaXN0cnkoZnVuY3Rpb24oKSB7fSk7Ci0KLWZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7Ci0g
IHZhciB0YXJnZXQgPSB7fTsKLSAgZmluYWxpemF0aW9uUmVnaXN0cnkucmVnaXN0ZXIodGFyZ2V0
KTsKLQotICB2YXIgcHJvbSA9IGFzeW5jR0ModGFyZ2V0KTsKLSAgdGFyZ2V0ID0gbnVsbDsKLQot
ICByZXR1cm4gcHJvbTsKLX0KLQotZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gIGFz
c2VydC50aHJvd3MoVGVzdDI2MkVycm9yLCBmdW5jdGlvbigpIHsKLSAgICBmaW5hbGl6YXRpb25S
ZWdpc3RyeS5jbGVhbnVwU29tZShwb2lzb25lZCk7Ci0gIH0pOwotCi0gIGFzc2VydC5zYW1lVmFs
dWUoY2FsbGVkLCAxKTsKLQotICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBpdGVyYXRvciwgJ29i
amVjdCcpOwotICBhc3NlcnQuc2FtZVZhbHVlKHR5cGVvZiBpdGVyYXRvci5uZXh0LCAnZnVuY3Rp
b24nKTsKLSAgYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICAgIGl0ZXJh
dG9yLm5leHQoKTsKLSAgfSwgJ2l0ZXJhdG9yLm5leHQgdGhyb3dzIGEgVHlwZUVycm9yIGlmIElz
RmluYWxpemF0aW9uUmVnaXN0cnlDbGVhbnVwSm9iQWN0aXZlIGlzIGZhbHNlJyk7Ci19KS50aGVu
KCRET05FLCByZXNvbHZlQXN5bmNHQyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvRmluYWxpemF0aW9uUmVnaXN0cnkvcHJvdG90eXBlL2NsZWFudXBTb21lL3JlZW50cmFu
Y3kuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFs
aXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9yZWVudHJhbmN5LmpzCShub25l
eGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25S
ZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51cFNvbWUvcmVlbnRyYW5jeS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDUxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlci4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxp
Y2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9w
ZXJ0aWVzLW9mLXRoZS1maW5hbGl6YXRpb24tcmVnaXN0cnktY29uc3RydWN0b3IKK2Rlc2NyaXB0
aW9uOiA+CisgIFRoZSBjbGVhbnVwU29tZSgpIG1ldGhvZCBjYW4gYmUgcmVlbnRlcmVkCitpbmZv
OiB8CisgIEZpbmFsaXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS5jbGVhbnVwU29tZSAoIFsgY2Fs
bGJhY2sgXSApCisKK2ZlYXR1cmVzOiBbRmluYWxpemF0aW9uUmVnaXN0cnksIGhvc3QtZ2MtcmVx
dWlyZWRdCitpbmNsdWRlczogW2FzeW5jLWdjLmpzXQorZmxhZ3M6IFthc3luYywgbm9uLWRldGVy
bWluaXN0aWNdCistLS0qLworCit2YXIgY2FsbGVkID0gMDsKK3ZhciBlbmRPZkNhbGwgPSAwOwor
dmFyIGZpbmFsaXphdGlvblJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGZ1bmN0
aW9uKCkge30pOworCitmdW5jdGlvbiBjYWxsYmFjayhob2xkaW5nKSB7CisgIGNhbGxlZCArPSAx
OworCisgIGlmIChjYWxsZWQgPT09IDEpIHsKKyAgICAvLyBBdGVtcHQgdG8gcmUtZW50ZXIgdGhl
IGNhbGxiYWNrLgorICAgIHZhciBuZXN0ZWRDYWxsYmFja1JhbiA9IGZhbHNlOworICAgIGZpbmFs
aXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKCgpID0+IHsgbmVzdGVkQ2FsbGJhY2tSYW4gPSB0
cnVlIH0pOworICAgIGFzc2VydC5zYW1lVmFsdWUobmVzdGVkQ2FsbGJhY2tSYW4sIHRydWUpOwor
ICB9CisKKyAgZW5kT2ZDYWxsICs9IDE7Cit9CisKK2Z1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7Cisg
IHZhciBvMSA9IHt9OworICB2YXIgbzIgPSB7fTsKKyAgLy8gUmVnaXN0ZXIgbW9yZSB0aGFuIG9u
ZSBvYmplY3RzIHRvIHRlc3QgcmVlbnRyYW5jeS4KKyAgZmluYWxpemF0aW9uUmVnaXN0cnkucmVn
aXN0ZXIobzEsICdob2xkaW5ncyAxJyk7CisgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LnJlZ2lzdGVy
KG8yLCAnaG9sZGluZ3MgMicpOworCisgIHZhciBwcm9tID0gYXN5bmNHQyhvMSk7CisgIG8xID0g
bnVsbDsKKworICByZXR1cm4gcHJvbTsKK30KKworZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24o
KSB7CisgIGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKGNhbGxiYWNrKTsKKworICBh
c3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgMSwgJ2NhbGxiYWNrIHdhcyBjYWxsZWQnKTsKKyAgYXNz
ZXJ0LnNhbWVWYWx1ZShlbmRPZkNhbGwsIDEsICdjYWxsYmFjayBmaW5pc2hlZCcpOworfSkudGhl
bigkRE9ORSwgcmVzb2x2ZUFzeW5jR0MpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9yZXR1cm4t
dW5kZWZpbmVkLXdpdGgtZ2MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS9jbGVhbnVwU29tZS9yZXR1
cm4tdW5kZWZpbmVkLXdpdGgtZ2MuanMJKHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvY2xlYW51
cFNvbWUvcmV0dXJuLXVuZGVmaW5lZC13aXRoLWdjLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw0
NiArMzksMjggQEAgZnVuY3Rpb24gZW1wdHlDZWxscygpIHsKICAgcmV0dXJuIHByb207CiB9CiAK
LXZhciB0ZXN0cyA9IFtdOwotCi10ZXN0cy5wdXNoKGVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9u
KCkgeworZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24oKSB7CiAgIGNhbGxlZCA9IDA7CiAgIGFz
c2VydC5zYW1lVmFsdWUoZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoY2IpLCB1bmRl
ZmluZWQsICdyZWd1bGFyIGNhbGxiYWNrJyk7CiAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAx
KTsKLX0pKTsKLQotdGVzdHMucHVzaChlbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKK30p
LnRoZW4oZW1wdHlDZWxscykudGhlbihmdW5jdGlvbigpIHsKICAgY2FsbGVkID0gMDsKICAgYXNz
ZXJ0LnNhbWVWYWx1ZShmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShmbiksIHVuZGVm
aW5lZCwgJ3JlZ3VsYXIgY2FsbGJhY2ssIHNhbWUgRkcgY2xlYW51cCBmdW5jdGlvbicpOwogICBh
c3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgMSk7Ci19KSk7Ci0KLXRlc3RzLnB1c2goZW1wdHlDZWxs
cygpLnRoZW4oZnVuY3Rpb24oKSB7Cit9KS50aGVuKGVtcHR5Q2VsbHMpLnRoZW4oZnVuY3Rpb24o
KSB7CiAgIGNhbGxlZCA9IDA7CiAgIGFzc2VydC5zYW1lVmFsdWUoZmluYWxpemF0aW9uUmVnaXN0
cnkuY2xlYW51cFNvbWUoKSwgdW5kZWZpbmVkLCAndW5kZWZpbmVkIChpbXBsaWNpdCkgY2FsbGJh
Y2ssIGRlZmVyIHRvIEZCIGNhbGxiYWNrJyk7CiAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbGVkLCAx
KTsKLX0pKTsKLQotdGVzdHMucHVzaChlbXB0eUNlbGxzKCkudGhlbihmdW5jdGlvbigpIHsKK30p
LnRoZW4oZW1wdHlDZWxscykudGhlbihmdW5jdGlvbigpIHsKICAgY2FsbGVkID0gMDsKICAgYXNz
ZXJ0LnNhbWVWYWx1ZShmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZSh1bmRlZmluZWQp
LCB1bmRlZmluZWQsICd1bmRlZmluZWQgKGV4cGxpY2l0KSBjYWxsYmFjaywgZGVmZXIgdG8gRkIg
Y2FsbGJhY2snKTsKICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsZWQsIDEpOwotfSkpOwotCi10ZXN0
cy5wdXNoKGVtcHR5Q2VsbHMoKS50aGVuKGZ1bmN0aW9uKCkgewotICBhc3NlcnQuc2FtZVZhbHVl
KGZpbmFsaXphdGlvblJlZ2lzdHJ5LmNsZWFudXBTb21lKCgpID0+IDEpLCB1bmRlZmluZWQsICdh
cnJvdyBmdW5jdGlvbicpOyAgCi19KSk7Ci0KLXRlc3RzLnB1c2goZW1wdHlDZWxscygpLnRoZW4o
ZnVuY3Rpb24oKSB7Cit9KS50aGVuKGVtcHR5Q2VsbHMpLnRoZW4oZnVuY3Rpb24oKSB7CisgIGFz
c2VydC5zYW1lVmFsdWUoZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoKCkgPT4gMSks
IHVuZGVmaW5lZCwgJ2Fycm93IGZ1bmN0aW9uJyk7Cit9KS50aGVuKGVtcHR5Q2VsbHMpLnRoZW4o
ZnVuY3Rpb24oKSB7CiAgIGFzc2VydC5zYW1lVmFsdWUoZmluYWxpemF0aW9uUmVnaXN0cnkuY2xl
YW51cFNvbWUoYXN5bmMgZnVuY3Rpb24oKSB7fSksIHVuZGVmaW5lZCwgJ2FzeW5jIGZ1bmN0aW9u
Jyk7Ci19KSk7Ci0KLXRlc3RzLnB1c2goZW1wdHlDZWxscygpLnRoZW4oZnVuY3Rpb24oKSB7Cit9
KS50aGVuKGVtcHR5Q2VsbHMpLnRoZW4oZnVuY3Rpb24oKSB7CiAgIGFzc2VydC5zYW1lVmFsdWUo
ZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoZnVuY3Rpb24gKigpIHt9KSwgdW5kZWZp
bmVkLCAnZ2VuZXJhdG9yJyk7Ci19KSk7Ci0KLXRlc3RzLnB1c2goZW1wdHlDZWxscygpLnRoZW4o
ZnVuY3Rpb24oKSB7Cit9KS50aGVuKGVtcHR5Q2VsbHMpLnRoZW4oZnVuY3Rpb24oKSB7CiAgIGFz
c2VydC5zYW1lVmFsdWUoZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51cFNvbWUoYXN5bmMgZnVu
Y3Rpb24gKigpIHt9KSwgdW5kZWZpbmVkLCAnYXN5bmMgZ2VuZXJhdG9yJyk7Ci19KSk7Ci0KLVBy
b21pc2UuYWxsKHRlc3RzKS50aGVuKCgpID0+IHsgJERPTkUoKTsgfSwgcmVzb2x2ZUFzeW5jR0Mp
OworfSkudGhlbigkRE9ORSwgcmVzb2x2ZUFzeW5jR0MpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3RvdHlwZS91bnJlZ2lzdGVy
L3VucmVnaXN0ZXItY2xlYW5lZC11cC1jZWxsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9GaW5hbGl6YXRpb25SZWdpc3RyeS9wcm90b3R5cGUvdW5yZWdp
c3Rlci91bnJlZ2lzdGVyLWNsZWFuZWQtdXAtY2VsbC5qcwkocmV2aXNpb24gMjU5NTI2KQorKysg
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL0ZpbmFsaXphdGlvblJlZ2lzdHJ5L3Byb3Rv
dHlwZS91bnJlZ2lzdGVyL3VucmVnaXN0ZXItY2xlYW5lZC11cC1jZWxsLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0xNSwxOCArMTUsMTEgQEAgaW5mbzogfAogICBDbGVhbnVwRmluYWxpemF0aW9uUmVn
aXN0cnkgKCBmaW5hbGl6YXRpb25SZWdpc3RyeSBbICwgY2FsbGJhY2sgXSApCiAKICAgLi4uCi0g
IDMuIExldCBpdGVyYXRvciBiZSAhIENyZWF0ZUZpbmFsaXphdGlvblJlZ2lzdHJ5Q2xlYW51cEl0
ZXJhdG9yKGZpbmFsaXphdGlvblJlZ2lzdHJ5KS4KLSAgLi4uCi0gIDYuIExldCByZXN1bHQgYmUg
Q2FsbChjYWxsYmFjaywgdW5kZWZpbmVkLCDCqyBpdGVyYXRvciDCuykuCi0gIC4uLgotCi0gICVG
aW5hbGl6YXRpb25SZWdpc3RyeUNsZWFudXBJdGVyYXRvclByb3RvdHlwZSUubmV4dCAoICkKLQot
ICA4LiBJZiBmaW5hbGl6YXRpb25SZWdpc3RyeS5bW0NlbGxzXV0gY29udGFpbnMgYSBSZWNvcmQg
Y2VsbCBzdWNoIHRoYXQgY2VsbC5bW1RhcmdldF1dIGlzIGVtcHR5LAorICAzLiBXaGlsZSBmaW5h
bGl6YXRpb25SZWdpc3RyeS5bW0NlbGxzXV0gY29udGFpbnMgYSBSZWNvcmQgY2VsbCBzdWNoIHRo
YXQgY2VsbC5bW1dlYWtSZWZUYXJnZXRdXSBpcyB+ZW1wdHl+LCB0aGVuIGFuIGltcGxlbWVudGF0
aW9uIG1heSBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMsCiAgICAgYS4gQ2hvb3NlIGFueSBz
dWNoIGNlbGwuCiAgICAgYi4gUmVtb3ZlIGNlbGwgZnJvbSBmaW5hbGl6YXRpb25SZWdpc3RyeS5b
W0NlbGxzXV0uCi0gICAgYy4gUmV0dXJuIENyZWF0ZUl0ZXJSZXN1bHRPYmplY3QoY2VsbC5bW0hv
bGRpbmdzXV0sIGZhbHNlKS4KLSAgOS4gT3RoZXJ3aXNlLCByZXR1cm4gQ3JlYXRlSXRlclJlc3Vs
dE9iamVjdCh1bmRlZmluZWQsIHRydWUpLgorICAgIGMuIFBlcmZvcm0gPyBDYWxsKGNhbGxiYWNr
LCB1bmRlZmluZWQsIDw8IGNlbGwuW1tIZWxkVmFsdWVdXSA+PikuCisgIC4uLgogCiAgIEZpbmFs
aXphdGlvblJlZ2lzdHJ5LnByb3RvdHlwZS51bnJlZ2lzdGVyICggdW5yZWdpc3RlclRva2VuICkK
IApAQCAtNTcsMTAgKzUwLDEwIEBAIGZ1bmN0aW9uIGVtcHR5Q2VsbHMoKSB7CiAKIGVtcHR5Q2Vs
bHMoKS50aGVuKGZ1bmN0aW9uKCkgewogICB2YXIgY2FsbGVkID0gMDsKLSAgdmFyIGhvbGRpbmdz
OwotICBmaW5hbGl6YXRpb25SZWdpc3RyeS5jbGVhbnVwU29tZShmdW5jdGlvbiBjYihpdGVyYXRv
cikgeworICB2YXIgaG9sZGluZ3MgPSBbXTsKKyAgZmluYWxpemF0aW9uUmVnaXN0cnkuY2xlYW51
cFNvbWUoZnVuY3Rpb24gY2IoaG9sZGluZykgewogICAgIGNhbGxlZCArPSAxOwotICAgIGhvbGRp
bmdzID0gWy4uLml0ZXJhdG9yXTsKKyAgICBob2xkaW5ncy5wdXNoKGhvbGRpbmcpOwogICB9KTsK
IAogICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxlZCwgMSk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1jYWxsZWQtdHdp
Y2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L2NhcGFiaWxpdHktZXhlY3V0b3ItY2FsbGVkLXR3aWNlLmpzCShub25leGlzdGVudCkK
KysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9jYXBhYmlsaXR5
LWV4ZWN1dG9yLWNhbGxlZC10d2ljZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNiBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNj
cmlwdGlvbjogPgorICBUaHJvd3MgYSBUeXBlRXJyb3IgaWYgY2FwYWJpbGl0aWVzIGV4ZWN1dG9y
IGFscmVhZHkgY2FsbGVkIHdpdGggbm9uLXVuZGVmaW5lZCB2YWx1ZXMuCitpbmZvOiB8CisgIFBy
b21pc2UuYW55ICggaXRlcmFibGUgKQorCisgIC4uLgorICAyLiBMZXQgcHJvbWlzZUNhcGFiaWxp
dHkgYmUgPyBOZXdQcm9taXNlQ2FwYWJpbGl0eShDKS4KKyAgLi4uCisKKyAgR2V0Q2FwYWJpbGl0
aWVzRXhlY3V0b3IgRnVuY3Rpb25zCisKKyAgLi4uCisgIDQuIElmIHByb21pc2VDYXBhYmlsaXR5
LltbUmVzb2x2ZV1dIGlzIG5vdCB1bmRlZmluZWQsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlv
bi4KKyAgNS4gSWYgcHJvbWlzZUNhcGFiaWxpdHkuW1tSZWplY3RdXSBpcyBub3QgdW5kZWZpbmVk
LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIDYuIFNldCBwcm9taXNlQ2FwYWJpbGl0
eS5bW1Jlc29sdmVdXSB0byByZXNvbHZlLgorICA3LiBTZXQgcHJvbWlzZUNhcGFiaWxpdHkuW1tS
ZWplY3RdXSB0byByZWplY3QuCisgIC4uLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueV0KKy0tLSov
CisKK3ZhciBjaGVja1BvaW50ID0gJyc7CitmdW5jdGlvbiBmbjEoZXhlY3V0b3IpIHsKKyAgY2hl
Y2tQb2ludCArPSAnYSc7CisgIGV4ZWN1dG9yKCk7CisgIGNoZWNrUG9pbnQgKz0gJ2InOworICBl
eGVjdXRvcihmdW5jdGlvbigpIHt9LCBmdW5jdGlvbigpIHt9KTsKKyAgY2hlY2tQb2ludCArPSAn
Yyc7Cit9CitmbjEucmVzb2x2ZSA9IGZ1bmN0aW9uKCkgeworICB0aHJvdyBuZXcgVGVzdDI2MkVy
cm9yKCk7Cit9OworUHJvbWlzZS5hbnkuY2FsbChmbjEsIFtdKTsKK2Fzc2VydC5zYW1lVmFsdWUo
Y2hlY2tQb2ludCwgJ2FiYycsICdleGVjdXRvciBpbml0aWFsbHkgY2FsbGVkIHdpdGggbm8gYXJn
dW1lbnRzJyk7CisKK2NoZWNrUG9pbnQgPSAnJzsKK2Z1bmN0aW9uIGZuMihleGVjdXRvcikgewor
ICBjaGVja1BvaW50ICs9ICdhJzsKKyAgZXhlY3V0b3IodW5kZWZpbmVkLCB1bmRlZmluZWQpOwor
ICBjaGVja1BvaW50ICs9ICdiJzsKKyAgZXhlY3V0b3IoZnVuY3Rpb24oKSB7fSwgZnVuY3Rpb24o
KSB7fSk7CisgIGNoZWNrUG9pbnQgKz0gJ2MnOworfQorZm4yLnJlc29sdmUgPSBmdW5jdGlvbigp
IHsKKyAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigpOworfTsKK1Byb21pc2UuYW55LmNhbGwoZm4y
LCBbXSk7Cithc3NlcnQuc2FtZVZhbHVlKGNoZWNrUG9pbnQsICdhYmMnLCAnZXhlY3V0b3IgaW5p
dGlhbGx5IGNhbGxlZCB3aXRoICh1bmRlZmluZWQsIHVuZGVmaW5lZCknKTsKKworY2hlY2tQb2lu
dCA9ICcnOworZnVuY3Rpb24gZm4zKGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOwor
ICBleGVjdXRvcih1bmRlZmluZWQsIGZ1bmN0aW9uKCkge30pOworICBjaGVja1BvaW50ICs9ICdi
JzsKKyAgZXhlY3V0b3IoZnVuY3Rpb24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7CisgIGNoZWNrUG9p
bnQgKz0gJ2MnOworfQorT2JqZWN0LmRlZmluZVByb3BlcnR5KGZuMywgJ3Jlc29sdmUnLCB7Cisg
IGdldCgpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCk7CisgIH0KK30pOworYXNzZXJ0
LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBQcm9taXNlLmFueS5jYWxsKGZuMywg
W10pOworfSwgJ2V4ZWN1dG9yIGluaXRpYWxseSBjYWxsZWQgd2l0aCAodW5kZWZpbmVkLCBmdW5j
dGlvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2hlY2tQb2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGlu
aXRpYWxseSBjYWxsZWQgd2l0aCAodW5kZWZpbmVkLCBmdW5jdGlvbiknKTsKKworY2hlY2tQb2lu
dCA9ICcnOworZnVuY3Rpb24gZm40KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOwor
ICBleGVjdXRvcihmdW5jdGlvbigpIHt9LCB1bmRlZmluZWQpOworICBjaGVja1BvaW50ICs9ICdi
JzsKKyAgZXhlY3V0b3IoZnVuY3Rpb24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7CisgIGNoZWNrUG9p
bnQgKz0gJ2MnOworfQorT2JqZWN0LmRlZmluZVByb3BlcnR5KGZuNCwgJ3Jlc29sdmUnLCB7Cisg
IGdldCgpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCk7CisgIH0KK30pOworYXNzZXJ0
LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBQcm9taXNlLmFueS5jYWxsKGZuNCwg
W10pOworfSwgJ2V4ZWN1dG9yIGluaXRpYWxseSBjYWxsZWQgd2l0aCAoZnVuY3Rpb24sIHVuZGVm
aW5lZCknKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2hlY2tQb2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGlu
aXRpYWxseSBjYWxsZWQgd2l0aCAoZnVuY3Rpb24sIHVuZGVmaW5lZCknKTsKKworY2hlY2tQb2lu
dCA9ICcnOworZnVuY3Rpb24gZm41KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOwor
ICBleGVjdXRvcignaW52YWxpZCB2YWx1ZScsIDEyMyk7CisgIGNoZWNrUG9pbnQgKz0gJ2InOwor
ICBleGVjdXRvcihmdW5jdGlvbigpIHt9LCBmdW5jdGlvbigpIHt9KTsKKyAgY2hlY2tQb2ludCAr
PSAnYyc7Cit9CitPYmplY3QuZGVmaW5lUHJvcGVydHkoZm41LCAncmVzb2x2ZScsIHsKKyAgZ2V0
KCkgeworICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoKTsKKyAgfQorfSk7Cithc3NlcnQudGhy
b3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIFByb21pc2UuYW55LmNhbGwoZm41LCBbXSk7
Cit9LCAnZXhlY3V0b3IgaW5pdGlhbGx5IGNhbGxlZCB3aXRoIChTdHJpbmcsIE51bWJlciknKTsK
K2Fzc2VydC5zYW1lVmFsdWUoY2hlY2tQb2ludCwgJ2FiJywgJ2V4ZWN1dG9yIGluaXRpYWxseSBj
YWxsZWQgd2l0aCAoU3RyaW5nLCBOdW1iZXIpJyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY2FwYWJpbGl0eS1leGVjdXRvci1ub3QtY2FsbGFibGUu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2NhcGFiaWxpdHktZXhlY3V0b3Itbm90LWNhbGxhYmxlLmpzCShub25leGlzdGVudCkKKysr
IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9jYXBhYmlsaXR5LWV4
ZWN1dG9yLW5vdC1jYWxsYWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNyBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlw
dGlvbjogPgorICBUaHJvd3MgYSBUeXBlRXJyb3IgaWYgZWl0aGVyIHJlc29sdmUgb3IgcmVqZWN0
IGNhcGFiaWxpdHkgaXMgbm90IGNhbGxhYmxlLgoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0
ZXJhYmxlICkKKworICAuLi4KKyAgMi4gTGV0IHByb21pc2VDYXBhYmlsaXR5IGJlID8gTmV3UHJv
bWlzZUNhcGFiaWxpdHkoQykuCisgIC4uLgorCisgIE5ld1Byb21pc2VDYXBhYmlsaXR5ICggQyAp
CisKKyAgLi4uCisgIDUuIExldCBleGVjdXRvciBiZSAhIENyZWF0ZUJ1aWx0aW5GdW5jdGlvbihz
dGVwcywgwqsgW1tDYXBhYmlsaXR5XV0gwrspLgorICA2LiBTZXQgZXhlY3V0b3IuW1tDYXBhYmls
aXR5XV0gdG8gcHJvbWlzZUNhcGFiaWxpdHkuCisgIDcuIExldCBwcm9taXNlIGJlID8gQ29uc3Ry
dWN0KEMsIMKrIGV4ZWN1dG9yIMK7KS4KKyAgOC4gSWYgSXNDYWxsYWJsZShwcm9taXNlQ2FwYWJp
bGl0eS5bW1Jlc29sdmVdXSkgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4K
KyAgOS4gSWYgSXNDYWxsYWJsZShwcm9taXNlQ2FwYWJpbGl0eS5bW1JlamVjdF1dKSBpcyBmYWxz
ZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAuLi4KK2ZlYXR1cmVzOiBbUHJvbWlz
ZS5hbnldCistLS0qLworCit2YXIgY2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm4xKGV4ZWN1
dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworfQorT2JqZWN0LmRlZmluZVByb3BlcnR5KGZu
MSwgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigpOyB9Cit9
KTsKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJvbWlzZS5hbnku
Y2FsbChmbjEsIFtdKTsKK30sICdleGVjdXRvciBub3QgY2FsbGVkIGF0IGFsbCcpOworYXNzZXJ0
LnNhbWVWYWx1ZShjaGVja1BvaW50LCAnYScsICdleGVjdXRvciBub3QgY2FsbGVkIGF0IGFsbCcp
OworCitjaGVja1BvaW50ID0gJyc7CitmdW5jdGlvbiBmbjIoZXhlY3V0b3IpIHsKKyAgY2hlY2tQ
b2ludCArPSAnYSc7CisgIGV4ZWN1dG9yKCk7CisgIGNoZWNrUG9pbnQgKz0gJ2InOworfQorT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KGZuMiwgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsgdGhyb3cgbmV3
IFRlc3QyNjJFcnJvcigpOyB9Cit9KTsKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlv
bigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbChmbjIsIFtdKTsKK30sICdleGVjdXRvciBjYWxsZWQg
d2l0aCBubyBhcmd1bWVudHMnKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2hlY2tQb2ludCwgJ2FiJywg
J2V4ZWN1dG9yIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cycpOworCitjaGVja1BvaW50ID0gJyc7
CitmdW5jdGlvbiBmbjMoZXhlY3V0b3IpIHsKKyAgY2hlY2tQb2ludCArPSAnYSc7CisgIGV4ZWN1
dG9yKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTsKKyAgY2hlY2tQb2ludCArPSAnYic7Cit9CitPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoZm4zLCAncmVzb2x2ZScsIHsKKyAgZ2V0KCkgeyB0aHJvdyBuZXcg
VGVzdDI2MkVycm9yKCk7IH0KK30pOworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9u
KCkgeworICBQcm9taXNlLmFueS5jYWxsKGZuMywgW10pOworfSwgJ2V4ZWN1dG9yIGNhbGxlZCB3
aXRoICh1bmRlZmluZWQsIHVuZGVmaW5lZCknKTsKK2Fzc2VydC5zYW1lVmFsdWUoY2hlY2tQb2lu
dCwgJ2FiJywgJ2V4ZWN1dG9yIGNhbGxlZCB3aXRoICh1bmRlZmluZWQsIHVuZGVmaW5lZCknKTsK
KworY2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm40KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9p
bnQgKz0gJ2EnOworICBleGVjdXRvcih1bmRlZmluZWQsIGZ1bmN0aW9uKCkge30pOworICBjaGVj
a1BvaW50ICs9ICdiJzsKK30KK09iamVjdC5kZWZpbmVQcm9wZXJ0eShmbjQsICdyZXNvbHZlJywg
eworICBnZXQoKSB7IHRocm93IG5ldyBUZXN0MjYyRXJyb3IoKTsgfQorfSk7Cithc3NlcnQudGhy
b3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIFByb21pc2UuYW55LmNhbGwoZm40LCBbXSk7
Cit9LCAnZXhlY3V0b3IgY2FsbGVkIHdpdGggKHVuZGVmaW5lZCwgZnVuY3Rpb24pJyk7Cithc3Nl
cnQuc2FtZVZhbHVlKGNoZWNrUG9pbnQsICdhYicsICdleGVjdXRvciBjYWxsZWQgd2l0aCAodW5k
ZWZpbmVkLCBmdW5jdGlvbiknKTsKKworY2hlY2tQb2ludCA9ICcnOworZnVuY3Rpb24gZm41KGV4
ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworICBleGVjdXRvcihmdW5jdGlvbigpIHt9
LCB1bmRlZmluZWQpOworICBjaGVja1BvaW50ICs9ICdiJzsKK30KK09iamVjdC5kZWZpbmVQcm9w
ZXJ0eShmbjUsICdyZXNvbHZlJywgeworICBnZXQoKSB7IHRocm93IG5ldyBUZXN0MjYyRXJyb3Io
KTsgfQorfSk7Cithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIFByb21p
c2UuYW55LmNhbGwoZm41LCBbXSk7Cit9LCAnZXhlY3V0b3IgY2FsbGVkIHdpdGggKGZ1bmN0aW9u
LCB1bmRlZmluZWQpJyk7Cithc3NlcnQuc2FtZVZhbHVlKGNoZWNrUG9pbnQsICdhYicsICdleGVj
dXRvciBjYWxsZWQgd2l0aCAoZnVuY3Rpb24sIHVuZGVmaW5lZCknKTsKKworY2hlY2tQb2ludCA9
ICcnOworZnVuY3Rpb24gZm42KGV4ZWN1dG9yKSB7CisgIGNoZWNrUG9pbnQgKz0gJ2EnOworICBl
eGVjdXRvcigxMjMsICdpbnZhbGlkIHZhbHVlJyk7CisgIGNoZWNrUG9pbnQgKz0gJ2InOworfQor
T2JqZWN0LmRlZmluZVByb3BlcnR5KGZuNiwgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsgdGhyb3cg
bmV3IFRlc3QyNjJFcnJvcigpOyB9Cit9KTsKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5j
dGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbChmbjYsIFtdKTsKK30sICdleGVjdXRvciBjYWxs
ZWQgd2l0aCAoTnVtYmVyLCBTdHJpbmcpJyk7Cithc3NlcnQuc2FtZVZhbHVlKGNoZWNrUG9pbnQs
ICdhYicsICdleGVjdXRvciBjYWxsZWQgd2l0aCAoTnVtYmVyLCBTdHJpbmcpJyk7CkluZGV4OiBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LWN0b3ItdGhyb3dz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FueS9jdHgtY3Rvci10aHJvd3MuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2N0eC1jdG9yLXRocm93cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDI1IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFu
b3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhl
IEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlw
dGlvbjogPgorICBQcm9taXNlLmFueSBpbnZva2VkIG9uIGEgY29uc3RydWN0b3IgdmFsdWUgdGhh
dCB0aHJvd3MgYW4gZXJyb3IKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzogfAorICAyLiBM
ZXQgcHJvbWlzZUNhcGFiaWxpdHkgYmUgPyBOZXdQcm9taXNlQ2FwYWJpbGl0eShDKS4KKworICBO
ZXdQcm9taXNlQ2FwYWJpbGl0eQorCisgIC4uLgorICA3LiBMZXQgcHJvbWlzZSBiZSA/IENvbnN0
cnVjdChDLCDCqyBleGVjdXRvciDCuykuCisKK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0q
LworCitmdW5jdGlvbiBDdXN0b21Qcm9taXNlKCkgeworICB0aHJvdyBuZXcgVGVzdDI2MkVycm9y
KCk7Cit9CisKK2Fzc2VydC50aHJvd3MoVGVzdDI2MkVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJv
bWlzZS5hbnkuY2FsbChDdXN0b21Qcm9taXNlKTsKK30pOwpJbmRleDogSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2N0eC1jdG9yLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9jdHgtY3Rvci5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
Y3R4LWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorLy8gQ29weXJpZ2h0
IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBj
b2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBm
aWxlLgorCisvKi0tLQorZGVzY3JpcHRpb246ID4KKyAgUHJvbWlzZS5hbnkgaW52b2tlZCBvbiBh
IGNvbnN0cnVjdG9yIHZhbHVlCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgMi4g
TGV0IHByb21pc2VDYXBhYmlsaXR5IGJlID8gTmV3UHJvbWlzZUNhcGFiaWxpdHkoQykuCisgIC4u
LgorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJhdG9yUmVjb3JkLCBD
LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorICA3LiBSZXR1cm4gQ29tcGxldGlvbihyZXN1
bHQpLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgY2xhc3NdCistLS0qLworCit2YXIgZXhlY3V0
b3IgPSBudWxsOwordmFyIGNhbGxDb3VudCA9IDA7CisKK2NsYXNzIFN1YlByb21pc2UgZXh0ZW5k
cyBQcm9taXNlIHsKKyAgY29uc3RydWN0b3IoYSkgeworICAgIHN1cGVyKGEpOworICAgIGV4ZWN1
dG9yID0gYTsKKyAgICBjYWxsQ291bnQgKz0gMTsKKyAgfQorfQorCit2YXIgaW5zdGFuY2UgPSBQ
cm9taXNlLmFueS5jYWxsKFN1YlByb21pc2UsIFtdKTsKKworYXNzZXJ0LnNhbWVWYWx1ZShpbnN0
YW5jZS5jb25zdHJ1Y3RvciwgU3ViUHJvbWlzZSk7Cithc3NlcnQuc2FtZVZhbHVlKGluc3RhbmNl
IGluc3RhbmNlb2YgU3ViUHJvbWlzZSwgdHJ1ZSk7CisKK2Fzc2VydC5zYW1lVmFsdWUoY2FsbENv
dW50LCAxKTsKK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIGV4ZWN1dG9yLCAnZnVuY3Rpb24nKTsK
SW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9jdHgtbm9u
LWN0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1By
b21pc2UvYW55L2N0eC1ub24tY3Rvci5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvY3R4LW5vbi1jdG9yLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5v
di4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUg
QlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0
aW9uOiA+CisgIFByb21pc2UuYW55IGludm9rZWQgb24gYSBub24tY29uc3RydWN0b3IgdmFsdWUK
K2VzaWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzogfAorICAuLi4KKyAgMi4gTGV0IHByb21pc2VD
YXBhYmlsaXR5IGJlID8gTmV3UHJvbWlzZUNhcGFiaWxpdHkoQykuCisKKyAgTmV3UHJvbWlzZUNh
cGFiaWxpdHkgKCBDICkKKworICAxLiBJZiBJc0NvbnN0cnVjdG9yKEMpIGlzIGZhbHNlLCB0aHJv
dyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisKK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJv
bF0KKy0tLSovCisKK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIFByb21pc2UuYW55LCAnZnVuY3Rp
b24nKTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBQcm9taXNl
LmFueS5jYWxsKGV2YWwpOworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlv
bigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbCh1bmRlZmluZWQsIFtdKTsKK30pOworCithc3NlcnQu
dGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIFByb21pc2UuYW55LmNhbGwobnVsbCwg
W10pOworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJv
bWlzZS5hbnkuY2FsbCg4NiwgW10pOworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBm
dW5jdGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbCgnc3RyaW5nJywgW10pOworfSk7CisKK2Fz
c2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgUHJvbWlzZS5hbnkuY2FsbCh0
cnVlLCBbXSk7Cit9KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewor
ICBQcm9taXNlLmFueS5jYWxsKFN5bWJvbCgpLCBbXSk7Cit9KTsKSW5kZXg6IEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1lcnJvci1jbG9z
ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlz
ZS9hbnkvaW52b2tlLXJlc29sdmUtZXJyb3ItY2xvc2UuanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWVy
cm9yLWNsb3NlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEV4cGxpY2l0
IGl0ZXJhdG9yIGNsb3NpbmcgaW4gcmVzcG9uc2UgdG8gZXJyb3IKK2VzaWQ6IHNlYy1wcm9taXNl
LmFueQoraW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJh
dG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDYuIElmIHJlc3VsdCBpcyBhbiBh
YnJ1cHQgY29tcGxldGlvbiwgdGhlbgorICAgIGEuIElmIGl0ZXJhdG9yUmVjb3JkLltbRG9uZV1d
IGlzIGZhbHNlLCBzZXQgcmVzdWx0IHRvIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNvcmQsIHJl
c3VsdCkuCisgICAgYi4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKHJlc3VsdCwgcHJvbWlzZUNhcGFi
aWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIDgu
IFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlz
ZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorZmxhZ3M6IFthc3luY10K
K2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgY29tcHV0ZWQtcHJvcGVy
dHktbmFtZXMsIFN5bWJvbCwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgZXJyb3IgPSBu
ZXcgVGVzdDI2MkVycm9yKCk7CitsZXQgbmV4dENvdW50ID0gMDsKK2xldCByZXR1cm5Db3VudCA9
IDA7CitsZXQgaXRlciA9IHsKKyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CisgICAgcmV0dXJuIHsK
KyAgICAgIG5leHQoKSB7CisgICAgICAgIG5leHRDb3VudCArPSAxOworICAgICAgICByZXR1cm4g
eworICAgICAgICAgIHZhbHVlOiBudWxsLAorICAgICAgICAgIGRvbmU6IGZhbHNlCisgICAgICAg
IH07CisgICAgICB9LAorICAgICAgcmV0dXJuKCkgeworICAgICAgICByZXR1cm5Db3VudCArPSAx
OworICAgICAgfQorICAgIH07CisgIH0KK307CisKK1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9u
KCkgeworICB0aHJvdyBlcnJvcjsKK307CisKK1Byb21pc2UuYW55KGl0ZXIpLnRoZW4oKCkgPT4g
eworICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29s
dmVkJyk7Cit9LCAocmVhc29uKSA9PiB7CisgIGFzc2VydC5zYW1lVmFsdWUobmV4dENvdW50LCAx
KTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZXR1cm5Db3VudCwgMSk7CisgIGFzc2VydC5zYW1lVmFs
dWUocmVhc29uLCBlcnJvcik7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CkluZGV4OiBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZXJyb3It
cmVqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1lcnJvci1yZWplY3QuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNv
bHZlLWVycm9yLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogUHJvbWlz
ZSByZWplY3Rpb24gaW4gcmVzcG9uc2UgdG8gZXJyb3IKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQor
aW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJhdG9yUmVj
b3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDYuIElmIHJlc3VsdCBpcyBhbiBhYnJ1cHQg
Y29tcGxldGlvbiwgdGhlbgorICAgIGEuIElmIGl0ZXJhdG9yUmVjb3JkLltbRG9uZV1dIGlzIGZh
bHNlLCBzZXQgcmVzdWx0IHRvIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNvcmQsIHJlc3VsdCku
CisgICAgYi4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKHJlc3VsdCwgcHJvbWlzZUNhcGFiaWxpdHkp
LgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIDguIFJlcGVh
dAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlzZVJlc29s
dmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorCitmbGFnczogW2FzeW5jXQorZmVh
dHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgZXJyb3Ig
PSBuZXcgVGVzdDI2MkVycm9yKCk7CitQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlvbigpIHsKKyAg
dGhyb3cgZXJyb3I7Cit9OworCitQcm9taXNlLmFueShbMV0pLnRoZW4oKCkgPT4geworICAgICRE
T05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsK
KyAgfSwgKHJlYXNvbikgPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUocmVhc29uLCBlcnJvcik7
CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3ItY2xvc2UuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2lu
dm9rZS1yZXNvbHZlLWdldC1lcnJvci1jbG9zZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LWVy
cm9yLWNsb3NlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHJl
dHJpZXZpbmcgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBub3Qgb3BlbmluZyBp
dGVyYXRvcgorZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQg
YmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5
KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4g
SWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0
b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFBy
b21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6
IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgOC4gUmVwZWF0CisgICAgLi4uCisgICAgaS4gTGV0IG5l
eHRQcm9taXNlIGJlID8gQ2FsbChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3IsIMKrIG5leHRW
YWx1ZSDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1i
b2wuaXRlcmF0b3IsIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzLCBTeW1ib2wsIGFycm93LWZ1bmN0
aW9uXQorLS0tKi8KKworbGV0IGVycm9yID0gbmV3IFRlc3QyNjJFcnJvcigpOworbGV0IG5leHRD
b3VudCA9IDA7CitsZXQgcmV0dXJuQ291bnQgPSAwOworbGV0IGl0ZXIgPSB7CisgIFtTeW1ib2wu
aXRlcmF0b3JdKCkgeworICAgIHJldHVybiB7CisgICAgICBuZXh0KCkgeworICAgICAgICBuZXh0
Q291bnQgKz0gMTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICB2YWx1ZTogbnVsbCwKKyAg
ICAgICAgICBkb25lOiBmYWxzZQorICAgICAgICB9OworICAgICAgfSwKKyAgICAgIHJldHVybigp
IHsKKyAgICAgICAgcmV0dXJuQ291bnQgKz0gMTsKKyAgICAgIH0KKyAgICB9OworICB9Cit9Owor
CitPYmplY3QuZGVmaW5lUHJvcGVydHkoUHJvbWlzZSwgJ3Jlc29sdmUnLCB7CisgIGdldCgpIHsK
KyAgICB0aHJvdyBlcnJvcjsKKyAgfQorfSk7CisKKworUHJvbWlzZS5hbnkoaXRlcikudGhlbigo
KSA9PiB7CisgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMg
cmVzb2x2ZWQnKTsKK30sIChyZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShuZXh0Q291
bnQsIDApOworICBhc3NlcnQuc2FtZVZhbHVlKHJldHVybkNvdW50LCAxKTsKKyAgYXNzZXJ0LnNh
bWVWYWx1ZShyZWFzb24sIGVycm9yKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1n
ZXQtZXJyb3ItcmVqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3ItcmVqZWN0LmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9pbnZva2UtcmVzb2x2ZS1nZXQtZXJyb3ItcmVqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzUgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sg
V2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBi
eSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rl
c2NyaXB0aW9uOiA+CisgIEVycm9yIHJldHJpZXZpbmcgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29s
dmVgIG1ldGhvZCAocmVqZWN0aW5nIHByb21pc2UpCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2lu
Zm86IHwKKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29y
ZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICA2LiBJZiByZXN1bHQgaXMgYW4gYWJydXB0IGNv
bXBsZXRpb24sIHRoZW4KKyAgICBhLiBJZiBpdGVyYXRvclJlY29yZC5bW0RvbmVdXSBpcyBmYWxz
ZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yUmVjb3JkLCByZXN1bHQpLgor
ICAgIGIuIElmQWJydXB0UmVqZWN0UHJvbWlzZShyZXN1bHQsIHByb21pc2VDYXBhYmlsaXR5KS4K
KworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkKKworICA4LiBSZXBlYXQK
KyAgICAuLi4KKyAgICBpLiBMZXQgbmV4dFByb21pc2UgYmUgPyBDYWxsKHByb21pc2VSZXNvbHZl
LCBjb25zdHJ1Y3RvciwgwqsgbmV4dFZhbHVlIMK7KS4KKworZmxhZ3M6IFthc3luY10KK2ZlYXR1
cmVzOiBbUHJvbWlzZS5hbnksIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKworbGV0IGVycm9yID0g
bmV3IFRlc3QyNjJFcnJvcigpOworT2JqZWN0LmRlZmluZVByb3BlcnR5KFByb21pc2UsICdyZXNv
bHZlJywgeworICBnZXQoKSB7CisgICAgdGhyb3cgZXJyb3I7CisgIH0KK30pOworCitQcm9taXNl
LmFueShbMV0pLnRoZW4oKCkgPT4geworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUg
cmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgKHJlYXNvbikgPT4geworICAgIGFz
c2VydC5zYW1lVmFsdWUocmVhc29uLCBlcnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsK
SW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2Ut
cmVzb2x2ZS1nZXQtb25jZS1tdWx0aXBsZS1jYWxscy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtZ2V0LW9u
Y2UtbXVsdGlwbGUtY2FsbHMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWdldC1vbmNlLW11bHRpcGxl
LWNhbGxzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8vIENvcHlyaWdodCAo
QykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEdldHMgY29uc3Ry
dWN0b3IncyBgcmVzb2x2ZWAgbWV0aG9kIG9uY2UgZnJvbSB6ZXJvIHRvIG1hbnkgaW52b2NhdGlv
bnMuCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0IHJlc3VsdCBiZSBQ
ZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgor
ICA2LiBJZiByZXN1bHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHRoZW4KKyAgICBhLiBJZiBp
dGVyYXRvclJlY29yZC5bW0RvbmVdXSBpcyBmYWxzZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRvckNs
b3NlKGl0ZXJhdG9yUmVjb3JkLCByZXN1bHQpLgorICAgIGIuIElmQWJydXB0UmVqZWN0UHJvbWlz
ZShyZXN1bHQsIHByb21pc2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVy
Zm9ybVByb21pc2VBbnkKKworICA2LiBMZXQgcHJvbWlzZVJlc29sdmUgYmUgPyBHZXQoY29uc3Ry
dWN0b3IsICJyZXNvbHZlIikuCisgIDcuIElmICEgSXNDYWxsYWJsZShwcm9taXNlUmVzb2x2ZSkg
aXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgOC4gUmVwZWF0CisgICAg
Li4uCisgICAgaS4gTGV0IG5leHRQcm9taXNlIGJlID8gQ2FsbChwcm9taXNlUmVzb2x2ZSwgY29u
c3RydWN0b3IsIMKrIG5leHRWYWx1ZSDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczog
W1Byb21pc2UuYW55LCBhcnJvdy1mdW5jdGlvbiwgZGVzdHJ1Y3R1cmluZy1iaW5kaW5nXQorLS0t
Ki8KKworbGV0IHByb21pc2VzID0gWworICBQcm9taXNlLnJlamVjdCgxKSwKKyAgUHJvbWlzZS5y
ZWplY3QoMSksCisgIFByb21pc2UucmVqZWN0KDEpLAorXTsKK2xldCBib3VuZFByb21pc2VSZXNv
bHZlID0gUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CitsZXQgZ2V0Q291bnQgPSAwOwor
bGV0IGNhbGxDb3VudCA9IDA7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShQcm9taXNlLCAncmVz
b2x2ZScsIHsKKyAgY29uZmlndXJhYmxlOiB0cnVlLAorICBnZXQoKSB7CisgICAgZ2V0Q291bnQg
Kz0gMTsKKyAgICByZXR1cm4gZnVuY3Rpb24oLi4uYXJncykgeworICAgICAgY2FsbENvdW50ICs9
IDE7CisgICAgICByZXR1cm4gYm91bmRQcm9taXNlUmVzb2x2ZSguLi5hcmdzKTsKKyAgICB9Owor
ICB9Cit9KTsKKworUHJvbWlzZS5hbnkocHJvbWlzZXMpLnRoZW4oKCkgPT4geworICAgICRET05F
KCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAg
fSwgKHtlcnJvcnN9KSA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShnZXRDb3VudCwgMSk7Cisg
ICAgYXNzZXJ0LnNhbWVWYWx1ZShjYWxsQ291bnQsIDMpOworICAgIGFzc2VydC5zYW1lVmFsdWUo
ZXJyb3JzLmxlbmd0aCwgMyk7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKKworCkluZGV4OiBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUt
Z2V0LW9uY2Utbm8tY2FsbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLWdldC1vbmNlLW5vLWNhbGxzLmpz
CShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNl
L2FueS9pbnZva2UtcmVzb2x2ZS1nZXQtb25jZS1uby1jYWxscy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBS
aWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0t
CitkZXNjcmlwdGlvbjogPgorICBHZXRzIGNvbnN0cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBv
bmNlIGZyb20gemVybyB0byBtYW55IGludm9jYXRpb25zLgorZXNpZDogc2VjLXByb21pc2UuYW55
CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JS
ZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVw
dCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMg
ZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0
KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0
eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgNi4gTGV0
IHByb21pc2VSZXNvbHZlIGJlID8gR2V0KGNvbnN0cnVjdG9yLCAicmVzb2x2ZSIpLgorICA3LiBJ
ZiAhIElzQ2FsbGFibGUocHJvbWlzZVJlc29sdmUpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJv
ciBleGNlcHRpb24uCisgIDguIFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlz
ZSBiZSA/IENhbGwocHJvbWlzZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrsp
LgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rp
b24sIGRlc3RydWN0dXJpbmctYmluZGluZ10KKy0tLSovCisKK2xldCBib3VuZFByb21pc2VSZXNv
bHZlID0gUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CitsZXQgZ2V0Q291bnQgPSAwOwor
bGV0IGNhbGxDb3VudCA9IDA7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShQcm9taXNlLCAncmVz
b2x2ZScsIHsKKyAgY29uZmlndXJhYmxlOiB0cnVlLAorICBnZXQoKSB7CisgICAgZ2V0Q291bnQg
Kz0gMTsKKyAgICByZXR1cm4gZnVuY3Rpb24oLi4uYXJncykgeworICAgICAgY2FsbENvdW50ICs9
IDE7CisgICAgICByZXR1cm4gYm91bmRQcm9taXNlUmVzb2x2ZSguLi5hcmdzKTsKKyAgICB9Owor
ICB9Cit9KTsKKworUHJvbWlzZS5hbnkoW10pLnRoZW4oKCkgPT4geworICAgICRET05FKCdUaGUg
cHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgKHtl
cnJvcnN9KSA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShnZXRDb3VudCwgMSk7CisgICAgYXNz
ZXJ0LnNhbWVWYWx1ZShjYWxsQ291bnQsIDApOworICAgIGFzc2VydC5zYW1lVmFsdWUoZXJyb3Jz
Lmxlbmd0aCwgMCk7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKKworCkluZGV4OiBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtbm90LWNh
bGxhYmxlLXJlamVjdHMtd2l0aC10eXBlcnJvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtbm90LWNhbGxh
YmxlLXJlamVjdHMtd2l0aC10eXBlcnJvci5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtbm90LWNhbGxh
YmxlLXJlamVjdHMtd2l0aC10eXBlcnJvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4
IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBJZiB0aGUg
Y29uc3RydWN0b3IncyBgcmVzb2x2ZWAgbWV0aG9kIGlzIG5vdCBjYWxsYWJsZSwgcmVqZWN0IHdp
dGggYSBUeXBlRXJyb3IuCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0
IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNh
cGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisg
IDYuIExldCBwcm9taXNlUmVzb2x2ZSBiZSA/IEdldChjb25zdHJ1Y3RvciwgInJlc29sdmUiKS4K
KyAgNy4gSWYgISBJc0NhbGxhYmxlKHByb21pc2VSZXNvbHZlKSBpcyBmYWxzZSwgdGhyb3cgYSBU
eXBlRXJyb3IgZXhjZXB0aW9uLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNl
LmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitQcm9taXNlLnJlc29sdmUgPSBudWxsOwor
CitQcm9taXNlLmFueShbMV0pCisgIC50aGVuKAorICAgICgpID0+ICRET05FKCdUaGUgcHJvbWlz
ZSBzaG91bGQgbm90IGJlIHJlc29sdmVkLicpLAorICAgIGVycm9yID0+IHsKKyAgICAgIGFzc2Vy
dChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgICAgfQorICApLnRoZW4oJERPTkUsICRE
T05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9p
bnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3VzdG9tLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9p
bnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3VzdG9tLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24tb2YtY3VzdG9tLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBT
ZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zl
cm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyot
LS0KK2Rlc2NyaXB0aW9uOiA+CisgIEludm9jYXRpb24gb2YgdGhlIGNvbnN0cnVjdG9yJ3MgYHJl
c29sdmVgIG1ldGhvZCBmb3IgaXRlcmFibGUgd2l0aCBwcm9taXNlIHZhbHVlcworZXNpZDogc2Vj
LXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VB
bnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNl
bWFudGljczogUGVyZm9ybVByb21pc2VBbnkKKworICA4LiBSZXBlYXQKKyAgICAuLi4KKyAgICBp
LiBMZXQgbmV4dFByb21pc2UgYmUgPyBDYWxsKHByb21pc2VSZXNvbHZlLCBjb25zdHJ1Y3Rvciwg
wqsgbmV4dFZhbHVlIMK7KS4KKworZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5h
bnksIGNsYXNzLCBhcnJvdy1mdW5jdGlvbl0KKy0tLSovCitjbGFzcyBDdXN0b20gZXh0ZW5kcyBQ
cm9taXNlIHt9CisKK2xldCB2YWx1ZXMgPSBbMSwgMSwgMV07CitsZXQgY3Jlc29sdmVDYWxsQ291
bnQgPSAwOworbGV0IHByZXNvbHZlQ2FsbENvdW50ID0gMDsKK2xldCBib3VuZEN1c3RvbVJlc29s
dmUgPSBDdXN0b20ucmVzb2x2ZS5iaW5kKEN1c3RvbSk7CitsZXQgYm91bmRQcm9taXNlUmVzb2x2
ZSA9IFByb21pc2UucmVzb2x2ZS5iaW5kKFByb21pc2UpOworCitDdXN0b20ucmVzb2x2ZSA9IGZ1
bmN0aW9uKC4uLmFyZ3MpIHsKKyAgY3Jlc29sdmVDYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJv
dW5kQ3VzdG9tUmVzb2x2ZSguLi5hcmdzKTsKK307CisKK1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0
aW9uKC4uLmFyZ3MpIHsKKyAgcHJlc29sdmVDYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJvdW5k
UHJvbWlzZVJlc29sdmUoLi4uYXJncyk7Cit9OworCitQcm9taXNlLmFueS5jYWxsKEN1c3RvbSwg
dmFsdWVzKQorICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKHByZXNvbHZl
Q2FsbENvdW50LCAwLCAnYFByb21pc2UucmVzb2x2ZWAgaXMgbmV2ZXIgaW52b2tlZCcpOworICAg
ICAgYXNzZXJ0LnNhbWVWYWx1ZShjcmVzb2x2ZUNhbGxDb3VudCwgMywgJ2BDdXN0b20ucmVzb2x2
ZWAgaW52b2tlZCBvbmNlIGZvciBldmVyeSBpdGVyYXRlZCBwcm9taXNlJyk7CisgICAgfSwgJERP
TkUpLnRoZW4oJERPTkUsICRET05FKTsKKwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJh
dGlvbi1vZi1wcm9taXNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi1wcm9taXNlcy1ldmVyeS1pdGVy
YXRpb24tb2YtcHJvbWlzZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtb24tcHJvbWlzZXMtZXZlcnkt
aXRlcmF0aW9uLW9mLXByb21pc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZGVzY3JpcHRpb246ID4KKyAgSW52b2NhdGlvbiBv
ZiB0aGUgY29uc3RydWN0b3IncyBgcmVzb2x2ZWAgbWV0aG9kIGZvciBpdGVyYWJsZSB3aXRoIHBy
b21pc2UgdmFsdWVzCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0IHJl
c3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFi
aWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIDgu
IFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwocHJvbWlz
ZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorCitmbGFnczogW2FzeW5j
XQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQg
dmFsdWVzID0gWzEsMSwxXTsKK2xldCBjYWxsQ291bnQgPSAwOworbGV0IGJvdW5kUHJvbWlzZVJl
c29sdmUgPSBQcm9taXNlLnJlc29sdmUuYmluZChQcm9taXNlKTsKKworUHJvbWlzZS5yZXNvbHZl
ID0gZnVuY3Rpb24oLi4uYXJncykgeworICBjYWxsQ291bnQgKz0gMTsKKyAgcmV0dXJuIGJvdW5k
UHJvbWlzZVJlc29sdmUoLi4uYXJncyk7Cit9OworCitQcm9taXNlLmFueSh2YWx1ZXMpCisgIC50
aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydC5zYW1lVmFsdWUoY2FsbENvdW50LCAzLCAnYHRoZW5g
IGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0ZWQgcHJvbWlzZScpOworICAgIH0sICRET05F
KS50aGVuKCRET05FLCAkRE9ORSk7CisKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi12YWx1ZXMtZXZlcnktaXRlcmF0aW9u
LW9mLWN1c3RvbS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtb24tdmFsdWVzLWV2ZXJ5LWl0ZXJhdGlvbi1v
Zi1jdXN0b20uanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXZhbHVlcy1ldmVyeS1pdGVyYXRpb24t
b2YtY3VzdG9tLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8vIENvcHlyaWdo
dCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMg
Y29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEludm9jYXRpb24gb2YgdGhlIGNvbnN0
cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBmb3IgaXRlcmFibGUgd2l0aCBub24tcHJvbWlzZSB2
YWx1ZXMKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJl
IFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSku
CisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgOC4gUmVwZWF0
CisgICAgLi4uCisgICAgaS4gTGV0IG5leHRQcm9taXNlIGJlID8gQ2FsbChwcm9taXNlUmVzb2x2
ZSwgY29uc3RydWN0b3IsIMKrIG5leHRWYWx1ZSDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0
dXJlczogW1Byb21pc2UuYW55LCBjbGFzcywgYXJyb3ctZnVuY3Rpb25dCistLS0qLworY2xhc3Mg
Q3VzdG9tIGV4dGVuZHMgUHJvbWlzZSB7fQorCitsZXQgdmFsdWVzID0gWzEsIDIsIDNdOworbGV0
IGNyZXNvbHZlQ2FsbENvdW50ID0gMDsKK2xldCBwcmVzb2x2ZUNhbGxDb3VudCA9IDA7CitsZXQg
Ym91bmRDdXN0b21SZXNvbHZlID0gQ3VzdG9tLnJlc29sdmUuYmluZChDdXN0b20pOworbGV0IGJv
dW5kUHJvbWlzZVJlc29sdmUgPSBQcm9taXNlLnJlc29sdmUuYmluZChQcm9taXNlKTsKKworQ3Vz
dG9tLnJlc29sdmUgPSBmdW5jdGlvbiguLi5hcmdzKSB7CisgIGNyZXNvbHZlQ2FsbENvdW50ICs9
IDE7CisgIHJldHVybiBib3VuZEN1c3RvbVJlc29sdmUoLi4uYXJncyk7Cit9OworCitQcm9taXNl
LnJlc29sdmUgPSBmdW5jdGlvbiguLi5hcmdzKSB7CisgIHByZXNvbHZlQ2FsbENvdW50ICs9IDE7
CisgIHJldHVybiBib3VuZFByb21pc2VSZXNvbHZlKC4uLmFyZ3MpOworfTsKKworUHJvbWlzZS5h
bnkuY2FsbChDdXN0b20sIHZhbHVlcykKKyAgLnRoZW4oKCkgPT4geworICAgICAgYXNzZXJ0LnNh
bWVWYWx1ZShwcmVzb2x2ZUNhbGxDb3VudCwgMCwgJ2BQcm9taXNlLnJlc29sdmVgIGlzIG5ldmVy
IGludm9rZWQnKTsKKyAgICAgIGFzc2VydC5zYW1lVmFsdWUoY3Jlc29sdmVDYWxsQ291bnQsIDMs
ICdgQ3VzdG9tLnJlc29sdmVgIGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0ZWQgcHJvbWlz
ZScpOworICAgIH0sICRET05FKS50aGVuKCRET05FLCAkRE9ORSk7CisKSW5kZXg6IEpTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS1vbi12YWx1
ZXMtZXZlcnktaXRlcmF0aW9uLW9mLXByb21pc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS1yZXNvbHZlLW9uLXZhbHVl
cy1ldmVyeS1pdGVyYXRpb24tb2YtcHJvbWlzZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUtb24tdmFs
dWVzLWV2ZXJ5LWl0ZXJhdGlvbi1vZi1wcm9taXNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzQgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIElu
dm9jYXRpb24gb2YgdGhlIGNvbnN0cnVjdG9yJ3MgYHJlc29sdmVgIG1ldGhvZCBmb3IgaXRlcmFi
bGUgd2l0aCBub24tcHJvbWlzZSB2YWx1ZXMKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzog
fAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJhdG9yUmVjb3JkLCBD
LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9t
aXNlQW55CisKKyAgOC4gUmVwZWF0CisgICAgLi4uCisgICAgaS4gTGV0IG5leHRQcm9taXNlIGJl
ID8gQ2FsbChwcm9taXNlUmVzb2x2ZSwgY29uc3RydWN0b3IsIMKrIG5leHRWYWx1ZSDCuykuCisK
K2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBhcnJvdy1mdW5jdGlvbl0K
Ky0tLSovCisKK2xldCB2YWx1ZXMgPSBbMSwgMiwgM107CitsZXQgY2FsbENvdW50ID0gMDsKK2xl
dCBib3VuZFByb21pc2VSZXNvbHZlID0gUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CisK
K1Byb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgY2FsbENvdW50ICs9IDE7
CisgIHJldHVybiBib3VuZFByb21pc2VSZXNvbHZlKC4uLmFyZ3MpOworfTsKKworUHJvbWlzZS5h
bnkodmFsdWVzKQorICAudGhlbigoKSA9PiB7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKGNhbGxD
b3VudCwgMywgJ2BQcm9taXNlLnJlc29sdmVgIGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0
ZWQgdmFsdWUnKTsKKyAgICB9LCAkRE9ORSkudGhlbigkRE9ORSwgJERPTkUpOworCkluZGV4OiBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXJlc29sdmUu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2ludm9rZS1yZXNvbHZlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtcmVzb2x2ZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3Ys
IDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlz
IGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgor
CisvKi0tLQorZGVzY3JpcHRpb246ID4KKyAgSW52b2NhdGlvbiBvZiB0aGUgY29uc3RydWN0b3In
cyBgcmVzb2x2ZWAgbWV0aG9kCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4g
TGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlz
ZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQor
CisgIDguIFJlcGVhdAorICAgIC4uLgorICAgIGkuIExldCBuZXh0UHJvbWlzZSBiZSA/IENhbGwo
cHJvbWlzZVJlc29sdmUsIGNvbnN0cnVjdG9yLCDCqyBuZXh0VmFsdWUgwrspLgorICAgIC4uLgor
ICAgIHIuIFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2Fw
YWJpbGl0eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNd
CitmZWF0dXJlczogW1Byb21pc2UuYW55LCBhcnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK2xldCBi
b3VuZFByb21pc2VSZXNvbHZlID0gUHJvbWlzZS5yZXNvbHZlLmJpbmQoUHJvbWlzZSk7CisKK1By
b21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShh
cmdzLmxlbmd0aCwgMSwgJ2ByZXNvbHZlYCBpbnZva2VkIHdpdGggYSBzaW5nbGUgYXJndW1lbnQn
KTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZSh0aGlzLCBQcm9taXNlLCAnYHRoaXNgIHZhbHVlIGlzIHRo
ZSBjb25zdHJ1Y3RvcicpOworICByZXR1cm4gYm91bmRQcm9taXNlUmVzb2x2ZSguLi5hcmdzKTsK
K307CisKK1Byb21pc2UuYW55KFsxXSkudGhlbigoKSA9PiAkRE9ORSgpLCAkRE9ORSk7CkluZGV4
OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4t
ZXJyb3ItY2xvc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLWVycm9yLWNsb3NlLmpzCShub25leGlzdGVudCkK
KysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhl
bi1lcnJvci1jbG9zZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUwIEBACisvLyBDb3B5
cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZGVzY3JpcHRpb246ID4KKyAgRXJyb3Ig
dGhyb3duIHdoZW4gaW52b2tpbmcgdGhlIGluc3RhbmNlJ3MgYHRoZW5gIG1ldGhvZCAoY2xvc2lu
ZyBpdGVyYXRvcikKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQoraW5mbzogfAorICA1LiBMZXQgcmVz
dWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJhdG9yUmVjb3JkLCBDLCBwcm9taXNlQ2FwYWJp
bGl0eSkuCisgIDYuIElmIHJlc3VsdCBpcyBhbiBhYnJ1cHQgY29tcGxldGlvbiwgdGhlbgorICAg
IGEuIElmIGl0ZXJhdG9yUmVjb3JkLltbRG9uZV1dIGlzIGZhbHNlLCBzZXQgcmVzdWx0IHRvIEl0
ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNvcmQsIHJlc3VsdCkuCisgICAgYi4gSWZBYnJ1cHRSZWpl
Y3RQcm9taXNlKHJlc3VsdCwgcHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2VtYW50
aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIHIuIFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21p
c2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVu
dCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2wu
aXRlcmF0b3IsIGFycm93LWZ1bmN0aW9uLCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywgU3ltYm9s
XQorLS0tKi8KKworbGV0IGVycm9yID0gbmV3IFRlc3QyNjJFcnJvcigpOworbGV0IHByb21pc2Ug
PSBQcm9taXNlLnJlc29sdmUoKTsKK2xldCByZXR1cm5Db3VudCA9IDA7CitsZXQgaXRlciA9IHsK
KyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CisgICAgcmV0dXJuIHsKKyAgICAgIG5leHQoKSB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgZG9uZTogZmFsc2UsCisgICAgICAgICAgdmFsdWU6
IHByb21pc2UKKyAgICAgICAgfTsKKyAgICAgIH0sCisgICAgICByZXR1cm4oKSB7CisgICAgICAg
IHJldHVybkNvdW50ICs9IDE7CisgICAgICAgIHJldHVybiB7fTsKKyAgICAgIH0KKyAgICB9Owor
ICB9Cit9OworCitwcm9taXNlLnRoZW4gPSBmdW5jdGlvbigpIHsKKyAgdGhyb3cgZXJyb3I7Cit9
OworCitQcm9taXNlLmFueShpdGVyKS50aGVuKCgpID0+IHsKKyAgJERPTkUoJ1RoZSBwcm9taXNl
IHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyByZXNvbHZlZCcpOworfSwgKHJlYXNvbikgPT4g
eworICBhc3NlcnQuc2FtZVZhbHVlKHJldHVybkNvdW50LCAxKTsKKyAgYXNzZXJ0LnNhbWVWYWx1
ZShyZWFzb24sIGVycm9yKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMv
dGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1lcnJvci1yZWpl
Y3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21p
c2UvYW55L2ludm9rZS10aGVuLWVycm9yLXJlamVjdC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4tZXJyb3It
cmVqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8vIENvcHlyaWdodCAo
QykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHRocm93
biB3aGVuIGludm9raW5nIHRoZSBpbnN0YW5jZSdzIGB0aGVuYCBtZXRob2QgKHJlamVjdGluZyBQ
cm9taXNlKQorZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQg
YmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5
KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4g
SWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0
b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFBy
b21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6
IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgci4gUGVyZm9ybSA/IEludm9rZShuZXh0UHJvbWlzZSwg
InRoZW4iLCDCqyByZXN1bHRDYXBhYmlsaXR5LltbUmVzb2x2ZV1dLCByZWplY3RFbGVtZW50IMK7
KS4KKworZmxhZ3M6IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIGFycm93LWZ1bmN0
aW9uXQorLS0tKi8KK2xldCBlcnJvciA9IG5ldyBUZXN0MjYyRXJyb3IoKTsKK2xldCBwcm9taXNl
ID0gUHJvbWlzZS5yZXNvbHZlKCk7CisKK3Byb21pc2UudGhlbiA9IGZ1bmN0aW9uKCkgeworICB0
aHJvdyBlcnJvcjsKK307CisKK1Byb21pc2UuYW55KFtwcm9taXNlXSkudGhlbigoKSA9PiB7Cisg
ICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQn
KTsKK30sIChyZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWFzb24sIGVycm9yKTsK
K30pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1nZXQtZXJyb3ItY2xvc2UuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10
aGVuLWdldC1lcnJvci1jbG9zZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tlLXRoZW4tZ2V0LWVycm9yLWNsb3NlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBM
ZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KKy8qLS0tCitkZXNjcmlwdGlvbjogPgorICBFcnJvciB0aHJvd24gd2hlbiBhY2Nl
c2luZyB0aGUgaW5zdGFuY2UncyBgdGhlbmAgbWV0aG9kIChjbG9zaW5nIGl0ZXJhdG9yKQorZXNp
ZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVBy
b21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYg
cmVzdWx0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JS
ZWNvcmQuW1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVy
YXRvclJlY29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0
LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9t
aXNlQW55CisKKyAgci4gUGVyZm9ybSA/IEludm9rZShuZXh0UHJvbWlzZSwgInRoZW4iLCDCqyBy
ZXN1bHRDYXBhYmlsaXR5LltbUmVzb2x2ZV1dLCByZWplY3RFbGVtZW50IMK7KS4KKworZmxhZ3M6
IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgYXJyb3ct
ZnVuY3Rpb24sIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzLCBTeW1ib2xdCistLS0qLworbGV0IGVy
cm9yID0gbmV3IFRlc3QyNjJFcnJvcigpOworbGV0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUo
KTsKK2xldCByZXR1cm5Db3VudCA9IDA7CitsZXQgaXRlciA9IHsKKyAgW1N5bWJvbC5pdGVyYXRv
cl0oKSB7CisgICAgcmV0dXJuIHsKKyAgICAgIG5leHQoKSB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgZG9uZTogZmFsc2UsCisgICAgICAgICAgdmFsdWU6IHByb21pc2UKKyAgICAgICAg
fTsKKyAgICAgIH0sCisgICAgICByZXR1cm4oKSB7CisgICAgICAgIHJldHVybkNvdW50ICs9IDE7
CisgICAgICAgIHJldHVybiB7fTsKKyAgICAgIH0KKyAgICB9OworICB9Cit9OworCitPYmplY3Qu
ZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgJ3RoZW4nLCB7CisgIGdldCgpIHsKKyAgICB0aHJvdyBl
cnJvcjsKKyAgfQorfSk7CisKK1Byb21pc2UuYW55KGl0ZXIpLnRoZW4oKCkgPT4geworICAkRE9O
RSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7Cit9
LCAocmVhc29uKSA9PiB7CisgIGFzc2VydC5zYW1lVmFsdWUocmV0dXJuQ291bnQsIDEpOworICBh
c3NlcnQuc2FtZVZhbHVlKHJlYXNvbiwgZXJyb3IpOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpJ
bmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10
aGVuLWdldC1lcnJvci1yZWplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLWdldC1lcnJvci1yZWplY3QuanMJ
KG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2ludm9rZS10aGVuLWdldC1lcnJvci1yZWplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzMyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBX
YWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5
IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2Rlc2Ny
aXB0aW9uOiA+CisgIEVycm9yIHRocm93biB3aGVuIGFjY2Vzc2luZyB0aGUgaW5zdGFuY2UncyBg
dGhlbmAgbWV0aG9kIChyZWplY3RpbmcgUHJvbWlzZSkKK2VzaWQ6IHNlYy1wcm9taXNlLmFueQor
aW5mbzogfAorICA1LiBMZXQgcmVzdWx0IGJlIFBlcmZvcm1Qcm9taXNlQW55KGl0ZXJhdG9yUmVj
b3JkLCBDLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDYuIElmIHJlc3VsdCBpcyBhbiBhYnJ1cHQg
Y29tcGxldGlvbiwgdGhlbgorICAgIGEuIElmIGl0ZXJhdG9yUmVjb3JkLltbRG9uZV1dIGlzIGZh
bHNlLCBzZXQgcmVzdWx0IHRvIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3JSZWNvcmQsIHJlc3VsdCku
CisgICAgYi4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKHJlc3VsdCwgcHJvbWlzZUNhcGFiaWxpdHkp
LgorCisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIHIuIFBlcmZv
cm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0eS5bW1Jl
c29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0dXJlczog
W1Byb21pc2UuYW55LCBhcnJvdy1mdW5jdGlvbl0KKy0tLSovCitsZXQgZXJyb3IgPSBuZXcgVGVz
dDI2MkVycm9yKCk7CitsZXQgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOworCitPYmplY3Qu
ZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgJ3RoZW4nLCB7CisgIGdldCgpIHsKKyAgICB0aHJvdyBl
cnJvcjsKKyAgfQorfSk7CisKK1Byb21pc2UuYW55KFtwcm9taXNlXSkudGhlbigoKSA9PiB7Cisg
ICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQn
KTsKK30sIChyZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWFzb24sIGVycm9yKTsK
K30pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pbnZva2UtdGhlbi1vbi1wcm9taXNlcy1ldmVyeS1pdGVyYXRpb24u
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2ludm9rZS10aGVuLW9uLXByb21pc2VzLWV2ZXJ5LWl0ZXJhdGlvbi5qcwkobm9uZXhpc3Rl
bnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaW52b2tl
LXRoZW4tb24tcHJvbWlzZXMtZXZlcnktaXRlcmF0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+Cisg
IEludm9jYXRpb24gb2YgdGhlIGluc3RhbmNlJ3MgYHRoZW5gIG1ldGhvZAorZXNpZDogc2VjLXBy
b21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnko
aXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlz
IGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tE
b25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJlY29y
ZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9taXNl
Q2FwYWJpbGl0eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisK
KyAgci4gUGVyZm9ybSA/IEludm9rZShuZXh0UHJvbWlzZSwgInRoZW4iLCDCqyByZXN1bHRDYXBh
YmlsaXR5LltbUmVzb2x2ZV1dLCByZWplY3RFbGVtZW50IMK7KS4KKworZmxhZ3M6IFthc3luY10K
K2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIGFycm93LWZ1bmN0aW9uXQorLS0tKi8KKworbGV0IHBy
b21pc2VzID0gWworICBQcm9taXNlLnJlc29sdmUoKSwKKyAgUHJvbWlzZS5yZXNvbHZlKCksCisg
IFByb21pc2UucmVzb2x2ZSgpLAorXTsKK2xldCBjYWxsQ291bnQgPSAwOworCitwcm9taXNlcy5m
b3JFYWNoKHByb21pc2UgPT4geworICBsZXQgYm91bmRUaGVuID0gcHJvbWlzZS50aGVuLmJpbmQo
cHJvbWlzZSk7CisgIHByb21pc2UudGhlbiA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKKyAgICBhc3Nl
cnQuc2FtZVZhbHVlKHRoaXMsIHByb21pc2VzW2NhbGxDb3VudF0pOworICAgIGNhbGxDb3VudCAr
PSAxOworICAgIHJldHVybiBib3VuZFRoZW4oLi4uYXJncyk7CisgIH07Cit9KTsKKworUHJvbWlz
ZS5hbnkocHJvbWlzZXMpCisgIC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydC5zYW1lVmFsdWUo
Y2FsbENvdW50LCAzLCAnYHRoZW5gIGludm9rZWQgb25jZSBmb3IgZXZlcnkgaXRlcmF0ZWQgdmFs
dWUnKTsKKyAgICB9LCAkRE9ORSkudGhlbigkRE9ORSwgJERPTkUpOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2ludm9rZS10aGVuLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pbnZva2Ut
dGhlbi5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaW52b2tlLXRoZW4uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNCBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZGVzY3JpcHRpb246ID4KKyAgSW52b2NhdGlv
biBvZiB0aGUgaW5zdGFuY2UncyBgdGhlbmAgbWV0aG9kCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkK
K2luZm86IHwKKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJl
Y29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICA2LiBJZiByZXN1bHQgaXMgYW4gYWJydXB0
IGNvbXBsZXRpb24sIHRoZW4KKyAgICBhLiBJZiBpdGVyYXRvclJlY29yZC5bW0RvbmVdXSBpcyBm
YWxzZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yUmVjb3JkLCByZXN1bHQp
LgorICAgIGIuIElmQWJydXB0UmVqZWN0UHJvbWlzZShyZXN1bHQsIHByb21pc2VDYXBhYmlsaXR5
KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkKKworICByLiBQZXJm
b3JtID8gSW52b2tlKG5leHRQcm9taXNlLCAidGhlbiIsIMKrIHJlc3VsdENhcGFiaWxpdHkuW1tS
ZXNvbHZlXV0sIHJlamVjdEVsZW1lbnQgwrspLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6
IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgcHJvbWlzZSA9IFBy
b21pc2UucmVzb2x2ZSgpOworbGV0IGJvdW5kVGhlbiA9IHByb21pc2UudGhlbi5iaW5kKHByb21p
c2UpOworCitwcm9taXNlLnRoZW4gPSBmdW5jdGlvbihyZXNvbHZlciwgcmVqZWN0RWxlbWVudCkg
eworICBhc3NlcnQuc2FtZVZhbHVlKHRoaXMsIHByb21pc2UpOworICBhc3NlcnQuc2FtZVZhbHVl
KHR5cGVvZiByZXNvbHZlciwgJ2Z1bmN0aW9uJyk7CisgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x2
ZXIubGVuZ3RoLCAxLCAncmVzb2x2ZXIubGVuZ3RoIGlzIDEnKTsKKyAgYXNzZXJ0LnNhbWVWYWx1
ZSh0eXBlb2YgcmVqZWN0RWxlbWVudCwgJ2Z1bmN0aW9uJyk7CisgIGFzc2VydC5zYW1lVmFsdWUo
cmVqZWN0RWxlbWVudC5sZW5ndGgsIDEsICdyZWplY3RFbGVtZW50Lmxlbmd0aCBpcyAwJyk7Cisg
IHJldHVybiBib3VuZFRoZW4ocmVzb2x2ZXIsIHJlamVjdEVsZW1lbnQpOworfTsKKworUHJvbWlz
ZS5hbnkoW3Byb21pc2VdKS50aGVuKCgpID0+ICRET05FKCksICRET05FKTsKSW5kZXg6IEpTVGVz
dHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pcy1mdW5jdGlvbi5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXMt
ZnVuY3Rpb24uanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L2lzLWZ1bmN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTAgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQor
ZGVzY3JpcHRpb246IFByb21pc2UuYW55IGlzIGNhbGxhYmxlCitmZWF0dXJlczogW1Byb21pc2Uu
YW55XQorLS0tKi8KKworYXNzZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgUHJvbWlzZS5hbnksICdmdW5j
dGlvbicpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L2l0ZXItYXJnLWlzLWVtcHR5LWl0ZXJhYmxlLXJlamVjdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtZW1wdHkt
aXRlcmFibGUtcmVqZWN0LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0
L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1lbXB0eS1pdGVyYWJsZS1yZWplY3Qu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5
IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdv
dmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisv
Ki0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFu
eShbXSkgcmVqZWN0cyB3aXRoIEFnZ3JlZ2F0ZUVycm9yLCBlbXB0eSBlcnJvcnMgYXJyYXkuCitp
bmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueSAoIGl0ZXJhdG9y
UmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0Q2FwYWJpbGl0eSApCisKKyAgLi4uCisgIDMuIExl
dCBlcnJvcnMgYmUgYSBuZXcgZW1wdHkgTGlzdC4KKyAgLi4uCisgIDguIFJlcGVhdCwKKyAgICBh
LiBMZXQgbmV4dCBiZSBJdGVyYXRvclN0ZXAoaXRlcmF0b3JSZWNvcmQpLgorICAgIGIuIElmIG5l
eHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHNldCBpdGVyYXRvclJlY29yZC5bW0RvbmVdXSB0
byB0cnVlLgorICAgIGMuIFJldHVybklmQWJydXB0KG5leHQpLgorICAgIGQuIElmIG5leHQgaXMg
ZmFsc2UsIHRoZW4KKyAgICAgIGkuIFNldCBpdGVyYXRvclJlY29yZC5bW0RvbmVdXSB0byB0cnVl
LgorICAgICAgaWkuIFNldCByZW1haW5pbmdFbGVtZW50c0NvdW50LltbVmFsdWVdXSB0byByZW1h
aW5pbmdFbGVtZW50c0NvdW50LltbVmFsdWVdXSAtIDEuCisgICAgICBpaWkuIElmIHJlbWFpbmlu
Z0VsZW1lbnRzQ291bnQuW1tWYWx1ZV1dIGlzIDAsIHRoZW4KKyAgICAgICAgMS4gTGV0IGVycm9y
IGJlIGEgbmV3bHkgY3JlYXRlZCBBZ2dyZWdhdGVFcnJvciBvYmplY3QuCisgICAgICAgIDIuIFNl
dCBlcnJvci5bW0FnZ3JlZ2F0ZUVycm9yc11dIHRvIGVycm9ycy4KKyAgICAgICAgMy4gUmV0dXJu
IFRocm93Q29tcGxldGlvbihlcnJvcikuCisgIC4uLgorCitmbGFnczogW2FzeW5jXQorZmVhdHVy
ZXM6IFtBZ2dyZWdhdGVFcnJvciwgUHJvbWlzZS5hbnksIGFycm93LWZ1bmN0aW9uXQorLS0tKi8K
KworUHJvbWlzZS5hbnkoW10pCisgIC50aGVuKAorICAgICgpID0+ICRET05FKCdUaGUgcHJvbWlz
ZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKSwKKyAgICBlcnJvciA9PiB7
CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIEFn
Z3JlZ2F0ZUVycm9yLnByb3RvdHlwZSk7CisgICAgICBhc3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBB
Z2dyZWdhdGVFcnJvcik7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKGVycm9yLmVycm9ycy5sZW5n
dGgsIDApOworICAgIH0KKyAgKS50aGVuKCRET05FLCAkRE9ORSk7CkluZGV4OiBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtZW1wdHktc3RyaW5n
LXJlamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaXRlci1hcmctaXMtZW1wdHktc3RyaW5nLXJlamVjdC5qcwkobm9uZXhpc3Rl
bnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1h
cmctaXMtZW1wdHktc3RyaW5nLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5
IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNj
cmlwdGlvbjogPgorICBQcm9taXNlLmFueSgnJykgcmVqZWN0cyB3aXRoIEFnZ3JlZ2F0ZUVycm9y
LCBlbXB0eSBlcnJvcnMgYXJyYXkuCitpbmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJm
b3JtUHJvbWlzZUFueSAoIGl0ZXJhdG9yUmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0Q2FwYWJp
bGl0eSApCisKKyAgLi4uCisgIDMuIExldCBlcnJvcnMgYmUgYSBuZXcgZW1wdHkgTGlzdC4KKyAg
Li4uCisgIDguIFJlcGVhdCwKKyAgICBhLiBMZXQgbmV4dCBiZSBJdGVyYXRvclN0ZXAoaXRlcmF0
b3JSZWNvcmQpLgorICAgIGIuIElmIG5leHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHNldCBp
dGVyYXRvclJlY29yZC5bW0RvbmVdXSB0byB0cnVlLgorICAgIGMuIFJldHVybklmQWJydXB0KG5l
eHQpLgorICAgIGQuIElmIG5leHQgaXMgZmFsc2UsIHRoZW4KKyAgICAgIGkuIFNldCBpdGVyYXRv
clJlY29yZC5bW0RvbmVdXSB0byB0cnVlLgorICAgICAgaWkuIFNldCByZW1haW5pbmdFbGVtZW50
c0NvdW50LltbVmFsdWVdXSB0byByZW1haW5pbmdFbGVtZW50c0NvdW50LltbVmFsdWVdXSAtIDEu
CisgICAgICBpaWkuIElmIHJlbWFpbmluZ0VsZW1lbnRzQ291bnQuW1tWYWx1ZV1dIGlzIDAsIHRo
ZW4KKyAgICAgICAgMS4gTGV0IGVycm9yIGJlIGEgbmV3bHkgY3JlYXRlZCBBZ2dyZWdhdGVFcnJv
ciBvYmplY3QuCisgICAgICAgIDIuIFNldCBlcnJvci5bW0FnZ3JlZ2F0ZUVycm9yc11dIHRvIGVy
cm9ycy4KKyAgICAgICAgMy4gUmV0dXJuIFRocm93Q29tcGxldGlvbihlcnJvcikuCisgIC4uLgor
CitmZWF0dXJlczogW0FnZ3JlZ2F0ZUVycm9yLCBQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25d
CitmbGFnczogW2FzeW5jXQorLS0tKi8KKworUHJvbWlzZS5hbnkoJycpCisgIC50aGVuKAorICAg
ICgpID0+ICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVz
b2x2ZWQnKSwKKyAgICBlcnJvciA9PiB7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVjdC5n
ZXRQcm90b3R5cGVPZihlcnJvciksIEFnZ3JlZ2F0ZUVycm9yLnByb3RvdHlwZSk7CisgICAgICBh
c3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBBZ2dyZWdhdGVFcnJvcik7CisgICAgICBhc3NlcnQuc2Ft
ZVZhbHVlKGVycm9yLmVycm9ycy5sZW5ndGgsIDApOworICAgIH0KKyAgKS50aGVuKCRET05FLCAk
RE9ORSk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aXRlci1hcmctaXMtZmFsc2UtcmVqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1mYWxzZS1yZWplY3QuanMJ
KG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2l0ZXItYXJnLWlzLWZhbHNlLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDM2IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkK
K2Rlc2NyaXB0aW9uOiA+CisgIFByb21pc2UuYW55KGZhbHNlKSByZWplY3RzIHdpdGggVHlwZUVy
cm9yLgoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgMy4g
TGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1
cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4u
LgorCisgICNzZWMtZ2V0aXRlcmF0b3IKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQgWyAs
IG1ldGhvZCBdIF0gKQorCisgIC4uLgorICBMZXQgaXRlcmF0b3IgYmUgPyBDYWxsKG1ldGhvZCwg
b2JqKS4KKyAgSWYgVHlwZShpdGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJy
b3IgZXhjZXB0aW9uLgorICAuLi4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCitmbGFnczogW2Fz
eW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnkoZmFsc2UpLnRoZW4oZnVuY3Rpb24o
KSB7CisgICAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyBy
ZXNvbHZlZCcpOworICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgIGFzc2VydC5zYW1lVmFsdWUo
T2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwgVHlwZUVycm9yLnByb3RvdHlwZSk7CisgICAg
YXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgfSkudGhlbigkRE9ORSwgJERP
TkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3VsZCBiZSBy
ZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWApOworfQpJ
bmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJn
LWlzLW51bGwtcmVqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy1udWxsLXJlamVjdC5qcwkobm9uZXhpc3Rl
bnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1h
cmctaXMtbnVsbC1yZWplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLy8g
Q29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlv
bjogPgorICBQcm9taXNlLmFueShudWxsKSByZWplY3RzIHdpdGggVHlwZUVycm9yLgoraW5mbzog
fAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgMy4gTGV0IGl0ZXJhdG9y
UmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1cHRSZWplY3RQcm9t
aXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgICNzZWMt
Z2V0aXRlcmF0b3IKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQgWyAsIG1ldGhvZCBdIF0g
KQorCisgIC4uLgorICBMZXQgaXRlcmF0b3IgYmUgPyBDYWxsKG1ldGhvZCwgb2JqKS4KKyAgSWYg
VHlwZShpdGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9u
LgorICAuLi4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCitmbGFnczogW2FzeW5jXQorLS0tKi8K
KwordHJ5IHsKKyAgUHJvbWlzZS5hbnkobnVsbCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAkRE9O
RSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7Cisg
IH0sIGZ1bmN0aW9uKGVycm9yKSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShPYmplY3QuZ2V0UHJv
dG90eXBlT2YoZXJyb3IpLCBUeXBlRXJyb3IucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZXJyb3Ig
aW5zdGFuY2VvZiBUeXBlRXJyb3IpOworICB9KS50aGVuKCRET05FLCAkRE9ORSk7Cit9IGNhdGNo
IChlcnJvcikgeworICAkRE9ORShgVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQg
dGhyZXcgYW4gZXhjZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9CkluZGV4OiBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtbnVtYmVyLXJl
amVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvaXRlci1hcmctaXMtbnVtYmVyLXJlamVjdC5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtbnVt
YmVyLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvLyBDb3B5cmln
aHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlz
IGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiA+Cisg
IFByb21pc2UuYW55KG51bWJlcikgcmVqZWN0cyB3aXRoIFR5cGVFcnJvci4KK2luZm86IHwKKyAg
UHJvbWlzZS5hbnkgKCBpdGVyYWJsZSApCisKKyAgLi4uCisgIDMuIExldCBpdGVyYXRvclJlY29y
ZCBiZSBHZXRJdGVyYXRvcihpdGVyYWJsZSkuCisgIDQuIElmQWJydXB0UmVqZWN0UHJvbWlzZShp
dGVyYXRvclJlY29yZCwgcHJvbWlzZUNhcGFiaWxpdHkpLgorICAuLi4KKworICAjc2VjLWdldGl0
ZXJhdG9yCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkKKwor
ICAuLi4KKyAgTGV0IGl0ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIElmIFR5cGUo
aXRlcmF0b3IpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAg
Li4uCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3Ry
eSB7CisgIFByb21pc2UuYW55KDEpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgJERPTkUoJ1RoZSBw
cm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHdhcyByZXNvbHZlZCcpOworICB9LCBmdW5j
dGlvbihlcnJvcikgeworICAgIGFzc2VydC5zYW1lVmFsdWUoT2JqZWN0LmdldFByb3RvdHlwZU9m
KGVycm9yKSwgVHlwZUVycm9yLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNl
b2YgVHlwZUVycm9yKTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOworfSBjYXRjaCAoZXJyb3Ip
IHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHRocmV3IGFu
IGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWApOworfQpJbmRleDogSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXBvaXNvbmVkLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVy
LWFyZy1pcy1wb2lzb25lZC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtcG9pc29uZWQuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0MiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJh
bm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRo
ZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDog
c2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueShwb2lzb25lZCBp
dGVyYWJsZSkgcmVqZWN0cyB3aXRoIHdoYXRldmVyIGVycm9yIGlzIHRocm93bi4KK2luZm86IHwK
KyAgUHJvbWlzZS5hbnkgKCBpdGVyYWJsZSApCisKKyAgLi4uCisgIDMuIExldCBpdGVyYXRvclJl
Y29yZCBiZSBHZXRJdGVyYXRvcihpdGVyYWJsZSkuCisgIDQuIElmQWJydXB0UmVqZWN0UHJvbWlz
ZShpdGVyYXRvclJlY29yZCwgcHJvbWlzZUNhcGFiaWxpdHkpLgorICAuLi4KKworICAjc2VjLWdl
dGl0ZXJhdG9yCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkK
KworICAuLi4KKyAgTGV0IGl0ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIC4uLgor
ZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgU3ltYm9sLCBTeW1ib2wuaXRlcmF0b3IsIGFycm93LWZ1
bmN0aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3ZhciBwb2lzb24gPSBbXTsKK09iamVj
dC5kZWZpbmVQcm9wZXJ0eShwb2lzb24sIFN5bWJvbC5pdGVyYXRvciwgeworICBnZXQoKSB7Cisg
ICAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigpOworICB9Cit9KTsKKwordHJ5IHsKKyAgUHJvbWlz
ZS5hbnkocG9pc29uKS50aGVuKCgpID0+IHsKKyAgICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxk
IGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7CisgIH0sIChlcnJvcikgPT4geworICAg
IGFzc2VydC5zYW1lVmFsdWUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwgVGVzdDI2MkVy
cm9yLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVGVzdDI2MkVycm9y
KTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERPTkUo
YFRoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlvbjog
JHtlcnJvci5tZXNzYWdlfWApOworfQpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXN0cmluZy1yZXNvbHZlLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1p
cy1zdHJpbmctcmVzb2x2ZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtc3RyaW5nLXJlc29sdmUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdl
eSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQor
ZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueSgnbm9u
LWVtcHR5LXN0cmluZycpIHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUg
bm9uLWVtcHR5IHN0cmluZworaW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKwor
ICAuLi4KKyAgMy4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4K
KyAgNC4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJp
bGl0eSkuCisgIC4uLgorCisgICNzZWMtZ2V0aXRlcmF0b3IKKyAgR2V0SXRlcmF0b3IgKCBvYmog
WyAsIGhpbnQgWyAsIG1ldGhvZCBdIF0gKQorCisgIC4uLgorICBMZXQgaXRlcmF0b3IgYmUgPyBD
YWxsKG1ldGhvZCwgb2JqKS4KKyAgSWYgVHlwZShpdGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhy
b3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAuLi4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnks
IGFycm93LWZ1bmN0aW9uXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3RyeSB7CisgIFByb21p
c2UuYW55KCd4eXonKS50aGVuKHYgPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUodiwgJ3gnKTsK
KyAgICBhc3NlcnQuc2FtZVZhbHVlKHYubGVuZ3RoLCAxKTsKKyAgfSwgZXJyb3IgPT4geworICAg
ICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVzb2x2ZWQsIGJ1dCB3YXMgcmVqZWN0ZWQg
d2l0aCBlcnJvcjogJHtlcnJvci5tZXNzYWdlfWApOworICB9KS50aGVuKCRET05FLCAkRE9ORSk7
Cit9IGNhdGNoIChlcnJvcikgeworICAkRE9ORShgVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlc29s
dmVkLCBidXQgdGhyZXcgYW4gZXhjZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9CkluZGV4
OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMt
c3ltYm9sLXJlamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hcmctaXMtc3ltYm9sLXJlamVjdC5qcwkobm9uZXhpc3Rl
bnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1h
cmctaXMtc3ltYm9sLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5IEBACisv
LyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0
aW9uOiA+CisgIFByb21pc2UuYW55KFN5bWJvbCgpKSByZWplY3RzIHdpdGggVHlwZUVycm9yLgor
aW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgMy4gTGV0IGl0
ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1cHRSZWpl
Y3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisg
IEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAg
My4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3lu
YywgdGhlbgorICAgICAgLi4uCisgICAgYi4gT3RoZXJ3aXNlLCBzZXQgbWV0aG9kIHRvID8gR2V0
TWV0aG9kKG9iaiwgQEBpdGVyYXRvcikuCisgIDQuIExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0
aG9kLCBvYmopLgorICA1LiBJZiBUeXBlKGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBh
IFR5cGVFcnJvciBleGNlcHRpb24uCisgIC4uLgorCisgIEdldE1ldGhvZAorCisgIDIuIExldCBm
dW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9y
IG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFs
c2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKworICBDYWxsICggRiwgViBbICwgYXJn
dW1lbnRzTGlzdCBdICkKKworICAyLiBJZiBJc0NhbGxhYmxlKEYpIGlzIGZhbHNlLCB0aHJvdyBh
IFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2xdCitm
bGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnkoU3ltYm9sKCkpLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3Rl
ZCwgYnV0IHdhcyByZXNvbHZlZCcpOworICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgIGFzc2Vy
dC5zYW1lVmFsdWUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwgVHlwZUVycm9yLnByb3Rv
dHlwZSk7CisgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgfSkudGhl
bigkRE9ORSwgJERPTkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNl
IHNob3VsZCBiZSByZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNz
YWdlfWApOworfQpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L2l0ZXItYXJnLWlzLXRydWUtcmVqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFyZy1pcy10cnVlLXJlamVjdC5q
cwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlz
ZS9hbnkvaXRlci1hcmctaXMtdHJ1ZS1yZWplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0OSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55
CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueSh0cnVlKSByZWplY3RzIHdpdGggVHlwZUVy
cm9yLgoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgMy4g
TGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1
cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4u
LgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkKKworICAu
Li4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0aGVuCisgICAgYS4gSWYgaGludCBp
cyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAgYi4gT3RoZXJ3aXNlLCBzZXQgbWV0aG9kIHRv
ID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvcikuCisgIDQuIExldCBpdGVyYXRvciBiZSA/IENh
bGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBlKGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0
aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIC4uLgorCisgIEdldE1ldGhvZAorCisgIDIu
IExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZp
bmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykg
aXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKworICBDYWxsICggRiwgViBb
ICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJZiBJc0NhbGxhYmxlKEYpIGlzIGZhbHNlLCB0
aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorZmxh
Z3M6IFthc3luY10KKy0tLSovCisKK3RyeSB7CisgIFByb21pc2UuYW55KHRydWUpLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0
IHdhcyByZXNvbHZlZCcpOworICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgIGFzc2VydC5zYW1l
VmFsdWUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwgVHlwZUVycm9yLnByb3RvdHlwZSk7
CisgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgfSkudGhlbigkRE9O
RSwgJERPTkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3Vs
ZCBiZSByZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWAp
OworfQpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0
ZXItYXJnLWlzLXVuZGVmaW5lZC1yZWplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXJnLWlzLXVuZGVmaW5lZC1yZWpl
Y3QuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1By
b21pc2UvYW55L2l0ZXItYXJnLWlzLXVuZGVmaW5lZC1yZWplY3QuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0OSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0Qg
bGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXBy
b21pc2UuYW55CitkZXNjcmlwdGlvbjogPgorICBQcm9taXNlLmFueSh1bmRlZmluZWQpIHJlamVj
dHMgd2l0aCBUeXBlRXJyb3IuCitpbmZvOiB8CisgIFByb21pc2UuYW55ICggaXRlcmFibGUgKQor
CisgIC4uLgorICAzLiBMZXQgaXRlcmF0b3JSZWNvcmQgYmUgR2V0SXRlcmF0b3IoaXRlcmFibGUp
LgorICA0LiBJZkFicnVwdFJlamVjdFByb21pc2UoaXRlcmF0b3JSZWNvcmQsIHByb21pc2VDYXBh
YmlsaXR5KS4KKyAgLi4uCisKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQgWyAsIG1ldGhv
ZCBdIF0gKQorCisgIC4uLgorICAzLiBJZiBtZXRob2QgaXMgbm90IHByZXNlbnQsIHRoZW4KKyAg
ICBhLiBJZiBoaW50IGlzIGFzeW5jLCB0aGVuCisgICAgICAuLi4KKyAgICBiLiBPdGhlcndpc2Us
IHNldCBtZXRob2QgdG8gPyBHZXRNZXRob2Qob2JqLCBAQGl0ZXJhdG9yKS4KKyAgNC4gTGV0IGl0
ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIDUuIElmIFR5cGUoaXRlcmF0b3IpIGlz
IG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgLi4uCisKKyAgR2V0
TWV0aG9kCisKKyAgMi4gTGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgorICAzLiBJZiBmdW5jIGlz
IGVpdGhlciB1bmRlZmluZWQgb3IgbnVsbCwgcmV0dXJuIHVuZGVmaW5lZC4KKyAgNC4gSWYgSXND
YWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorCisg
IENhbGwgKCBGLCBWIFsgLCBhcmd1bWVudHNMaXN0IF0gKQorCisgIDIuIElmIElzQ2FsbGFibGUo
RikgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBbUHJv
bWlzZS5hbnldCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnko
dW5kZWZpbmVkKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91
bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3Ip
IHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5
cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFzc2VydChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJv
cik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICRET05F
KGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246
ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLWZhbHNlLXJlamVjdC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3Np
Z25lZC1mYWxzZS1yZWplY3QuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXNzaWduZWQtZmFsc2UtcmVqZWN0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJn
ZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0K
K2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3JpcHRpb246ID4KKyAgUmVqZWN0IHdoZW4gYXJn
dW1lbnQncyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVydHkgaGFzIHRoZSB2YWx1ZSBmYWxzZQoraW5m
bzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgNC4gTGV0IGl0ZXJh
dG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNS4gSWZBYnJ1cHRSZWplY3RQ
cm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgIEdl
dEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgMy4g
SWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3luYywg
dGhlbgorICAgICAgaS4gU2V0IG1ldGhvZCB0byA/IEdldE1ldGhvZChvYmosIEBAYXN5bmNJdGVy
YXRvcikuCisgICAgICBpaS4gSWYgbWV0aG9kIGlzIHVuZGVmaW5lZCwgdGhlbgorICAgICAgICAx
LiBMZXQgc3luY01ldGhvZCBiZSA/IEdldE1ldGhvZChvYmosIEBAaXRlcmF0b3IpLgorICAgICAg
ICAyLiBMZXQgc3luY0l0ZXJhdG9yUmVjb3JkIGJlID8gR2V0SXRlcmF0b3Iob2JqLCBzeW5jLCBz
eW5jTWV0aG9kKS4KKyAgICAgICAgLi4uCisgIDQuIExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0
aG9kLCBvYmopLgorICAuLi4KKworICBHZXRNZXRob2QKKworICAyLiBMZXQgZnVuYyBiZSA/IEdl
dFYoViwgUCkuCisgIDMuIElmIGZ1bmMgaXMgZWl0aGVyIHVuZGVmaW5lZCBvciBudWxsLCByZXR1
cm4gdW5kZWZpbmVkLgorICA0LiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aHJvdyBh
IFR5cGVFcnJvciBleGNlcHRpb24uCisKKyAgQ2FsbCAoIEYsIFYgWyAsIGFyZ3VtZW50c0xpc3Qg
XSApCisKKyAgMi4gSWYgSXNDYWxsYWJsZShGKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgU3ltYm9sLml0ZXJhdG9yLCBTeW1i
b2wsIGNvbXB1dGVkLXByb3BlcnR5LW5hbWVzXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3Ry
eSB7CisgIFByb21pc2UuYW55KHsKKyAgICBbU3ltYm9sLml0ZXJhdG9yXTogZmFsc2UKKyAgfSku
dGhlbihmdW5jdGlvbigpIHsKKyAgICAkRE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVj
dGVkLCBidXQgd2FzIHJlc29sdmVkJyk7CisgIH0sIGZ1bmN0aW9uKGVycm9yKSB7CisgICAgYXNz
ZXJ0LnNhbWVWYWx1ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YoZXJyb3IpLCBUeXBlRXJyb3IucHJv
dG90eXBlKTsKKyAgICBhc3NlcnQoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOworICB9KS50
aGVuKCRET05FLCAkRE9ORSk7Cit9IGNhdGNoIChlcnJvcikgeworICAkRE9ORShgVGhlIHByb21p
c2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgdGhyZXcgYW4gZXhjZXB0aW9uOiAke2Vycm9yLm1l
c3NhZ2V9YCk7Cit9CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlz
ZS9hbnkvaXRlci1hc3NpZ25lZC1udWxsLXJlamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1udWxsLXJl
amVjdC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMv
UHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1udWxsLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBs
aWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJv
bWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiA+CisgIFJlamVjdCB3aGVuIGFyZ3VtZW50J3MgU3ltYm9s
Lml0ZXJhdG9yIHByb3BlcnR5IGhhcyB0aGUgdmFsdWUgbnVsbAoraW5mbzogfAorICBQcm9taXNl
LmFueSAoIGl0ZXJhYmxlICkKKworICAuLi4KKyAgNC4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdl
dEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNS4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9y
UmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2Jq
IFsgLCBoaW50IFsgLCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5v
dCBwcmVzZW50LCB0aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgLi4u
CisgICAgYi4gT3RoZXJ3aXNlLCBzZXQgbWV0aG9kIHRvID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVy
YXRvcikuCisgIDQuIExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICA1LiBJ
ZiBUeXBlKGl0ZXJhdG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRp
b24uCisgIC4uLgorCisgIEdldE1ldGhvZAorCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQ
KS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRl
ZmluZWQuCisgIDQuIElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVy
cm9yIGV4Y2VwdGlvbi4KKworICBDYWxsICggRiwgViBbICwgYXJndW1lbnRzTGlzdCBdICkKKwor
ICAyLiBJZiBJc0NhbGxhYmxlKEYpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRp
b24uCitmZWF0dXJlczogW1Byb21pc2UuYW55LCBTeW1ib2wuaXRlcmF0b3IsIFN5bWJvbCwgY29t
cHV0ZWQtcHJvcGVydHktbmFtZXNdCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAg
UHJvbWlzZS5hbnkoeworICAgIFtTeW1ib2wuaXRlcmF0b3JdOiBudWxsCisgIH0pLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCwgYnV0
IHdhcyByZXNvbHZlZCcpOworICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgIGFzc2VydC5zYW1l
VmFsdWUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGVycm9yKSwgVHlwZUVycm9yLnByb3RvdHlwZSk7
CisgICAgYXNzZXJ0KGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKTsKKyAgfSkudGhlbigkRE9O
RSwgJERPTkUpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgJERPTkUoYFRoZSBwcm9taXNlIHNob3Vs
ZCBiZSByZWplY3RlZCwgYnV0IHRocmV3IGFuIGV4Y2VwdGlvbjogJHtlcnJvci5tZXNzYWdlfWAp
OworfQpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0
ZXItYXNzaWduZWQtbnVtYmVyLXJlamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC1udW1iZXItcmVqZWN0
LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9pdGVyLWFzc2lnbmVkLW51bWJlci1yZWplY3QuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGlj
ZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21p
c2UuYW55CitkZXNjcmlwdGlvbjogPgorICBSZWplY3Qgd2hlbiBhcmd1bWVudCdzIFN5bWJvbC5p
dGVyYXRvciBwcm9wZXJ0eSBoYXMgdGhlIHZhbHVlIDEKK2luZm86IHwKKyAgUHJvbWlzZS5hbnkg
KCBpdGVyYWJsZSApCisKKyAgLi4uCisgIDQuIExldCBpdGVyYXRvclJlY29yZCBiZSBHZXRJdGVy
YXRvcihpdGVyYWJsZSkuCisgIDUuIElmQWJydXB0UmVqZWN0UHJvbWlzZShpdGVyYXRvclJlY29y
ZCwgcHJvbWlzZUNhcGFiaWxpdHkpLgorICAuLi4KKworICBHZXRJdGVyYXRvciAoIG9iaiBbICwg
aGludCBbICwgbWV0aG9kIF0gXSApCisKKyAgLi4uCisgIDMuIElmIG1ldGhvZCBpcyBub3QgcHJl
c2VudCwgdGhlbgorICAgIGEuIElmIGhpbnQgaXMgYXN5bmMsIHRoZW4KKyAgICAgIC4uLgorICAg
IGIuIE90aGVyd2lzZSwgc2V0IG1ldGhvZCB0byA/IEdldE1ldGhvZChvYmosIEBAaXRlcmF0b3Ip
LgorICA0LiBMZXQgaXRlcmF0b3IgYmUgPyBDYWxsKG1ldGhvZCwgb2JqKS4KKyAgNS4gSWYgVHlw
ZShpdGVyYXRvcikgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgor
ICAuLi4KKworICBHZXRNZXRob2QKKworICAyLiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCisg
IDMuIElmIGZ1bmMgaXMgZWl0aGVyIHVuZGVmaW5lZCBvciBudWxsLCByZXR1cm4gdW5kZWZpbmVk
LgorICA0LiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBl
eGNlcHRpb24uCisKKyAgQ2FsbCAoIEYsIFYgWyAsIGFyZ3VtZW50c0xpc3QgXSApCisKKyAgMi4g
SWYgSXNDYWxsYWJsZShGKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgor
ZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgU3ltYm9sLml0ZXJhdG9yLCBTeW1ib2wsIGNvbXB1dGVk
LXByb3BlcnR5LW5hbWVzXQorZmxhZ3M6IFthc3luY10KKy0tLSovCisKK3RyeSB7CisgIFByb21p
c2UuYW55KHsKKyAgICBbU3ltYm9sLml0ZXJhdG9yXTogMQorICB9KS50aGVuKGZ1bmN0aW9uKCkg
eworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVz
b2x2ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9i
amVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFz
c2VydChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05F
KTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVq
ZWN0ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KSW5k
ZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2ln
bmVkLXN0cmluZy1yZWplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItYXNzaWduZWQtc3RyaW5nLXJlamVjdC5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aXRlci1hc3NpZ25lZC1zdHJpbmctcmVqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NTEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQor
ZGVzY3JpcHRpb246ID4KKyAgUmVqZWN0IHdoZW4gYXJndW1lbnQncyBTeW1ib2wuaXRlcmF0b3Ig
cHJvcGVydHkgaGFzIHRoZSB2YWx1ZSAiIgoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJh
YmxlICkKKworICAuLi4KKyAgNC4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0
ZXJhYmxlKS4KKyAgNS4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9t
aXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsg
LCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0
aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAgYi4gT3Ro
ZXJ3aXNlLCBzZXQgbWV0aG9kIHRvID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvcikuCisgIDQu
IExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBlKGl0ZXJh
dG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIC4uLgor
CisgIEdldE1ldGhvZAorCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYg
ZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQu
IElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlv
bi4KKworICBDYWxsICggRiwgViBbICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJZiBJc0Nh
bGxhYmxlKEYpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0dXJl
czogW1Byb21pc2UuYW55LCBTeW1ib2wuaXRlcmF0b3IsIFN5bWJvbCwgY29tcHV0ZWQtcHJvcGVy
dHktbmFtZXNdCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnko
eworICAgIFtTeW1ib2wuaXRlcmF0b3JdOiAnJworICB9KS50aGVuKGZ1bmN0aW9uKCkgeworICAg
ICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVzb2x2ZWQn
KTsKKyAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9iamVjdC5n
ZXRQcm90b3R5cGVPZihlcnJvciksIFR5cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFzc2VydChl
cnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKK30g
Y2F0Y2ggKGVycm9yKSB7CisgICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQs
IGJ1dCB0aHJldyBhbiBleGNlcHRpb246ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KSW5kZXg6IEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLXN5
bWJvbC1yZWplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L2l0ZXItYXNzaWduZWQtc3ltYm9sLXJlamVjdC5qcwkobm9uZXhpc3Rl
bnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1h
c3NpZ25lZC1zeW1ib2wtcmVqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3Jp
cHRpb246ID4KKyAgUmVqZWN0IHdoZW4gYXJndW1lbnQncyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVy
dHkgaGFzIHRoZSB2YWx1ZSBTeW1ib2woKQoraW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJh
YmxlICkKKworICAuLi4KKyAgNC4gTGV0IGl0ZXJhdG9yUmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0
ZXJhYmxlKS4KKyAgNS4gSWZBYnJ1cHRSZWplY3RQcm9taXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9t
aXNlQ2FwYWJpbGl0eSkuCisgIC4uLgorCisgIEdldEl0ZXJhdG9yICggb2JqIFsgLCBoaW50IFsg
LCBtZXRob2QgXSBdICkKKworICAuLi4KKyAgMy4gSWYgbWV0aG9kIGlzIG5vdCBwcmVzZW50LCB0
aGVuCisgICAgYS4gSWYgaGludCBpcyBhc3luYywgdGhlbgorICAgICAgLi4uCisgICAgYi4gT3Ro
ZXJ3aXNlLCBzZXQgbWV0aG9kIHRvID8gR2V0TWV0aG9kKG9iaiwgQEBpdGVyYXRvcikuCisgIDQu
IExldCBpdGVyYXRvciBiZSA/IENhbGwobWV0aG9kLCBvYmopLgorICA1LiBJZiBUeXBlKGl0ZXJh
dG9yKSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgIC4uLgor
CisgIEdldE1ldGhvZAorCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYg
ZnVuYyBpcyBlaXRoZXIgdW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQu
IElmIElzQ2FsbGFibGUoZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlv
bi4KKworICBDYWxsICggRiwgViBbICwgYXJndW1lbnRzTGlzdCBdICkKKworICAyLiBJZiBJc0Nh
bGxhYmxlKEYpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0dXJl
czogW1Byb21pc2UuYW55LCBTeW1ib2wsIFN5bWJvbC5pdGVyYXRvciwgY29tcHV0ZWQtcHJvcGVy
dHktbmFtZXNdCitmbGFnczogW2FzeW5jXQorLS0tKi8KKwordHJ5IHsKKyAgUHJvbWlzZS5hbnko
eworICAgIFtTeW1ib2wuaXRlcmF0b3JdOiBTeW1ib2woKQorICB9KS50aGVuKGZ1bmN0aW9uKCkg
eworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1dCB3YXMgcmVz
b2x2ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKE9i
amVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5cGVFcnJvci5wcm90b3R5cGUpOworICAgIGFz
c2VydChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgIH0pLnRoZW4oJERPTkUsICRET05F
KTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICRET05FKGBUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVq
ZWN0ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246ICR7ZXJyb3IubWVzc2FnZX1gKTsKK30KSW5k
ZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2ln
bmVkLXRydWUtcmVqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLXRydWUtcmVqZWN0LmpzCShub25leGlz
dGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVy
LWFzc2lnbmVkLXRydWUtcmVqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAxOSBTZXJnZXkgUnViYW5vdi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3Jp
cHRpb246ID4KKyAgUmVqZWN0IHdoZW4gYXJndW1lbnQncyBTeW1ib2wuaXRlcmF0b3IgcHJvcGVy
dHkgaGFzIHRoZSB2YWx1ZSB0cnVlCitpbmZvOiB8CisgIFByb21pc2UuYW55ICggaXRlcmFibGUg
KQorCisgIC4uLgorICA0LiBMZXQgaXRlcmF0b3JSZWNvcmQgYmUgR2V0SXRlcmF0b3IoaXRlcmFi
bGUpLgorICA1LiBJZkFicnVwdFJlamVjdFByb21pc2UoaXRlcmF0b3JSZWNvcmQsIHByb21pc2VD
YXBhYmlsaXR5KS4KKyAgLi4uCisKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAsIGhpbnQgWyAsIG1l
dGhvZCBdIF0gKQorCisgIC4uLgorICAzLiBJZiBtZXRob2QgaXMgbm90IHByZXNlbnQsIHRoZW4K
KyAgICBhLiBJZiBoaW50IGlzIGFzeW5jLCB0aGVuCisgICAgICAuLi4KKyAgICBiLiBPdGhlcndp
c2UsIHNldCBtZXRob2QgdG8gPyBHZXRNZXRob2Qob2JqLCBAQGl0ZXJhdG9yKS4KKyAgNC4gTGV0
IGl0ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIDUuIElmIFR5cGUoaXRlcmF0b3Ip
IGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgLi4uCisKKyAg
R2V0TWV0aG9kCisKKyAgMi4gTGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgorICAzLiBJZiBmdW5j
IGlzIGVpdGhlciB1bmRlZmluZWQgb3IgbnVsbCwgcmV0dXJuIHVuZGVmaW5lZC4KKyAgNC4gSWYg
SXNDYWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgor
CisgIENhbGwgKCBGLCBWIFsgLCBhcmd1bWVudHNMaXN0IF0gKQorCisgIDIuIElmIElzQ2FsbGFi
bGUoRikgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBb
UHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgU3ltYm9sLCBjb21wdXRlZC1wcm9wZXJ0eS1u
YW1lc10KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworCit0cnkgeworICBQcm9taXNlLmFueSh7Cisg
ICAgW1N5bWJvbC5pdGVyYXRvcl06IHRydWUKKyAgfSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAk
RE9ORSgnVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyk7
CisgIH0sIGZ1bmN0aW9uKGVycm9yKSB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShPYmplY3QuZ2V0
UHJvdG90eXBlT2YoZXJyb3IpLCBUeXBlRXJyb3IucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZXJy
b3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpOworICB9KS50aGVuKCRET05FLCAkRE9ORSk7Cit9IGNh
dGNoIChlcnJvcikgeworICAkRE9ORShgVGhlIHByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBi
dXQgdGhyZXcgYW4gZXhjZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YCk7Cit9CkluZGV4OiBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvaXRlci1hc3NpZ25lZC11bmRl
ZmluZWQtcmVqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9pdGVyLWFzc2lnbmVkLXVuZGVmaW5lZC1yZWplY3QuanMJKG5vbmV4
aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0
ZXItYXNzaWduZWQtdW5kZWZpbmVkLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDUxIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkK
K2Rlc2NyaXB0aW9uOiA+CisgIFJlamVjdCB3aGVuIGFyZ3VtZW50J3MgU3ltYm9sLml0ZXJhdG9y
IHByb3BlcnR5IGhhcyB0aGUgdmFsdWUgdW5kZWZpbmVkCitpbmZvOiB8CisgIFByb21pc2UuYW55
ICggaXRlcmFibGUgKQorCisgIC4uLgorICA0LiBMZXQgaXRlcmF0b3JSZWNvcmQgYmUgR2V0SXRl
cmF0b3IoaXRlcmFibGUpLgorICA1LiBJZkFicnVwdFJlamVjdFByb21pc2UoaXRlcmF0b3JSZWNv
cmQsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgLi4uCisKKyAgR2V0SXRlcmF0b3IgKCBvYmogWyAs
IGhpbnQgWyAsIG1ldGhvZCBdIF0gKQorCisgIC4uLgorICAzLiBJZiBtZXRob2QgaXMgbm90IHBy
ZXNlbnQsIHRoZW4KKyAgICBhLiBJZiBoaW50IGlzIGFzeW5jLCB0aGVuCisgICAgICAuLi4KKyAg
ICBiLiBPdGhlcndpc2UsIHNldCBtZXRob2QgdG8gPyBHZXRNZXRob2Qob2JqLCBAQGl0ZXJhdG9y
KS4KKyAgNC4gTGV0IGl0ZXJhdG9yIGJlID8gQ2FsbChtZXRob2QsIG9iaikuCisgIDUuIElmIFR5
cGUoaXRlcmF0b3IpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4K
KyAgLi4uCisKKyAgR2V0TWV0aG9kCisKKyAgMi4gTGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgor
ICAzLiBJZiBmdW5jIGlzIGVpdGhlciB1bmRlZmluZWQgb3IgbnVsbCwgcmV0dXJuIHVuZGVmaW5l
ZC4KKyAgNC4gSWYgSXNDYWxsYWJsZShmdW5jKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgorCisgIENhbGwgKCBGLCBWIFsgLCBhcmd1bWVudHNMaXN0IF0gKQorCisgIDIu
IElmIElzQ2FsbGFibGUoRikgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4K
K2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgU3ltYm9sLCBjb21wdXRl
ZC1wcm9wZXJ0eS1uYW1lc10KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworCit0cnkgeworICBQcm9t
aXNlLmFueSh7CisgICAgW1N5bWJvbC5pdGVyYXRvcl06IHVuZGVmaW5lZAorICB9KS50aGVuKGZ1
bmN0aW9uKCkgeworICAgICRET05FKCdUaGUgcHJvbWlzZSBzaG91bGQgYmUgcmVqZWN0ZWQsIGJ1
dCB3YXMgcmVzb2x2ZWQnKTsKKyAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKKyAgICBhc3NlcnQuc2Ft
ZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihlcnJvciksIFR5cGVFcnJvci5wcm90b3R5cGUp
OworICAgIGFzc2VydChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcik7CisgIH0pLnRoZW4oJERP
TkUsICRET05FKTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICRET05FKGBUaGUgcHJvbWlzZSBzaG91
bGQgYmUgcmVqZWN0ZWQsIGJ1dCB0aHJldyBhbiBleGNlcHRpb246ICR7ZXJyb3IubWVzc2FnZX1g
KTsKK30KSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9p
dGVyLXN0ZXAtZXJyLW5vLWNsb3NlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVyLXN0ZXAtZXJyLW5vLWNsb3NlLmpzCShub25l
eGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9p
dGVyLXN0ZXAtZXJyLW5vLWNsb3NlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxp
Y2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9t
aXNlLmFueQorZGVzY3JpcHRpb246ID4KKyAgRXJyb3Igd2hlbiBhZHZhbmNpbmcgdGhlIHByb3Zp
ZGVkIGl0ZXJhYmxlIChub3QgY2xvc2luZyBpdGVyYXRvcikKK2luZm86IHwKKyAgUHJvbWlzZS5h
bnkgKCBpdGVyYWJsZSApCisKKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShp
dGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICA2LiBJZiByZXN1bHQgaXMg
YW4gYWJydXB0IGNvbXBsZXRpb24sIHRoZW4KKyAgICBhLiBJZiBpdGVyYXRvclJlY29yZC5bW0Rv
bmVdXSBpcyBmYWxzZSwgc2V0IHJlc3VsdCB0byBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yUmVjb3Jk
LCByZXN1bHQpLgorICAgIGIuIElmQWJydXB0UmVqZWN0UHJvbWlzZShyZXN1bHQsIHByb21pc2VD
YXBhYmlsaXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkKKwor
ICA4LiBSZXBlYXQKKyAgICBhLiBMZXQgbmV4dCBiZSBJdGVyYXRvclN0ZXAoaXRlcmF0b3JSZWNv
cmQpLgorICAgIGIuIElmIG5leHQgaXMgYW4gYWJydXB0IGNvbXBsZXRpb24sIHNldCBpdGVyYXRv
clJlY29yZC5bW2RvbmVdXSB0byB0cnVlLgorICAgIGMuIFJldHVybklmQWJydXB0KG5leHQpLgor
CitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgU3ltYm9sLml0ZXJhdG9y
LCBjb21wdXRlZC1wcm9wZXJ0eS1uYW1lcywgU3ltYm9sLCBhcnJvdy1mdW5jdGlvbl0KKy0tLSov
CisKK2xldCByZXR1cm5Db3VudCA9IDA7CitsZXQgcG9pc29uZWREb25lID0ge307CitsZXQgZXJy
b3IgPSBuZXcgVGVzdDI2MkVycm9yKCk7CitPYmplY3QuZGVmaW5lUHJvcGVydGllcyhwb2lzb25l
ZERvbmUsIHsKKyAgZG9uZTogeworICAgIGdldCgpIHsKKyAgICAgIHRocm93IGVycm9yOworICAg
IH0KKyAgfSwKKyAgdmFsdWU6IHsKKyAgICBnZXQoKSB7fQorICB9Cit9KTsKK2xldCBpdGVyU3Rl
cFRocm93cyA9IHsKKyAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CisgICAgcmV0dXJuIHsKKyAgICAg
IG5leHQoKSB7CisgICAgICAgIHJldHVybiBwb2lzb25lZERvbmU7CisgICAgICB9LAorICAgICAg
cmV0dXJuKCkgeworICAgICAgICByZXR1cm5Db3VudCArPSAxOworICAgICAgICByZXR1cm4ge307
CisgICAgICB9CisgICAgfTsKKyAgfQorfTsKKworUHJvbWlzZS5hbnkoaXRlclN0ZXBUaHJvd3Mp
LnRoZW4oCisgICgpID0+IHsKKyAgJERPTkUoJ1RoZSBwcm9taXNlIHNob3VsZCBiZSByZWplY3Rl
ZC4nKTsKK30sIChyZWFzb24pID0+IHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZWFzb24sIGVycm9y
KTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShyZXR1cm5Db3VudCwgMCk7Cit9KS50aGVuKCRET05FLCAk
RE9ORSk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkv
aXRlci1zdGVwLWVyci1yZWplY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2l0ZXItc3RlcC1lcnItcmVqZWN0LmpzCShub25leGlz
dGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9pdGVy
LXN0ZXAtZXJyLXJlamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMTkgTGVvIEJhbHRlciwgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5h
bnkKK2Rlc2NyaXB0aW9uOiA+CisgIEVycm9yIHdoZW4gYWR2YW5jaW5nIHRoZSBwcm92aWRlZCBp
dGVyYWJsZSAocmVqZWN0aW5nIHByb21pc2UpCitpbmZvOiB8CisgIFByb21pc2UuYW55ICggaXRl
cmFibGUgKQorCisgIDUuIExldCByZXN1bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JS
ZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVw
dCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4gSWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMg
ZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0
KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFByb21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0
eSkuCisKKyAgUnVudGltZSBTZW1hbnRpY3M6IFBlcmZvcm1Qcm9taXNlQW55CisKKyAgOC4gUmVw
ZWF0CisgICAgYS4gTGV0IG5leHQgYmUgSXRlcmF0b3JTdGVwKGl0ZXJhdG9yUmVjb3JkKS4KKyAg
ICBiLiBJZiBuZXh0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCBzZXQgaXRlcmF0b3JSZWNvcmQu
W1tkb25lXV0gdG8gdHJ1ZS4KKyAgICBjLiBSZXR1cm5JZkFicnVwdChuZXh0KS4KKworZmxhZ3M6
IFthc3luY10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnksIFN5bWJvbC5pdGVyYXRvciwgY29tcHV0
ZWQtcHJvcGVydHktbmFtZXMsIFN5bWJvbCwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQg
cG9pc29uZWREb25lID0ge307CitsZXQgZXJyb3IgPSBuZXcgVGVzdDI2MkVycm9yKCk7CitPYmpl
Y3QuZGVmaW5lUHJvcGVydGllcyhwb2lzb25lZERvbmUsIHsKKyAgZG9uZTogeworICAgIGdldCgp
IHsKKyAgICAgIHRocm93IGVycm9yOworICAgIH0KKyAgfSwKKyAgdmFsdWU6IHsKKyAgICBnZXQo
KSB7CisgICAgICAkRE9ORSgnVGhlIGB2YWx1ZWAgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBhY2Nl
c3NlZC4nKTsKKyAgICB9CisgIH0KK30pOworbGV0IGl0ZXJTdGVwVGhyb3dzID0geworICBbU3lt
Ym9sLml0ZXJhdG9yXSgpIHsKKyAgICByZXR1cm4geworICAgICAgbmV4dCgpIHsKKyAgICAgICAg
cmV0dXJuIHBvaXNvbmVkRG9uZTsKKyAgICAgIH0KKyAgICB9OworICB9Cit9OworCitQcm9taXNl
LmFueShpdGVyU3RlcFRocm93cykudGhlbigKKyAgKCkgPT4geworICAkRE9ORSgnVGhlIHByb21p
c2Ugc2hvdWxkIGJlIHJlamVjdGVkLicpOworfSwgKHJlYXNvbikgPT4geworICBhc3NlcnQuc2Ft
ZVZhbHVlKHJlYXNvbiwgZXJyb3IpOworfSkudGhlbigkRE9ORSwgJERPTkUpOwpJbmRleDogSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L2xlbmd0aC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbGVuZ3Ro
LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9t
aXNlL2FueS9sZW5ndGguanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorLy8gQ29w
eXJpZ2h0IChDKSAyMDE5IFNlcmdleSBSdWJhbm92LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55CitkZXNjcmlwdGlvbjog
UHJvbWlzZS5hbnkgYGxlbmd0aGAgcHJvcGVydHkKK2luZm86IHwKKyAgRVMgU2VjdGlvbiAxNzoK
KyAgRXZlcnkgYnVpbHQtaW4gRnVuY3Rpb24gb2JqZWN0LCBpbmNsdWRpbmcgY29uc3RydWN0b3Jz
LCBoYXMgYSBsZW5ndGgKKyAgcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgYW4gaW50ZWdlci4gVW5s
ZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIHRoaXMgdmFsdWUKKyAgaXMgZXF1YWwgdG8gdGhlIGxh
cmdlc3QgbnVtYmVyIG9mIG5hbWVkIGFyZ3VtZW50cyBzaG93biBpbiB0aGUgc3ViY2xhdXNlCisg
IGhlYWRpbmdzIGZvciB0aGUgZnVuY3Rpb24gZGVzY3JpcHRpb24sIGluY2x1ZGluZyBvcHRpb25h
bCBwYXJhbWV0ZXJzLgorCisgIFsuLi5dCisKKyAgVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQs
IHRoZSBsZW5ndGggcHJvcGVydHkgb2YgYSBidWlsdC1pbiBGdW5jdGlvbgorICBvYmplY3QgaGFz
IHRoZSBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwgW1tFbnVtZXJhYmxlXV06IGZh
bHNlLAorICBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlIH0uCitpbmNsdWRlczogW3Byb3BlcnR5SGVs
cGVyLmpzXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueV0KKy0tLSovCisKK3ZlcmlmeVByb3BlcnR5
KFByb21pc2UuYW55LCAnbGVuZ3RoJywgeworICBjb25maWd1cmFibGU6IHRydWUsCisgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgZW51bWVyYWJsZTogZmFsc2UsCisgIHZhbHVlOiAxLAorfSk7CkluZGV4
OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbmFtZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvbmFt
ZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvbmFtZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI5IEBACisvLyBDb3B5
cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiBQ
cm9taXNlLmFueSBgbmFtZWAgcHJvcGVydHkKK2luZm86IHwKKyAgRVMgU2VjdGlvbiAxNzoKKwor
ICBFdmVyeSBidWlsdC1pbiBGdW5jdGlvbiBvYmplY3QsIGluY2x1ZGluZyBjb25zdHJ1Y3RvcnMs
IHRoYXQgaXMgbm90CisgIGlkZW50aWZpZWQgYXMgYW4gYW5vbnltb3VzIGZ1bmN0aW9uIGhhcyBh
IG5hbWUgcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgYQorICBTdHJpbmcuIFVubGVzcyBvdGhlcndp
c2Ugc3BlY2lmaWVkLCB0aGlzIHZhbHVlIGlzIHRoZSBuYW1lIHRoYXQgaXMgZ2l2ZW4gdG8KKyAg
dGhlIGZ1bmN0aW9uIGluIHRoaXMgc3BlY2lmaWNhdGlvbi4KKworICBbLi4uXQorCisgIFVubGVz
cyBvdGhlcndpc2Ugc3BlY2lmaWVkLCB0aGUgbmFtZSBwcm9wZXJ0eSBvZiBhIGJ1aWx0LWluIEZ1
bmN0aW9uCisgIG9iamVjdCwgaWYgaXQgZXhpc3RzLCBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBbW1dy
aXRhYmxlXV06IGZhbHNlLAorICBbW0VudW1lcmFibGVdXTogZmFsc2UsIFtbQ29uZmlndXJhYmxl
XV06IHRydWUgfS4KK2luY2x1ZGVzOiBbcHJvcGVydHlIZWxwZXIuanNdCitmZWF0dXJlczogW1By
b21pc2UuYW55XQorLS0tKi8KKwordmVyaWZ5UHJvcGVydHkoUHJvbWlzZS5hbnksICduYW1lJywg
eworICBjb25maWd1cmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiBmYWxzZSwKKyAgZW51bWVyYWJs
ZTogZmFsc2UsCisgIHZhbHVlOiAnYW55JywKK30pOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L25ldy1yZWplY3QtZnVuY3Rpb24uanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L25ldy1yZWpl
Y3QtZnVuY3Rpb24uanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL1Byb21pc2UvYW55L25ldy1yZWplY3QtZnVuY3Rpb24uanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAg
UmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0t
LQorZXNpZDogc2VjLXBlcmZvcm1wcm9taXNlYW55CitkZXNjcmlwdGlvbjogPgorICBFYWNoIFBy
b21pc2UuYW55IGVsZW1lbnQgaXMgY2FsbGVkIHdpdGggYSBuZXcgUHJvbWlzZS5hbnkgUmVqZWN0
IEVsZW1lbnQgZnVuY3Rpb24uCitpbmZvOiB8CisgIFJ1bnRpbWUgU2VtYW50aWNzOiBQZXJmb3Jt
UHJvbWlzZUFueSAoIGl0ZXJhdG9yUmVjb3JkLCBjb25zdHJ1Y3RvciwgcmVzdWx0Q2FwYWJpbGl0
eSApCisKKyAgLi4uCisgIGsuIExldCByZWplY3RFbGVtZW50IGJlICEgQ3JlYXRlQnVpbHRpbkZ1
bmN0aW9uKHN0ZXBzLCDCqyBbW0FscmVhZHlDYWxsZWRdXSwgW1tJbmRleF1dLCBbW0Vycm9yc11d
LCBbW0NhcGFiaWxpdHldXSwgW1tSZW1haW5pbmdFbGVtZW50c11dIMK7KS4KKyAgLi4uCisgIHIu
IFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0
eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisgIC4uLgorCitmZWF0dXJlczogW1By
b21pc2UuYW55XQorLS0tKi8KKworZnVuY3Rpb24gcmVqZWN0RnVuY3Rpb24oKSB7fQorCitmdW5j
dGlvbiBDb25zdHJ1Y3RvcihleGVjdXRvcikgeworICBleGVjdXRvcihyZWplY3RGdW5jdGlvbiwg
JEVSUk9SKTsKK30KK0NvbnN0cnVjdG9yLnJlc29sdmUgPSBmdW5jdGlvbih2KSB7CisgIHJldHVy
biB2OworfTsKKwordmFyIGNhbGxDb3VudDEgPSAwOwordmFyIGNhbGxDb3VudDIgPSAwOwordmFy
IHAxT25SZWplY3RlZDsKKwordmFyIHAxID0geworICB0aGVuKF8sIG9uUmVqZWN0ZWQpIHsKKyAg
ICBjYWxsQ291bnQxICs9IDE7CisgICAgcDFPblJlamVjdGVkID0gb25SZWplY3RlZDsKKyAgICBh
c3NlcnQubm90U2FtZVZhbHVlKG9uUmVqZWN0ZWQsIHJlamVjdEZ1bmN0aW9uLCAncDEudGhlbicp
OworICB9Cit9OwordmFyIHAyID0geworICB0aGVuKF8sIG9uUmVqZWN0ZWQpIHsKKyAgICBjYWxs
Q291bnQyICs9IDE7CisgICAgYXNzZXJ0Lm5vdFNhbWVWYWx1ZShvblJlamVjdGVkLCByZWplY3RG
dW5jdGlvbiwgJ3AyLnRoZW4nKTsKKyAgICBhc3NlcnQubm90U2FtZVZhbHVlKG9uUmVqZWN0ZWQs
IHAxT25SZWplY3RlZCwgJ3AxLm9uUmVqZWN0ZWQgIT0gcDIub25SZWplY3RlZCcpOworICB9Cit9
OworCitQcm9taXNlLmFueS5jYWxsKENvbnN0cnVjdG9yLCBbcDEsIHAyXSk7Cithc3NlcnQuc2Ft
ZVZhbHVlKGNhbGxDb3VudDEsIDEsICdwMS50aGVuIGNhbGwgY291bnQnKTsKK2Fzc2VydC5zYW1l
VmFsdWUoY2FsbENvdW50MiwgMSwgJ3AyLnRoZW4gY2FsbCBjb3VudCcpOworCkluZGV4OiBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcHJvcC1kZXNjLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9wcm9w
LWRlc2MuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L1Byb21pc2UvYW55L3Byb3AtZGVzYy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBA
CisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3YuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2Ny
aXB0aW9uOiBQcm9taXNlLmFueSBwcm9wZXJ0eSBkZXNjcmlwdG9yCitpbmZvOiB8CisgIEVTIFNl
Y3Rpb24gMTcKKworICBFdmVyeSBvdGhlciBkYXRhIHByb3BlcnR5IGRlc2NyaWJlZCBpbiBjbGF1
c2VzIDE4IHRocm91Z2ggMjYgYW5kIGluIEFubmV4CisgIEIuMiBoYXMgdGhlIGF0dHJpYnV0ZXMg
eyBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiBmYWxzZSwKKyAgW1tDb25maWd1
cmFibGVdXTogdHJ1ZSB9IHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLgoraW5jbHVkZXM6IFtw
cm9wZXJ0eUhlbHBlci5qc10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLworCit2ZXJp
ZnlQcm9wZXJ0eShQcm9taXNlLCAnYW55JywgeworICBjb25maWd1cmFibGU6IHRydWUsCisgIHdy
aXRhYmxlOiB0cnVlLAorICBlbnVtZXJhYmxlOiBmYWxzZSwKK30pOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1hbGwtbWl4ZWQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jl
amVjdC1hbGwtbWl4ZWQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1hbGwtbWl4ZWQuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwyNiBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxp
Y2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9t
aXNlLmFueQorZGVzY3JpcHRpb246ID4KKyAgUHJvbWlzZS5hbnkgcmVqZWN0aW9uIHJlYXNvbnMg
ZnJvbSB2YXJpb3VzIHJlamVjdGlvbnMgYXJlIGFsbCBwcmVzZW50CitmbGFnczogW2FzeW5jXQor
ZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgcmVq
ZWN0aW9ucyA9IFsKKyAgUHJvbWlzZS5yZWplY3QoJ2EnKSwKKyAgbmV3IFByb21pc2UoKF8sIHJl
amVjdCkgPT4gcmVqZWN0KCdiJykpLAorICBQcm9taXNlLmFsbChbUHJvbWlzZS5yZWplY3QoJ2Mn
KV0pLAorICBQcm9taXNlLnJlc29sdmUoUHJvbWlzZS5yZWplY3QoJ2QnKSksCitdOworCitQcm9t
aXNlLmFueShyZWplY3Rpb25zKQorICAudGhlbigKKyAgICAoKSA9PiAkRE9ORSgnVGhlIHByb21p
c2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBidXQgd2FzIHJlc29sdmVkJyksCisgICAgZXJyb3IgPT4g
eworICAgICAgYXNzZXJ0LnNhbWVWYWx1ZShlcnJvci5lcnJvcnMubGVuZ3RoLCByZWplY3Rpb25z
Lmxlbmd0aCk7CisgICAgICBhc3NlcnQuc2FtZVZhbHVlKGVycm9yLmVycm9ycy5qb2luKCcnKSwg
J2FiY2QnKTsKKyAgICB9CisgICkudGhlbigkRE9ORSwgJERPTkUpOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1kZWZlcnJlZC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVq
ZWN0LWRlZmVycmVkLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZGVmZXJyZWQuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzMSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmlj
ayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLyotLS0KK2Vz
aWQ6IHNlYy1wcm9taXNlLmFueQorZGVzY3JpcHRpb246IFJlamVjdGluZyB0aHJvdWdoIGRlZmVy
cmVkIGludm9jYXRpb24gb2YgdGhlIHByb3ZpZGVkIHJlc29sdmluZyBmdW5jdGlvbgoraW5mbzog
fAorICAuLi4KKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFueShpdGVyYXRvclJl
Y29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorICAuLi4KKworCitmbGFnczogW2FzeW5jXQor
ZmVhdHVyZXM6IFtBZ2dyZWdhdGVFcnJvciwgUHJvbWlzZS5hbnksIGFycm93LWZ1bmN0aW9uXQor
LS0tKi8KKwordmFyIHJlamVjdGlvbiA9IHt9OwordmFyIHRoZW5hYmxlID0geworICB0aGVuKF8s
IHJlamVjdCkgeworICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKCkpCisgICAg
ICAudGhlbigoKSA9PiByZWplY3QocmVqZWN0aW9uKSk7CisgIH0KK307CisKK1Byb21pc2UuYW55
KFt0aGVuYWJsZV0pCisgIC50aGVuKCgpID0+IHsKKyAgICAkRE9ORSgnVGhlIHByb21pc2Ugc2hv
dWxkIGJlIHJlamVjdGVkLicpOworICB9LCAoYWdncmVnYXRlKSA9PiB7CisgICAgYXNzZXJ0KGFn
Z3JlZ2F0ZSBpbnN0YW5jZW9mIEFnZ3JlZ2F0ZUVycm9yKTsKKyAgICBhc3NlcnQuc2FtZVZhbHVl
KGFnZ3JlZ2F0ZS5lcnJvcnMubGVuZ3RoLCAxKTsKKyAgICBhc3NlcnQuc2FtZVZhbHVlKGFnZ3Jl
Z2F0ZS5lcnJvcnNbMF0sIHJlamVjdGlvbik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKSW5k
ZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxl
bWVudC1mdW5jdGlvbi1leHRlbnNpYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1leHRl
bnNpYmxlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1leHRlbnNpYmxlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxOSBMZW8gQmFs
dGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2VzaWQ6IHNlYy1wcm9taXNlLmFueS1yZWplY3QtZWxlbWVudC1mdW5jdGlv
bnMKK2Rlc2NyaXB0aW9uOiBUaGUgW1tFeHRlbnNpYmxlXV0gc2xvdCBvZiBQcm9taXNlLmFueSBS
ZWplY3QgRWxlbWVudCBmdW5jdGlvbnMKK2luZm86IHwKKyAgMTcgRUNNQVNjcmlwdCBTdGFuZGFy
ZCBCdWlsdC1pbiBPYmplY3RzOgorICAgIFVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlLCB0aGUg
W1tFeHRlbnNpYmxlXV0gaW50ZXJuYWwgc2xvdAorICAgIG9mIGEgYnVpbHQtaW4gb2JqZWN0IGlu
aXRpYWxseSBoYXMgdGhlIHZhbHVlIHRydWUuCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0t
Ki8KKwordmFyIHJlamVjdEVsZW1lbnRGdW5jdGlvbjsKK3ZhciB0aGVuYWJsZSA9IHsKKyAgdGhl
bihfLCByZWplY3QpIHsKKyAgICByZWplY3RFbGVtZW50RnVuY3Rpb24gPSByZWplY3Q7CisgIH0K
K307CisKK2Z1bmN0aW9uIE5vdFByb21pc2UoZXhlY3V0b3IpIHsKKyAgZXhlY3V0b3IoZnVuY3Rp
b24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7Cit9CitOb3RQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlv
bih2KSB7CisgIHJldHVybiB2OworfTsKK1Byb21pc2UuYW55LmNhbGwoTm90UHJvbWlzZSwgW3Ro
ZW5hYmxlXSk7CisKK2Fzc2VydChPYmplY3QuaXNFeHRlbnNpYmxlKHJlamVjdEVsZW1lbnRGdW5j
dGlvbikpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55
L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLWxlbmd0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVqZWN0LWVsZW1lbnQtZnVuY3Rp
b24tbGVuZ3RoLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1sZW5ndGguanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0
ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2Rl
IGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
LgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55LXJlamVjdC1lbGVtZW50LWZ1bmN0aW9u
cworZGVzY3JpcHRpb246IFRoZSBgbGVuZ3RoYCBwcm9wZXJ0eSBvZiBQcm9taXNlLmFueSBSZWpl
Y3QgRWxlbWVudCBmdW5jdGlvbnMKK2luZm86IHwKKyAgVGhlIGxlbmd0aCBwcm9wZXJ0eSBvZiBh
IFByb21pc2UuYW55IFJlamVjdCBFbGVtZW50IGZ1bmN0aW9uIGlzIDEuCisKKyAgMTcgRUNNQVNj
cmlwdCBTdGFuZGFyZCBCdWlsdC1pbiBPYmplY3RzOgorICAgIFVubGVzcyBvdGhlcndpc2Ugc3Bl
Y2lmaWVkLCB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIGEgYnVpbHQtaW4gRnVuY3Rpb24KKyAgICBv
YmplY3QgaGFzIHRoZSBhdHRyaWJ1dGVzIHsgW1tXcml0YWJsZV1dOiBmYWxzZSwgW1tFbnVtZXJh
YmxlXV06IGZhbHNlLAorICAgIFtbQ29uZmlndXJhYmxlXV06IHRydWUgfS4KK2luY2x1ZGVzOiBb
cHJvcGVydHlIZWxwZXIuanNdCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8KKwordmFy
IHJlamVjdEVsZW1lbnRGdW5jdGlvbjsKK3ZhciB0aGVuYWJsZSA9IHsKKyAgdGhlbihfLCByZWpl
Y3QpIHsKKyAgICByZWplY3RFbGVtZW50RnVuY3Rpb24gPSByZWplY3Q7CisgIH0KK307CisKK2Z1
bmN0aW9uIE5vdFByb21pc2UoZXhlY3V0b3IpIHsKKyAgZXhlY3V0b3IoZnVuY3Rpb24oKSB7fSwg
ZnVuY3Rpb24oKSB7fSk7Cit9CitOb3RQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlvbih2KSB7Cisg
IHJldHVybiB2OworfTsKK1Byb21pc2UuYW55LmNhbGwoTm90UHJvbWlzZSwgW3RoZW5hYmxlXSk7
CisKK2Fzc2VydC5zYW1lVmFsdWUocmVqZWN0RWxlbWVudEZ1bmN0aW9uLmxlbmd0aCwgMSk7CisK
K3ZlcmlmeVByb3BlcnR5KHJlamVjdEVsZW1lbnRGdW5jdGlvbiwgJ2xlbmd0aCcsIHsKKyAgdmFs
dWU6IDEsCisgIGVudW1lcmFibGU6IGZhbHNlLAorICB3cml0YWJsZTogZmFsc2UsCisgIGNvbmZp
Z3VyYWJsZTogdHJ1ZSwKK30pOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L1Byb21pc2UvYW55L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLW5hbWUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1lbGVt
ZW50LWZ1bmN0aW9uLW5hbWUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLW5hbWUuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExl
byBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhp
cyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55LXJlamVjdC1lbGVtZW50LWZ1
bmN0aW9ucworZGVzY3JpcHRpb246IFRoZSBgbmFtZWAgcHJvcGVydHkgb2YgUHJvbWlzZS5hbnkg
UmVqZWN0IEVsZW1lbnQgZnVuY3Rpb25zCitpbmZvOiB8CisgIEEgcHJvbWlzZSByZXNvbHZlIGZ1
bmN0aW9uIGlzIGFuIGFub255bW91cyBidWlsdC1pbiBmdW5jdGlvbi4KKworICAxNyBFQ01BU2Ny
aXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHM6CisgICAgRXZlcnkgYnVpbHQtaW4gZnVuY3Rp
b24gb2JqZWN0LCBpbmNsdWRpbmcgY29uc3RydWN0b3JzLCBoYXMgYSBgbmFtZWAKKyAgICBwcm9w
ZXJ0eSB3aG9zZSB2YWx1ZSBpcyBhIFN0cmluZy4gRnVuY3Rpb25zIHRoYXQgYXJlIGlkZW50aWZp
ZWQgYXMKKyAgICBhbm9ueW1vdXMgZnVuY3Rpb25zIHVzZSB0aGUgZW1wdHkgc3RyaW5nIGFzIHRo
ZSB2YWx1ZSBvZiB0aGUgYG5hbWVgCisgICAgcHJvcGVydHkuCisgICAgVW5sZXNzIG90aGVyd2lz
ZSBzcGVjaWZpZWQsIHRoZSBgbmFtZWAgcHJvcGVydHkgb2YgYSBidWlsdC1pbiBmdW5jdGlvbgor
ICAgIG9iamVjdCBoYXMgdGhlIGF0dHJpYnV0ZXMgeyBbW1dyaXRhYmxlXV06ICpmYWxzZSosIFtb
RW51bWVyYWJsZV1dOiAqZmFsc2UqLAorICAgIFtbQ29uZmlndXJhYmxlXV06ICp0cnVlKiB9Lgor
aW5jbHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCist
LS0qLworCit2YXIgcmVqZWN0RWxlbWVudEZ1bmN0aW9uOwordmFyIHRoZW5hYmxlID0geworICB0
aGVuKF8sIHJlamVjdCkgeworICAgIHJlamVjdEVsZW1lbnRGdW5jdGlvbiA9IHJlamVjdDsKKyAg
fQorfTsKKworZnVuY3Rpb24gTm90UHJvbWlzZShleGVjdXRvcikgeworICBleGVjdXRvcihmdW5j
dGlvbigpIHt9LCBmdW5jdGlvbigpIHt9KTsKK30KK05vdFByb21pc2UucmVzb2x2ZSA9IGZ1bmN0
aW9uKHYpIHsKKyAgcmV0dXJuIHY7Cit9OworUHJvbWlzZS5hbnkuY2FsbChOb3RQcm9taXNlLCBb
dGhlbmFibGVdKTsKKwordmVyaWZ5UHJvcGVydHkocmVqZWN0RWxlbWVudEZ1bmN0aW9uLCAibmFt
ZSIsIHsKKyAgdmFsdWU6ICIiLCB3cml0YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IGZhbHNlLCBj
b25maWd1cmFibGU6IHRydWUKK30pOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL1Byb21pc2UvYW55L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLW5vbmNvbnN0cnVjdG9yLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1ub25jb25zdHJ1Y3Rvci5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVqZWN0LWVs
ZW1lbnQtZnVuY3Rpb24tbm9uY29uc3RydWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxk
cm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRo
ZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDog
c2VjLXByb21pc2UuYW55LXJlamVjdC1lbGVtZW50LWZ1bmN0aW9ucworZGVzY3JpcHRpb246IFBy
b21pc2UuYW55IFJlamVjdCBFbGVtZW50IGZ1bmN0aW9ucyBhcmUgbm90IGNvbnN0cnVjdG9ycwor
aW5mbzogfAorICAxNyBFQ01BU2NyaXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHM6CisgICAg
QnVpbHQtaW4gZnVuY3Rpb24gb2JqZWN0cyB0aGF0IGFyZSBub3QgaWRlbnRpZmllZCBhcyBjb25z
dHJ1Y3RvcnMgZG8gbm90CisgICAgaW1wbGVtZW50IHRoZSBbW0NvbnN0cnVjdF1dIGludGVybmFs
IG1ldGhvZCB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZAorICAgIGluIHRoZSBkZXNjcmlwdGlv
biBvZiBhIHBhcnRpY3VsYXIgZnVuY3Rpb24uCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0t
Ki8KKwordmFyIHJlamVjdEVsZW1lbnRGdW5jdGlvbjsKK3ZhciB0aGVuYWJsZSA9IHsKKyAgdGhl
bihfLCByZWplY3QpIHsKKyAgICByZWplY3RFbGVtZW50RnVuY3Rpb24gPSByZWplY3Q7CisgIH0K
K307CisKK2Z1bmN0aW9uIE5vdFByb21pc2UoZXhlY3V0b3IpIHsKKyAgZXhlY3V0b3IoZnVuY3Rp
b24oKSB7fSwgZnVuY3Rpb24oKSB7fSk7Cit9CitOb3RQcm9taXNlLnJlc29sdmUgPSBmdW5jdGlv
bih2KSB7CisgIHJldHVybiB2OworfTsKK1Byb21pc2UuYW55LmNhbGwoTm90UHJvbWlzZSwgW3Ro
ZW5hYmxlXSk7CisKK2Fzc2VydC5zYW1lVmFsdWUoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w
ZXJ0eS5jYWxsKHJlamVjdEVsZW1lbnRGdW5jdGlvbiwgJ3Byb3RvdHlwZScpLCBmYWxzZSk7Cith
c3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rpb24oKSB7CisgIG5ldyByZWplY3RFbGVtZW50
RnVuY3Rpb24oKTsKK30pOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1By
b21pc2UvYW55L3JlamVjdC1lbGVtZW50LWZ1bmN0aW9uLXByb3RvdHlwZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVqZWN0LWVs
ZW1lbnQtZnVuY3Rpb24tcHJvdG90eXBlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZWplY3QtZWxlbWVudC1mdW5jdGlvbi1w
cm90b3R5cGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorLy8gQ29weXJpZ2h0
IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLXByb21pc2UuYW55LXJlamVj
dC1lbGVtZW50LWZ1bmN0aW9ucworZGVzY3JpcHRpb246IFRoZSBbW1Byb3RvdHlwZV1dIG9mIFBy
b21pc2UuYW55IFJlamVjdCBFbGVtZW50IGZ1bmN0aW9ucworaW5mbzogfAorICAxNyBFQ01BU2Ny
aXB0IFN0YW5kYXJkIEJ1aWx0LWluIE9iamVjdHM6CisgICAgVW5sZXNzIG90aGVyd2lzZSBzcGVj
aWZpZWQgZXZlcnkgYnVpbHQtaW4gZnVuY3Rpb24gYW5kIGV2ZXJ5IGJ1aWx0LWluCisgICAgY29u
c3RydWN0b3IgaGFzIHRoZSBGdW5jdGlvbiBwcm90b3R5cGUgb2JqZWN0LCB3aGljaCBpcyB0aGUg
aW5pdGlhbAorICAgIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uIEZ1bmN0aW9uLnByb3RvdHlwZSAo
MTkuMi4zKSwgYXMgdGhlIHZhbHVlIG9mCisgICAgaXRzIFtbUHJvdG90eXBlXV0gaW50ZXJuYWwg
c2xvdC4KK2ZlYXR1cmVzOiBbUHJvbWlzZS5hbnldCistLS0qLworCit2YXIgcmVqZWN0RWxlbWVu
dEZ1bmN0aW9uOwordmFyIHRoZW5hYmxlID0geworICB0aGVuKF8sIHJlamVjdCkgeworICAgIHJl
amVjdEVsZW1lbnRGdW5jdGlvbiA9IHJlamVjdDsKKyAgfQorfTsKKworZnVuY3Rpb24gTm90UHJv
bWlzZShleGVjdXRvcikgeworICBleGVjdXRvcihmdW5jdGlvbigpIHt9LCBmdW5jdGlvbigpIHt9
KTsKK30KK05vdFByb21pc2UucmVzb2x2ZSA9IGZ1bmN0aW9uKHYpIHsKKyAgcmV0dXJuIHY7Cit9
OworUHJvbWlzZS5hbnkuY2FsbChOb3RQcm9taXNlLCBbdGhlbmFibGVdKTsKKworYXNzZXJ0LnNh
bWVWYWx1ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YocmVqZWN0RWxlbWVudEZ1bmN0aW9uKSwgRnVu
Y3Rpb24ucHJvdG90eXBlKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Q
cm9taXNlL2FueS9yZXNvbHZlLWZyb20tcmVqZWN0LWNhdGNoLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWZyb20tcmVq
ZWN0LWNhdGNoLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0
LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWZyb20tcmVqZWN0LWNhdGNoLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
cHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiA+CisgIFByb21pc2UuYW55IHJlc29sdmVzIHdpdGgg
dGhlIGZpcnN0IGl0ZW0gdGhhdCBkb2VzIG5vdCByZWplY3QuCitmbGFnczogW2FzeW5jXQorZmVh
dHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCitsZXQgZnVsZmls
bGFibGVzID0gWworICBQcm9taXNlLnJlamVjdCgnYScpLAorICBuZXcgUHJvbWlzZSgocmVzb2x2
ZSwgcmVqZWN0KSA9PiByZWplY3QoJ2InKSksCisgIFByb21pc2UuYWxsKFtQcm9taXNlLnJlamVj
dCgnYycpXSksCisgIFByb21pc2UucmVqZWN0KCdkJykuY2F0Y2godiA9PiB2KSwKK107CisKK1By
b21pc2UuYW55KGZ1bGZpbGxhYmxlcykKKyAgLnRoZW4oKHJlc29sdXRpb24pID0+IHsKKyAgICBh
c3NlcnQuc2FtZVZhbHVlKHJlc29sdXRpb24sICdkJyk7CisgIH0pLnRoZW4oJERPTkUsICRET05F
KTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNv
bHZlLWZyb20tcmVzb2x2ZS1yZWplY3QtY2F0Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3Jlc29sdmUtZnJvbS1yZXNvbHZlLXJl
amVjdC1jYXRjaC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWls
dC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZS1mcm9tLXJlc29sdmUtcmVqZWN0LWNhdGNoLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNr
IFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQg
YnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitl
c2lkOiBzZWMtcHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiA+CisgIFByb21pc2UuYW55IHJlc29s
dmVzIHdpdGggdGhlIGZpcnN0IGl0ZW0gdGhhdCBkb2VzIG5vdCByZWplY3QuCitmbGFnczogW2Fz
eW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25dCistLS0qLworCits
ZXQgZnVsZmlsbGFibGVzID0gWworICBQcm9taXNlLnJlamVjdCgnYScpLAorICBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3QoJ2InKSksCisgIFByb21pc2UuYWxsKFtQcm9t
aXNlLnJlamVjdCgnYycpXSksCisgIFByb21pc2UucmVzb2x2ZShQcm9taXNlLnJlamVjdCgnZCcp
LmNhdGNoKHYgPT4gdikpLAorXTsKKworUHJvbWlzZS5hbnkoZnVsZmlsbGFibGVzKQorICAudGhl
bigocmVzb2x1dGlvbikgPT4geworICAgIGFzc2VydC5zYW1lVmFsdWUocmVzb2x1dGlvbiwgJ2Qn
KTsKKyAgfSkudGhlbigkRE9ORSwgJERPTkUpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL1Byb21pc2UvYW55L3Jlc29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi1kZWZl
cnJlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJv
bWlzZS9hbnkvcmVzb2x2ZS1pZ25vcmVzLWxhdGUtcmVqZWN0aW9uLWRlZmVycmVkLmpzCShub25l
eGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9y
ZXNvbHZlLWlnbm9yZXMtbGF0ZS1yZWplY3Rpb24tZGVmZXJyZWQuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE5IExlbyBCYWx0ZXIsIDIwMjAg
UmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0t
LQorZGVzY3JpcHRpb246ID4KKyAgUmVzb2x2ZWQgcHJvbWlzZXMgaWdub3JlIHJlamVjdGlvbnMg
dGhyb3VnaCBkZWZlcnJlZCBpbnZvY2F0aW9uIG9mIHRoZQorICAgIHByb3ZpZGVkIHJlc29sdmlu
ZyBmdW5jdGlvbgorZXNpZDogc2VjLXByb21pc2UuYW55CitpbmZvOiB8CisgIDUuIExldCByZXN1
bHQgYmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmls
aXR5KS4KKworICBSdW50aW1lIFNlbWFudGljczogUGVyZm9ybVByb21pc2VBbnkKKworICA4LiBS
ZXBlYXQKKyAgICAuLi4KKyAgICByLiBQZXJmb3JtID8gSW52b2tlKG5leHRQcm9taXNlLCAidGhl
biIsIMKrIHJlc3VsdENhcGFiaWxpdHkuW1tSZXNvbHZlXV0sIHJlamVjdEVsZW1lbnQgwrspLgor
CitmbGFnczogW2FzeW5jXQorZmVhdHVyZXM6IFtQcm9taXNlLmFueSwgYXJyb3ctZnVuY3Rpb25d
CistLS0qLworCit2YXIgcmVzb2x2ZXIgPSB7CisgIHRoZW4ocmVzb2x2ZSkgeworICAgIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKCkpCisgICAgICAudGhlbigoKSA9PiByZXNvbHZl
KDQyKSk7CisgIH0KK307Cit2YXIgbGF0ZVJlamVjdG9yID0geworICB0aGVuKHJlc29sdmUsIHJl
amVjdCkgeworICAgIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKCkpCisgICAgICAu
dGhlbigoKSA9PiB7CisgICAgICAgIHJlc29sdmUoOSk7CisgICAgICAgIHJlamVjdCgpOworICAg
ICAgfSk7CisgIH0KK307CisKK1Byb21pc2UuYW55KFtyZXNvbHZlciwgbGF0ZVJlamVjdG9yXSkK
KyAgLnRoZW4ocmVzb2x1dGlvbiA9PiB7CisgICAgYXNzZXJ0LnNhbWVWYWx1ZShyZXNvbHV0aW9u
LCA0Mik7CisgIH0pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2FueS9yZXNvbHZlLWlnbm9yZXMtbGF0ZS1yZWplY3Rpb24u
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb21pc2Uv
YW55L3Jlc29sdmUtaWdub3Jlcy1sYXRlLXJlamVjdGlvbi5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmVzb2x2ZS1pZ25vcmVz
LWxhdGUtcmVqZWN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8vIENv
cHlyaWdodCAoQykgMjAxOSBMZW8gQmFsdGVyLCAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2Rlc2NyaXB0aW9uOiA+CisgIFJl
c29sdmVkIHByb21pc2VzIGlnbm9yZSByZWplY3Rpb25zIHRocm91Z2ggaW1tZWRpYXRlIGludm9j
YXRpb24gb2YgdGhlCisgICAgcHJvdmlkZWQgcmVzb2x2aW5nIGZ1bmN0aW9uCitlc2lkOiBzZWMt
cHJvbWlzZS5hbnkKK2luZm86IHwKKyAgNS4gTGV0IHJlc3VsdCBiZSBQZXJmb3JtUHJvbWlzZUFu
eShpdGVyYXRvclJlY29yZCwgQywgcHJvbWlzZUNhcGFiaWxpdHkpLgorCisgIFJ1bnRpbWUgU2Vt
YW50aWNzOiBQZXJmb3JtUHJvbWlzZUFueQorCisgIDguIFJlcGVhdAorICAgIC4uLgorICAgIHIu
IFBlcmZvcm0gPyBJbnZva2UobmV4dFByb21pc2UsICJ0aGVuIiwgwqsgcmVzdWx0Q2FwYWJpbGl0
eS5bW1Jlc29sdmVdXSwgcmVqZWN0RWxlbWVudCDCuykuCisKK2ZsYWdzOiBbYXN5bmNdCitmZWF0
dXJlczogW1Byb21pc2UuYW55LCBhcnJvdy1mdW5jdGlvbl0KKy0tLSovCisKK3ZhciByZXNvbHZl
ciA9IHsKKyAgdGhlbihyZXNvbHZlKSB7CisgICAgcmVzb2x2ZSg0Mik7CisgIH0KK307Cit2YXIg
bGF0ZVJlamVjdG9yID0geworICB0aGVuKHJlc29sdmUsIHJlamVjdCkgeworICAgIHJlc29sdmUo
MzMpOworICAgIHJlamVjdCgpOworICB9Cit9OworCitQcm9taXNlLmFueShbcmVzb2x2ZXIsIGxh
dGVSZWplY3Rvcl0pCisgIC50aGVuKHJlc29sdXRpb24gPT4geworICAgIGFzc2VydC5zYW1lVmFs
dWUocmVzb2x1dGlvbiwgNDIpOworICB9KS50aGVuKCRET05FLCAkRE9ORSk7CkluZGV4OiBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJvbWlzZS9hbnkvcmV0dXJucy1wcm9taXNlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm9taXNlL2Fu
eS9yZXR1cm5zLXByb21pc2UuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb21pc2UvYW55L3JldHVybnMtcHJvbWlzZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDI0IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgU2VyZ2V5IFJ1YmFub3Yu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
cHJvbWlzZS5hbnkKK2Rlc2NyaXB0aW9uOiBQcm9taXNlLmFueSByZXR1cm5zIGEgUHJvbWlzZQor
aW5mbzogfAorICBQcm9taXNlLmFueSAoIGl0ZXJhYmxlICkKKworICAyLiBMZXQgcHJvbWlzZUNh
cGFiaWxpdHkgYmUgPyBOZXdQcm9taXNlQ2FwYWJpbGl0eShDKS4KKyAgMy4gTGV0IGl0ZXJhdG9y
UmVjb3JkIGJlIEdldEl0ZXJhdG9yKGl0ZXJhYmxlKS4KKyAgNC4gSWZBYnJ1cHRSZWplY3RQcm9t
aXNlKGl0ZXJhdG9yUmVjb3JkLCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDUuIExldCByZXN1bHQg
YmUgUGVyZm9ybVByb21pc2VBbnkoaXRlcmF0b3JSZWNvcmQsIEMsIHByb21pc2VDYXBhYmlsaXR5
KS4KKyAgNi4gSWYgcmVzdWx0IGlzIGFuIGFicnVwdCBjb21wbGV0aW9uLCB0aGVuCisgICAgYS4g
SWYgaXRlcmF0b3JSZWNvcmQuW1tEb25lXV0gaXMgZmFsc2UsIHNldCByZXN1bHQgdG8gSXRlcmF0
b3JDbG9zZShpdGVyYXRvclJlY29yZCwgcmVzdWx0KS4KKyAgICBiLiBJZkFicnVwdFJlamVjdFBy
b21pc2UocmVzdWx0LCBwcm9taXNlQ2FwYWJpbGl0eSkuCisgIDcuIFJldHVybiBDb21wbGV0aW9u
KHJlc3VsdCkuCitmZWF0dXJlczogW1Byb21pc2UuYW55XQorLS0tKi8KKwordmFyIHAgPSBQcm9t
aXNlLmFueShbXSk7CisKK2Fzc2VydChwIGluc3RhbmNlb2YgUHJvbWlzZSk7Cithc3NlcnQuc2Ft
ZVZhbHVlKE9iamVjdC5nZXRQcm90b3R5cGVPZihwKSwgUHJvbWlzZS5wcm90b3R5cGUpOwpJbmRl
eDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L2NyZWF0ZS1oYW5kbGVyLWlz
LXJldm9rZWQtcHJveHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL1Byb3h5L2NyZWF0ZS1oYW5kbGVyLWlzLXJldm9rZWQtcHJveHkuanMJKHJldmlzaW9u
IDI1OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9jcmVhdGUt
aGFuZGxlci1pcy1yZXZva2VkLXByb3h5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICsxLDIy
IEBACiAvLyBDb3B5cmlnaHQgKEMpIDIwMTUgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KIC8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vu
c2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIC8qLS0tCi1lczZpZDogOS41LjE1Citlc2lk
OiBzZWMtcHJveHljcmVhdGUKIGRlc2NyaXB0aW9uOiA+Ci0gICAgUHJveHkgKCB0YXJnZXQsIGhh
bmRsZXIgKQotICAgIC4uLgotICAgIDQuICBJZiBoYW5kbGVyIGlzIGEgUHJveHkgZXhvdGljIG9i
amVjdCBhbmQgdGhlIHZhbHVlIG9mIHRoZQotICAgIFtbUHJveHlIYW5kbGVyXV0gaW50ZXJuYWwg
c2xvdCBvZiBoYW5kbGVyIGlzIG51bGwsIHRocm93IGEKLSAgICBUeXBlRXJyb3IgZXhjZXB0aW9u
LgotICAgIC4uLgorICBBIFByb3h5IGlzIGNyZWF0ZWQgd2l0aCBpdHMgW1tQcm94eUhhbmRsZXJd
XSBhcyByZXZva2VkIFByb3h5LgoraW5mbzogfAorICBQcm94eUNyZWF0ZSAoIHRhcmdldCwgaGFu
ZGxlciApCisKKyAgWy4uLl0KKyAgMy4gTGV0IFAgYmUgISBNYWtlQmFzaWNPYmplY3QowqsgW1tQ
cm94eUhhbmRsZXJdXSwgW1tQcm94eVRhcmdldF1dIMK7KS4KKyAgWy4uLl0KKyAgNy4gU2V0IFAu
W1tQcm94eUhhbmRsZXJdXSB0byBoYW5kbGVyLgorICA4LiBSZXR1cm4gUC4KIGZlYXR1cmVzOiBb
UHJveHldCiAtLS0qLwogCiB2YXIgcmV2b2NhYmxlID0gUHJveHkucmV2b2NhYmxlKHt9LCB7fSk7
Ci0KIHJldm9jYWJsZS5yZXZva2UoKTsKIAotYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0
aW9uKCkgewotICBuZXcgUHJveHkoe30sIHJldm9jYWJsZS5wcm94eSk7Ci19KTsKK3ZhciBwcm94
eSA9IG5ldyBQcm94eSh7fSwgcmV2b2NhYmxlLnByb3h5KTsKK2Fzc2VydC5zYW1lVmFsdWUodHlw
ZW9mIHByb3h5LCAib2JqZWN0Iik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJveHkvY3JlYXRlLXRhcmdldC1pcy1ub3QtY2FsbGFibGUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L2NyZWF0ZS10YXJnZXQtaXMtbm90
LWNhbGxhYmxlLmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9i
dWlsdC1pbnMvUHJveHkvY3JlYXRlLXRhcmdldC1pcy1ub3QtY2FsbGFibGUuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNyArMSw3IEBACiAvLyBDb3B5cmlnaHQgKEMpIDIwMTUgdGhlIFY4IHByb2pl
Y3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIC8qLS0tCi1l
czZpZDogOS41LjE1Citlc2lkOiBzZWMtcHJveHljcmVhdGUKIGRlc2NyaXB0aW9uOiA+CiAgICAg
QSBQcm94eSBleG90aWMgb2JqZWN0IGlzIG9ubHkgY2FsbGFibGUgaWYgdGhlIGdpdmVuIHRhcmdl
dCBpcyBjYWxsYWJsZS4KIGluZm86IHwKQEAgLTIyLDUgKzIyLDUgQEAgZmVhdHVyZXM6IFtQcm94
eV0KIHZhciBwID0gbmV3IFByb3h5KHt9LCB7fSk7CiAKIGFzc2VydC50aHJvd3MoVHlwZUVycm9y
LCBmdW5jdGlvbigpIHsKLSAgcC5jYWxsKCk7CisgIHAoKTsKIH0pOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L2NyZWF0ZS10YXJnZXQtaXMtcmV2b2tlZC1mdW5j
dGlvbi1wcm94eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1p
bnMvUHJveHkvY3JlYXRlLXRhcmdldC1pcy1yZXZva2VkLWZ1bmN0aW9uLXByb3h5LmpzCShub25l
eGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9jcmVhdGUt
dGFyZ2V0LWlzLXJldm9rZWQtZnVuY3Rpb24tcHJveHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyMyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE1IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2VjLXBy
b3h5Y3JlYXRlCitkZXNjcmlwdGlvbjogPgorICBBIFByb3h5IGlzIGNyZWF0ZWQgd2l0aCBpdHMg
W1tQcm94eVRhcmdldF1dIGFzIHJldm9rZWQgZnVuY3Rpb24gUHJveHkuCitpbmZvOiB8CisgIFBy
b3h5Q3JlYXRlICggdGFyZ2V0LCBoYW5kbGVyICkKKworICBbLi4uXQorICAzLiBMZXQgUCBiZSAh
IE1ha2VCYXNpY09iamVjdCjCqyBbW1Byb3h5SGFuZGxlcl1dLCBbW1Byb3h5VGFyZ2V0XV0gwrsp
LgorICBbLi4uXQorICA2LiBTZXQgUC5bW1Byb3h5VGFyZ2V0XV0gdG8gdGFyZ2V0LgorICBbLi4u
XQorICA4LiBSZXR1cm4gUC4KK2ZlYXR1cmVzOiBbUHJveHldCistLS0qLworCit2YXIgcmV2b2Nh
YmxlID0gUHJveHkucmV2b2NhYmxlKGZ1bmN0aW9uKCkge30sIHt9KTsKK3Jldm9jYWJsZS5yZXZv
a2UoKTsKKwordmFyIHByb3h5ID0gbmV3IFByb3h5KHJldm9jYWJsZS5wcm94eSwge30pOworYXNz
ZXJ0LnNhbWVWYWx1ZSh0eXBlb2YgcHJveHksICJmdW5jdGlvbiIpOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L2NyZWF0ZS10YXJnZXQtaXMtcmV2b2tlZC1wcm94
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkv
Y3JlYXRlLXRhcmdldC1pcy1yZXZva2VkLXByb3h5LmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvY3JlYXRlLXRhcmdldC1pcy1yZXZv
a2VkLXByb3h5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIxICsxLDIzIEBACiAvLyBDb3B5cmln
aHQgKEMpIDIwMTUgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
IC8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KIC8qLS0tCi1lczZpZDogOS41LjE1Citlc2lkOiBzZWMtcHJveHljcmVh
dGUKIGRlc2NyaXB0aW9uOiA+Ci0gICAgUHJveHkgKCB0YXJnZXQsIGhhbmRsZXIgKQotICAgIC4u
LgotICAgIDIuIElmIHRhcmdldCBpcyBhIFByb3h5IGV4b3RpYyBvYmplY3QgYW5kIHRoZSB2YWx1
ZSBvZiB0aGUKLSAgICBbW1Byb3h5SGFuZGxlcl1dIGludGVybmFsIHNsb3Qgb2YgdGFyZ2V0IGlz
IG51bGwsIHRocm93IGEKLSAgICBUeXBlRXJyb3IgZXhjZXB0aW9uLgotICAgIC4uLgorICBBIFBy
b3h5IGlzIGNyZWF0ZWQgd2l0aCBpdHMgW1tQcm94eVRhcmdldF1dIGFzIHJldm9rZWQgUHJveHku
CitpbmZvOiB8CisgIFByb3h5Q3JlYXRlICggdGFyZ2V0LCBoYW5kbGVyICkKKworICBbLi4uXQor
ICAzLiBMZXQgUCBiZSAhIE1ha2VCYXNpY09iamVjdCjCqyBbW1Byb3h5SGFuZGxlcl1dLCBbW1By
b3h5VGFyZ2V0XV0gwrspLgorICBbLi4uXQorICA2LiBTZXQgUC5bW1Byb3h5VGFyZ2V0XV0gdG8g
dGFyZ2V0LgorICBbLi4uXQorICA4LiBSZXR1cm4gUC4KIGZlYXR1cmVzOiBbUHJveHldCiAtLS0q
LwogCiB2YXIgcmV2b2NhYmxlID0gUHJveHkucmV2b2NhYmxlKHt9LCB7fSk7Ci0KIHJldm9jYWJs
ZS5yZXZva2UoKTsKIAotYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgewotICBu
ZXcgUHJveHkocmV2b2NhYmxlLnByb3h5LCB7fSk7Ci19KTsKK3ZhciBwcm94eSA9IG5ldyBQcm94
eShyZXZvY2FibGUucHJveHksIHt9KTsKK2Fzc2VydC5zYW1lVmFsdWUodHlwZW9mIHByb3h5LCAi
b2JqZWN0Iik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0
L3RyYXAtaXMtbWlzc2luZy1yZWNlaXZlci1tdWx0aXBsZS1jYWxscy1pbmRleC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMt
bWlzc2luZy1yZWNlaXZlci1tdWx0aXBsZS1jYWxscy1pbmRleC5qcwkobm9uZXhpc3RlbnQpCisr
KyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9idWlsdC1pbnMvUHJveHkvc2V0L3RyYXAtaXMtbWlzc2lu
Zy1yZWNlaXZlci1tdWx0aXBsZS1jYWxscy1pbmRleC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDc5IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtcHJveHktb2Jq
ZWN0LWludGVybmFsLW1ldGhvZHMtYW5kLWludGVybmFsLXNsb3RzLXNldC1wLXYtcmVjZWl2ZXIK
K2Rlc2NyaXB0aW9uOiA+CisgIElmICJzZXQiIHRyYXAgaXMgbWlzc2luZywgdGhlIGNhbGwgaXMg
cHJvcGVybHkgZm9yd2FyZGVkIHRvIG9yZGluYXJ5CisgIFtbU2V0XV0gdGhhdCBpbnZva2VzIFtb
R2V0T3duUHJvcGVydHldXSBhbmQgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIG1ldGhvZHMKKyAgb24g
cmVjZWl2ZXIgKHRoYXQgaXMgYSBQcm94eSBpdHNlbGYpIGV2ZXJ5IHRpbWUgaXQgaXMgY2FsbGVk
LgorICAoaW50ZWdlciBpbmRleCBwcm9wZXJ0eSBuYW1lKQoraW5mbzogfAorICBbW1NldF1dICgg
UCwgViwgUmVjZWl2ZXIgKQorCisgIFsuLi5dCisgIDYuIExldCB0cmFwIGJlID8gR2V0TWV0aG9k
KGhhbmRsZXIsICJzZXQiKS4KKyAgNy4gSWYgdHJhcCBpcyB1bmRlZmluZWQsIHRoZW4KKyAgICBh
LiBSZXR1cm4gPyB0YXJnZXQuW1tTZXRdXShQLCBWLCBSZWNlaXZlcikuCisKKyAgT3JkaW5hcnlT
ZXRXaXRoT3duRGVzY3JpcHRvciAoIE8sIFAsIFYsIFJlY2VpdmVyLCBvd25EZXNjICkKKworICBb
Li4uXQorICAzLiBJZiBJc0RhdGFEZXNjcmlwdG9yKG93bkRlc2MpIGlzIHRydWUsIHRoZW4KKyAg
ICBbLi4uXQorICAgIGMuIExldCBleGlzdGluZ0Rlc2NyaXB0b3IgYmUgPyBSZWNlaXZlci5bW0dl
dE93blByb3BlcnR5XV0oUCkuCisgICAgZC4gSWYgZXhpc3RpbmdEZXNjcmlwdG9yIGlzIG5vdCB1
bmRlZmluZWQsIHRoZW4KKyAgICAgIFsuLi5dCisgICAgICBpaWkuIExldCB2YWx1ZURlc2MgYmUg
dGhlIFByb3BlcnR5RGVzY3JpcHRvciB7IFtbVmFsdWVdXTogViB9LgorICAgICAgaXYuIFJldHVy
biA/IFJlY2VpdmVyLltbRGVmaW5lT3duUHJvcGVydHldXShQLCB2YWx1ZURlc2MpLgorICAgIGUu
IEVsc2UsCisgICAgICBpLiBBc3NlcnQ6IFJlY2VpdmVyIGRvZXMgbm90IGN1cnJlbnRseSBoYXZl
IGEgcHJvcGVydHkgUC4KKyAgICAgIGlpLiBSZXR1cm4gPyBDcmVhdGVEYXRhUHJvcGVydHkoUmVj
ZWl2ZXIsIFAsIFYpLgorICBbLi4uXQorCisgIFtbRGVmaW5lT3duUHJvcGVydHldXSAoIFAsIERl
c2MgKQorCisgIFsuLi5dCisgIDkuIExldCBib29sZWFuVHJhcFJlc3VsdCBiZSAhIFRvQm9vbGVh
big/IENhbGwodHJhcCwgaGFuZGxlciwgwqsgdGFyZ2V0LCBQLCBkZXNjT2JqIMK7KSkuCisgIFsu
Li5dCisgIDE3LiBSZXR1cm4gdHJ1ZS4KK2ZlYXR1cmVzOiBbUHJveHksIFJlZmxlY3RdCitpbmNs
dWRlczogW2NvbXBhcmVBcnJheS5qc10KKy0tLSovCisKK3ZhciBnZXRPd25Qcm9wZXJ0eUtleXMg
PSBbXTsKK3ZhciBkZWZpbmVQcm9wZXJ0eUtleXMgPSBbXTsKKwordmFyIHAgPSBuZXcgUHJveHko
eworICAiMCI6IG51bGwsCit9LCB7CisgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogZnVuY3Rp
b24odGFyZ2V0LCBrZXkpIHsKKyAgICBnZXRPd25Qcm9wZXJ0eUtleXMucHVzaChrZXkpOworICAg
IHJldHVybiBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSk7Cisg
IH0sCisgIGRlZmluZVByb3BlcnR5OiBmdW5jdGlvbih0YXJnZXQsIGtleSwgZGVzYykgeworICAg
IGRlZmluZVByb3BlcnR5S2V5cy5wdXNoKGtleSk7CisgICAgcmV0dXJuIFJlZmxlY3QuZGVmaW5l
UHJvcGVydHkodGFyZ2V0LCBrZXksIGRlc2MpOworICB9LAorfSk7CisKK3BbMF0gPSB0cnVlOwor
cFswXSA9IHRydWU7CitwWyIwIl0gPSB0cnVlOworCithc3NlcnQuY29tcGFyZUFycmF5KGdldE93
blByb3BlcnR5S2V5cywgWyIwIiwgIjAiLCAiMCJdLAorICAiZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yOiBrZXkgcHJlc2VudCBvbiBbW1Byb3h5VGFyZ2V0XV0iKTsKK2Fzc2VydC5jb21wYXJlQXJy
YXkoZGVmaW5lUHJvcGVydHlLZXlzLCBbIjAiLCAiMCIsICIwIl0sCisgICJkZWZpbmVQcm9wZXJ0
eToga2V5IHByZXNlbnQgb24gW1tQcm94eVRhcmdldF1dIik7CisKK2dldE93blByb3BlcnR5S2V5
cyA9IFtdOworZGVmaW5lUHJvcGVydHlLZXlzID0gW107CisKK3BbMjJdID0gZmFsc2U7CitwWyIy
MiJdID0gZmFsc2U7CitwWzIyXSA9IGZhbHNlOworCithc3NlcnQuY29tcGFyZUFycmF5KGdldE93
blByb3BlcnR5S2V5cywgWyIyMiIsICIyMiIsICIyMiJdLAorICAiZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yOiBrZXkgYWJzZW50IG9uIFtbUHJveHlUYXJnZXRdXSIpOworYXNzZXJ0LmNvbXBhcmVB
cnJheShkZWZpbmVQcm9wZXJ0eUtleXMsIFsiMjIiLCAiMjIiLCAiMjIiXSwKKyAgImRlZmluZVBy
b3BlcnR5OiBrZXkgYWJzZW50IG9uIFtbUHJveHlUYXJnZXRdXSIpOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXIt
bXVsdGlwbGUtY2FsbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL1Byb3h5L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXItbXVsdGlwbGUtY2FsbHMu
anMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5
L3NldC90cmFwLWlzLW1pc3NpbmctcmVjZWl2ZXItbXVsdGlwbGUtY2FsbHMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3OCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBTaHZh
eWthLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRo
ZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDog
c2VjLXByb3h5LW9iamVjdC1pbnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90cy1zZXQt
cC12LXJlY2VpdmVyCitkZXNjcmlwdGlvbjogPgorICBJZiAic2V0IiB0cmFwIGlzIG1pc3Npbmcs
IHRoZSBjYWxsIGlzIHByb3Blcmx5IGZvcndhcmRlZCB0byBvcmRpbmFyeQorICBbW1NldF1dIHRo
YXQgaW52b2tlcyBbW0dldE93blByb3BlcnR5XV0gYW5kIFtbRGVmaW5lT3duUHJvcGVydHldXSBt
ZXRob2RzCisgIG9uIHJlY2VpdmVyICh0aGF0IGlzIGEgUHJveHkgaXRzZWxmKSBldmVyeSB0aW1l
IGl0IGlzIGNhbGxlZC4KK2luZm86IHwKKyAgW1tTZXRdXSAoIFAsIFYsIFJlY2VpdmVyICkKKwor
ICBbLi4uXQorICA2LiBMZXQgdHJhcCBiZSA/IEdldE1ldGhvZChoYW5kbGVyLCAic2V0IikuCisg
IDcuIElmIHRyYXAgaXMgdW5kZWZpbmVkLCB0aGVuCisgICAgYS4gUmV0dXJuID8gdGFyZ2V0Lltb
U2V0XV0oUCwgViwgUmVjZWl2ZXIpLgorCisgIE9yZGluYXJ5U2V0V2l0aE93bkRlc2NyaXB0b3Ig
KCBPLCBQLCBWLCBSZWNlaXZlciwgb3duRGVzYyApCisKKyAgWy4uLl0KKyAgMy4gSWYgSXNEYXRh
RGVzY3JpcHRvcihvd25EZXNjKSBpcyB0cnVlLCB0aGVuCisgICAgWy4uLl0KKyAgICBjLiBMZXQg
ZXhpc3RpbmdEZXNjcmlwdG9yIGJlID8gUmVjZWl2ZXIuW1tHZXRPd25Qcm9wZXJ0eV1dKFApLgor
ICAgIGQuIElmIGV4aXN0aW5nRGVzY3JpcHRvciBpcyBub3QgdW5kZWZpbmVkLCB0aGVuCisgICAg
ICBbLi4uXQorICAgICAgaWlpLiBMZXQgdmFsdWVEZXNjIGJlIHRoZSBQcm9wZXJ0eURlc2NyaXB0
b3IgeyBbW1ZhbHVlXV06IFYgfS4KKyAgICAgIGl2LiBSZXR1cm4gPyBSZWNlaXZlci5bW0RlZmlu
ZU93blByb3BlcnR5XV0oUCwgdmFsdWVEZXNjKS4KKyAgICBlLiBFbHNlLAorICAgICAgaS4gQXNz
ZXJ0OiBSZWNlaXZlciBkb2VzIG5vdCBjdXJyZW50bHkgaGF2ZSBhIHByb3BlcnR5IFAuCisgICAg
ICBpaS4gUmV0dXJuID8gQ3JlYXRlRGF0YVByb3BlcnR5KFJlY2VpdmVyLCBQLCBWKS4KKyAgWy4u
Ll0KKworICBbW0RlZmluZU93blByb3BlcnR5XV0gKCBQLCBEZXNjICkKKworICBbLi4uXQorICA5
LiBMZXQgYm9vbGVhblRyYXBSZXN1bHQgYmUgISBUb0Jvb2xlYW4oPyBDYWxsKHRyYXAsIGhhbmRs
ZXIsIMKrIHRhcmdldCwgUCwgZGVzY09iaiDCuykpLgorICBbLi4uXQorICAxNy4gUmV0dXJuIHRy
dWUuCitmZWF0dXJlczogW1Byb3h5LCBSZWZsZWN0XQoraW5jbHVkZXM6IFtjb21wYXJlQXJyYXku
anNdCistLS0qLworCit2YXIgZ2V0T3duUHJvcGVydHlLZXlzID0gW107Cit2YXIgZGVmaW5lUHJv
cGVydHlLZXlzID0gW107CisKK3ZhciBwID0gbmV3IFByb3h5KHsKKyAgZm9vOiAxLAorfSwgewor
ICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9uKHRhcmdldCwga2V5KSB7CisgICAg
Z2V0T3duUHJvcGVydHlLZXlzLnB1c2goa2V5KTsKKyAgICByZXR1cm4gUmVmbGVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpOworICB9LAorICBkZWZpbmVQcm9wZXJ0eTog
ZnVuY3Rpb24odGFyZ2V0LCBrZXksIGRlc2MpIHsKKyAgICBkZWZpbmVQcm9wZXJ0eUtleXMucHVz
aChrZXkpOworICAgIHJldHVybiBSZWZsZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBk
ZXNjKTsKKyAgfSwKK30pOworCitwWyJmb28iXSA9IDI7CitwLmZvbyA9IDI7CitwLmZvbyA9IDI7
CisKK2Fzc2VydC5jb21wYXJlQXJyYXkoZ2V0T3duUHJvcGVydHlLZXlzLCBbImZvbyIsICJmb28i
LCAiZm9vIl0sCisgICJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGtleSBwcmVzZW50IG9uIFtb
UHJveHlUYXJnZXRdXSIpOworYXNzZXJ0LmNvbXBhcmVBcnJheShkZWZpbmVQcm9wZXJ0eUtleXMs
IFsiZm9vIiwgImZvbyIsICJmb28iXSwKKyAgImRlZmluZVByb3BlcnR5OiBrZXkgcHJlc2VudCBv
biBbW1Byb3h5VGFyZ2V0XV0iKTsKKworZ2V0T3duUHJvcGVydHlLZXlzID0gW107CitkZWZpbmVQ
cm9wZXJ0eUtleXMgPSBbXTsKKworcC5iYXIgPSAzOworcFsiYmFyIl0gPSAzOworcC5iYXIgPSAz
OworCithc3NlcnQuY29tcGFyZUFycmF5KGdldE93blByb3BlcnR5S2V5cywgWyJiYXIiLCAiYmFy
IiwgImJhciJdLAorICAiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBrZXkgYWJzZW50IG9uIFtb
UHJveHlUYXJnZXRdXSIpOworYXNzZXJ0LmNvbXBhcmVBcnJheShkZWZpbmVQcm9wZXJ0eUtleXMs
IFsiYmFyIiwgImJhciIsICJiYXIiXSwKKyAgImRlZmluZVByb3BlcnR5OiBrZXkgYWJzZW50IG9u
IFtbUHJveHlUYXJnZXRdXSIpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5z
L1Byb3h5L3NldC90cmFwLWlzLW51bGwtcmVjZWl2ZXIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L3NldC90cmFwLWlzLW51bGwtcmVjZWl2ZXIu
anMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5
L3NldC90cmFwLWlzLW51bGwtcmVjZWl2ZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE2IEFsZWtzZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtcHJveHktb2JqZWN0LWlu
dGVybmFsLW1ldGhvZHMtYW5kLWludGVybmFsLXNsb3RzLXNldC1wLXYtcmVjZWl2ZXIKK2Rlc2Ny
aXB0aW9uOiA+CisgICAgUGFzcyB0byB0YXJnZXQncyBbW1NldF1dIGNvcnJlY3QgcmVjZWl2ZXIg
aWYgdHJhcCBpcyBtaXNzaW5nCitpbmZvOiB8CisgICAgW1tTZXRdXSAoUCwgViwgUmVjZWl2ZXIp
CisKKyAgICA3LiBJZiB0cmFwIGlzIHVuZGVmaW5lZCwgdGhlbgorICAgICAgICBhLiBSZXR1cm4g
PyB0YXJnZXQuW1tTZXRdXShQLCBWLCBSZWNlaXZlcikuCitmZWF0dXJlczogW1Byb3h5XQorLS0t
Ki8KKwordmFyIGNvbnRleHQ7Cit2YXIgdGFyZ2V0ID0geworICBzZXQgYXR0cih2YWwpIHsKKyAg
ICBjb250ZXh0ID0gdGhpczsKKyAgfQorfTsKKwordmFyIHAgPSBuZXcgUHJveHkodGFyZ2V0LCB7
CisgIHNldDogbnVsbAorfSk7CitwLmF0dHIgPSAxOworYXNzZXJ0LnNhbWVWYWx1ZShjb250ZXh0
LCBwKTsKKwordmFyIHBQYXJlbnQgPSBPYmplY3QuY3JlYXRlKG5ldyBQcm94eSh0YXJnZXQsIHt9
KSk7CitwUGFyZW50LmF0dHIgPSAzOworYXNzZXJ0LnNhbWVWYWx1ZShjb250ZXh0LCBwUGFyZW50
KTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9Qcm94eS9zZXQvdHJhcC1p
cy11bmRlZmluZWQtcmVjZWl2ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvYnVpbHQtaW5zL1Byb3h5L3NldC90cmFwLWlzLXVuZGVmaW5lZC1yZWNlaXZlci5qcwkocmV2
aXNpb24gMjU5NTI2KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL1Byb3h5L3Nl
dC90cmFwLWlzLXVuZGVmaW5lZC1yZWNlaXZlci5qcwkobm9uZXhpc3RlbnQpCkBAIC0xLDMwICsw
LDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAxNiBBbGVrc2V5IFNodmF5a2EuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0vLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0vKi0tLQotZXNpZDogc2VjLXByb3h5LW9iamVjdC1p
bnRlcm5hbC1tZXRob2RzLWFuZC1pbnRlcm5hbC1zbG90cy1zZXQtcC12LXJlY2VpdmVyCi1kZXNj
cmlwdGlvbjogPgotICAgIFBhc3MgdG8gdGFyZ2V0J3MgW1tTZXRdXSBjb3JyZWN0IHJlY2VpdmVy
IGlmIHRyYXAgaXMgbWlzc2luZwotaW5mbzogfAotICAgIFtbU2V0XV0gKFAsIFYsIFJlY2VpdmVy
KQotCi0gICAgNy4gSWYgdHJhcCBpcyB1bmRlZmluZWQsIHRoZW4KLSAgICAgICAgYS4gUmV0dXJu
ID8gdGFyZ2V0LltbU2V0XV0oUCwgViwgUmVjZWl2ZXIpLgotZmVhdHVyZXM6IFtQcm94eV0KLS0t
LSovCi0KLXZhciBjb250ZXh0OwotdmFyIHRhcmdldCA9IHsKLSAgc2V0IGF0dHIodmFsKSB7Ci0g
ICAgY29udGV4dCA9IHRoaXM7Ci0gIH0KLX07Ci0KLXZhciBwID0gbmV3IFByb3h5KHRhcmdldCwg
ewotICBzZXQ6IG51bGwKLX0pOwotcC5hdHRyID0gMTsKLWFzc2VydC5zYW1lVmFsdWUoY29udGV4
dCwgcCk7Ci0KLXZhciBwUGFyZW50ID0gT2JqZWN0LmNyZWF0ZShuZXcgUHJveHkodGFyZ2V0LCB7
fSkpOwotcFBhcmVudC5hdHRyID0gMzsKLWFzc2VydC5zYW1lVmFsdWUoY29udGV4dCwgcFBhcmVu
dCk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2Nv
bnN0cnVjdG9yLW9wdGlvbnMtY2FsZW5kYXItaW52YWxpZC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlv
bnMtY2FsZW5kYXItaW52YWxpZC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlvbnMtY2FsZW5kYXIt
aW52YWxpZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvLyBDb3B5cmlnaHQg
MjAyMCBBbmRyw6kgQmFyZ3VsbDsgSWdhbGlhLCBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisv
LyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtaW5pdGlhbGl6ZWRhdGV0aW1lZm9ybWF0
CitkZXNjcmlwdGlvbjogPgorICAgIENoZWNrcyBlcnJvciBjYXNlcyBmb3IgdGhlIG9wdGlvbnMg
YXJndW1lbnQgdG8gdGhlIERhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yLgoraW5mbzogfAorICAg
IEluaXRpYWxpemVEYXRlVGltZUZvcm1hdCAoIGRhdGVUaW1lRm9ybWF0LCBsb2NhbGVzLCBvcHRp
b25zICkKKworICAgIC4uLgorICAgIDcuIElmIGNhbGVuZGFyIGlzIG5vdCB1bmRlZmluZWQsIHRo
ZW4KKyAgICAgICAgYS4gSWYgY2FsZW5kYXIgZG9lcyBub3QgbWF0Y2ggdGhlIFVuaWNvZGUgTG9j
YWxlIElkZW50aWZpZXIgdHlwZSBub250ZXJtaW5hbCwgdGhyb3cgYSBSYW5nZUVycm9yIGV4Y2Vw
dGlvbi4KKy0tLSovCisKKy8qCisgYWxwaGFudW0gPSAoQUxQSEEgLyBESUdJVCkgICAgIDsgbGV0
dGVycyBhbmQgbnVtYmVycworIG51bWJlcmluZ1N5c3RlbSA9ICgzKjhhbHBoYW51bSkgKigiLSIg
KDMqOGFscGhhbnVtKSkKKyovCitjb25zdCBpbnZhbGlkQ2FsZW5kYXJPcHRpb25zID0gWworICAi
IiwKKyAgImEiLAorICAiYWIiLAorICAiYWJjZGVmZ2hpIiwKKyAgImFiYy1hYmNkZWZnaGkiLAor
ICAiIWludmFsaWQhIiwKKyAgIi1ncmVnb3J5LSIsCisgICJncmVnb3J5LSIsCisgICJncmVnb3J5
LS0iLAorICAiZ3JlZ29yeS1udSIsCisgICJncmVnb3J5LW51LSIsCisgICJncmVnb3J5LW51LWxh
dG4iLAorICAiZ3JlZ29yecOpIiwKKyAgImdyZWdvcnnsl63rspUiLAorXTsKK2ZvciAoY29uc3Qg
Y2FsZW5kYXIgb2YgaW52YWxpZENhbGVuZGFyT3B0aW9ucykgeworICBhc3NlcnQudGhyb3dzKFJh
bmdlRXJyb3IsIGZ1bmN0aW9uKCkgeworICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbics
IHtjYWxlbmRhcn0pOworICB9LCBgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiwge2NhbGVu
ZGFyOiAiJHtjYWxlbmRhcn0ifSkgdGhyb3dzIFJhbmdlRXJyb3JgKTsKK30KSW5kZXg6IEpTVGVz
dHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvY29uc3RydWN0b3Itb3B0aW9u
cy1udW1iZXJpbmdTeXN0ZW0taW52YWxpZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlvbnMtbnVtYmVy
aW5nU3lzdGVtLWludmFsaWQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLW51bWJlcmluZ1N5
c3RlbS1pbnZhbGlkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDAgQEAKKy8vIENvcHly
aWdodCAyMDIwIEFuZHLDqSBCYXJndWxsOyBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1pbml0aWFsaXplZGF0ZXRpbWVm
b3JtYXQKK2Rlc2NyaXB0aW9uOiA+CisgICAgQ2hlY2tzIGVycm9yIGNhc2VzIGZvciB0aGUgb3B0
aW9ucyBhcmd1bWVudCB0byB0aGUgRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3IuCitpbmZvOiB8
CisgICAgSW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0ICggZGF0ZVRpbWVGb3JtYXQsIGxvY2FsZXMs
IG9wdGlvbnMgKQorCisgICAgLi4uCisgICAgMTAuIElmIG51bWJlcmluZ1N5c3RlbSBpcyBub3Qg
dW5kZWZpbmVkLCB0aGVuCisgICAgICAgIGEuIElmIG51bWJlcmluZ1N5c3RlbSBkb2VzIG5vdCBt
YXRjaCB0aGUgVW5pY29kZSBMb2NhbGUgSWRlbnRpZmllciB0eXBlIG5vbnRlcm1pbmFsLCB0aHJv
dyBhIFJhbmdlRXJyb3IgZXhjZXB0aW9uLgorLS0tKi8KKworLyoKKyBhbHBoYW51bSA9IChBTFBI
QSAvIERJR0lUKSAgICAgOyBsZXR0ZXJzIGFuZCBudW1iZXJzCisgbnVtYmVyaW5nU3lzdGVtID0g
KDMqOGFscGhhbnVtKSAqKCItIiAoMyo4YWxwaGFudW0pKQorKi8KK2NvbnN0IGludmFsaWROdW1i
ZXJpbmdTeXN0ZW1PcHRpb25zID0gWworICAiIiwKKyAgImEiLAorICAiYWIiLAorICAiYWJjZGVm
Z2hpIiwKKyAgImFiYy1hYmNkZWZnaGkiLAorICAiIWludmFsaWQhIiwKKyAgIi1sYXRuLSIsCisg
ICJsYXRuLSIsCisgICJsYXRuLS0iLAorICAibGF0bi1jYSIsCisgICJsYXRuLWNhLSIsCisgICJs
YXRuLWNhLWdyZWdvcnkiLAorICAibGF0bsOpIiwKKyAgImxhdG7nvJblj7ciLAorXTsKK2ZvciAo
Y29uc3QgbnVtYmVyaW5nU3lzdGVtIG9mIGludmFsaWROdW1iZXJpbmdTeXN0ZW1PcHRpb25zKSB7
CisgIGFzc2VydC50aHJvd3MoUmFuZ2VFcnJvciwgZnVuY3Rpb24oKSB7CisgICAgbmV3IEludGwu
RGF0ZVRpbWVGb3JtYXQoJ2VuJywge251bWJlcmluZ1N5c3RlbX0pOworICB9LCBgbmV3IEludGwu
RGF0ZVRpbWVGb3JtYXQoImVuIiwge251bWJlcmluZ1N5c3RlbTogIiR7bnVtYmVyaW5nU3lzdGVt
fSJ9KSB0aHJvd3MgUmFuZ2VFcnJvcmApOworfQpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
aW50bDQwMi9EYXRlVGltZUZvcm1hdC9pbnZhbGlkLW51bWJlcmluZy1zeXN0ZW0tY2FsZW5kYXIt
b3B0aW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0Rh
dGVUaW1lRm9ybWF0L2ludmFsaWQtbnVtYmVyaW5nLXN5c3RlbS1jYWxlbmRhci1vcHRpb25zLmpz
CShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL0RhdGVU
aW1lRm9ybWF0L2ludmFsaWQtbnVtYmVyaW5nLXN5c3RlbS1jYWxlbmRhci1vcHRpb25zLmpzCShu
b25leGlzdGVudCkKQEAgLTEsMzAgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMjAgR29vZ2xlIElu
YywgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zl
cm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLyot
LS0KLWVzaWQ6IHNlYy1pbml0aWFsaXplZGF0ZXRpbWVmb3JtYXQKLWRlc2NyaXB0aW9uOiA+Ci0g
ICAgVGVzdHMgdGhhdCBpbnZhbGlkIG51bWJlcmluZ1N5c3RlbSBhbmQgY2FsZW5kYXIgb3B0aW9u
IHRocm93cyBSYW5nZUVycm9yLgotYXV0aG9yOiBDYWlvIExpbWEKLS0tLSovCi0KLWxldCBpbnZh
bGlkVmFsdWVzID0gWyJhYiIsICJhYWFhYWFhYWJiYmJiYWJhYmEuIl07Ci0KLXZhciBkZWZhdWx0
TG9jYWxlID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxl
OwotCi1pbnZhbGlkVmFsdWVzLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlKSB7Ci0gICAgYXNzZXJ0
LnRocm93cyhSYW5nZUVycm9yLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3
IEludGwuRGF0ZVRpbWVGb3JtYXQoW2RlZmF1bHRMb2NhbGVdLCB7bnVtYmVyaW5nU3lzdGVtOiB2
YWx1ZX0pOwotICAgIH0sICJJbnZhbGlkIG51bWJlcmluZ1N5c3RlbSB2YWx1ZSAiICsgdmFsdWUg
KyAiIHdhcyBub3QgcmVqZWN0ZWQuIik7Ci0gICAgYXNzZXJ0LnRocm93cyhSYW5nZUVycm9yLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQo
W2RlZmF1bHRMb2NhbGUgKyAiLXUtbnUtIiArIHZhbHVlXSk7Ci0gICAgfSwgIkludmFsaWQgbnVt
YmVyaW5nU3lzdGVtIHZhbHVlICIgKyB2YWx1ZSArICIgd2FzIG5vdCByZWplY3RlZC4iKTsKLQot
ICAgIGFzc2VydC50aHJvd3MoUmFuZ2VFcnJvciwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
cmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFtkZWZhdWx0TG9jYWxlXSwge2NhbGVuZGFy
OiB2YWx1ZX0pOwotICAgIH0sICJJbnZhbGlkIGNhbGVuZGFyIHZhbHVlICIgKyB2YWx1ZSArICIg
d2FzIG5vdCByZWplY3RlZC4iKTsKLSAgICBhc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsIGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChbZGVm
YXVsdExvY2FsZSArICItdS1jYS0iICsgdmFsdWVdKTsKLSAgICB9LCAiSW52YWxpZCBjYWxlbmRh
ciB2YWx1ZSAiICsgdmFsdWUgKyAiIHdhcyBub3QgcmVqZWN0ZWQuIik7Ci19KTsKLQpJbmRleDog
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvY29uc3RydWN0b3Itb3B0
aW9ucy1udW1iZXJpbmdTeXN0ZW0taW52YWxpZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9jb25zdHJ1Y3Rvci1vcHRpb25zLW51bWJl
cmluZ1N5c3RlbS1pbnZhbGlkLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L2NvbnN0cnVjdG9yLW9wdGlvbnMtbnVtYmVyaW5nU3lz
dGVtLWludmFsaWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorLy8gQ29weXJp
Z2h0IDIwMjAgQW5kcsOpIEJhcmd1bGw7IElnYWxpYSwgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWluaXRpYWxpemVudW1iZXJmb3Jt
YXQKK2Rlc2NyaXB0aW9uOiA+CisgICAgQ2hlY2tzIGVycm9yIGNhc2VzIGZvciB0aGUgb3B0aW9u
cyBhcmd1bWVudCB0byB0aGUgTnVtYmVyRm9ybWF0IGNvbnN0cnVjdG9yLgoraW5mbzogfAorICAg
IEluaXRpYWxpemVOdW1iZXJGb3JtYXQgKCBudW1iZXJGb3JtYXQsIGxvY2FsZXMsIG9wdGlvbnMg
KQorCisgICAgLi4uCisgICAgOC4gSWYgbnVtYmVyaW5nU3lzdGVtIGlzIG5vdCB1bmRlZmluZWQs
IHRoZW4KKyAgICAgICAgYS4gSWYgbnVtYmVyaW5nU3lzdGVtIGRvZXMgbm90IG1hdGNoIHRoZSBV
bmljb2RlIExvY2FsZSBJZGVudGlmaWVyIHR5cGUgbm9udGVybWluYWwsIHRocm93IGEgUmFuZ2VF
cnJvciBleGNlcHRpb24uCistLS0qLworCisvKgorIGFscGhhbnVtID0gKEFMUEhBIC8gRElHSVQp
ICAgICA7IGxldHRlcnMgYW5kIG51bWJlcnMKKyBudW1iZXJpbmdTeXN0ZW0gPSAoMyo4YWxwaGFu
dW0pICooIi0iICgzKjhhbHBoYW51bSkpCisqLworY29uc3QgaW52YWxpZE51bWJlcmluZ1N5c3Rl
bU9wdGlvbnMgPSBbCisgICIiLAorICAiYSIsCisgICJhYiIsCisgICJhYmNkZWZnaGkiLAorICAi
YWJjLWFiY2RlZmdoaSIsCisgICIhaW52YWxpZCEiLAorICAiLWxhdG4tIiwKKyAgImxhdG4tIiwK
KyAgImxhdG4tLSIsCisgICJsYXRuLWNhIiwKKyAgImxhdG4tY2EtIiwKKyAgImxhdG4tY2EtZ3Jl
Z29yeSIsCisgICJsYXRuw6kiLAorICAibGF0bue8luWPtyIsCitdOworZm9yIChjb25zdCBudW1i
ZXJpbmdTeXN0ZW0gb2YgaW52YWxpZE51bWJlcmluZ1N5c3RlbU9wdGlvbnMpIHsKKyAgYXNzZXJ0
LnRocm93cyhSYW5nZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgICBuZXcgSW50bC5OdW1iZXJGb3Jt
YXQoJ2VuJywge251bWJlcmluZ1N5c3RlbX0pOworICB9LCBgbmV3IEludGwuTnVtYmVyRm9ybWF0
KCJlbiIsIHtudW1iZXJpbmdTeXN0ZW06ICIke251bWJlcmluZ1N5c3RlbX0ifSkgdGhyb3dzIFJh
bmdlRXJyb3JgKTsKK30KSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvTnVtYmVy
Rm9ybWF0L2ludmFsaWQtbnVtYmVyaW5nLXN5c3RlbS1vcHRpb25zLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L2ludmFsaWQtbnVtYmVy
aW5nLXN5c3RlbS1vcHRpb25zLmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9pbnZhbGlkLW51bWJlcmluZy1zeXN0ZW0tb3B0
aW9ucy5qcwkobm9uZXhpc3RlbnQpCkBAIC0xLDIyICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDIw
IEdvb2dsZSBJbmMsIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBUaGlzIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUuCi0KLS8qLS0tCi1lc2lkOiBzZWMtaW5pdGlhbGl6ZW51bWJlcmZvcm1hdAotZGVzY3JpcHRp
b246ID4KLSAgICBUZXN0cyB0aGF0IGludmFsaWQgbnVtYmVyaW5nU3lzdGVtIG9wdGlvbiB0aHJv
d3MgUmFuZ2VFcnJvci4KLWF1dGhvcjogQ2FpbyBMaW1hCi0tLS0qLwotCi1sZXQgaW52YWxpZFZh
bHVlcyA9IFsiYWIiLCAiYWFhYWFhYWFiYmJiYmFiYWJhLiJdOwotCi12YXIgZGVmYXVsdExvY2Fs
ZSA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZTsKLQot
aW52YWxpZFZhbHVlcy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkgewotICAgIGFzc2VydC50aHJv
d3MoUmFuZ2VFcnJvciwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnRs
Lk51bWJlckZvcm1hdChbZGVmYXVsdExvY2FsZV0sIHtudW1iZXJpbmdTeXN0ZW06IHZhbHVlfSk7
Ci0gICAgfSwgIkludmFsaWQgbnVtYmVyaW5nU3lzdGVtIHZhbHVlICIgKyB2YWx1ZSArICIgd2Fz
IG5vdCByZWplY3RlZC4iKTsKLSAgICBhc3NlcnQudGhyb3dzKFJhbmdlRXJyb3IsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoW2RlZmF1bHRM
b2NhbGUgKyAiLXUtbnUtIiArIHZhbHVlXSk7Ci0gICAgfSwgIkludmFsaWQgbnVtYmVyaW5nU3lz
dGVtIHZhbHVlICIgKyB2YWx1ZSArICIgd2FzIG5vdCByZWplY3RlZC4iKTsKLX0pOwpJbmRleDog
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvaW50bDQwMi9SZWxhdGl2ZVRpbWVGb3JtYXQvY29uc3RydWN0
b3IvY29uc3RydWN0b3Ivb3B0aW9ucy1udW1iZXJpbmdTeXN0ZW0taW52YWxpZC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1JlbGF0aXZlVGltZUZvcm1hdC9j
b25zdHJ1Y3Rvci9jb25zdHJ1Y3Rvci9vcHRpb25zLW51bWJlcmluZ1N5c3RlbS1pbnZhbGlkLmpz
CShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9pbnRsNDAyL1JlbGF0
aXZlVGltZUZvcm1hdC9jb25zdHJ1Y3Rvci9jb25zdHJ1Y3Rvci9vcHRpb25zLW51bWJlcmluZ1N5
c3RlbS1pbnZhbGlkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBAIGluZm86IHwK
IAogICAgIC4uLgogICAgIDguIElmIG51bWJlcmluZ1N5c3RlbSBpcyBub3QgdW5kZWZpbmVkLCB0
aGVuCi0gICAgICAgIGEuIElmIG51bWJlcmluZ1N5c3RlbSBkb2VzIG5vdCBtYXRjaCB0aGUgWygz
KjhhbHBoYW51bSkgKigiLSIgKDMqOGFscGhhbnVtKSldIHNlcXVlbmNlLCB0aHJvdyBhIFJhbmdl
RXJyb3IgZXhjZXB0aW9uLgorICAgICAgICBhLiBJZiBudW1iZXJpbmdTeXN0ZW0gZG9lcyBub3Qg
bWF0Y2ggdGhlIHR5cGUgc2VxdWVuY2UgKGZyb20gVVRTIDM1IFVuaWNvZGUgTG9jYWxlIElkZW50
aWZpZXIsIHNlY3Rpb24gMy4yKSwgdGhyb3cgYSBSYW5nZUVycm9yIGV4Y2VwdGlvbi4KIAogZmVh
dHVyZXM6IFtJbnRsLlJlbGF0aXZlVGltZUZvcm1hdF0KIC0tLSovCkBAIC0zNCw2ICszNCw4IEBA
IGNvbnN0IGludmFsaWROdW1iZXJpbmdTeXN0ZW1PcHRpb25zID0gWwogICAibGF0bi1jYSIsCiAg
ICJsYXRuLWNhLSIsCiAgICJsYXRuLWNhLWdyZWdvcnkiLAorICAibGF0bsOpIiwKKyAgImxhdG7n
vJblj7ciLAogXTsKIGZvciAoY29uc3QgbnVtYmVyaW5nU3lzdGVtIG9mIGludmFsaWROdW1iZXJp
bmdTeXN0ZW1PcHRpb25zKSB7CiAgIGFzc2VydC50aHJvd3MoUmFuZ2VFcnJvciwgZnVuY3Rpb24o
KSB7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFz
cy9lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY2xh
c3MvZWxlbWVudHMvZ3JhbW1hci1wcml2YXRlLWZpZWxkLW9wdGlvbmFsLWNoYWluaW5nLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2NsYXNzL2VsZW1lbnRzL2dyYW1tYXItcHJpdmF0ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvLyBUaGlzIGZpbGUgd2FzIHByb2Nl
ZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6CisvLyAtIHNyYy9j
bGFzcy1lbGVtZW50cy9ncmFtbWFyLXByaXZhdGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuY2Fz
ZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZGVmYXVsdC9jbHMtZXhwci50ZW1wbGF0ZQorLyot
LS0KK2Rlc2NyaXB0aW9uOiBQcml2YXRlTmFtZSBhZnRlciAnPy4nIGlzIHZhbGlkIHN5bnRheCAo
ZmllbGQgZGVmaW5pdGlvbnMgaW4gYSBjbGFzcyBleHByZXNzaW9uKQorZXNpZDogcHJvZC1GaWVs
ZERlZmluaXRpb24KK2ZlYXR1cmVzOiBbY2xhc3MtZmllbGRzLXByaXZhdGUsIG9wdGlvbmFsLWNo
YWluaW5nLCBjbGFzc10KK2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5mbzogfAorICAgIFVwZGF0ZWQg
UHJvZHVjdGlvbnMKKworICAgIE9wdGlvbmFsQ2hhaW5bWWllbGQsIEF3YWl0XToKKyAgICAgIGA/
LmAgYFtgIEV4cHJlc3Npb25bK0luLCA/WWllbGQsID9Bd2FpdF0gYF1gCisgICAgICBgPy5gIElk
ZW50aWZpZXJOYW1lCisgICAgICBgPy5gIEFyZ3VtZW50c1s/WWllbGQsID9Bd2FpdF0KKyAgICAg
IGA/LmAgVGVtcGxhdGVMaXRlcmFsWz9ZaWVsZCwgP0F3YWl0LCArVGFnZ2VkXQorICAgICAgYD8u
YCBQcml2YXRlSWRlbnRpZmllcgorCistLS0qLworCisKK3ZhciBDID0gY2xhc3MgeworICAjbSA9
ICd0ZXN0MjYyJzsKKworICBzdGF0aWMgYWNjZXNzKG9iaikgeworICAgIHJldHVybiBvYmo/LiNt
OworICB9Cit9CisKK2xldCBjID0gbmV3IEMoKTsKKworYXNzZXJ0LnNhbWVWYWx1ZShDLmFjY2Vz
cyhjKSwgJ3Rlc3QyNjInKTsKKworYXNzZXJ0LnNhbWVWYWx1ZShDLmFjY2VzcyhudWxsKSwgdW5k
ZWZpbmVkKTsKK2Fzc2VydC5zYW1lVmFsdWUoQy5hY2Nlc3ModW5kZWZpbmVkKSwgdW5kZWZpbmVk
KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBDLmFjY2Vzcyh7
fSk7Cit9LCAnYWNjZXNzZWQgcHJpdmF0ZSBmaWVsZCBmcm9tIGFuIG9yZGluYXJ5IG9iamVjdCcp
OworCkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFz
cy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQtYXNzaWduZWQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY2xh
c3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3RhbmNlLWZpZWxkLWFzc2lnbmVkLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2NsYXNzL2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC1hc3NpZ25lZC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvLyBUaGlzIGZpbGUgd2FzIHByb2Nl
ZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6CisvLyAtIHNyYy9j
bGFzcy1lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQtYXNzaWduZWQuY2Fz
ZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZGVmYXVsdC9jbHMtZXhwci50ZW1wbGF0ZQorLyot
LS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMgaXMgYSB2YWxpZCBuYW1lIG9mIGFuIGluc3RhbmNlIGZp
ZWxkIChmaWVsZCBkZWZpbml0aW9ucyBpbiBhIGNsYXNzIGV4cHJlc3Npb24pCitlc2lkOiBwcm9k
LUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1maWVsZHMtcHVibGljLCBjbGFzc10K
K2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5jbHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10KK2luZm86
IHwKKyAgICBDbGFzc0VsZW1lbnQ6CisgICAgICAuLi4KKyAgICAgIEZpZWxkRGVmaW5pdGlvbiA7
CisKKyAgICBGaWVsZERlZmluaXRpb246CisgICAgICBDbGFzc0VsZW1lbnROYW1lIEluaXRpYWxp
emVyX29wdAorCisgICAgQ2xhc3NFbGVtZW50TmFtZToKKyAgICAgIFByb3BlcnR5TmFtZQorCist
LS0qLworCisKK3ZhciBDID0gY2xhc3MgeworICBzdGF0aWMgPSAiZm9vIjsKK30KKworbGV0IGMg
PSBuZXcgQygpOworCit2ZXJpZnlQcm9wZXJ0eShjLCAic3RhdGljIiwgeworICB2YWx1ZTogImZv
byIsCisgIGVudW1lcmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiB0cnVlLAorICBjb25maWd1cmFi
bGU6IHRydWUKK30pOworCkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
Y2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3RhbmNlLWZpZWxkLmpzCShub25leGlz
dGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNz
L2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM2IEBACisvLyBUaGlzIGZpbGUgd2FzIHByb2NlZHVyYWxseSBnZW5lcmF0
ZWQgZnJvbSB0aGUgZm9sbG93aW5nIHNvdXJjZXM6CisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9z
dGF0aWMtYXMtdmFsaWQtaW5zdGFuY2UtZmllbGQuY2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVu
dHMvZGVmYXVsdC9jbHMtZXhwci50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMg
aXMgYSB2YWxpZCBuYW1lIG9mIGFuIGluc3RhbmNlIGZpZWxkIChmaWVsZCBkZWZpbml0aW9ucyBp
biBhIGNsYXNzIGV4cHJlc3Npb24pCitlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVy
ZXM6IFtjbGFzcy1maWVsZHMtcHVibGljLCBjbGFzc10KK2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5j
bHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10KK2luZm86IHwKKyAgICBDbGFzc0VsZW1lbnQ6Cisg
ICAgICAuLi4KKyAgICAgIEZpZWxkRGVmaW5pdGlvbiA7CisKKyAgICBGaWVsZERlZmluaXRpb246
CisgICAgICBDbGFzc0VsZW1lbnROYW1lIEluaXRpYWxpemVyX29wdAorCisgICAgQ2xhc3NFbGVt
ZW50TmFtZToKKyAgICAgIFByb3BlcnR5TmFtZQorCistLS0qLworCisKK3ZhciBDID0gY2xhc3Mg
eworICBzdGF0aWM7Cit9CisKK2xldCBjID0gbmV3IEMoKTsKKwordmVyaWZ5UHJvcGVydHkoYywg
InN0YXRpYyIsIHsKKyAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAg
d3JpdGFibGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKSW5kZXg6IEpTVGVz
dHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N0YXRp
Yy1hcy12YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY2xhc3MvZWxlbWVudHMvc3RhdGlj
LWFzLXZhbGlkLXN0YXRpYy1maWVsZC1hc3NpZ25lZC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0
aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLWFzc2lnbmVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMjggQEAKKy8vIFRoaXMgZmlsZSB3YXMgcHJvY2VkdXJhbGx5IGdlbmVyYXRlZCBmcm9t
IHRoZSBmb2xsb3dpbmcgc291cmNlczoKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL3N0YXRpYy1h
cy12YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQuY2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVu
dHMvZGVmYXVsdC9jbHMtZXhwci50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMg
aXMgYSB2YWxpZCBuYW1lIG9mIGEgc3RhdGljIGZpZWxkIChmaWVsZCBkZWZpbml0aW9ucyBpbiBh
IGNsYXNzIGV4cHJlc3Npb24pCitlc2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6
IFtjbGFzcy1zdGF0aWMtZmllbGRzLXB1YmxpYywgY2xhc3NdCitmbGFnczogW2dlbmVyYXRlZF0K
K2luY2x1ZGVzOiBbcHJvcGVydHlIZWxwZXIuanNdCitpbmZvOiB8CisgICAgQ2xhc3NFbGVtZW50
OgorICAgICAgLi4uCisgICAgICBzdGF0aWMgRmllbGREZWZpbml0aW9uIDsKKworLS0tKi8KKwor
Cit2YXIgQyA9IGNsYXNzIHsKKyAgc3RhdGljIHN0YXRpYyA9ICJ0ZXN0MjYyIjsKK30KKwordmVy
aWZ5UHJvcGVydHkoQywgInN0YXRpYyIsIHsKKyAgdmFsdWU6ICJ0ZXN0MjYyIiwKKyAgZW51bWVy
YWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7
CisKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNz
L2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1zdGF0aWMtZmllbGQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvY2xhc3MvZWxlbWVudHMv
c3RhdGljLWFzLXZhbGlkLXN0YXRpYy1maWVsZC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zdGF0aWMt
YXMtdmFsaWQtc3RhdGljLWZpZWxkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAK
Ky8vIFRoaXMgZmlsZSB3YXMgcHJvY2VkdXJhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBmb2xsb3dp
bmcgc291cmNlczoKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1zdGF0
aWMtZmllbGQuY2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZGVmYXVsdC9jbHMtZXhwci50
ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBzdGF0aWMgaXMgYSB2YWxpZCBuYW1lIG9mIGEg
c3RhdGljIGZpZWxkIChmaWVsZCBkZWZpbml0aW9ucyBpbiBhIGNsYXNzIGV4cHJlc3Npb24pCitl
c2lkOiBwcm9kLUZpZWxkRGVmaW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1zdGF0aWMtZmllbGRz
LXB1YmxpYywgY2xhc3NdCitmbGFnczogW2dlbmVyYXRlZF0KK2luY2x1ZGVzOiBbcHJvcGVydHlI
ZWxwZXIuanNdCitpbmZvOiB8CisgICAgQ2xhc3NFbGVtZW50OgorICAgICAgLi4uCisgICAgICBz
dGF0aWMgRmllbGREZWZpbml0aW9uIDsKKworLS0tKi8KKworCit2YXIgQyA9IGNsYXNzIHsKKyAg
c3RhdGljIHN0YXRpYzsKK30KKwordmVyaWZ5UHJvcGVydHkoQywgInN0YXRpYyIsIHsKKyAgdmFs
dWU6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCisg
IGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N5bnRheC9lYXJseS1lcnJvcnMvZ3Jh
bW1hci1wcml2YXRlLWZpZWxkLW9wdGlvbmFsLWNoYWluaW5nLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2NsYXNzL2VsZW1lbnRzL3N5
bnRheC9lYXJseS1lcnJvcnMvZ3JhbW1hci1wcml2YXRlLWZpZWxkLW9wdGlvbmFsLWNoYWluaW5n
LmpzCShyZXZpc2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9jbGFzcy9lbGVtZW50cy9zeW50YXgvZWFybHktZXJyb3JzL2dyYW1tYXItcHJp
dmF0ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5qcwkobm9uZXhpc3RlbnQpCkBAIC0xLDI5ICsw
LDAgQEAKLS8vIFRoaXMgZmlsZSB3YXMgcHJvY2VkdXJhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBm
b2xsb3dpbmcgc291cmNlczoKLS8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL2dyYW1tYXItcHJpdmF0
ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5jYXNlCi0vLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9z
eW50YXgvaW52YWxpZC9jbHMtZXhwci1lbGVtZW50cy1pbnZhbGlkLXN5bnRheC50ZW1wbGF0ZQot
LyotLS0KLWRlc2NyaXB0aW9uOiBQcml2YXRlTmFtZSBhZnRlciAnPy4nIGlzIG5vdCB2YWxpZCBz
eW50YXggKGNsYXNzIGV4cHJlc3Npb24pCi1lc2lkOiBwcm9kLUNsYXNzRWxlbWVudAotZmVhdHVy
ZXM6IFtjbGFzcy1maWVsZHMtcHJpdmF0ZSwgb3B0aW9uYWwtY2hhaW5pbmcsIGNsYXNzXQotZmxh
Z3M6IFtnZW5lcmF0ZWRdCi1uZWdhdGl2ZToKLSAgcGhhc2U6IHBhcnNlCi0gIHR5cGU6IFN5bnRh
eEVycm9yCi1pbmZvOiB8Ci0gICAgVXBkYXRlZCBQcm9kdWN0aW9ucwotCi0gICAgTWVtYmVyRXhw
cmVzc2lvbltZaWVsZF06Ci0gICAgICBNZW1iZXJFeHByZXNzaW9uWz9ZaWVsZF0uUHJpdmF0ZU5h
bWUKLQotLS0tKi8KLQotCi0kRE9OT1RFVkFMVUFURSgpOwotCi12YXIgQyA9IGNsYXNzIHsKLSAg
I20gPSAndGVzdDI2Mic7Ci0KLSAgYWNjZXNzKG9iaikgewotICAgIHJldHVybiBvYmo/LiNtOwot
ICB9Ci19OwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFyZ3VtZW50cy1zdHJpY3QuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLWFyZ3VtZW50cy1zdHJpY3QuanMJKG5vbmV4aXN0ZW50KQorKysg
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtYW5kLWFyZ3VtZW50cy1zdHJpY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9w
ZXJhdG9ycworZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlz
IHRocm93biBpZiB0aGUgaWRlbnRpZmllciBhcmd1bWVudHMKKyAgICBhcHBlYXIgYXMgdGhlIExl
ZnRIYW5kU2lkZUV4cHJlc3Npb24gb2YgYSBMb2dpY2FsIEFzc2lnbm1lbnQKKyAgICBvcGVyYXRv
cigmJj0pCitmbGFnczogW29ubHlTdHJpY3RdCituZWdhdGl2ZToKKyAgcGhhc2U6IHBhcnNlCisg
IHR5cGU6IFN5bnRheEVycm9yCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRv
cnNdCistLS0qLworJERPTk9URVZBTFVBVEUoKTsKKworYXJndW1lbnRzICYmPSAyMDsKSW5kZXg6
IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdu
bWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLWJpZ2ludC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMJKG5vbmV4aXN0ZW50
KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3ItYmlnaW50LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVy
bmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQor
ZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRp
b24KK2Rlc2NyaXB0aW9uOiBMb2dpY2FsIEFuZCBBc3NpZ25tZW50IE9wZXJhdG9yCitmZWF0dXJl
czogW0JpZ0ludCwgbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KK2luZm86IHwKKyAgICBB
c3NpZ25tZW50RXhwcmVzc2lvbjoKKyAgICAgIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gJiY9IEFz
c2lnbm1lbnRFeHByZXNzaW9uCisKKyAgICAxLiBMZXQgbHJlZiBiZSB0aGUgcmVzdWx0IG9mIGV2
YWx1YXRpbmcgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbi4KKyAgICAyLiBMZXQgbHZhbCBiZSA/IEdl
dFZhbHVlKGxyZWYpLgorICAgIDMuIExldCBsYm9vbCBiZSAhIFRvQm9vbGVhbihsdmFsKS4KKyAg
ICA0LiBJZiBsYm9vbCBpcyBmYWxzZSwgcmV0dXJuIGx2YWwuCisgICAgNS4gTGV0IHJyZWYgYmUg
dGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIEFzc2lnbm1lbnRFeHByZXNzaW9uLgorICAgIDYuIExl
dCBydmFsIGJlID8gR2V0VmFsdWUocnJlZikuCisgICAgNy4gUGVyZm9ybSA/IFB1dFZhbHVlKGxy
ZWYsIHJ2YWwpLgorICAgIDguIFJldHVybiBydmFsLgorCistLS0qLworCit2YXIgdmFsdWUgPSAw
bjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9IDFuLCAwbiwgIih2YWx1ZSAmJj0gMW4pID09
PSAwbjsgd2hlcmUgdmFsdWUgPSAwbiIpOworCit2YWx1ZSA9IDJuOworYXNzZXJ0LnNhbWVWYWx1
ZSh2YWx1ZSAmJj0gMW4sIDFuLCAiKHZhbHVlICYmPSAxbikgPT09IDFuOyB3aGVyZSB2YWx1ZSA9
IDJuIik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1saHMtYmVmb3Jl
LXJocy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1s
aHMtYmVmb3JlLXJocy5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVu
dC1vcGVyYXRvci1saHMtYmVmb3JlLXJocy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUz
IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50
LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgor
ICAgIFRoZSBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGlzIGV2YWx1YXRlZCBiZWZvcmUgdGhlIEFz
c2lnbm1lbnRFeHByZXNzaW9uLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0
b3JzXQorCistLS0qLworCitmdW5jdGlvbiBEdW1teUVycm9yKCkgeyB9CisKK2Fzc2VydC50aHJv
d3MoRHVtbXlFcnJvciwgZnVuY3Rpb24oKSB7CisgIHZhciBiYXNlID0gbnVsbDsKKyAgdmFyIHBy
b3AgPSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgRHVtbXlFcnJvcigpOworICB9OworICB2
YXIgZXhwciA9IGZ1bmN0aW9uKCkgeworICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoInJpZ2h0
LWhhbmQgc2lkZSBleHByZXNzaW9uIGV2YWx1YXRlZCIpOworICB9OworCisgIGJhc2VbcHJvcCgp
XSAmJj0gZXhwcigpOworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigp
IHsKKyAgdmFyIGJhc2UgPSBudWxsOworICB2YXIgcHJvcCA9IHsKKyAgICB0b1N0cmluZzogZnVu
Y3Rpb24oKSB7CisgICAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJwcm9wZXJ0eSBrZXkgZXZh
bHVhdGVkIik7CisgICAgfQorICB9OworICB2YXIgZXhwciA9IGZ1bmN0aW9uKCkgeworICAgIHRo
cm93IG5ldyBUZXN0MjYyRXJyb3IoInJpZ2h0LWhhbmQgc2lkZSBleHByZXNzaW9uIGV2YWx1YXRl
ZCIpOworICB9OworCisgIGJhc2VbcHJvcF0gJiY9IGV4cHIoKTsKK30pOworCit2YXIgY291bnQg
PSAwOwordmFyIG9iaiA9IHt9OworZnVuY3Rpb24gaW5jcigpIHsKKyAgcmV0dXJuICsrY291bnQ7
Cit9CisKK2Fzc2VydC5zYW1lVmFsdWUob2JqW2luY3IoKV0gJiY9IGluY3IoKSwgdW5kZWZpbmVk
LCAib2JqW2luY3IoKV0gJiY9IGluY3IoKSIpOworYXNzZXJ0LnNhbWVWYWx1ZShvYmpbMV0sIHVu
ZGVmaW5lZCwgIm9ialsxXSIpOworYXNzZXJ0LnNhbWVWYWx1ZShjb3VudCwgMSwgImNvdW50Iik7
CisKK29ialsyXSA9IDE7Cithc3NlcnQuc2FtZVZhbHVlKG9ialtpbmNyKCldICYmPSBpbmNyKCks
IDMsICJvYmpbaW5jcigpXSAmJj0gaW5jcigpIik7Cithc3NlcnQuc2FtZVZhbHVlKG9ialsyXSwg
MywgIm9ialsyXSIpOworYXNzZXJ0LnNhbWVWYWx1ZShjb3VudCwgMywgImNvdW50Iik7CkluZGV4
OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1uby1zZXQtcHV0LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC1wdXQuanMJKG5v
bmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1
dC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisvLyBDb3B5cmlnaHQgKGMpIDIw
MjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFu
dGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVy
cm9yIGlzIHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2ln
bm1lbnQgb3BlcmF0b3IoJiY9KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJvcGVydHkgd2l0
aCB0aGUKKyAgICBhdHRyaWJ1dGUgdmFsdWUge1tbU2V0XV06dW5kZWZpbmVkfSBhbmQgUHV0VmFs
dWUgc3RlcCBpcyByZWFjaGVkLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dp
Y2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0ge307CitPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsKKyAgZ2V0OiBmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4gMjsKKyAgfSwKKyAgc2V0OiB1bmRlZmluZWQsCisgIGVudW1lcmFibGU6IHRydWUs
CisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBm
dW5jdGlvbigpIHsKKyAgb2JqLnByb3AgJiY9IDE7Cit9KTsKK2Fzc2VydC5zYW1lVmFsdWUob2Jq
LnByb3AsIDIsICJvYmoucHJvcCIpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3Bl
cmF0b3Itbm8tc2V0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9w
ZXJhdG9yLW5vLXNldC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVu
dC1vcGVyYXRvci1uby1zZXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBAQAorLy8g
Q29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRv
cnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBTdHJp
Y3QgTW9kZSAtIFR5cGVFcnJvciBpcyBub3QgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGUgb2Yg
YSBMb2dpY2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRvcigmJj0pIGlzIGEgcmVmZXJlbmNlIHRv
IGEgZGF0YSBwcm9wZXJ0eSB3aXRoIHRoZQorICAgIGF0dHJpYnV0ZSB2YWx1ZSB7W1tTZXRdXTp1
bmRlZmluZWR9IGFuZCBQdXRWYWx1ZSBzdGVwIGlzIG5vdCByZWFjaGVkLgorZmxhZ3M6IFtvbmx5
U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0q
LworCit2YXIgb2JqID0ge307CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsK
KyAgZ2V0OiBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gMDsKKyAgfSwKKyAgc2V0OiB1bmRlZmlu
ZWQsCisgIGVudW1lcmFibGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKK2Fz
c2VydC5zYW1lVmFsdWUob2JqLnByb3AgJiY9IDEsIDAsICJvYmoucHJvcCIpOwpJbmRleDogSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLWV4dGVuc2libGUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLWV4dGVuc2libGUuanMJ
KG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLWV4
dGVuc2libGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorLy8gQ29weXJpZ2h0
IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGlt
ZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAt
IFR5cGVFcnJvciBpcyBub3QgdGhyb3duIGlmIFRoZSBMZWZ0SGFuZFNpZGUgb2YgYSBMb2dpY2Fs
CisgICAgQXNzaWdubWVudCBvcGVyYXRvcigmJj0pIGlzIGEgcmVmZXJlbmNlIHRvIGEgbm9uLWV4
aXN0ZW50IHByb3BlcnR5IG9mIGFuCisgICAgb2JqZWN0IHdob3NlIFtbRXh0ZW5zaWJsZV1dIGlu
dGVybmFsIHByb3BlcnR5IGlzIGZhbHNlLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6
IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0ge307
CitPYmplY3QucHJldmVudEV4dGVuc2lvbnMob2JqKTsKKworb2JqLnByb3AgJiY9IDE7Cithc3Nl
cnQuc2FtZVZhbHVlKG9iai5wcm9wLCB1bmRlZmluZWQsICJvYmoucHJvcCIpOwpJbmRleDogSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMJ
KG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNp
bXBsZS1saHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorLy8gQ29weXJpZ2h0
IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtc3RhdGlj
LXNlbWFudGljcy1lYXJseS1lcnJvcnMKK2Rlc2NyaXB0aW9uOiA+CisgICAgSXQgaXMgYSBTeW50
YXggRXJyb3IgaWYgQXNzaWdubWVudFRhcmdldFR5cGUgb2YgTGVmdEhhbmRTaWRlRXhwcmVzc2lv
biBpcworICAgIG5vdCBzaW1wbGUuCituZWdhdGl2ZToKKyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6
IFN5bnRheEVycm9yCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisK
Ky0tLSovCisKKyRET05PVEVWQUxVQVRFKCk7CisKK2Z1bmN0aW9uIHRlc3QoKSB7fQordGVzdCgp
ICYmPSAxOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRl
YWJsZS1wdXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0
b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFz
c2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwyNiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
YXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3Jp
cHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFR5cGVFcnJvciBpcyB0aHJvd24gaWYgdGhlIExl
ZnRIYW5kU2lkZSBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKCYmPSkgaXMg
YSByZWZlcmVuY2UgdG8gYSBkYXRhIHByb3BlcnR5IHdpdGggdGhlCisgICAgYXR0cmlidXRlIHZh
bHVlIHtbW1dyaXRhYmxlXV06ZmFsc2V9IGFuZCBQdXRWYWx1ZSBzdGVwIGlzIHJlYWNoZWQuCitm
bGFnczogW29ubHlTdHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRv
cnNdCisKKy0tLSovCisKK3ZhciBvYmogPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmos
ICJwcm9wIiwgeworICB2YWx1ZTogMiwKKyAgd3JpdGFibGU6IGZhbHNlLAorICBlbnVtZXJhYmxl
OiB0cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQudGhyb3dzKFR5cGVF
cnJvciwgZnVuY3Rpb24oKSB7CisgIG9iai5wcm9wICYmPSAxOworfSk7Cithc3NlcnQuc2FtZVZh
bHVlKG9iai5wcm9wLCAyLCAib2JqLnByb3AiKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25t
ZW50LW9wZXJhdG9yLW5vbi13cml0ZWFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5k
LWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVy
bmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQor
ZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRp
b24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMgbm90IHRo
cm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3Bl
cmF0b3IoJiY9KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJvcGVydHkgd2l0aCB0aGUKKyAg
ICBhdHRyaWJ1dGUgdmFsdWUge1tbV3JpdGFibGVdXTpmYWxzZX0gYW5kIFB1dFZhbHVlIHN0ZXAg
aXMgbm90IHJlYWNoZWQuCitmbGFnczogW29ubHlTdHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwt
YXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciBvYmogPSB7fTsKK09iamVjdC5k
ZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgeworICB2YWx1ZTogMCwKKyAgd3JpdGFibGU6IGZh
bHNlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30pOworCith
c3NlcnQuc2FtZVZhbHVlKG9iai5wcm9wICYmPSAxLCAwLCAib2JqLnByb3AiKTsKSW5kZXg6IEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVu
dC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtbGhzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtbGhzLmpz
CShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVz
b2x2ZWQtbGhzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKKy8vIENvcHlyaWdo
dCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRp
bWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgUmVmZXJlbmNlRXJy
b3IgaXMgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIG9mIGEgTG9naWNhbAor
ICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IoJiY9KSBldmFsdWF0ZXMgdG8gYW4gdW5yZXNvbHZhYmxl
IHJlZmVyZW5jZQorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCithc3NlcnQudGhyb3dzKFJlZmVyZW5jZUVycm9y
LCBmdW5jdGlvbigpIHsKKyAgdW5yZXNvbHZlZCAmJj0gMTsKK30pOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
YW5kLWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMtcHV0LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNz
aWdubWVudC9sZ2NsLWFuZC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtcmhzLXB1dC5q
cwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRvci11bnJl
c29sdmVkLXJocy1wdXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorLy8gQ29w
eXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMt
cnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBSZWZlcmVu
Y2VFcnJvciBpcyB0aHJvd24gaWYgdGhlIEFzc2lnbm1lbnRFeHByZXNzaW9uIG9mIGEgTG9naWNh
bAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IoJiY9KSBldmFsdWF0ZXMgdG8gYW4gdW5yZXNvbHZh
YmxlIHJlZmVyZW5jZSBhbmQgdGhlCisgICAgQXNzaWdubWVudEV4cHJlc3Npb24gaXMgZXZhbHVh
dGVkLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLwor
Cit2YXIgdmFsdWUgPSAyOworCithc3NlcnQudGhyb3dzKFJlZmVyZW5jZUVycm9yLCBmdW5jdGlv
bigpIHsKKyAgdmFsdWUgJiY9IHVucmVzb2x2ZWQ7Cit9KTsKK2Fzc2VydC5zYW1lVmFsdWUodmFs
dWUsIDIsICJ2YWx1ZSIpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3It
dW5yZXNvbHZlZC1yaHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQt
b3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5k
LWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJT
RCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMt
YXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3Jp
cHRpb246ID4KKyAgICBSZWZlcmVuY2VFcnJvciBpcyBub3QgdGhyb3duIGlmIHRoZSBBc3NpZ25t
ZW50RXhwcmVzc2lvbiBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50IG9wZXJhdG9yKCYmPSkg
ZXZhbHVhdGVzIHRvIGFuIHVucmVzb2x2YWJsZSByZWZlcmVuY2UgYW5kIHRoZQorICAgIEFzc2ln
bm1lbnRFeHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQuCitmZWF0dXJlczogW2xvZ2ljYWwtYXNz
aWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciB2YWx1ZSA9IDA7CisKK2Fzc2VydC5z
YW1lVmFsdWUodmFsdWUgJiY9IHVucmVzb2x2ZWQsIDAsICJ2YWx1ZSIpOwpJbmRleDogSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5k
LWFzc2lnbm1lbnQtb3BlcmF0b3IuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFz
c2lnbm1lbnQtb3BlcmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAorLy8g
Q29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRv
cnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246IExvZ2ljYWwgQW5k
IEFzc2lnbm1lbnQgT3BlcmF0b3IKK2luZm86IHwKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbjoK
KyAgICAgIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gJiY9IEFzc2lnbm1lbnRFeHByZXNzaW9uCisK
KyAgICAxLiBMZXQgbHJlZiBiZSB0aGUgcmVzdWx0IG9mIGV2YWx1YXRpbmcgTGVmdEhhbmRTaWRl
RXhwcmVzc2lvbi4KKyAgICAyLiBMZXQgbHZhbCBiZSA/IEdldFZhbHVlKGxyZWYpLgorICAgIDMu
IExldCBsYm9vbCBiZSAhIFRvQm9vbGVhbihsdmFsKS4KKyAgICA0LiBJZiBsYm9vbCBpcyBmYWxz
ZSwgcmV0dXJuIGx2YWwuCisgICAgNS4gTGV0IHJyZWYgYmUgdGhlIHJlc3VsdCBvZiBldmFsdWF0
aW5nIEFzc2lnbm1lbnRFeHByZXNzaW9uLgorICAgIDYuIExldCBydmFsIGJlID8gR2V0VmFsdWUo
cnJlZikuCisgICAgNy4gUGVyZm9ybSA/IFB1dFZhbHVlKGxyZWYsIHJ2YWwpLgorICAgIDguIFJl
dHVybiBydmFsLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCist
LS0qLworCit2YXIgdmFsdWUgPSB1bmRlZmluZWQ7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlICYm
PSAxLCB1bmRlZmluZWQsICIodmFsdWUgJiY9IDEpID09PSB1bmRlZmluZWQ7IHdoZXJlIHZhbHVl
ID0gdW5kZWZpbmVkIik7CisKK3ZhbHVlID0gbnVsbDsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUg
JiY9IDEsIG51bGwsICIodmFsdWUgJiY9IDEpID09PSBudWxsIHdoZXJlIHZhbHVlID0gbnVsbCIp
OworCit2YWx1ZSA9IGZhbHNlOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgZmFsc2Us
ICIodmFsdWUgJiY9IDEpID09PSBmYWxzZTsgd2hlcmUgdmFsdWUgPSBmYWxzZSIpOworCit2YWx1
ZSA9IDA7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlICYmPSAxLCAwLCAiKHZhbHVlICYmPSAxKSA9
PT0gMDsgd2hlcmUgdmFsdWUgPSAwIik7CisKK3ZhbHVlID0gLTA7Cithc3NlcnQuc2FtZVZhbHVl
KHZhbHVlICYmPSAxLCAtMCwgIih2YWx1ZSAmJj0gMSkgPT09IC0wOyB3aGVyZSB2YWx1ZSA9IC0w
Iik7CisKK3ZhbHVlID0gTmFOOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgTmFOLCAi
KHZhbHVlICYmPSAxKSA9PT0gTmFOOyB3aGVyZSB2YWx1ZSA9IE5hTiIpOworCit2YWx1ZSA9ICIi
OworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgIiIsICcodmFsdWUgJiY9IDEpID09PSAi
IiB3aGVyZSB2YWx1ZSA9ICIiJyk7CisKKworCit2YWx1ZSA9IHRydWU7Cithc3NlcnQuc2FtZVZh
bHVlKHZhbHVlICYmPSAxLCAxLCAiKHZhbHVlICYmPSAxKSA9PT0gMTsgd2hlcmUgdmFsdWUgPSB0
cnVlIik7CisKK3ZhbHVlID0gMjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9IDEsIDEsICIo
dmFsdWUgJiY9IDEpID09PSAxOyB3aGVyZSB2YWx1ZSA9IDIiKTsKKwordmFsdWUgPSAidGVzdCI7
Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlICYmPSAxLCAxLCAnKHZhbHVlICYmPSAxKSA9PT0gMTsg
d2hlcmUgdmFsdWUgPSAidGVzdCInKTsKKwordmFyIHN5bSA9IFN5bWJvbCgiIik7Cit2YWx1ZSA9
IHN5bTsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgJiY9IDEsIDEsICIodmFsdWUgJiY9IDEpID09
PSAxOyB3aGVyZSB2YWx1ZSA9IFN5bWJvbCgpIik7CisKK3ZhciBvYmogPSB7fTsKK3ZhbHVlID0g
b2JqOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSAmJj0gMSwgMSwgIih2YWx1ZSAmJj0gMSkgPT09
IDE7IHdoZXJlIHZhbHVlID0ge30iKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1ldmFsLXN0cmljdC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtZXZhbC1zdHJpY3QuanMJKG5vbmV4aXN0ZW50
KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtYW5kLWV2YWwtc3RyaWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1v
cGVyYXRvcnMKK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBp
cyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgZXZhbCBhcHBlYXIKKyAgICBhcyB0aGUgTGVmdEhh
bmRTaWRlRXhwcmVzc2lvbiBvZiBhIExvZ2ljYWwgQXNzaWdubWVudCBvcGVyYXRvcigmJj0pCitm
bGFnczogW29ubHlTdHJpY3RdCituZWdhdGl2ZToKKyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6IFN5
bnRheEVycm9yCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCistLS0q
LworJERPTk9URVZBTFVBVEUoKTsKKworZXZhbCAmJj0gMjA7CkluZGV4OiBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQt
bm9uLXNpbXBsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtbm9uLXNpbXBsZS5qcwko
bm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtbm9uLXNpbXBsZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0Qg
bGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFz
c2lnbm1lbnQtb3BlcmF0b3JzLXN0YXRpYy1zZW1hbnRpY3MtZWFybHktZXJyb3JzCitpbmZvOiB8
CisgICAgSXQgaXMgYW4gZWFybHkgU3ludGF4IEVycm9yIGlmIEFzc2lnbm1lbnRUYXJnZXRUeXBl
IG9mCisgICAgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBpcyBpbnZhbGlkIG9yIHN0cmljdC4KK2Rl
c2NyaXB0aW9uOiBMb2dpY2FsICImJj0iIGFzc2lnbm1lbnQgd2l0aCBub24tc2ltcGxlIHRhcmdl
dAorbmVnYXRpdmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVhdHVy
ZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KKyRET05PVEVWQUxVQVRF
KCk7CisKKzEgJiY9IDE7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtd2hpdGVzcGFjZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1hbmQtd2hpdGVzcGFjZS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQv
bGdjbC1hbmQtd2hpdGVzcGFjZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU4IEBACisv
LyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlLgorCisvKi0tLQoraW5mbzogfAorICAgIFdoaXRlIFNwYWNlIGFuZCBMaW5l
IFRlcm1pbmF0b3IgYmV0d2VlbiBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGFuZCAiQD0iCisgICAg
b3IgYmV0d2VlbiAiQD0iIGFuZCBBc3NpZ25tZW50RXhwcmVzc2lvbiBhcmUgYWxsb3dlZAorZXNp
ZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzCitkZXNjcmlwdGlvbjogQ2hlY2tpbmcgYnkgZXZh
bHVhdGluZyBleHByZXNzaW9uICJ4Wy4uLl0mJj1bLi4uXXkiCitmZWF0dXJlczogW2xvZ2ljYWwt
YXNzaWdubWVudC1vcGVyYXRvcnNdCistLS0qLwordmFyIHg7CisKK3ggPSAxOworYXNzZXJ0LnNh
bWVWYWx1ZSh4CSYmPQkyLCAyLCAnVSswMDA5IChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVW
YWx1ZSh4LCAyLCAnVSswMDA5IChzaWRlIGVmZmVjdCknKTsKKworeCA9IDE7Cithc3NlcnQuc2Ft
ZVZhbHVlKHgLJiY9CzIsIDIsICdVKzAwMEIgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZh
bHVlKHgsIDIsICdVKzAwMEIgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMTsKK2Fzc2VydC5zYW1l
VmFsdWUoeAwmJj0MMiwgMiwgJ1UrMDAwQyAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFs
dWUoeCwgMiwgJ1UrMDAwQyAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAxOworYXNzZXJ0LnNhbWVW
YWx1ZSh4ICYmPSAyLCAyLCAnVSswMDIwIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1
ZSh4LCAyLCAnVSswMDIwIChzaWRlIGVmZmVjdCknKTsKKworeCA9IDE7Cithc3NlcnQuc2FtZVZh
bHVlKHjCoCYmPcKgMiwgMiwgJ1UrMDBBMCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFs
dWUoeCwgMiwgJ1UrMDBBMCAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAxOworYXNzZXJ0LnNhbWVW
YWx1ZSh4CismJj0KKzIsIDIsICdVKzAwMEEgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZh
bHVlKHgsIDIsICdVKzAwMEEgKHNpZGUgZWZmZWN0KScpOworCit4ID0gMTsKK2Fzc2VydC5zYW1l
VmFsdWUoeAorJiY9CisyLCAyLCAnVSswMDBEIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVW
YWx1ZSh4LCAyLCAnVSswMDBEIChzaWRlIGVmZmVjdCknKTsKKworeCA9IDE7Cithc3NlcnQuc2Ft
ZVZhbHVlKHjigKgmJj3igKgyLCAyLCAnVSsyMDI4IChleHByZXNzaW9uKScpOworYXNzZXJ0LnNh
bWVWYWx1ZSh4LCAyLCAnVSsyMDI4IChzaWRlIGVmZmVjdCknKTsKKworeCA9IDE7Cithc3NlcnQu
c2FtZVZhbHVlKHjigKkmJj3igKkyLCAyLCAnVSsyMDI5IChleHByZXNzaW9uKScpOworYXNzZXJ0
LnNhbWVWYWx1ZSh4LCAyLCAnVSsyMDI5IChzaWRlIGVmZmVjdCknKTsKKworeCA9IDE7Cithc3Nl
cnQuc2FtZVZhbHVlKHgJCwwgwqAKK+KAqOKAqSYmPQkLDCDCoAor4oCo4oCpMiwgMiwgJ1UrMDAw
OVUrMDAwQlUrMDAwQ1UrMDAyMFUrMDBBMFUrMDAwQVUrMDAwRFUrMjAyOFUrMjAyOSAoZXhwcmVz
c2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMiwgJ1UrMDAwOVUrMDAwQlUrMDAwQ1UrMDAy
MFUrMDBBMFUrMDAwQVUrMDAwRFUrMjAyOFUrMjAyOSAoc2lkZSBlZmZlY3QpJyk7CkluZGV4OiBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1udWxsaXNoLWFyZ3VtZW50cy1zdHJpY3QuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtbnVsbGlzaC1hcmd1bWVudHMtc3RyaWN0LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW51bGxpc2gtYXJndW1lbnRzLXN0cmljdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4
IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0
b3JzCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhy
b3duIGlmIHRoZSBpZGVudGlmaWVyIGFyZ3VtZW50cworICAgIGFwcGVhciBhcyB0aGUgTGVmdEhh
bmRTaWRlRXhwcmVzc2lvbiBvZiBhIExvZ2ljYWwgQXNzaWdubWVudAorICAgIG9wZXJhdG9yKD8/
PSkKK2ZsYWdzOiBbb25seVN0cmljdF0KK25lZ2F0aXZlOgorICBwaGFzZTogcGFyc2UKKyAgdHlw
ZTogU3ludGF4RXJyb3IKK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10K
Ky0tLSovCiskRE9OT1RFVkFMVUFURSgpOworCithcmd1bWVudHMgPz89IDIwOwpJbmRleDogSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLWJpZ2ludC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItYmlnaW50LmpzCShub25leGlz
dGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2lj
YWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVj
bWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK
Ky8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3Mt
ZXZhbHVhdGlvbgorZGVzY3JpcHRpb246IExvZ2ljYWwgTnVsbGlzaCBBc3NpZ25tZW50IE9wZXJh
dG9yCitmZWF0dXJlczogW0JpZ0ludCwgbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KK2lu
Zm86IHwKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbjoKKyAgICAgIExlZnRIYW5kU2lkZUV4cHJl
c3Npb24gPz89IEFzc2lnbm1lbnRFeHByZXNzaW9uCisKKyAgICAxLiBMZXQgbHJlZiBiZSB0aGUg
cmVzdWx0IG9mIGV2YWx1YXRpbmcgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbi4KKyAgICAyLiBMZXQg
bHZhbCBiZSA/IEdldFZhbHVlKGxyZWYpLgorICAgIDMuIElmIGx2YWwgaXMgbmVpdGhlciB1bmRl
ZmluZWQgbm9yIG51bGwsIHJldHVybiBsdmFsLgorICAgIDQuIExldCBycmVmIGJlIHRoZSByZXN1
bHQgb2YgZXZhbHVhdGluZyBBc3NpZ25tZW50RXhwcmVzc2lvbi4KKyAgICA1LiBMZXQgcnZhbCBi
ZSA/IEdldFZhbHVlKHJyZWYpLgorICAgIDYuIFBlcmZvcm0gPyBQdXRWYWx1ZShscmVmLCBydmFs
KS4KKyAgICA3LiBSZXR1cm4gcnZhbC4KKworLS0tKi8KKwordmFyIHZhbHVlID0gMG47Cithc3Nl
cnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxbiwgMG4sICIodmFsdWUgPz89IDFuKSA9PT0gMG47IHdo
ZXJlIHZhbHVlID0gMG4iKTsKKwordmFsdWUgPSAybjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUg
Pz89IDFuLCAybiwgIih2YWx1ZSA/Pz0gMW4pID09PSAybjsgd2hlcmUgdmFsdWUgPSAybiIpOwpJ
bmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLWxocy1iZWZvcmUtcmhz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1s
aHMtYmVmb3JlLXJocy5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2ln
bm1lbnQtb3BlcmF0b3ItbGhzLWJlZm9yZS1yaHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1MyBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNl
bnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdu
bWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246
ID4KKyAgICBUaGUgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgYmVmb3JlIHRo
ZSBBc3NpZ25tZW50RXhwcmVzc2lvbi4KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9w
ZXJhdG9yc10KKworLS0tKi8KKworZnVuY3Rpb24gRHVtbXlFcnJvcigpIHsgfQorCithc3NlcnQu
dGhyb3dzKER1bW15RXJyb3IsIGZ1bmN0aW9uKCkgeworICB2YXIgYmFzZSA9IG51bGw7CisgIHZh
ciBwcm9wID0gZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgbmV3IER1bW15RXJyb3IoKTsKKyAgfTsK
KyAgdmFyIGV4cHIgPSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJy
aWdodC1oYW5kIHNpZGUgZXhwcmVzc2lvbiBldmFsdWF0ZWQiKTsKKyAgfTsKKworICBiYXNlW3By
b3AoKV0gPz89IGV4cHIoKTsKK30pOworCithc3NlcnQudGhyb3dzKFR5cGVFcnJvciwgZnVuY3Rp
b24oKSB7CisgIHZhciBiYXNlID0gbnVsbDsKKyAgdmFyIHByb3AgPSB7CisgICAgdG9TdHJpbmc6
IGZ1bmN0aW9uKCkgeworICAgICAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigicHJvcGVydHkga2V5
IGV2YWx1YXRlZCIpOworICAgIH0KKyAgfTsKKyAgdmFyIGV4cHIgPSBmdW5jdGlvbigpIHsKKyAg
ICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJyaWdodC1oYW5kIHNpZGUgZXhwcmVzc2lvbiBldmFs
dWF0ZWQiKTsKKyAgfTsKKworICBiYXNlW3Byb3BdID8/PSBleHByKCk7Cit9KTsKKwordmFyIGNv
dW50ID0gMDsKK3ZhciBvYmogPSB7fTsKK2Z1bmN0aW9uIGluY3IoKSB7CisgIHJldHVybiArK2Nv
dW50OworfQorCithc3NlcnQuc2FtZVZhbHVlKG9ialtpbmNyKCldID8/PSBpbmNyKCksIDIsICJv
YmpbaW5jcigpXSA/Pz0gaW5jcigpIik7Cithc3NlcnQuc2FtZVZhbHVlKG9ialsxXSwgMiwgIm9i
alsxXSIpOworYXNzZXJ0LnNhbWVWYWx1ZShjb3VudCwgMiwgImNvdW50Iik7CisKK29ialszXSA9
IDE7Cithc3NlcnQuc2FtZVZhbHVlKG9ialtpbmNyKCldID8/PSBpbmNyKCksIDEsICJvYmpbaW5j
cigpXSA/Pz0gaW5jcigpIik7Cithc3NlcnQuc2FtZVZhbHVlKG9ialszXSwgMSwgIm9ialszXSIp
OworYXNzZXJ0LnNhbWVWYWx1ZShjb3VudCwgMywgImNvdW50Iik7CkluZGV4OiBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1u
dWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1dC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1dC5qcwkobm9uZXhp
c3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dp
Y2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1
dC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisvLyBDb3B5cmlnaHQgKGMpIDIw
MjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFu
dGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVy
cm9yIGlzIHRocm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2ln
bm1lbnQgb3BlcmF0b3IoPz89KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJvcGVydHkgd2l0
aCB0aGUKKyAgICBhdHRyaWJ1dGUgdmFsdWUge1tbU2V0XV06dW5kZWZpbmVkfSBhbmQgUHV0VmFs
dWUgc3RlcCBpcyByZWFjaGVkLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dp
Y2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0ge307CitPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIsIHsKKyAgZ2V0OiBmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4gdW5kZWZpbmVkOworICB9LAorICBzZXQ6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJs
ZTogdHJ1ZSwKKyAgY29uZmlndXJhYmxlOiB0cnVlCit9KTsKKworYXNzZXJ0LnRocm93cyhUeXBl
RXJyb3IsIGZ1bmN0aW9uKCkgeworICBvYmoucHJvcCA/Pz0gMTsKK30pOworYXNzZXJ0LnNhbWVW
YWx1ZShvYmoucHJvcCwgdW5kZWZpbmVkLCAib2JqLnByb3AiKTsKSW5kZXg6IEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51
bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1uby1zZXQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC5qcwkobm9uZXhpc3RlbnQpCisr
KyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjUgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVy
bmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQor
ZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRp
b24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMgbm90IHRo
cm93biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3Bl
cmF0b3IoPz89KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJvcGVydHkgd2l0aCB0aGUKKyAg
ICBhdHRyaWJ1dGUgdmFsdWUge1tbU2V0XV06dW5kZWZpbmVkfSBhbmQgUHV0VmFsdWUgc3RlcCBp
cyBub3QgcmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVzOiBbbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9OworT2JqZWN0LmRl
ZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7CisgIGdldDogZnVuY3Rpb24oKSB7CisgICAgcmV0
dXJuIDA7CisgIH0sCisgIHNldDogdW5kZWZpbmVkLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICBj
b25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQuc2FtZVZhbHVlKG9iai5wcm9wID8/PSAx
LCAwLCAib2JqLnByb3AiKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVy
YXRvci1ub24tZXh0ZW5zaWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFz
c2lnbm1lbnQtb3BlcmF0b3Itbm9uLWV4dGVuc2libGUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1leHRlbnNpYmxlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjEgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIElu
dGVybmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVy
bmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0t
LQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1
YXRpb24KK2Rlc2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMgdGhy
b3duIGlmIFRoZSBMZWZ0SGFuZFNpZGUgb2YgYSBMb2dpY2FsCisgICAgQXNzaWdubWVudCBvcGVy
YXRvcig/Pz0pIGlzIGEgcmVmZXJlbmNlIHRvIGEgbm9uLWV4aXN0ZW50IHByb3BlcnR5CisgICAg
b2YgYW4gb2JqZWN0IHdob3NlIFtbRXh0ZW5zaWJsZV1dIGludGVybmFsIHByb3BlcnR5IGlzIGZh
bHNlLgorZmxhZ3M6IFtvbmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQt
b3BlcmF0b3JzXQorCistLS0qLworCit2YXIgb2JqID0ge307CitPYmplY3QucHJldmVudEV4dGVu
c2lvbnMob2JqKTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBv
YmoucHJvcCA/Pz0gMTsKK30pOworYXNzZXJ0LnNhbWVWYWx1ZShvYmoucHJvcCwgdW5kZWZpbmVk
LCAib2JqLnByb3AiKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRv
ci1ub24tc2ltcGxlLWxocy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2ln
bm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1zaW1wbGUtbGhzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVy
bmF0aW9uYWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVk
IGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQor
ZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXN0YXRpYy1zZW1hbnRpY3MtZWFybHktZXJy
b3JzCitkZXNjcmlwdGlvbjogPgorICAgIEl0IGlzIGEgU3ludGF4IEVycm9yIGlmIEFzc2lnbm1l
bnRUYXJnZXRUeXBlIG9mIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gaXMKKyAgICBub3Qgc2ltcGxl
LgorbmVnYXRpdmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVhdHVy
ZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLworCiskRE9OT1RFVkFM
VUFURSgpOworCitmdW5jdGlvbiB0ZXN0KCkge30KK3Rlc3QoKSA/Pz0gMTsKSW5kZXg6IEpTVGVz
dHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9s
Z2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLXB1dC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dp
Y2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRl
YWJsZS1wdXQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50
LW9wZXJhdG9yLW5vbi13cml0ZWFibGUtcHV0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MjYgQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9uYWwuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5z
ZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1l
bnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rlc2NyaXB0aW9uOiA+
CisgICAgU3RyaWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNp
ZGUgb2YgYSBMb2dpY2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRvcig/Pz0pIGlzIGEgcmVmZXJl
bmNlIHRvIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIHRoZQorICAgIGF0dHJpYnV0ZSB2YWx1ZSB7W1tX
cml0YWJsZV1dOmZhbHNlfSBhbmQgUHV0VmFsdWUgc3RlcCBpcyByZWFjaGVkLgorZmxhZ3M6IFtv
bmx5U3RyaWN0XQorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCist
LS0qLworCit2YXIgb2JqID0ge307CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAicHJvcCIs
IHsKKyAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgd3JpdGFibGU6IGZhbHNlLAorICBlbnVtZXJhYmxl
OiB0cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30pOworCithc3NlcnQudGhyb3dzKFR5cGVF
cnJvciwgZnVuY3Rpb24oKSB7CisgIG9iai5wcm9wID8/PSAxOworfSk7Cithc3NlcnQuc2FtZVZh
bHVlKG9iai5wcm9wLCB1bmRlZmluZWQsICJvYmoucHJvcCIpOwpJbmRleDogSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVs
bGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi13cml0ZWFibGUuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25t
ZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi13cml0ZWFibGUuanMJKG5v
bmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi13
cml0ZWFibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorLy8gQ29weXJpZ2h0
IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBU
aGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGlt
ZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAt
IFR5cGVFcnJvciBpcyBub3QgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGUgb2YgYSBMb2dpY2Fs
CisgICAgQXNzaWdubWVudCBvcGVyYXRvcig/Pz0pIGlzIGEgcmVmZXJlbmNlIHRvIGEgZGF0YSBw
cm9wZXJ0eSB3aXRoIHRoZQorICAgIGF0dHJpYnV0ZSB2YWx1ZSB7W1tXcml0YWJsZV1dOmZhbHNl
fSBhbmQgUHV0VmFsdWUgc3RlcCBpcyBub3QgcmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0K
K2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFy
IG9iaiA9IHt9OworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7CisgIHZhbHVl
OiAwLAorICB3cml0YWJsZTogZmFsc2UsCisgIGVudW1lcmFibGU6IHRydWUsCisgIGNvbmZpZ3Vy
YWJsZTogdHJ1ZQorfSk7CisKK2Fzc2VydC5zYW1lVmFsdWUob2JqLnByb3AgPz89IDEsIDAsICJv
YmoucHJvcCIpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLXVu
cmVzb2x2ZWQtbGhzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVu
dC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1u
dWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1saHMuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRp
b25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lk
OiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgor
ZGVzY3JpcHRpb246ID4KKyAgICBSZWZlcmVuY2VFcnJvciBpcyB0aHJvd24gaWYgdGhlIExlZnRI
YW5kU2lkZUV4cHJlc3Npb24gb2YgYSBMb2dpY2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRvcig/
Pz0pIGV2YWx1YXRlcyB0byBhbiB1bnJlc29sdmFibGUgcmVmZXJlbmNlCitmbGFnczogW29ubHlT
dHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSov
CisKK2Fzc2VydC50aHJvd3MoUmVmZXJlbmNlRXJyb3IsIGZ1bmN0aW9uKCkgeworICB1bnJlc29s
dmVkID8/PSAxOworfSk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0
b3ItdW5yZXNvbHZlZC1yaHMtcHV0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gt
YXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy1wdXQuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3Np
Z25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtcmhzLXB1
dC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACisvLyBDb3B5cmlnaHQgKGMpIDIw
MjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29k
ZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFu
dGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFJlZmVyZW5jZUVycm9yIGlzIHRo
cm93biBpZiB0aGUgQXNzaWdubWVudEV4cHJlc3Npb24gb2YgYSBMb2dpY2FsCisgICAgQXNzaWdu
bWVudCBvcGVyYXRvcig/Pz0pIGV2YWx1YXRlcyB0byBhbiB1bnJlc29sdmFibGUgcmVmZXJlbmNl
IGFuZCB0aGUKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQuCitmZWF0dXJl
czogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciB2YWx1ZSA9
IHVuZGVmaW5lZDsKKworYXNzZXJ0LnRocm93cyhSZWZlcmVuY2VFcnJvciwgZnVuY3Rpb24oKSB7
CisgIHZhbHVlID8/PSB1bnJlc29sdmVkOworfSk7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlLCB1
bmRlZmluZWQsICJ2YWx1ZSIpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9w
ZXJhdG9yLXVucmVzb2x2ZWQtcmhzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gt
YXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1l
bnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEg
SW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292
ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8q
LS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZh
bHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBSZWZlcmVuY2VFcnJvciBpcyBub3QgdGhyb3du
IGlmIHRoZSBBc3NpZ25tZW50RXhwcmVzc2lvbiBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25tZW50
IG9wZXJhdG9yKD8/PSkgZXZhbHVhdGVzIHRvIGFuIHVucmVzb2x2YWJsZSByZWZlcmVuY2UgYW5k
IHRoZQorICAgIEFzc2lnbm1lbnRFeHByZXNzaW9uIGlzIG5vdCBldmFsdWF0ZWQuCitmZWF0dXJl
czogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciB2YWx1ZSA9
IDA7CisKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgPz89IHVucmVzb2x2ZWQsIDAsICJ2YWx1ZSIp
OwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNh
bC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwt
YXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci5qcwkobm9uZXhpc3Rl
bnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw2MCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJu
YXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQg
YnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitl
c2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlv
bgorZGVzY3JpcHRpb246IExvZ2ljYWwgTnVsbGlzaCBBc3NpZ25tZW50IE9wZXJhdG9yCitpbmZv
OiB8CisgICAgQXNzaWdubWVudEV4cHJlc3Npb246CisgICAgICBMZWZ0SGFuZFNpZGVFeHByZXNz
aW9uID8/PSBBc3NpZ25tZW50RXhwcmVzc2lvbgorCisgICAgMS4gTGV0IGxyZWYgYmUgdGhlIHJl
c3VsdCBvZiBldmFsdWF0aW5nIExlZnRIYW5kU2lkZUV4cHJlc3Npb24uCisgICAgMi4gTGV0IGx2
YWwgYmUgPyBHZXRWYWx1ZShscmVmKS4KKyAgICAzLiBJZiBsdmFsIGlzIG5laXRoZXIgdW5kZWZp
bmVkIG5vciBudWxsLCByZXR1cm4gbHZhbC4KKyAgICA0LiBMZXQgcnJlZiBiZSB0aGUgcmVzdWx0
IG9mIGV2YWx1YXRpbmcgQXNzaWdubWVudEV4cHJlc3Npb24uCisgICAgNS4gTGV0IHJ2YWwgYmUg
PyBHZXRWYWx1ZShycmVmKS4KKyAgICA2LiBQZXJmb3JtID8gUHV0VmFsdWUobHJlZiwgcnZhbCku
CisgICAgNy4gUmV0dXJuIHJ2YWwuCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVy
YXRvcnNdCisKKy0tLSovCisKK3ZhciB2YWx1ZSA9IHVuZGVmaW5lZDsKK2Fzc2VydC5zYW1lVmFs
dWUodmFsdWUgPz89IDEsIDEsICIodmFsdWUgPz89IDEpID09PSAxOyB3aGVyZSB2YWx1ZSA9IHVu
ZGVmaW5lZCIpOworCit2YWx1ZSA9IG51bGw7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAx
LCAxLCAiKHZhbHVlID8/PSAxKSA9PT0gMTsgd2hlcmUgdmFsdWUgPSBudWxsIik7CisKK3ZhbHVl
ID0gZmFsc2U7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxLCBmYWxzZSwgIih2YWx1ZSA/
Pz0gMSkgPT09IGZhbHNlOyB3aGVyZSB2YWx1ZSA9IGZhbHNlIik7CisKK3ZhbHVlID0gMDsKK2Fz
c2VydC5zYW1lVmFsdWUodmFsdWUgPz89IDEsIDAsICIodmFsdWUgPz89IDEpID09PSAwOyB3aGVy
ZSB2YWx1ZSA9IDAiKTsKKwordmFsdWUgPSAtMDsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgPz89
IDEsIC0wLCAiKHZhbHVlID8/PSAxKSA9PT0gLTA7IHdoZXJlIHZhbHVlID0gLTAiKTsKKwordmFs
dWUgPSBOYU47Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlID8/PSAxLCBOYU4sICIodmFsdWUgPz89
IDEpID09PSBOYU47IHdoZXJlIHZhbHVlID0gTmFOIik7CisKK3ZhbHVlID0gIiI7Cithc3NlcnQu
c2FtZVZhbHVlKHZhbHVlID8/PSAxLCAiIiwgJyh2YWx1ZSA/Pz0gMSkgPT09ICIiIHdoZXJlIHZh
bHVlID0gIiInKTsKKworCisKK3ZhbHVlID0gdHJ1ZTsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUg
Pz89IDEsIHRydWUsICIodmFsdWUgPz89IDEpID09PSB0cnVlOyB3aGVyZSB2YWx1ZSA9IHRydWUi
KTsKKwordmFsdWUgPSAyOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSA/Pz0gMSwgMiwgIih2YWx1
ZSA/Pz0gMSkgPT09IDI7IHdoZXJlIHZhbHVlID0gMiIpOworCit2YWx1ZSA9ICJ0ZXN0IjsKK2Fz
c2VydC5zYW1lVmFsdWUodmFsdWUgPz89IDEsICJ0ZXN0IiwgJyh2YWx1ZSA/Pz0gMSkgPT09ICJ0
ZXN0Ijsgd2hlcmUgdmFsdWUgPSAidGVzdCInKTsKKwordmFyIHN5bSA9IFN5bWJvbCgiIik7Cit2
YWx1ZSA9IHN5bTsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgPz89IDEsIHN5bSwgIih2YWx1ZSA/
Pz0gMSkgPT09IFN5bWJvbCgpOyB3aGVyZSB2YWx1ZSA9IFN5bWJvbCgpIik7CisKK3ZhciBvYmog
PSB7fTsKK3ZhbHVlID0gb2JqOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSA/Pz0gMSwgb2JqLCAi
KHZhbHVlID8/PSAxKSA9PT0ge307IHdoZXJlIHZhbHVlID0ge30iKTsKSW5kZXg6IEpTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2Ns
LW51bGxpc2gtZXZhbC1zdHJpY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1l
dmFsLXN0cmljdC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWV2YWwtc3Ry
aWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKKy8vIENvcHlyaWdodCAoQykg
MjAyMCBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK
Ky8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMKK2Rlc2NyaXB0aW9uOiA+Cisg
ICAgU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIg
ZXZhbCBhcHBlYXIKKyAgICBhcyB0aGUgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBvZiBhIExvZ2lj
YWwgQXNzaWdubWVudCBvcGVyYXRvcig/Pz0pCitmbGFnczogW29ubHlTdHJpY3RdCituZWdhdGl2
ZToKKyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6IFN5bnRheEVycm9yCitmZWF0dXJlczogW2xvZ2lj
YWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCistLS0qLworJERPTk9URVZBTFVBVEUoKTsKKworZXZh
bCA/Pz0gMjA7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLW5vbi1zaW1wbGUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtbnVsbGlzaC1ub24tc2ltcGxlLmpzCShub25leGlzdGVudCkKKysrIEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVu
dC9sZ2NsLW51bGxpc2gtbm9uLXNpbXBsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3
IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0
b3JzLXN0YXRpYy1zZW1hbnRpY3MtZWFybHktZXJyb3JzCitpbmZvOiB8CisgICAgSXQgaXMgYW4g
ZWFybHkgU3ludGF4IEVycm9yIGlmIEFzc2lnbm1lbnRUYXJnZXRUeXBlIG9mCisgICAgTGVmdEhh
bmRTaWRlRXhwcmVzc2lvbiBpcyBpbnZhbGlkIG9yIHN0cmljdC4KK2Rlc2NyaXB0aW9uOiBMb2dp
Y2FsICI/Pz0iIGFzc2lnbm1lbnQgd2l0aCBub24tc2ltcGxlIHRhcmdldAorbmVnYXRpdmU6Cisg
IHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVhdHVyZXM6IFtsb2dpY2FsLWFz
c2lnbm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KKyRET05PVEVWQUxVQVRFKCk7CisKKzEgPz89IDE7
CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLXdoaXRlc3BhY2UuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtbnVsbGlzaC13aGl0ZXNwYWNlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51
bGxpc2gtd2hpdGVzcGFjZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU4IEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorCisvKi0tLQoraW5mbzogfAorICAgIFdoaXRlIFNwYWNlIGFuZCBMaW5lIFRl
cm1pbmF0b3IgYmV0d2VlbiBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGFuZCAiQD0iCisgICAgb3Ig
YmV0d2VlbiAiQD0iIGFuZCBBc3NpZ25tZW50RXhwcmVzc2lvbiBhcmUgYWxsb3dlZAorZXNpZDog
c2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzCitkZXNjcmlwdGlvbjogQ2hlY2tpbmcgYnkgZXZhbHVh
dGluZyBleHByZXNzaW9uICJ4Wy4uLl0/Pz1bLi4uXXkiCitmZWF0dXJlczogW2xvZ2ljYWwtYXNz
aWdubWVudC1vcGVyYXRvcnNdCistLS0qLwordmFyIHg7CisKK3ggPSBudWxsOworYXNzZXJ0LnNh
bWVWYWx1ZSh4CT8/PQkxLCAxLCAnVSswMDA5IChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVW
YWx1ZSh4LCAxLCAnVSswMDA5IChzaWRlIGVmZmVjdCknKTsKKworeCA9IG51bGw7Cithc3NlcnQu
c2FtZVZhbHVlKHgLPz89CzEsIDEsICdVKzAwMEIgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2Ft
ZVZhbHVlKHgsIDEsICdVKzAwMEIgKHNpZGUgZWZmZWN0KScpOworCit4ID0gbnVsbDsKK2Fzc2Vy
dC5zYW1lVmFsdWUoeAw/Pz0MMSwgMSwgJ1UrMDAwQyAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5z
YW1lVmFsdWUoeCwgMSwgJ1UrMDAwQyAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSBudWxsOworYXNz
ZXJ0LnNhbWVWYWx1ZSh4ID8/PSAxLCAxLCAnVSswMDIwIChleHByZXNzaW9uKScpOworYXNzZXJ0
LnNhbWVWYWx1ZSh4LCAxLCAnVSswMDIwIChzaWRlIGVmZmVjdCknKTsKKworeCA9IG51bGw7Cith
c3NlcnQuc2FtZVZhbHVlKHjCoD8/PcKgMSwgMSwgJ1UrMDBBMCAoZXhwcmVzc2lvbiknKTsKK2Fz
c2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMDBBMCAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSBudWxs
OworYXNzZXJ0LnNhbWVWYWx1ZSh4Cis/Pz0KKzEsIDEsICdVKzAwMEEgKGV4cHJlc3Npb24pJyk7
Cithc3NlcnQuc2FtZVZhbHVlKHgsIDEsICdVKzAwMEEgKHNpZGUgZWZmZWN0KScpOworCit4ID0g
bnVsbDsKK2Fzc2VydC5zYW1lVmFsdWUoeAorPz89CisxLCAxLCAnVSswMDBEIChleHByZXNzaW9u
KScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSswMDBEIChzaWRlIGVmZmVjdCknKTsKKwor
eCA9IG51bGw7Cithc3NlcnQuc2FtZVZhbHVlKHjigKg/Pz3igKgxLCAxLCAnVSsyMDI4IChleHBy
ZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSsyMDI4IChzaWRlIGVmZmVjdCkn
KTsKKworeCA9IG51bGw7Cithc3NlcnQuc2FtZVZhbHVlKHjigKk/Pz3igKkxLCAxLCAnVSsyMDI5
IChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSsyMDI5IChzaWRlIGVm
ZmVjdCknKTsKKworeCA9IG51bGw7Cithc3NlcnQuc2FtZVZhbHVlKHgJCwwgwqAKK+KAqOKAqT8/
PQkLDCDCoAor4oCo4oCpMSwgMSwgJ1UrMDAwOVUrMDAwQlUrMDAwQ1UrMDAyMFUrMDBBMFUrMDAw
QVUrMDAwRFUrMjAyOFUrMjAyOSAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwg
MSwgJ1UrMDAwOVUrMDAwQlUrMDAwQ1UrMDAyMFUrMDBBMFUrMDAwQVUrMDAwRFUrMjAyOFUrMjAy
OSAoc2lkZSBlZmZlY3QpJyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hcmd1bWVudHMtc3RyaWN0Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFyZ3VtZW50cy1zdHJpY3QuanMJKG5vbmV4aXN0
ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNh
bC1hc3NpZ25tZW50L2xnY2wtb3ItYXJndW1lbnRzLXN0cmljdC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE4IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGlj
ZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2ln
bm1lbnQtb3BlcmF0b3JzCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gU3ludGF4
RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBpZGVudGlmaWVyIGFyZ3VtZW50cworICAgIGFwcGVhciBh
cyB0aGUgTGVmdEhhbmRTaWRlRXhwcmVzc2lvbiBvZiBhIExvZ2ljYWwgQXNzaWdubWVudAorICAg
IG9wZXJhdG9yKHx8PSkKK2ZsYWdzOiBbb25seVN0cmljdF0KK25lZ2F0aXZlOgorICBwaGFzZTog
cGFyc2UKKyAgdHlwZTogU3ludGF4RXJyb3IKK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50
LW9wZXJhdG9yc10KKy0tLSovCiskRE9OT1RFVkFMVUFURSgpOworCithcmd1bWVudHMgfHw9IDIw
OwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNh
bC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNh
bC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMJKG5vbmV4
aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1iaWdpbnQuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVjbWEg
SW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292
ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8q
LS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3MtZXZh
bHVhdGlvbgorZGVzY3JpcHRpb246IExvZ2ljYWwgT3IgQXNzaWdubWVudCBPcGVyYXRvcgorZmVh
dHVyZXM6IFtCaWdJbnQsIGxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCitpbmZvOiB8Cisg
ICAgQXNzaWdubWVudEV4cHJlc3Npb246CisgICAgICBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIHx8
PSBBc3NpZ25tZW50RXhwcmVzc2lvbgorCisgICAgMS4gTGV0IGxyZWYgYmUgdGhlIHJlc3VsdCBv
ZiBldmFsdWF0aW5nIExlZnRIYW5kU2lkZUV4cHJlc3Npb24uCisgICAgMi4gTGV0IGx2YWwgYmUg
PyBHZXRWYWx1ZShscmVmKS4KKyAgICAzLiBMZXQgbGJvb2wgYmUgISBUb0Jvb2xlYW4obHZhbCku
CisgICAgNC4gSWYgbGJvb2wgaXMgdHJ1ZSwgcmV0dXJuIGx2YWwuCisgICAgNS4gTGV0IHJyZWYg
YmUgdGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIEFzc2lnbm1lbnRFeHByZXNzaW9uLgorICAgIDYu
IExldCBydmFsIGJlID8gR2V0VmFsdWUocnJlZikuCisgICAgNy4gUGVyZm9ybSA/IFB1dFZhbHVl
KGxyZWYsIHJ2YWwpLgorICAgIDguIFJldHVybiBydmFsLgorCistLS0qLworCit2YXIgdmFsdWUg
PSAwbjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgfHw9IDFuLCAxbiwgIih2YWx1ZSB8fD0gMW4p
ID09PSAxbjsgd2hlcmUgdmFsdWUgPSAwbiIpOworCit2YWx1ZSA9IDJuOworYXNzZXJ0LnNhbWVW
YWx1ZSh2YWx1ZSB8fD0gMW4sIDJuLCAiKHZhbHVlIHx8PSAxbikgPT09IDJuOyB3aGVyZSB2YWx1
ZSA9IDJuIik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLWxocy1iZWZv
cmUtcmhzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3It
bGhzLWJlZm9yZS1yaHMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVu
dC1vcGVyYXRvci1saHMtYmVmb3JlLXJocy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUz
IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2Ug
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50
LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgor
ICAgIFRoZSBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIGlzIGV2YWx1YXRlZCBiZWZvcmUgdGhlIEFz
c2lnbm1lbnRFeHByZXNzaW9uLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0
b3JzXQorCistLS0qLworCitmdW5jdGlvbiBEdW1teUVycm9yKCkgeyB9CisKK2Fzc2VydC50aHJv
d3MoRHVtbXlFcnJvciwgZnVuY3Rpb24oKSB7CisgIHZhciBiYXNlID0gbnVsbDsKKyAgdmFyIHBy
b3AgPSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyBuZXcgRHVtbXlFcnJvcigpOworICB9OworICB2
YXIgZXhwciA9IGZ1bmN0aW9uKCkgeworICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoInJpZ2h0
LWhhbmQgc2lkZSBleHByZXNzaW9uIGV2YWx1YXRlZCIpOworICB9OworCisgIGJhc2VbcHJvcCgp
XSB8fD0gZXhwcigpOworfSk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigp
IHsKKyAgdmFyIGJhc2UgPSBudWxsOworICB2YXIgcHJvcCA9IHsKKyAgICB0b1N0cmluZzogZnVu
Y3Rpb24oKSB7CisgICAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJwcm9wZXJ0eSBrZXkgZXZh
bHVhdGVkIik7CisgICAgfQorICB9OworICB2YXIgZXhwciA9IGZ1bmN0aW9uKCkgeworICAgIHRo
cm93IG5ldyBUZXN0MjYyRXJyb3IoInJpZ2h0LWhhbmQgc2lkZSBleHByZXNzaW9uIGV2YWx1YXRl
ZCIpOworICB9OworCisgIGJhc2VbcHJvcF0gfHw9IGV4cHIoKTsKK30pOworCit2YXIgY291bnQg
PSAwOwordmFyIG9iaiA9IHt9OworZnVuY3Rpb24gaW5jcigpIHsKKyAgcmV0dXJuICsrY291bnQ7
Cit9CisKK2Fzc2VydC5zYW1lVmFsdWUob2JqW2luY3IoKV0gfHw9IGluY3IoKSwgMiwgIm9ialtp
bmNyKCldIHx8PSBpbmNyKCkiKTsKK2Fzc2VydC5zYW1lVmFsdWUob2JqWzFdLCAyLCAib2JqWzFd
Iik7Cithc3NlcnQuc2FtZVZhbHVlKGNvdW50LCAyLCAiY291bnQiKTsKKworb2JqWzNdID0gMTsK
K2Fzc2VydC5zYW1lVmFsdWUob2JqW2luY3IoKV0gfHw9IGluY3IoKSwgMSwgIm9ialtpbmNyKCld
IHx8PSBpbmNyKCkiKTsKK2Fzc2VydC5zYW1lVmFsdWUob2JqWzNdLCAxLCAib2JqWzNdIik7Cith
c3NlcnQuc2FtZVZhbHVlKGNvdW50LCAzLCAiY291bnQiKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFz
c2lnbm1lbnQtb3BlcmF0b3Itbm8tc2V0LXB1dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1v
ci1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC1wdXQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1uby1zZXQtcHV0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjggQEAKKy8vIENvcHlyaWdodCAoYykgMjAyMCBFY21hIEludGVybmF0aW9u
YWwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRo
ZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDog
c2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzLXJ1bnRpbWUtc2VtYW50aWNzLWV2YWx1YXRpb24KK2Rl
c2NyaXB0aW9uOiA+CisgICAgU3RyaWN0IE1vZGUgLSBUeXBlRXJyb3IgaXMgdGhyb3duIGlmIHRo
ZSBMZWZ0SGFuZFNpZGUgb2YgYSBMb2dpY2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRvcih8fD0p
IGlzIGEgcmVmZXJlbmNlIHRvIGEgZGF0YSBwcm9wZXJ0eSB3aXRoIHRoZQorICAgIGF0dHJpYnV0
ZSB2YWx1ZSB7W1tTZXRdXTp1bmRlZmluZWR9IGFuZCBQdXRWYWx1ZSBzdGVwIGlzIHJlYWNoZWQu
CitmbGFnczogW29ubHlTdHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVy
YXRvcnNdCisKKy0tLSovCisKK3ZhciBvYmogPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShv
YmosICJwcm9wIiwgeworICBnZXQ6IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiAwOworICB9LAor
ICBzZXQ6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgY29uZmlndXJhYmxlOiB0
cnVlCit9KTsKKworYXNzZXJ0LnRocm93cyhUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICBvYmou
cHJvcCB8fD0gMTsKK30pOworYXNzZXJ0LnNhbWVWYWx1ZShvYmoucHJvcCwgMCwgIm9iai5wcm9w
Iik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dp
Y2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dp
Y2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLW5vLXNldC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI1IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNt
YSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBn
b3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKwor
LyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1l
dmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVycm9yIGlz
IG5vdCB0aHJvd24gaWYgdGhlIExlZnRIYW5kU2lkZSBvZiBhIExvZ2ljYWwKKyAgICBBc3NpZ25t
ZW50IG9wZXJhdG9yKHx8PSkgaXMgYSByZWZlcmVuY2UgdG8gYSBkYXRhIHByb3BlcnR5IHdpdGgg
dGhlCisgICAgYXR0cmlidXRlIHZhbHVlIHtbW1NldF1dOnVuZGVmaW5lZH0gYW5kIFB1dFZhbHVl
IHN0ZXAgaXMgbm90IHJlYWNoZWQuCitmbGFnczogW29ubHlTdHJpY3RdCitmZWF0dXJlczogW2xv
Z2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK3ZhciBvYmogPSB7fTsKK09i
amVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICJwcm9wIiwgeworICBnZXQ6IGZ1bmN0aW9uKCkgewor
ICAgIHJldHVybiAyOworICB9LAorICBzZXQ6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTogdHJ1
ZSwKKyAgY29uZmlndXJhYmxlOiB0cnVlCit9KTsKKworYXNzZXJ0LnNhbWVWYWx1ZShvYmoucHJv
cCB8fD0gMSwgMiwgIm9iai5wcm9wIik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9w
ZXJhdG9yLW5vbi1leHRlbnNpYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2ln
bm1lbnQtb3BlcmF0b3Itbm9uLWV4dGVuc2libGUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0
cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24tZXh0ZW5zaWJsZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDIxIEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlv
bmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0
aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6
IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitk
ZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVycm9yIGlzIHRocm93biBpZiBU
aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IofHw9
KSBpcyBhIHJlZmVyZW5jZSB0byBhIG5vbi1leGlzdGVudCBwcm9wZXJ0eQorICAgIG9mIGFuIG9i
amVjdCB3aG9zZSBbW0V4dGVuc2libGVdXSBpbnRlcm5hbCBwcm9wZXJ0eSBpcyBmYWxzZS4KK2Zs
YWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9y
c10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9OworT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG9i
aik7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgb2JqLnByb3Ag
fHw9IDE7Cit9KTsKK2Fzc2VydC5zYW1lVmFsdWUob2JqLnByb3AsIHVuZGVmaW5lZCwgIm9iai5w
cm9wIik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1zaW1wbGUt
bGhzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9u
LXNpbXBsZS1saHMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1v
cGVyYXRvci1ub24tc2ltcGxlLWxocy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBA
CisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9w
ZXJhdG9ycy1zdGF0aWMtc2VtYW50aWNzLWVhcmx5LWVycm9ycworZGVzY3JpcHRpb246ID4KKyAg
ICBJdCBpcyBhIFN5bnRheCBFcnJvciBpZiBBc3NpZ25tZW50VGFyZ2V0VHlwZSBvZiBMZWZ0SGFu
ZFNpZGVFeHByZXNzaW9uIGlzCisgICAgbm90IHNpbXBsZS4KK25lZ2F0aXZlOgorICBwaGFzZTog
cGFyc2UKKyAgdHlwZTogU3ludGF4RXJyb3IKK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25tZW50
LW9wZXJhdG9yc10KKworLS0tKi8KKworJERPTk9URVZBTFVBVEUoKTsKKworZnVuY3Rpb24gdGVz
dCgpIHt9Cit0ZXN0KCkgfHw9IDE7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJh
dG9yLW5vbi13cml0ZWFibGUtcHV0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2ln
bm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS1wdXQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNU
ZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLXB1dC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDI2IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRl
cm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0K
K2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0
aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gVHlwZUVycm9yIGlzIHRocm93
biBpZiB0aGUgTGVmdEhhbmRTaWRlIG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0
b3IofHw9KSBpcyBhIHJlZmVyZW5jZSB0byBhIGRhdGEgcHJvcGVydHkgd2l0aCB0aGUKKyAgICBh
dHRyaWJ1dGUgdmFsdWUge1tbV3JpdGFibGVdXTpmYWxzZX0gYW5kIFB1dFZhbHVlIHN0ZXAgaXMg
cmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25t
ZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9OworT2JqZWN0LmRlZmluZVBy
b3BlcnR5KG9iaiwgInByb3AiLCB7CisgIHZhbHVlOiAwLAorICB3cml0YWJsZTogZmFsc2UsCisg
IGVudW1lcmFibGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKK2Fzc2VydC50
aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgb2JqLnByb3AgfHw9IDE7Cit9KTsKK2Fz
c2VydC5zYW1lVmFsdWUob2JqLnByb3AsIDAsICJvYmoucHJvcCIpOwpJbmRleDogSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wt
b3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24td3JpdGVhYmxlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVu
dC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXdyaXRlYWJsZS5qcwkobm9uZXhpc3Rl
bnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi13cml0ZWFibGUuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDIwIEVj
bWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK
Ky8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMtcnVudGltZS1zZW1hbnRpY3Mt
ZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBTdHJpY3QgTW9kZSAtIFR5cGVFcnJvciBp
cyBub3QgdGhyb3duIGlmIHRoZSBMZWZ0SGFuZFNpZGUgb2YgYSBMb2dpY2FsCisgICAgQXNzaWdu
bWVudCBvcGVyYXRvcih8fD0pIGlzIGEgcmVmZXJlbmNlIHRvIGEgZGF0YSBwcm9wZXJ0eSB3aXRo
IHRoZQorICAgIGF0dHJpYnV0ZSB2YWx1ZSB7W1tXcml0YWJsZV1dOmZhbHNlfSBhbmQgUHV0VmFs
dWUgc3RlcCBpcyBub3QgcmVhY2hlZC4KK2ZsYWdzOiBbb25seVN0cmljdF0KK2ZlYXR1cmVzOiBb
bG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIG9iaiA9IHt9Owor
T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgInByb3AiLCB7CisgIHZhbHVlOiAyLAorICB3cml0
YWJsZTogZmFsc2UsCisgIGVudW1lcmFibGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQor
fSk7CisKK2Fzc2VydC5zYW1lVmFsdWUob2JqLnByb3AgfHw9IDEsIDIsICJvYmoucHJvcCIpOwpJ
bmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1h
c3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLWxocy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9s
b2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQt
bGhzLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3It
dW5yZXNvbHZlZC1saHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorLy8gQ29w
eXJpZ2h0IChjKSAyMDIwIEVjbWEgSW50ZXJuYXRpb25hbC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKKy8qLS0tCitlc2lkOiBzZWMtYXNzaWdubWVudC1vcGVyYXRvcnMt
cnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbgorZGVzY3JpcHRpb246ID4KKyAgICBSZWZlcmVu
Y2VFcnJvciBpcyB0aHJvd24gaWYgdGhlIExlZnRIYW5kU2lkZUV4cHJlc3Npb24gb2YgYSBMb2dp
Y2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRvcih8fD0pIGV2YWx1YXRlcyB0byBhbiB1bnJlc29s
dmFibGUgcmVmZXJlbmNlCitmbGFnczogW29ubHlTdHJpY3RdCitmZWF0dXJlczogW2xvZ2ljYWwt
YXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSovCisKK2Fzc2VydC50aHJvd3MoUmVmZXJlbmNl
RXJyb3IsIGZ1bmN0aW9uKCkgeworICB1bnJlc29sdmVkIHx8PSAxOworfSk7CkluZGV4OiBKU1Rl
c3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQv
bGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtcmhzLXB1dC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2Fs
LWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLXVucmVzb2x2ZWQtcmhzLXB1
dC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLXVu
cmVzb2x2ZWQtcmhzLXB1dC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACisvLyBD
b3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9y
cy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogPgorICAgIFJlZmVy
ZW5jZUVycm9yIGlzIHRocm93biBpZiB0aGUgQXNzaWdubWVudEV4cHJlc3Npb24gb2YgYSBMb2dp
Y2FsCisgICAgQXNzaWdubWVudCBvcGVyYXRvcih8fD0pIGV2YWx1YXRlcyB0byBhbiB1bnJlc29s
dmFibGUgcmVmZXJlbmNlIGFuZCB0aGUKKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbiBpcyBldmFs
dWF0ZWQuCitmZWF0dXJlczogW2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnNdCisKKy0tLSov
CisKK3ZhciB2YWx1ZSA9IDA7CisKK2Fzc2VydC50aHJvd3MoUmVmZXJlbmNlRXJyb3IsIGZ1bmN0
aW9uKCkgeworICB2YWx1ZSB8fD0gdW5yZXNvbHZlZDsKK30pOworYXNzZXJ0LnNhbWVWYWx1ZSh2
YWx1ZSwgMCwgInZhbHVlIik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9y
LXVucmVzb2x2ZWQtcmhzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQt
b3BlcmF0b3ItdW5yZXNvbHZlZC1yaHMuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3It
YXNzaWdubWVudC1vcGVyYXRvci11bnJlc29sdmVkLXJocy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE2IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNE
IGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1h
c3NpZ25tZW50LW9wZXJhdG9ycy1ydW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlw
dGlvbjogPgorICAgIFJlZmVyZW5jZUVycm9yIGlzIG5vdCB0aHJvd24gaWYgdGhlIEFzc2lnbm1l
bnRFeHByZXNzaW9uIG9mIGEgTG9naWNhbAorICAgIEFzc2lnbm1lbnQgb3BlcmF0b3IofHw9KSBl
dmFsdWF0ZXMgdG8gYW4gdW5yZXNvbHZhYmxlIHJlZmVyZW5jZSBhbmQgdGhlCisgICAgQXNzaWdu
bWVudEV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZC4KK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3Np
Z25tZW50LW9wZXJhdG9yc10KKworLS0tKi8KKwordmFyIHZhbHVlID0gMjsKKworYXNzZXJ0LnNh
bWVWYWx1ZSh2YWx1ZSB8fD0gdW5yZXNvbHZlZCwgMiwgInZhbHVlIik7CkluZGV4OiBKU1Rlc3Rz
L3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdj
bC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFz
c2lnbm1lbnQtb3BlcmF0b3IuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdu
bWVudC1vcGVyYXRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYxIEBACisvLyBDb3B5
cmlnaHQgKGMpIDIwMjAgRWNtYSBJbnRlcm5hdGlvbmFsLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1y
dW50aW1lLXNlbWFudGljcy1ldmFsdWF0aW9uCitkZXNjcmlwdGlvbjogTG9naWNhbCBPciBBc3Np
Z25tZW50IE9wZXJhdG9yCitpbmZvOiB8CisgICAgQXNzaWdubWVudEV4cHJlc3Npb246CisgICAg
ICBMZWZ0SGFuZFNpZGVFeHByZXNzaW9uIHx8PSBBc3NpZ25tZW50RXhwcmVzc2lvbgorCisgICAg
MS4gTGV0IGxyZWYgYmUgdGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIExlZnRIYW5kU2lkZUV4cHJl
c3Npb24uCisgICAgMi4gTGV0IGx2YWwgYmUgPyBHZXRWYWx1ZShscmVmKS4KKyAgICAzLiBMZXQg
bGJvb2wgYmUgISBUb0Jvb2xlYW4obHZhbCkuCisgICAgNC4gSWYgbGJvb2wgaXMgdHJ1ZSwgcmV0
dXJuIGx2YWwuCisgICAgNS4gTGV0IHJyZWYgYmUgdGhlIHJlc3VsdCBvZiBldmFsdWF0aW5nIEFz
c2lnbm1lbnRFeHByZXNzaW9uLgorICAgIDYuIExldCBydmFsIGJlID8gR2V0VmFsdWUocnJlZiku
CisgICAgNy4gUGVyZm9ybSA/IFB1dFZhbHVlKGxyZWYsIHJ2YWwpLgorICAgIDguIFJldHVybiBy
dmFsLgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorCistLS0qLwor
Cit2YXIgdmFsdWUgPSB1bmRlZmluZWQ7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlIHx8PSAxLCAx
LCAiKHZhbHVlIHx8PSAxKSA9PT0gMTsgd2hlcmUgdmFsdWUgPSB1bmRlZmluZWQiKTsKKwordmFs
dWUgPSBudWxsOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSB8fD0gMSwgMSwgIih2YWx1ZSB8fD0g
MSkgPT09IDE7IHdoZXJlIHZhbHVlID0gbnVsbCIpOworCit2YWx1ZSA9IGZhbHNlOworYXNzZXJ0
LnNhbWVWYWx1ZSh2YWx1ZSB8fD0gMSwgMSwgIih2YWx1ZSB8fD0gMSkgPT09IDE7IHdoZXJlIHZh
bHVlID0gZmFsc2UiKTsKKwordmFsdWUgPSAwOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSB8fD0g
MSwgMSwgIih2YWx1ZSB8fD0gMSkgPT09IDE7IHdoZXJlIHZhbHVlID0gMCIpOworCit2YWx1ZSA9
IC0wOworYXNzZXJ0LnNhbWVWYWx1ZSh2YWx1ZSB8fD0gMSwgMSwgIih2YWx1ZSB8fD0gMSkgPT09
IDE7IHdoZXJlIHZhbHVlID0gLTAiKTsKKwordmFsdWUgPSBOYU47Cithc3NlcnQuc2FtZVZhbHVl
KHZhbHVlIHx8PSAxLCAxLCAiKHZhbHVlIHx8PSAxKSA9PT0gMTsgd2hlcmUgdmFsdWUgPSBOYU4i
KTsKKwordmFsdWUgPSAiIjsKK2Fzc2VydC5zYW1lVmFsdWUodmFsdWUgfHw9IDEsIDEsICcodmFs
dWUgfHw9IDEpID09PSAxOyB3aGVyZSB2YWx1ZSA9ICIiJyk7CisKKworCit2YWx1ZSA9IHRydWU7
Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlIHx8PSAxLCB0cnVlLCAiKHZhbHVlIHx8PSAxKSA9PT0g
dHJ1ZTsgd2hlcmUgdmFsdWUgPSB0cnVlIik7CisKK3ZhbHVlID0gMjsKK2Fzc2VydC5zYW1lVmFs
dWUodmFsdWUgfHw9IDEsIDIsICIodmFsdWUgfHw9IDEpID09PSAyOyB3aGVyZSB2YWx1ZSA9IDIi
KTsKKwordmFsdWUgPSAidGVzdCI7Cithc3NlcnQuc2FtZVZhbHVlKHZhbHVlIHx8PSAxLCAidGVz
dCIsICcodmFsdWUgfHw9IDEpID09PSAidGVzdCI7IHdoZXJlIHZhbHVlID0gInRlc3QiJyk7CisK
K3ZhciBzeW0gPSBTeW1ib2woIiIpOwordmFsdWUgPSBzeW07Cithc3NlcnQuc2FtZVZhbHVlKHZh
bHVlIHx8PSAxLCBzeW0sICIodmFsdWUgfHw9IDEpID09PSBTeW1ib2woKTsgd2hlcmUgdmFsdWUg
PSBTeW1ib2woKSIpOworCit2YXIgb2JqID0ge307Cit2YWx1ZSA9IG9iajsKK2Fzc2VydC5zYW1l
VmFsdWUodmFsdWUgfHw9IDEsIG9iaiwgIih2YWx1ZSB8fD0gMSkgPT09IHt9OyB3aGVyZSB2YWx1
ZSA9IHt9Iik7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci1ldmFsLXN0cmljdC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1vci1ldmFsLXN0cmljdC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1v
ci1ldmFsLXN0cmljdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACisvLyBDb3B5
cmlnaHQgKEMpIDIwMjAgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhp
cyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgorCisvKi0tLQorZXNpZDogc2VjLWFzc2lnbm1lbnQtb3BlcmF0b3JzCitkZXNjcmlw
dGlvbjogPgorICAgIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBp
ZGVudGlmaWVyIGV2YWwgYXBwZWFyCisgICAgYXMgdGhlIExlZnRIYW5kU2lkZUV4cHJlc3Npb24g
b2YgYSBMb2dpY2FsIEFzc2lnbm1lbnQgb3BlcmF0b3IofHw9KQorZmxhZ3M6IFtvbmx5U3RyaWN0
XQorbmVnYXRpdmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorZmVhdHVy
ZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQorLS0tKi8KKyRET05PVEVWQUxVQVRF
KCk7CisKK2V2YWwgfHw9IDIwOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3Itbm9uLXNpbXBsZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dp
Y2FsLWFzc2lnbm1lbnQvbGdjbC1vci1ub24tc2ltcGxlLmpzCShub25leGlzdGVudCkKKysrIEpT
VGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVu
dC9sZ2NsLW9yLW5vbi1zaW1wbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDIwIFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJhdG9ycy1z
dGF0aWMtc2VtYW50aWNzLWVhcmx5LWVycm9ycworaW5mbzogfAorICAgIEl0IGlzIGFuIGVhcmx5
IFN5bnRheCBFcnJvciBpZiBBc3NpZ25tZW50VGFyZ2V0VHlwZSBvZgorICAgIExlZnRIYW5kU2lk
ZUV4cHJlc3Npb24gaXMgaW52YWxpZCBvciBzdHJpY3QuCitkZXNjcmlwdGlvbjogTG9naWNhbCAi
fHw9IiBhc3NpZ25tZW50IHdpdGggbm9uLXNpbXBsZSB0YXJnZXQKK25lZ2F0aXZlOgorICBwaGFz
ZTogcGFyc2UKKyAgdHlwZTogU3ludGF4RXJyb3IKK2ZlYXR1cmVzOiBbbG9naWNhbC1hc3NpZ25t
ZW50LW9wZXJhdG9yc10KKy0tLSovCiskRE9OT1RFVkFMVUFURSgpOworCisxIHx8PSAxOwpJbmRl
eDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3Np
Z25tZW50L2xnY2wtb3Itd2hpdGVzcGFjZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1vci13
aGl0ZXNwYWNlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLXdoaXRlc3BhY2UuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIFJp
Y2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLyotLS0K
K2luZm86IHwKKyAgICBXaGl0ZSBTcGFjZSBhbmQgTGluZSBUZXJtaW5hdG9yIGJldHdlZW4gTGVm
dEhhbmRTaWRlRXhwcmVzc2lvbiBhbmQgIkA9IgorICAgIG9yIGJldHdlZW4gIkA9IiBhbmQgQXNz
aWdubWVudEV4cHJlc3Npb24gYXJlIGFsbG93ZWQKK2VzaWQ6IHNlYy1hc3NpZ25tZW50LW9wZXJh
dG9ycworZGVzY3JpcHRpb246IENoZWNraW5nIGJ5IGV2YWx1YXRpbmcgZXhwcmVzc2lvbiAieFsu
Li5dfHw9Wy4uLl15IgorZmVhdHVyZXM6IFtsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzXQor
LS0tKi8KK3ZhciB4OworCit4ID0gMDsKK2Fzc2VydC5zYW1lVmFsdWUoeAl8fD0JMSwgMSwgJ1Ur
MDAwOSAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMDAwOSAoc2lk
ZSBlZmZlY3QpJyk7CisKK3ggPSAwOworYXNzZXJ0LnNhbWVWYWx1ZSh4C3x8PQsxLCAxLCAnVSsw
MDBCIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSswMDBCIChzaWRl
IGVmZmVjdCknKTsKKworeCA9IDA7Cithc3NlcnQuc2FtZVZhbHVlKHgMfHw9DDEsIDEsICdVKzAw
MEMgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZhbHVlKHgsIDEsICdVKzAwMEMgKHNpZGUg
ZWZmZWN0KScpOworCit4ID0gMDsKK2Fzc2VydC5zYW1lVmFsdWUoeCB8fD0gMSwgMSwgJ1UrMDAy
MCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMDAyMCAoc2lkZSBl
ZmZlY3QpJyk7CisKK3ggPSAwOworYXNzZXJ0LnNhbWVWYWx1ZSh4wqB8fD3CoDEsIDEsICdVKzAw
QTAgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZhbHVlKHgsIDEsICdVKzAwQTAgKHNpZGUg
ZWZmZWN0KScpOworCit4ID0gMDsKK2Fzc2VydC5zYW1lVmFsdWUoeAorfHw9CisxLCAxLCAnVSsw
MDBBIChleHByZXNzaW9uKScpOworYXNzZXJ0LnNhbWVWYWx1ZSh4LCAxLCAnVSswMDBBIChzaWRl
IGVmZmVjdCknKTsKKworeCA9IDA7Cithc3NlcnQuc2FtZVZhbHVlKHgKK3x8PQorMSwgMSwgJ1Ur
MDAwRCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMDAwRCAoc2lk
ZSBlZmZlY3QpJyk7CisKK3ggPSAwOworYXNzZXJ0LnNhbWVWYWx1ZSh44oCofHw94oCoMSwgMSwg
J1UrMjAyOCAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMjAyOCAo
c2lkZSBlZmZlY3QpJyk7CisKK3ggPSAwOworYXNzZXJ0LnNhbWVWYWx1ZSh44oCpfHw94oCpMSwg
MSwgJ1UrMjAyOSAoZXhwcmVzc2lvbiknKTsKK2Fzc2VydC5zYW1lVmFsdWUoeCwgMSwgJ1UrMjAy
OSAoc2lkZSBlZmZlY3QpJyk7CisKK3ggPSAwOworYXNzZXJ0LnNhbWVWYWx1ZSh4CQsMIMKgCivi
gKjigKl8fD0JCwwgwqAKK+KAqOKAqTEsIDEsICdVKzAwMDlVKzAwMEJVKzAwMENVKzAwMjBVKzAw
QTBVKzAwMEFVKzAwMERVKzIwMjhVKzIwMjkgKGV4cHJlc3Npb24pJyk7Cithc3NlcnQuc2FtZVZh
bHVlKHgsIDEsICdVKzAwMDlVKzAwMEJVKzAwMENVKzAwMjBVKzAwQTBVKzAwMEFVKzAwMERVKzIw
MjhVKzIwMjkgKHNpZGUgZWZmZWN0KScpOwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvdGVtcGxhdGUtbGl0ZXJhbC91bmljb2RlLWVzY2FwZS1uby1oZXgt
ZXJyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL3RlbXBsYXRlLWxpdGVyYWwvdW5pY29kZS1lc2NhcGUtbm8taGV4LWVyci5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy90
ZW1wbGF0ZS1saXRlcmFsL3VuaWNvZGUtZXNjYXBlLW5vLWhleC1lcnIuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBTaHZheWth
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBC
U0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogcHJv
ZC1UZW1wbGF0ZQorZGVzY3JpcHRpb246ID4KKyAgXHUgaXMgYXQgdGhlIGVuZCBvZiBzdHJpbmcs
IEhleDREaWdpdHMgaXMgcmVxdWlyZWQuCitpbmZvOiB8CisgIFRlbXBsYXRlIDo6CisgICAgTm9T
dWJzdGl0dXRpb25UZW1wbGF0ZQorICAgIFRlbXBsYXRlSGVhZAorCisgIE5vU3Vic3RpdHV0aW9u
VGVtcGxhdGUgOjoKKyAgICBgIFRlbXBsYXRlQ2hhcmFjdGVyc19vcHQgYAorCisgIFRlbXBsYXRl
Q2hhcmFjdGVycyA6OgorICAgIFRlbXBsYXRlQ2hhcmFjdGVyIFRlbXBsYXRlQ2hhcmFjdGVyc19v
cHQKKworICBUZW1wbGF0ZUNoYXJhY3RlciA6OgorICAgICQgW2xvb2thaGVhZCDiiaAge10KKyAg
ICBcIEVzY2FwZVNlcXVlbmNlCisgICAgXCBOb3RFc2NhcGVTZXF1ZW5jZQorICAgIExpbmVDb250
aW51YXRpb24KKyAgICBMaW5lVGVybWluYXRvclNlcXVlbmNlCisgICAgU291cmNlQ2hhcmFjdGVy
IGJ1dCBub3Qgb25lIG9mIGAgb3IgXCBvciAkIG9yIExpbmVUZXJtaW5hdG9yCisKKyAgRXNjYXBl
U2VxdWVuY2UgOjoKKyAgICBDaGFyYWN0ZXJFc2NhcGVTZXF1ZW5jZQorICAgIDAgW2xvb2thaGVh
ZCDiiIkgRGVjaW1hbERpZ2l0XQorICAgIEhleEVzY2FwZVNlcXVlbmNlCisgICAgVW5pY29kZUVz
Y2FwZVNlcXVlbmNlCisKKyAgVW5pY29kZUVzY2FwZVNlcXVlbmNlIDo6CisgICAgdSBIZXg0RGln
aXRzCisgICAgdXsgQ29kZVBvaW50IH0KKworICBIZXg0RGlnaXRzIDo6CisgICAgSGV4RGlnaXQg
SGV4RGlnaXQgSGV4RGlnaXQgSGV4RGlnaXQKKworICBIZXhEaWdpdCA6OiBvbmUgb2YKKyAgICAw
IDEgMiAzIDQgNSA2IDcgOCA5IGEgYiBjIGQgZSBmIEEgQiBDIEQgRSBGCisKK25lZ2F0aXZlOgor
ICBwaGFzZTogcGFyc2UKKyAgdHlwZTogU3ludGF4RXJyb3IKKy0tLSovCisKKyRET05PVEVWQUxV
QVRFKCk7CisKK2BcdWAKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2xpdGVy
YWxzL3N0cmluZy91bmljb2RlLWVzY2FwZS1uby1oZXgtZXJyLWRvdWJsZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9saXRlcmFscy9zdHJpbmcvdW5pY29k
ZS1lc2NhcGUtbm8taGV4LWVyci1kb3VibGUuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvbGl0ZXJhbHMvc3RyaW5nL3VuaWNvZGUtZXNjYXBlLW5vLWhl
eC1lcnItZG91YmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8vIENvcHly
aWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KKworLyotLS0KK2VzaWQ6IHByb2QtU3RyaW5nTGl0ZXJhbAorZGVzY3JpcHRpb246
ID4KKyAgXHUgaXMgYXQgdGhlIGVuZCBvZiBzdHJpbmcsIEhleDREaWdpdHMgaXMgcmVxdWlyZWQu
CitpbmZvOiB8CisgIFN0cmluZ0xpdGVyYWwgOjoKKyAgICAiIERvdWJsZVN0cmluZ0NoYXJhY3Rl
cnNfb3B0ICIKKyAgICAnIFNpbmdsZVN0cmluZ0NoYXJhY3RlcnNfb3B0ICcKKworICBEb3VibGVT
dHJpbmdDaGFyYWN0ZXJzIDo6CisgICAgRG91YmxlU3RyaW5nQ2hhcmFjdGVyIERvdWJsZVN0cmlu
Z0NoYXJhY3RlcnNfb3B0CisKKyAgRG91YmxlU3RyaW5nQ2hhcmFjdGVyIDo6CisgICAgU291cmNl
Q2hhcmFjdGVyIGJ1dCBub3Qgb25lIG9mICIgb3IgXCBvciBMaW5lVGVybWluYXRvcgorICAgIDxM
Uz4KKyAgICA8UFM+CisgICAgXCBFc2NhcGVTZXF1ZW5jZQorICAgIExpbmVDb250aW51YXRpb24K
KworICBFc2NhcGVTZXF1ZW5jZSA6OgorICAgIENoYXJhY3RlckVzY2FwZVNlcXVlbmNlCisgICAg
MCBbbG9va2FoZWFkIOKIiSBEZWNpbWFsRGlnaXRdCisgICAgSGV4RXNjYXBlU2VxdWVuY2UKKyAg
ICBVbmljb2RlRXNjYXBlU2VxdWVuY2UKKworICBVbmljb2RlRXNjYXBlU2VxdWVuY2UgOjoKKyAg
ICB1IEhleDREaWdpdHMKKyAgICB1eyBDb2RlUG9pbnQgfQorCisgIEhleDREaWdpdHMgOjoKKyAg
ICBIZXhEaWdpdCBIZXhEaWdpdCBIZXhEaWdpdCBIZXhEaWdpdAorCisgIEhleERpZ2l0IDo6IG9u
ZSBvZgorICAgIDAgMSAyIDMgNCA1IDYgNyA4IDkgYSBiIGMgZCBlIGYgQSBCIEMgRCBFIEYKKwor
bmVnYXRpdmU6CisgIHBoYXNlOiBwYXJzZQorICB0eXBlOiBTeW50YXhFcnJvcgorLS0tKi8KKwor
JERPTk9URVZBTFVBVEUoKTsKKworIlx1IgpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvbGl0ZXJhbHMvc3RyaW5nL3VuaWNvZGUtZXNjYXBlLW5vLWhleC1lcnItc2luZ2xlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2xpdGVyYWxzL3N0
cmluZy91bmljb2RlLWVzY2FwZS1uby1oZXgtZXJyLXNpbmdsZS5qcwkobm9uZXhpc3RlbnQpCisr
KyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9saXRlcmFscy9zdHJpbmcvdW5pY29kZS1l
c2NhcGUtbm8taGV4LWVyci1zaW5nbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBA
QAorLy8gQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBTaHZheWthLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gVGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCisvKi0tLQorZXNpZDogcHJvZC1TdHJpbmdMaXRlcmFsCitk
ZXNjcmlwdGlvbjogPgorICBcdSBpcyBhdCB0aGUgZW5kIG9mIHN0cmluZywgSGV4NERpZ2l0cyBp
cyByZXF1aXJlZC4KK2luZm86IHwKKyAgU3RyaW5nTGl0ZXJhbCA6OgorICAgICIgRG91YmxlU3Ry
aW5nQ2hhcmFjdGVyc19vcHQgIgorICAgICcgU2luZ2xlU3RyaW5nQ2hhcmFjdGVyc19vcHQgJwor
CisgIFNpbmdsZVN0cmluZ0NoYXJhY3RlcnMgOjoKKyAgICBTaW5nbGVTdHJpbmdDaGFyYWN0ZXIg
U2luZ2xlU3RyaW5nQ2hhcmFjdGVyc19vcHQKKworICBTaW5nbGVTdHJpbmdDaGFyYWN0ZXIgOjoK
KyAgICBTb3VyY2VDaGFyYWN0ZXIgYnV0IG5vdCBvbmUgb2YgJyBvciBcIG9yIExpbmVUZXJtaW5h
dG9yCisgICAgPExTPgorICAgIDxQUz4KKyAgICBcIEVzY2FwZVNlcXVlbmNlCisgICAgTGluZUNv
bnRpbnVhdGlvbgorCisgIEVzY2FwZVNlcXVlbmNlIDo6CisgICAgQ2hhcmFjdGVyRXNjYXBlU2Vx
dWVuY2UKKyAgICAwIFtsb29rYWhlYWQg4oiJIERlY2ltYWxEaWdpdF0KKyAgICBIZXhFc2NhcGVT
ZXF1ZW5jZQorICAgIFVuaWNvZGVFc2NhcGVTZXF1ZW5jZQorCisgIFVuaWNvZGVFc2NhcGVTZXF1
ZW5jZSA6OgorICAgIHUgSGV4NERpZ2l0cworICAgIHV7IENvZGVQb2ludCB9CisKKyAgSGV4NERp
Z2l0cyA6OgorICAgIEhleERpZ2l0IEhleERpZ2l0IEhleERpZ2l0IEhleERpZ2l0CisKKyAgSGV4
RGlnaXQgOjogb25lIG9mCisgICAgMCAxIDIgMyA0IDUgNiA3IDggOSBhIGIgYyBkIGUgZiBBIEIg
QyBEIEUgRgorCituZWdhdGl2ZToKKyAgcGhhc2U6IHBhcnNlCisgIHR5cGU6IFN5bnRheEVycm9y
CistLS0qLworCiskRE9OT1RFVkFMVUFURSgpOworCisnXHUnCkluZGV4OiBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL2dyYW1tYXItcHJpdmF0
ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL2dyYW1tYXItcHJpdmF0
ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL2dyYW1tYXItcHJp
dmF0ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQwIEBACisvLyBUaGlzIGZpbGUgd2FzIHByb2NlZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUg
Zm9sbG93aW5nIHNvdXJjZXM6CisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9ncmFtbWFyLXByaXZh
dGUtZmllbGQtb3B0aW9uYWwtY2hhaW5pbmcuY2FzZQorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMv
ZGVmYXVsdC9jbHMtZGVjbC50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBQcml2YXRlTmFt
ZSBhZnRlciAnPy4nIGlzIHZhbGlkIHN5bnRheCAoZmllbGQgZGVmaW5pdGlvbnMgaW4gYSBjbGFz
cyBkZWNsYXJhdGlvbikKK2VzaWQ6IHByb2QtRmllbGREZWZpbml0aW9uCitmZWF0dXJlczogW2Ns
YXNzLWZpZWxkcy1wcml2YXRlLCBvcHRpb25hbC1jaGFpbmluZywgY2xhc3NdCitmbGFnczogW2dl
bmVyYXRlZF0KK2luZm86IHwKKyAgICBVcGRhdGVkIFByb2R1Y3Rpb25zCisKKyAgICBPcHRpb25h
bENoYWluW1lpZWxkLCBBd2FpdF06CisgICAgICBgPy5gIGBbYCBFeHByZXNzaW9uWytJbiwgP1lp
ZWxkLCA/QXdhaXRdIGBdYAorICAgICAgYD8uYCBJZGVudGlmaWVyTmFtZQorICAgICAgYD8uYCBB
cmd1bWVudHNbP1lpZWxkLCA/QXdhaXRdCisgICAgICBgPy5gIFRlbXBsYXRlTGl0ZXJhbFs/WWll
bGQsID9Bd2FpdCwgK1RhZ2dlZF0KKyAgICAgIGA/LmAgUHJpdmF0ZUlkZW50aWZpZXIKKworLS0t
Ki8KKworCitjbGFzcyBDIHsKKyAgI20gPSAndGVzdDI2Mic7CisKKyAgc3RhdGljIGFjY2Vzcyhv
YmopIHsKKyAgICByZXR1cm4gb2JqPy4jbTsKKyAgfQorfQorCitsZXQgYyA9IG5ldyBDKCk7CisK
K2Fzc2VydC5zYW1lVmFsdWUoQy5hY2Nlc3MoYyksICd0ZXN0MjYyJyk7CisKK2Fzc2VydC5zYW1l
VmFsdWUoQy5hY2Nlc3MobnVsbCksIHVuZGVmaW5lZCk7Cithc3NlcnQuc2FtZVZhbHVlKEMuYWNj
ZXNzKHVuZGVmaW5lZCksIHVuZGVmaW5lZCk7CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBm
dW5jdGlvbigpIHsKKyAgQy5hY2Nlc3Moe30pOworfSwgJ2FjY2Vzc2VkIHByaXZhdGUgZmllbGQg
ZnJvbSBhbiBvcmRpbmFyeSBvYmplY3QnKTsKKwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFu
Y2UtZmllbGQtYXNzaWduZWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5zdGFu
Y2UtZmllbGQtYXNzaWduZWQuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy90ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtaW5z
dGFuY2UtZmllbGQtYXNzaWduZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAor
Ly8gVGhpcyBmaWxlIHdhcyBwcm9jZWR1cmFsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGZvbGxvd2lu
ZyBzb3VyY2VzOgorLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3Rh
bmNlLWZpZWxkLWFzc2lnbmVkLmNhc2UKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL2RlZmF1bHQv
Y2xzLWRlY2wudGVtcGxhdGUKKy8qLS0tCitkZXNjcmlwdGlvbjogc3RhdGljIGlzIGEgdmFsaWQg
bmFtZSBvZiBhbiBpbnN0YW5jZSBmaWVsZCAoZmllbGQgZGVmaW5pdGlvbnMgaW4gYSBjbGFzcyBk
ZWNsYXJhdGlvbikKK2VzaWQ6IHByb2QtRmllbGREZWZpbml0aW9uCitmZWF0dXJlczogW2NsYXNz
LWZpZWxkcy1wdWJsaWMsIGNsYXNzXQorZmxhZ3M6IFtnZW5lcmF0ZWRdCitpbmNsdWRlczogW3By
b3BlcnR5SGVscGVyLmpzXQoraW5mbzogfAorICAgIENsYXNzRWxlbWVudDoKKyAgICAgIC4uLgor
ICAgICAgRmllbGREZWZpbml0aW9uIDsKKworICAgIEZpZWxkRGVmaW5pdGlvbjoKKyAgICAgIENs
YXNzRWxlbWVudE5hbWUgSW5pdGlhbGl6ZXJfb3B0CisKKyAgICBDbGFzc0VsZW1lbnROYW1lOgor
ICAgICAgUHJvcGVydHlOYW1lCisKKy0tLSovCisKKworY2xhc3MgQyB7CisgIHN0YXRpYyA9ICJm
b28iOworfQorCitsZXQgYyA9IG5ldyBDKCk7CisKK3ZlcmlmeVByb3BlcnR5KGMsICJzdGF0aWMi
LCB7CisgIHZhbHVlOiAiZm9vIiwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRy
dWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWlu
c3RhbmNlLWZpZWxkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3RhbmNlLWZp
ZWxkLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0
YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFzLXZhbGlkLWluc3RhbmNlLWZpZWxkLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8vIFRoaXMgZmlsZSB3YXMgcHJvY2Vk
dXJhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBmb2xsb3dpbmcgc291cmNlczoKKy8vIC0gc3JjL2Ns
YXNzLWVsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1pbnN0YW5jZS1maWVsZC5jYXNlCisvLyAtIHNy
Yy9jbGFzcy1lbGVtZW50cy9kZWZhdWx0L2Nscy1kZWNsLnRlbXBsYXRlCisvKi0tLQorZGVzY3Jp
cHRpb246IHN0YXRpYyBpcyBhIHZhbGlkIG5hbWUgb2YgYW4gaW5zdGFuY2UgZmllbGQgKGZpZWxk
IGRlZmluaXRpb25zIGluIGEgY2xhc3MgZGVjbGFyYXRpb24pCitlc2lkOiBwcm9kLUZpZWxkRGVm
aW5pdGlvbgorZmVhdHVyZXM6IFtjbGFzcy1maWVsZHMtcHVibGljLCBjbGFzc10KK2ZsYWdzOiBb
Z2VuZXJhdGVkXQoraW5jbHVkZXM6IFtwcm9wZXJ0eUhlbHBlci5qc10KK2luZm86IHwKKyAgICBD
bGFzc0VsZW1lbnQ6CisgICAgICAuLi4KKyAgICAgIEZpZWxkRGVmaW5pdGlvbiA7CisKKyAgICBG
aWVsZERlZmluaXRpb246CisgICAgICBDbGFzc0VsZW1lbnROYW1lIEluaXRpYWxpemVyX29wdAor
CisgICAgQ2xhc3NFbGVtZW50TmFtZToKKyAgICAgIFByb3BlcnR5TmFtZQorCistLS0qLworCisK
K2NsYXNzIEMgeworICBzdGF0aWM7Cit9CisKK2xldCBjID0gbmV3IEMoKTsKKwordmVyaWZ5UHJv
cGVydHkoYywgInN0YXRpYyIsIHsKKyAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgZW51bWVyYWJsZTog
dHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZQorfSk7CisKSW5k
ZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVu
dHMvc3RhdGljLWFzLXZhbGlkLXN0YXRpYy1maWVsZC1hc3NpZ25lZC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRz
L3N0YXRpYy1hcy12YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50
cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLWFzc2lnbmVkLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjggQEAKKy8vIFRoaXMgZmlsZSB3YXMgcHJvY2VkdXJhbGx5IGdlbmVyYXRl
ZCBmcm9tIHRoZSBmb2xsb3dpbmcgc291cmNlczoKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL3N0
YXRpYy1hcy12YWxpZC1zdGF0aWMtZmllbGQtYXNzaWduZWQuY2FzZQorLy8gLSBzcmMvY2xhc3Mt
ZWxlbWVudHMvZGVmYXVsdC9jbHMtZGVjbC50ZW1wbGF0ZQorLyotLS0KK2Rlc2NyaXB0aW9uOiBz
dGF0aWMgaXMgYSB2YWxpZCBuYW1lIG9mIGEgc3RhdGljIGZpZWxkIChmaWVsZCBkZWZpbml0aW9u
cyBpbiBhIGNsYXNzIGRlY2xhcmF0aW9uKQorZXNpZDogcHJvZC1GaWVsZERlZmluaXRpb24KK2Zl
YXR1cmVzOiBbY2xhc3Mtc3RhdGljLWZpZWxkcy1wdWJsaWMsIGNsYXNzXQorZmxhZ3M6IFtnZW5l
cmF0ZWRdCitpbmNsdWRlczogW3Byb3BlcnR5SGVscGVyLmpzXQoraW5mbzogfAorICAgIENsYXNz
RWxlbWVudDoKKyAgICAgIC4uLgorICAgICAgc3RhdGljIEZpZWxkRGVmaW5pdGlvbiA7CisKKy0t
LSovCisKKworY2xhc3MgQyB7CisgIHN0YXRpYyBzdGF0aWMgPSAidGVzdDI2MiI7Cit9CisKK3Zl
cmlmeVByb3BlcnR5KEMsICJzdGF0aWMiLCB7CisgIHZhbHVlOiAidGVzdDI2MiIsCisgIGVudW1l
cmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiB0cnVlLAorICBjb25maWd1cmFibGU6IHRydWUKK30p
OworCkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNz
L2VsZW1lbnRzL3N0YXRpYy1hcy12YWxpZC1zdGF0aWMtZmllbGQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9z
dGF0aWMtYXMtdmFsaWQtc3RhdGljLWZpZWxkLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvY2xhc3MvZWxlbWVudHMvc3RhdGljLWFz
LXZhbGlkLXN0YXRpYy1maWVsZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisv
LyBUaGlzIGZpbGUgd2FzIHByb2NlZHVyYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgZm9sbG93aW5n
IHNvdXJjZXM6CisvLyAtIHNyYy9jbGFzcy1lbGVtZW50cy9zdGF0aWMtYXMtdmFsaWQtc3RhdGlj
LWZpZWxkLmNhc2UKKy8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL2RlZmF1bHQvY2xzLWRlY2wudGVt
cGxhdGUKKy8qLS0tCitkZXNjcmlwdGlvbjogc3RhdGljIGlzIGEgdmFsaWQgbmFtZSBvZiBhIHN0
YXRpYyBmaWVsZCAoZmllbGQgZGVmaW5pdGlvbnMgaW4gYSBjbGFzcyBkZWNsYXJhdGlvbikKK2Vz
aWQ6IHByb2QtRmllbGREZWZpbml0aW9uCitmZWF0dXJlczogW2NsYXNzLXN0YXRpYy1maWVsZHMt
cHVibGljLCBjbGFzc10KK2ZsYWdzOiBbZ2VuZXJhdGVkXQoraW5jbHVkZXM6IFtwcm9wZXJ0eUhl
bHBlci5qc10KK2luZm86IHwKKyAgICBDbGFzc0VsZW1lbnQ6CisgICAgICAuLi4KKyAgICAgIHN0
YXRpYyBGaWVsZERlZmluaXRpb24gOworCistLS0qLworCisKK2NsYXNzIEMgeworICBzdGF0aWMg
c3RhdGljOworfQorCit2ZXJpZnlQcm9wZXJ0eShDLCAic3RhdGljIiwgeworICB2YWx1ZTogdW5k
ZWZpbmVkLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJsZTogdHJ1ZSwKKyAgY29uZmln
dXJhYmxlOiB0cnVlCit9KTsKKwpJbmRleDogSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
c3RhdGVtZW50cy9jbGFzcy9lbGVtZW50cy9zeW50YXgvZWFybHktZXJyb3JzL2dyYW1tYXItcHJp
dmF0ZS1maWVsZC1vcHRpb25hbC1jaGFpbmluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2NsYXNzL2VsZW1lbnRzL3N5bnRheC9lYXJs
eS1lcnJvcnMvZ3JhbW1hci1wcml2YXRlLWZpZWxkLW9wdGlvbmFsLWNoYWluaW5nLmpzCShyZXZp
c2lvbiAyNTk1MjYpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRz
L2NsYXNzL2VsZW1lbnRzL3N5bnRheC9lYXJseS1lcnJvcnMvZ3JhbW1hci1wcml2YXRlLWZpZWxk
LW9wdGlvbmFsLWNoYWluaW5nLmpzCShub25leGlzdGVudCkKQEAgLTEsMjkgKzAsMCBAQAotLy8g
VGhpcyBmaWxlIHdhcyBwcm9jZWR1cmFsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIGZvbGxvd2luZyBz
b3VyY2VzOgotLy8gLSBzcmMvY2xhc3MtZWxlbWVudHMvZ3JhbW1hci1wcml2YXRlLWZpZWxkLW9w
dGlvbmFsLWNoYWluaW5nLmNhc2UKLS8vIC0gc3JjL2NsYXNzLWVsZW1lbnRzL3N5bnRheC9pbnZh
bGlkL2Nscy1kZWNsLWVsZW1lbnRzLWludmFsaWQtc3ludGF4LnRlbXBsYXRlCi0vKi0tLQotZGVz
Y3JpcHRpb246IFByaXZhdGVOYW1lIGFmdGVyICc/LicgaXMgbm90IHZhbGlkIHN5bnRheCAoY2xh
c3MgZGVjbGFyYXRpb24pCi1lc2lkOiBwcm9kLUNsYXNzRWxlbWVudAotZmVhdHVyZXM6IFtjbGFz
cy1maWVsZHMtcHJpdmF0ZSwgb3B0aW9uYWwtY2hhaW5pbmcsIGNsYXNzXQotZmxhZ3M6IFtnZW5l
cmF0ZWRdCi1uZWdhdGl2ZToKLSAgcGhhc2U6IHBhcnNlCi0gIHR5cGU6IFN5bnRheEVycm9yCi1p
bmZvOiB8Ci0gICAgVXBkYXRlZCBQcm9kdWN0aW9ucwotCi0gICAgTWVtYmVyRXhwcmVzc2lvbltZ
aWVsZF06Ci0gICAgICBNZW1iZXJFeHByZXNzaW9uWz9ZaWVsZF0uUHJpdmF0ZU5hbWUKLQotLS0t
Ki8KLQotCi0kRE9OT1RFVkFMVUFURSgpOwotCi1jbGFzcyBDIHsKLSAgI20gPSAndGVzdDI2Mic7
Ci0KLSAgYWNjZXNzKG9iaikgewotICAgIHJldHVybiBvYmo/LiNtOwotICB9Ci19CkluZGV4OiBK
U1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1hd2FpdC1vZi9pdGVy
YXRvci1jbG9zZS1ub24tdGhyb3ctZ2V0LW1ldGhvZC1hYnJ1cHQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRl
cmF0b3ItY2xvc2Utbm9uLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCShub25leGlzdGVudCkK
KysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9m
L2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLWFicnVwdC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDUzIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5
a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhl
IEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDogc2Vj
LWFzeW5jaXRlcmF0b3JjbG9zZQorZGVzY3JpcHRpb246ID4KKyAgSWYgcmV0cmlldmluZyBhbiBp
dGVyYXRvcidzIGByZXR1cm5gIG1ldGhvZCBnZW5lcmF0ZXMgYW4gZXJyb3Igd2hpbGUKKyAgY2xv
c2luZyB0aGUgaXRlcmF0b3Igd2l0aCBub24tdGhyb3cgY29tcGxldGlvbiwgdGhlIGVycm9yIHNo
b3VsZCBiZQorICBmb3J3YXJkZWQgdG8gdGhlIHJ1bnRpbWUuCitpbmZvOiB8CisgIEFzeW5jSXRl
cmF0b3JDbG9zZSAoIGl0ZXJhdG9yUmVjb3JkLCBjb21wbGV0aW9uICkKKworICBbLi4uXQorICA0
LiBMZXQgaW5uZXJSZXN1bHQgYmUgR2V0TWV0aG9kKGl0ZXJhdG9yLCAicmV0dXJuIikuCisgIDUu
IElmIGlubmVyUmVzdWx0LltbVHlwZV1dIGlzIG5vcm1hbCwKKyAgICBbLi4uXQorICA2LiBJZiBj
b21wbGV0aW9uLltbVHlwZV1dIGlzIHRocm93LCByZXR1cm4gQ29tcGxldGlvbihjb21wbGV0aW9u
KS4KKyAgNy4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0
aW9uKGlubmVyUmVzdWx0KS4KKworICBHZXRNZXRob2QgKCBWLCBQICkKKworICBbLi4uXQorICAy
LiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCitmZWF0dXJlczogW2FzeW5jLWl0ZXJhdGlvbl0K
K2ZsYWdzOiBbYXN5bmNdCistLS0qLworCitjb25zdCBpbm5lckVycm9yID0geyBuYW1lOiAiaW5u
ZXIgZXJyb3IiIH07Citjb25zdCBhc3luY0l0ZXJhYmxlID0ge307Cithc3luY0l0ZXJhYmxlW1N5
bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4geworICAgIG5leHQ6
IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBudWxsIH07
CisgICAgfSwKKyAgICBnZXQgcmV0dXJuKCkgeworICAgICAgdGhyb3cgaW5uZXJFcnJvcjsKKyAg
ICB9LAorICB9OworfTsKKworbGV0IGl0ZXJhdGlvbkNvdW50ID0gMDsKK2NvbnN0IHByb21pc2Ug
PSAoYXN5bmMgZnVuY3Rpb24oKSB7CisgIGZvciBhd2FpdCAoY29uc3QgeCBvZiBhc3luY0l0ZXJh
YmxlKSB7CisgICAgaXRlcmF0aW9uQ291bnQgKz0gMTsKKyAgICBicmVhazsKKyAgfQorfSkoKTsK
KworcHJvbWlzZS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7CisgIHRocm93IG5ldyBUZXN0MjYyRXJy
b3IoIlByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBnb3Q6ICIgKyB2YWx1ZSk7Cit9LCBmdW5j
dGlvbihlcnJvcikgeworICBhc3NlcnQuc2FtZVZhbHVlKGVycm9yLCBpbm5lckVycm9yKTsKKyAg
YXNzZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgIlRoZSBsb29wIGJvZHkgaXMgZXZh
bHVhdGVkIik7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIv
dGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1hd2FpdC1vZi9pdGVyYXRvci1jbG9zZS1ub24t
dGhyb3ctZ2V0LW1ldGhvZC1ub24tY2FsbGFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9mb3ItYXdhaXQtb2YvaXRlcmF0b3ItY2xv
c2Utbm9uLXRocm93LWdldC1tZXRob2Qtbm9uLWNhbGxhYmxlLmpzCShub25leGlzdGVudCkKKysr
IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0
ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNo
dmF5a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDog
c2VjLWFzeW5jaXRlcmF0b3JjbG9zZQorZGVzY3JpcHRpb246ID4KKyAgSWYgcmV0cmlldmluZyBh
biBpdGVyYXRvcidzIGByZXR1cm5gIG1ldGhvZCBnZW5lcmF0ZXMgYW4gZXJyb3Igd2hpbGUKKyAg
Y2xvc2luZyB0aGUgaXRlcmF0b3Igd2l0aCBub24tdGhyb3cgY29tcGxldGlvbiwgdGhlIGVycm9y
IHNob3VsZCBiZQorICBmb3J3YXJkZWQgdG8gdGhlIHJ1bnRpbWUuCitpbmZvOiB8CisgIEFzeW5j
SXRlcmF0b3JDbG9zZSAoIGl0ZXJhdG9yUmVjb3JkLCBjb21wbGV0aW9uICkKKworICBbLi4uXQor
ICA0LiBMZXQgaW5uZXJSZXN1bHQgYmUgR2V0TWV0aG9kKGl0ZXJhdG9yLCAicmV0dXJuIikuCisg
IDUuIElmIGlubmVyUmVzdWx0LltbVHlwZV1dIGlzIG5vcm1hbCwKKyAgICBbLi4uXQorICA2LiBJ
ZiBjb21wbGV0aW9uLltbVHlwZV1dIGlzIHRocm93LCByZXR1cm4gQ29tcGxldGlvbihjb21wbGV0
aW9uKS4KKyAgNy4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21w
bGV0aW9uKGlubmVyUmVzdWx0KS4KKworICBHZXRNZXRob2QgKCBWLCBQICkKKworICBbLi4uXQor
ICAyLiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCisgIDMuIElmIGZ1bmMgaXMgZWl0aGVyIHVu
ZGVmaW5lZCBvciBudWxsLCByZXR1cm4gdW5kZWZpbmVkLgorICA0LiBJZiBJc0NhbGxhYmxlKGZ1
bmMpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitmZWF0dXJlczogW2Fz
eW5jLWl0ZXJhdGlvbl0KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworCitjb25zdCBhc3luY0l0ZXJh
YmxlID0ge307Cithc3luY0l0ZXJhYmxlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9u
KCkgeworICByZXR1cm4geworICAgIG5leHQ6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHsg
ZG9uZTogZmFsc2UsIHZhbHVlOiBudWxsIH07CisgICAgfSwKKyAgICByZXR1cm46IFN5bWJvbCgp
LAorICB9OworfTsKKworbGV0IGl0ZXJhdGlvbkNvdW50ID0gMDsKK2NvbnN0IHByb21pc2UgPSAo
YXN5bmMgZnVuY3Rpb24oKSB7CisgIGZvciBhd2FpdCAoY29uc3QgeCBvZiBhc3luY0l0ZXJhYmxl
KSB7CisgICAgaXRlcmF0aW9uQ291bnQgKz0gMTsKKyAgICBicmVhazsKKyAgfQorfSkoKTsKKwor
cHJvbWlzZS50aGVuKGZ1bmN0aW9uKHZhbHVlKSB7CisgIHRocm93IG5ldyBUZXN0MjYyRXJyb3Io
IlByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkLCBnb3Q6ICIgKyB2YWx1ZSk7Cit9LCBmdW5jdGlv
bihlcnJvcikgeworICBhc3NlcnQuc2FtZVZhbHVlKGVycm9yLmNvbnN0cnVjdG9yLCBUeXBlRXJy
b3IpOworICBhc3NlcnQuc2FtZVZhbHVlKGl0ZXJhdGlvbkNvdW50LCAxLCAiVGhlIGxvb3AgYm9k
eSBpcyBldmFsdWF0ZWQiKTsKK30pLnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMv
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNs
b3NlLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3Nl
LXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3Nl
LXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEg
QEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXN5bmNpdGVyYXRvcmNsb3Nl
CitkZXNjcmlwdGlvbjogPgorICBJZiByZXRyaWV2aW5nIGFuIGl0ZXJhdG9yJ3MgYHJldHVybmAg
bWV0aG9kIGdlbmVyYXRlcyBhbiBlcnJvciB3aGlsZQorICBjbG9zaW5nIHRoZSBpdGVyYXRvciB3
aXRoIHRocm93IGNvbXBsZXRpb24sIHRoaXMgZXJyb3Igc2hvdWxkIGJlIHN1cHByZXNzZWQuCitp
bmZvOiB8CisgIEFzeW5jSXRlcmF0b3JDbG9zZSAoIGl0ZXJhdG9yUmVjb3JkLCBjb21wbGV0aW9u
ICkKKworICBbLi4uXQorICA0LiBMZXQgaW5uZXJSZXN1bHQgYmUgR2V0TWV0aG9kKGl0ZXJhdG9y
LCAicmV0dXJuIikuCisgIDUuIElmIGlubmVyUmVzdWx0LltbVHlwZV1dIGlzIG5vcm1hbCwKKyAg
ICBbLi4uXQorICA2LiBJZiBjb21wbGV0aW9uLltbVHlwZV1dIGlzIHRocm93LCByZXR1cm4gQ29t
cGxldGlvbihjb21wbGV0aW9uKS4KKyAgNy4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgdGhy
b3csIHJldHVybiBDb21wbGV0aW9uKGlubmVyUmVzdWx0KS4KKworICBHZXRNZXRob2QgKCBWLCBQ
ICkKKworICBbLi4uXQorICAyLiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCitmZWF0dXJlczog
W2FzeW5jLWl0ZXJhdGlvbl0KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworCitjb25zdCBhc3luY0l0
ZXJhYmxlID0ge307Cithc3luY0l0ZXJhYmxlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0
aW9uKCkgeworICByZXR1cm4geworICAgIG5leHQ6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJu
IHsgZG9uZTogZmFsc2UsIHZhbHVlOiBudWxsIH07CisgICAgfSwKKyAgICBnZXQgcmV0dXJuKCkg
eworICAgICAgdGhyb3cgeyBuYW1lOiAiaW5uZXIgZXJyb3IiIH07CisgICAgfSwKKyAgfTsKK307
CisKK2xldCBpdGVyYXRpb25Db3VudCA9IDA7Citjb25zdCBwcm9taXNlID0gKGFzeW5jIGZ1bmN0
aW9uKCkgeworICBmb3IgYXdhaXQgKGNvbnN0IHggb2YgYXN5bmNJdGVyYWJsZSkgeworICAgIGl0
ZXJhdGlvbkNvdW50ICs9IDE7CisgICAgdGhyb3cgbmV3IFRlc3QyNjJFcnJvcigic2hvdWxkIG5v
dCBiZSBvdmVycmlkZW4iKTsKKyAgfQorfSkoKTsKKworcHJvbWlzZS50aGVuKGZ1bmN0aW9uKHZh
bHVlKSB7CisgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoIlByb21pc2Ugc2hvdWxkIGJlIHJlamVj
dGVkLCBnb3Q6ICIgKyB2YWx1ZSk7Cit9LCBmdW5jdGlvbihlcnJvcikgeworICBhc3NlcnQuc2Ft
ZVZhbHVlKGVycm9yLmNvbnN0cnVjdG9yLCBUZXN0MjYyRXJyb3IpOworICBhc3NlcnQuc2FtZVZh
bHVlKGl0ZXJhdGlvbkNvdW50LCAxLCAiVGhlIGxvb3AgYm9keSBpcyBldmFsdWF0ZWQiKTsKK30p
LnRoZW4oJERPTkUsICRET05FKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRob2Qt
bm9uLWNhbGxhYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRo
b2Qtbm9uLWNhbGxhYmxlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLWF3YWl0LW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdl
dC1tZXRob2Qtbm9uLWNhbGxhYmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtYXN5bmNpdGVyYXRvcmNsb3NlCitk
ZXNjcmlwdGlvbjogPgorICBJZiByZXRyaWV2aW5nIGFuIGl0ZXJhdG9yJ3MgYHJldHVybmAgbWV0
aG9kIGdlbmVyYXRlcyBhbiBlcnJvciB3aGlsZQorICBjbG9zaW5nIHRoZSBpdGVyYXRvciB3aXRo
IHRocm93IGNvbXBsZXRpb24sIHRoaXMgZXJyb3Igc2hvdWxkIGJlIHN1cHByZXNzZWQuCitpbmZv
OiB8CisgIEFzeW5jSXRlcmF0b3JDbG9zZSAoIGl0ZXJhdG9yUmVjb3JkLCBjb21wbGV0aW9uICkK
KworICBbLi4uXQorICA0LiBMZXQgaW5uZXJSZXN1bHQgYmUgR2V0TWV0aG9kKGl0ZXJhdG9yLCAi
cmV0dXJuIikuCisgIDUuIElmIGlubmVyUmVzdWx0LltbVHlwZV1dIGlzIG5vcm1hbCwKKyAgICBb
Li4uXQorICA2LiBJZiBjb21wbGV0aW9uLltbVHlwZV1dIGlzIHRocm93LCByZXR1cm4gQ29tcGxl
dGlvbihjb21wbGV0aW9uKS4KKyAgNy4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgdGhyb3cs
IHJldHVybiBDb21wbGV0aW9uKGlubmVyUmVzdWx0KS4KKworICBHZXRNZXRob2QgKCBWLCBQICkK
KworICBbLi4uXQorICAyLiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCkuCisgIDMuIElmIGZ1bmMg
aXMgZWl0aGVyIHVuZGVmaW5lZCBvciBudWxsLCByZXR1cm4gdW5kZWZpbmVkLgorICA0LiBJZiBJ
c0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCitm
ZWF0dXJlczogW2FzeW5jLWl0ZXJhdGlvbl0KK2ZsYWdzOiBbYXN5bmNdCistLS0qLworCitjb25z
dCBhc3luY0l0ZXJhYmxlID0ge307Cithc3luY0l0ZXJhYmxlW1N5bWJvbC5hc3luY0l0ZXJhdG9y
XSA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4geworICAgIG5leHQ6IGZ1bmN0aW9uKCkgeworICAg
ICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBudWxsIH07CisgICAgfSwKKyAgICByZXR1
cm46IHRydWUsCisgIH07Cit9OworCitsZXQgaXRlcmF0aW9uQ291bnQgPSAwOworY29uc3QgcHJv
bWlzZSA9IChhc3luYyBmdW5jdGlvbigpIHsKKyAgZm9yIGF3YWl0IChjb25zdCB4IG9mIGFzeW5j
SXRlcmFibGUpIHsKKyAgICBpdGVyYXRpb25Db3VudCArPSAxOworICAgIHRocm93IG5ldyBUZXN0
MjYyRXJyb3IoInNob3VsZCBub3QgYmUgb3ZlcnJpZGVuIik7CisgIH0KK30pKCk7CisKK3Byb21p
c2UudGhlbihmdW5jdGlvbih2YWx1ZSkgeworICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCJQcm9t
aXNlIHNob3VsZCBiZSByZWplY3RlZCwgZ290OiAiICsgdmFsdWUpOworfSwgZnVuY3Rpb24oZXJy
b3IpIHsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShlcnJvci5jb25zdHJ1Y3RvciwgVGVzdDI2MkVycm9y
KTsKKyAgYXNzZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgIlRoZSBsb29wIGJvZHkg
aXMgZXZhbHVhdGVkIik7Cit9KS50aGVuKCRET05FLCAkRE9ORSk7CkluZGV4OiBKU1Rlc3RzL3Rl
c3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS1nZXQt
bWV0aG9kLWVycm9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL3N0YXRlbWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLWdldC1tZXRob2QtZXJyb3IuanMJ
KHJldmlzaW9uIDI1OTUyNikKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRl
bWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLWdldC1tZXRob2QtZXJyb3IuanMJKG5vbmV4aXN0
ZW50KQpAQCAtMSwzMiArMCwwIEBACi0vLyBDb3B5cmlnaHQgKEMpIDIwMTUgdGhlIFY4IHByb2pl
Y3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFRoaXMgY29kZSBpcyBnb3Zlcm5l
ZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS8qLS0tCi1l
czZpZDogMTMuNi40LjEzCi1kZXNjcmlwdGlvbjogPgotICAgIElmIHJldHJpZXZpbmcgYW4gaXRl
cmF0b3IncyBgcmV0dXJuYCBtZXRob2QgZ2VuZXJhdGVzIGFuIGVycm9yIHdoaWxlCi0gICAgY2xv
c2luZyB0aGUgaXRlcmF0b3IsIHRoZSBlcnJvciBzaG91bGQgYmUgZm9yd2FyZGVkIHRvIHRoZSBy
dW50aW1lLgotZmVhdHVyZXM6IFtTeW1ib2wuaXRlcmF0b3JdCi0tLS0qLwotCi12YXIgaXRlcmFi
bGUgPSB7fTsKLXZhciBpdGVyYXRpb25Db3VudCA9IDA7Ci0KLWl0ZXJhYmxlW1N5bWJvbC5pdGVy
YXRvcl0gPSBmdW5jdGlvbigpIHsKLSAgcmV0dXJuIHsKLSAgICBuZXh0OiBmdW5jdGlvbigpIHsK
LSAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogbnVsbCB9OwotICAgIH0sCi0gICAg
Z2V0IHJldHVybigpIHsKLSAgICAgIHRocm93IG5ldyBUZXN0MjYyRXJyb3IoKTsKLSAgICB9Ci0g
IH07Ci19OwotCi1hc3NlcnQudGhyb3dzKFRlc3QyNjJFcnJvciwgZnVuY3Rpb24oKSB7Ci0gIGZv
ciAodmFyIHggb2YgaXRlcmFibGUpIHsKLSAgICBpdGVyYXRpb25Db3VudCArPSAxOwotICAgIGJy
ZWFrOwotICB9Ci19KTsKLQotYXNzZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgJ1Ro
ZSBsb29wIGJvZHkgaXMgZXZhbHVhdGVkJyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9s
YW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1vZi9pdGVyYXRvci1jbG9zZS1ub24tdGhyb3ctZ2V0LW1l
dGhvZC1hYnJ1cHQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2Uvc3RhdGVtZW50cy9mb3Itb2YvaXRlcmF0b3ItY2xvc2Utbm9uLXRocm93LWdldC1tZXRob2Qt
YWJydXB0LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L3N0YXRlbWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLWFi
cnVwdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvLyBDb3B5cmlnaHQgKEMp
IDIwMTUgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtaXRlcmF0b3JjbG9zZQorZGVzY3JpcHRpb246ID4K
KyAgSWYgcmV0cmlldmluZyBhbiBpdGVyYXRvcidzIGByZXR1cm5gIG1ldGhvZCBnZW5lcmF0ZXMg
YW4gZXJyb3Igd2hpbGUKKyAgY2xvc2luZyB0aGUgaXRlcmF0b3Igd2l0aCBub24tdGhyb3cgY29t
cGxldGlvbiwgdGhlIGVycm9yIHNob3VsZCBiZQorICBmb3J3YXJkZWQgdG8gdGhlIHJ1bnRpbWUu
CitpbmZvOiB8CisgIEl0ZXJhdG9yQ2xvc2UgKCBpdGVyYXRvclJlY29yZCwgY29tcGxldGlvbiAp
CisKKyAgWy4uLl0KKyAgNC4gTGV0IGlubmVyUmVzdWx0IGJlIEdldE1ldGhvZChpdGVyYXRvciwg
InJldHVybiIpLgorICA1LiBJZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBpcyBub3JtYWwsCisgICAg
Wy4uLl0KKyAgNi4gSWYgY29tcGxldGlvbi5bW1R5cGVdXSBpcyB0aHJvdywgcmV0dXJuIENvbXBs
ZXRpb24oY29tcGxldGlvbikuCisgIDcuIElmIGlubmVyUmVzdWx0LltbVHlwZV1dIGlzIHRocm93
LCByZXR1cm4gQ29tcGxldGlvbihpbm5lclJlc3VsdCkuCisKKyAgR2V0TWV0aG9kICggViwgUCAp
CisKKyAgWy4uLl0KKyAgMi4gTGV0IGZ1bmMgYmUgPyBHZXRWKFYsIFApLgorZmVhdHVyZXM6IFtT
eW1ib2wuaXRlcmF0b3JdCistLS0qLworCit2YXIgaXRlcmFibGUgPSB7fTsKK3ZhciBpdGVyYXRp
b25Db3VudCA9IDA7CisKK2l0ZXJhYmxlW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsK
KyAgcmV0dXJuIHsKKyAgICBuZXh0OiBmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiB7IGRvbmU6
IGZhbHNlLCB2YWx1ZTogbnVsbCB9OworICAgIH0sCisgICAgZ2V0IHJldHVybigpIHsKKyAgICAg
IHRocm93IG5ldyBUZXN0MjYyRXJyb3IoKTsKKyAgICB9CisgIH07Cit9OworCithc3NlcnQudGhy
b3dzKFRlc3QyNjJFcnJvciwgZnVuY3Rpb24oKSB7CisgIGZvciAodmFyIHggb2YgaXRlcmFibGUp
IHsKKyAgICBpdGVyYXRpb25Db3VudCArPSAxOworICAgIGJyZWFrOworICB9Cit9KTsKKworYXNz
ZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgJ1RoZSBsb29wIGJvZHkgaXMgZXZhbHVh
dGVkJyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zv
ci1vZi9pdGVyYXRvci1jbG9zZS1ub24tdGhyb3ctZ2V0LW1ldGhvZC1ub24tY2FsbGFibGUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9m
b3Itb2YvaXRlcmF0b3ItY2xvc2Utbm9uLXRocm93LWdldC1tZXRob2Qtbm9uLWNhbGxhYmxlLmpz
CShub25leGlzdGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVu
dHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLW5vbi10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJs
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIw
MjAgQWxleGV5IFNodmF5a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMg
Z292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisv
Ki0tLQorZXNpZDogc2VjLWl0ZXJhdG9yY2xvc2UKK2Rlc2NyaXB0aW9uOiA+CisgIElmIHJldHJp
ZXZpbmcgYW4gaXRlcmF0b3IncyBgcmV0dXJuYCBtZXRob2QgZ2VuZXJhdGVzIGFuIGVycm9yIHdo
aWxlCisgIGNsb3NpbmcgdGhlIGl0ZXJhdG9yIHdpdGggbm9uLXRocm93IGNvbXBsZXRpb24sIHRo
ZSBlcnJvciBzaG91bGQgYmUKKyAgZm9yd2FyZGVkIHRvIHRoZSBydW50aW1lLgoraW5mbzogfAor
ICBJdGVyYXRvckNsb3NlICggaXRlcmF0b3JSZWNvcmQsIGNvbXBsZXRpb24gKQorCisgIFsuLi5d
CisgIDQuIExldCBpbm5lclJlc3VsdCBiZSBHZXRNZXRob2QoaXRlcmF0b3IsICJyZXR1cm4iKS4K
KyAgNS4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgbm9ybWFsLAorICAgIFsuLi5dCisgIDYu
IElmIGNvbXBsZXRpb24uW1tUeXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0aW9uKGNvbXBs
ZXRpb24pLgorICA3LiBJZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBpcyB0aHJvdywgcmV0dXJuIENv
bXBsZXRpb24oaW5uZXJSZXN1bHQpLgorCisgIEdldE1ldGhvZCAoIFYsIFAgKQorCisgIFsuLi5d
CisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KKyAgMy4gSWYgZnVuYyBpcyBlaXRoZXIg
dW5kZWZpbmVkIG9yIG51bGwsIHJldHVybiB1bmRlZmluZWQuCisgIDQuIElmIElzQ2FsbGFibGUo
ZnVuYykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KK2ZlYXR1cmVzOiBb
U3ltYm9sLml0ZXJhdG9yXQorLS0tKi8KKwordmFyIGl0ZXJhYmxlID0ge307Cit2YXIgaXRlcmF0
aW9uQ291bnQgPSAwOworCitpdGVyYWJsZVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7
CisgIHJldHVybiB7CisgICAgbmV4dDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4geyBkb25l
OiBmYWxzZSwgdmFsdWU6IG51bGwgfTsKKyAgICB9LAorICAgIHJldHVybjogMSwKKyAgfTsKK307
CisKK2Fzc2VydC50aHJvd3MoVHlwZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgZm9yICh2YXIgeCBv
ZiBpdGVyYWJsZSkgeworICAgIGl0ZXJhdGlvbkNvdW50ICs9IDE7CisgICAgYnJlYWs7CisgIH0K
K30pOworCithc3NlcnQuc2FtZVZhbHVlKGl0ZXJhdGlvbkNvdW50LCAxLCAnVGhlIGxvb3AgYm9k
eSBpcyBldmFsdWF0ZWQnKTsKSW5kZXg6IEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0
YXRlbWVudHMvZm9yLW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRob2QtYWJydXB0Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMv
Zm9yLW9mL2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCShub25leGlz
dGVudCkKKysrIEpTVGVzdHMvdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvZm9yLW9m
L2l0ZXJhdG9yLWNsb3NlLXRocm93LWdldC1tZXRob2QtYWJydXB0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDYgQEAKKy8vIENvcHlyaWdodCAoQykgMjAyMCBBbGV4ZXkgU2h2YXlrYS4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNE
IGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8qLS0tCitlc2lkOiBzZWMtaXRl
cmF0b3JjbG9zZQorZGVzY3JpcHRpb246ID4KKyAgSWYgcmV0cmlldmluZyBhbiBpdGVyYXRvcidz
IGByZXR1cm5gIG1ldGhvZCBnZW5lcmF0ZXMgYW4gZXJyb3Igd2hpbGUKKyAgY2xvc2luZyB0aGUg
aXRlcmF0b3Igd2l0aCB0aHJvdyBjb21wbGV0aW9uLCB0aGlzIGVycm9yIHNob3VsZCBiZSBzdXBw
cmVzc2VkLgoraW5mbzogfAorICBJdGVyYXRvckNsb3NlICggaXRlcmF0b3JSZWNvcmQsIGNvbXBs
ZXRpb24gKQorCisgIFsuLi5dCisgIDQuIExldCBpbm5lclJlc3VsdCBiZSBHZXRNZXRob2QoaXRl
cmF0b3IsICJyZXR1cm4iKS4KKyAgNS4gSWYgaW5uZXJSZXN1bHQuW1tUeXBlXV0gaXMgbm9ybWFs
LAorICAgIFsuLi5dCisgIDYuIElmIGNvbXBsZXRpb24uW1tUeXBlXV0gaXMgdGhyb3csIHJldHVy
biBDb21wbGV0aW9uKGNvbXBsZXRpb24pLgorICA3LiBJZiBpbm5lclJlc3VsdC5bW1R5cGVdXSBp
cyB0aHJvdywgcmV0dXJuIENvbXBsZXRpb24oaW5uZXJSZXN1bHQpLgorCisgIEdldE1ldGhvZCAo
IFYsIFAgKQorCisgIFsuLi5dCisgIDIuIExldCBmdW5jIGJlID8gR2V0VihWLCBQKS4KK2ZlYXR1
cmVzOiBbU3ltYm9sLml0ZXJhdG9yXQorLS0tKi8KKwordmFyIGl0ZXJhYmxlID0ge307Cit2YXIg
aXRlcmF0aW9uQ291bnQgPSAwOworCitpdGVyYWJsZVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rp
b24oKSB7CisgIHJldHVybiB7CisgICAgbmV4dDogZnVuY3Rpb24oKSB7CisgICAgICByZXR1cm4g
eyBkb25lOiBmYWxzZSwgdmFsdWU6IG51bGwgfTsKKyAgICB9LAorICAgIGdldCByZXR1cm4oKSB7
CisgICAgICB0aHJvdyB7IG5hbWU6ICdpbm5lciBlcnJvcicgfTsKKyAgICB9LAorICB9OworfTsK
KworYXNzZXJ0LnRocm93cyhUZXN0MjYyRXJyb3IsIGZ1bmN0aW9uKCkgeworICBmb3IgKHZhciB4
IG9mIGl0ZXJhYmxlKSB7CisgICAgaXRlcmF0aW9uQ291bnQgKz0gMTsKKyAgICB0aHJvdyBuZXcg
VGVzdDI2MkVycm9yKCdzaG91bGQgbm90IGJlIG92ZXJyaWRlbicpOworICB9Cit9KTsKKworYXNz
ZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3VudCwgMSwgJ1RoZSBsb29wIGJvZHkgaXMgZXZhbHVh
dGVkJyk7CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zv
ci1vZi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1v
Zi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwkobm9uZXhp
c3RlbnQpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2Zvci1v
Zi9pdGVyYXRvci1jbG9zZS10aHJvdy1nZXQtbWV0aG9kLW5vbi1jYWxsYWJsZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNo
dmF5a2EuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkg
dGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvKi0tLQorZXNpZDog
c2VjLWl0ZXJhdG9yY2xvc2UKK2Rlc2NyaXB0aW9uOiA+CisgIElmIHJldHJpZXZpbmcgYW4gaXRl
cmF0b3IncyBgcmV0dXJuYCBtZXRob2QgZ2VuZXJhdGVzIGFuIGVycm9yIHdoaWxlCisgIGNsb3Np
bmcgdGhlIGl0ZXJhdG9yIHdpdGggdGhyb3cgY29tcGxldGlvbiwgdGhpcyBlcnJvciBzaG91bGQg
YmUgc3VwcHJlc3NlZC4KK2luZm86IHwKKyAgSXRlcmF0b3JDbG9zZSAoIGl0ZXJhdG9yUmVjb3Jk
LCBjb21wbGV0aW9uICkKKworICBbLi4uXQorICA0LiBMZXQgaW5uZXJSZXN1bHQgYmUgR2V0TWV0
aG9kKGl0ZXJhdG9yLCAicmV0dXJuIikuCisgIDUuIElmIGlubmVyUmVzdWx0LltbVHlwZV1dIGlz
IG5vcm1hbCwKKyAgICBbLi4uXQorICA2LiBJZiBjb21wbGV0aW9uLltbVHlwZV1dIGlzIHRocm93
LCByZXR1cm4gQ29tcGxldGlvbihjb21wbGV0aW9uKS4KKyAgNy4gSWYgaW5uZXJSZXN1bHQuW1tU
eXBlXV0gaXMgdGhyb3csIHJldHVybiBDb21wbGV0aW9uKGlubmVyUmVzdWx0KS4KKworICBHZXRN
ZXRob2QgKCBWLCBQICkKKworICBbLi4uXQorICAyLiBMZXQgZnVuYyBiZSA/IEdldFYoViwgUCku
CisgIDMuIElmIGZ1bmMgaXMgZWl0aGVyIHVuZGVmaW5lZCBvciBudWxsLCByZXR1cm4gdW5kZWZp
bmVkLgorICA0LiBJZiBJc0NhbGxhYmxlKGZ1bmMpIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJv
ciBleGNlcHRpb24uCitmZWF0dXJlczogW1N5bWJvbC5pdGVyYXRvcl0KKy0tLSovCisKK3ZhciBp
dGVyYWJsZSA9IHt9OwordmFyIGl0ZXJhdGlvbkNvdW50ID0gMDsKKworaXRlcmFibGVbU3ltYm9s
Lml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4geworICAgIG5leHQ6IGZ1bmN0aW9u
KCkgeworICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiBudWxsIH07CisgICAgfSwK
KyAgICByZXR1cm46ICdzdHInLAorICB9OworfTsKKworYXNzZXJ0LnRocm93cyhUZXN0MjYyRXJy
b3IsIGZ1bmN0aW9uKCkgeworICBmb3IgKHZhciB4IG9mIGl0ZXJhYmxlKSB7CisgICAgaXRlcmF0
aW9uQ291bnQgKz0gMTsKKyAgICB0aHJvdyBuZXcgVGVzdDI2MkVycm9yKCdzaG91bGQgbm90IGJl
IG92ZXJyaWRlbicpOworICB9Cit9KTsKKworYXNzZXJ0LnNhbWVWYWx1ZShpdGVyYXRpb25Db3Vu
dCwgMSwgJ1RoZSBsb29wIGJvZHkgaXMgZXZhbHVhdGVkJyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>