<?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>129168</bug_id>
          
          <creation_ts>2014-02-21 13:56:20 -0800</creation_ts>
          <short_desc>Web Inspector: remove old inspector tests that cannot be ported</short_desc>
          <delta_ts>2014-02-21 16:23:41 -0800</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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>983343</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-21 13:56:20 -0800</bug_when>
    <thetext>411 is a lot of skipped tests. I think maybe 100 at most (say, debugger tests) should be kept and evaluated more carefully. There are a lot of UI specific tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983370</commentid>
    <comment_count>1</comment_count>
      <attachid>224910</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-21 14:34:36 -0800</bug_when>
    <thetext>Created attachment 224910
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983382</commentid>
    <comment_count>2</comment_count>
      <attachid>224910</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-02-21 15:05:24 -0800</bug_when>
    <thetext>Comment on attachment 224910
patch

rs=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983428</commentid>
    <comment_count>3</comment_count>
      <attachid>224910</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-21 16:08:14 -0800</bug_when>
    <thetext>Comment on attachment 224910
patch

Rejecting attachment 224910 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 224910, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 164509 = 7af1393f6a635141131eadb1d8d4349b75de253c
r164510 = eafb76a13ed3e62e4a85ec458823a344a7b6c25a
r164511 = f9e0215cbe9864209a3399d88ad0f2053be4fb3e
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.appspot.com/results/5544649972252672</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983436</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-21 16:23:41 -0800</bug_when>
    <thetext>Committed r164515: &lt;http://trac.webkit.org/changeset/164515&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224910</attachid>
            <date>2014-02-21 14:34:36 -0800</date>
            <delta_ts>2014-02-21 16:08:14 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug-129168-20140221143435.patch</filename>
            <type>text/plain</type>
            <size>1225578</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NDYyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTQxZTUyM2JjZWFhNmFjYmZjMTU0
Y2YzZDMwMzQyNjNjYjU5N2MyOS4uNWEyNWY1MGMzYmIwYzI4MGM3YjQxOWY0MjE0NTFiY2NhNjAx
N2YxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3MyBAQAorMjAxNC0wMi0yMSAgQnJpYW4gQnVyZyAgPGJi
dXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgb2xkIGluc3Bl
Y3RvciB0ZXN0cyB0aGF0IGNhbm5vdCBiZSBwb3J0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBtYW55IHRlc3RzIHRoYXQgd2VyZSBzcGVj
aWZpYyB0byB0aGUgb2xkIGluc3BlY3RvciB1c2VyIGludGVyZmFjZS4KKyAgICAgICAgVGhlc2Ug
Y2Fubm90IGJlIHBvcnRlZCBlaXRoZXIgYmVjYXVzZSB0aGV5IHdlcmUgc3BlY2lmaWMgdG8gdGhl
IFVJLCBvcgorICAgICAgICB0aGV5IHRlc3QgZmVhdHVyZXMgdGhhdCBubyBsb25nZXIgZXhpc3Qg
aW4gdGhlIFdlYiBJbnNwZWN0b3IuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYXVkaXRzL2F1ZGl0
cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMt
cGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9hdWRpdHMvYXVkaXRzLXRlc3QuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXNjcmlwdDEuanM6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXNjcmlwdDIuanM6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3M6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1nZXRF
dmVudExpc3RlbmVycy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1nZXRFdmVudExpc3RlbmVycy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYmlnLWFycmF5LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpZy1h
cnJheS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
Y2xlYXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtY2xlYXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1kaXJ4bWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWZpbHRlci10ZXN0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtY29sbGVj
dGlvbnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1z
dHlsZS13aGl0ZWxpc3QtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtZm9ybWF0LXRhYmxlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1mb3JtYXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXItZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb29raWUtcGFyc2VyLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2Nvb2tpZS1yZXNvdXJjZS1tYXRjaC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nvb2tpZS1yZXNvdXJjZS1tYXRjaC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jdXJsLWNvbW1hbmQtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jdXJsLWNvbW1hbmQuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZGF0YWJhc2UtdGFibGUtbmFtZS1leGNhcGluZy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RhdGFiYXNlLXRhYmxlLW5hbWUt
ZXhjYXBpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGF0YWdyaWQtYXV0
b3NpemUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kYXRhZ3Jp
ZC1hdXRvc2l6ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVha3BvaW50LW1hbmFnZXItbGlzdGVuZXJzLWNvdW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLWxpc3RlbmVy
cy1jb3VudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxs
c3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbnRl
bnQtcHJvdmlkZXJzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RlYnVnLWlubGluZWQtc2NyaXB0cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnLWlubGluZWQtc2NyaXB0cy5odG1sLWRpc2FibGVkOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1leHBhbmQtc2Nv
cGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1leHBhbmQtc2NvcGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItcHJvdG8tcHJvcGVydHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wcm90by1wcm9wZXJ0eS5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHQt
cHJlcHJvY2Vzc29yLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItc2NyaXB0LXByZXByb2Nlc3Nvci5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVuZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvZGlzYWJsZS1zY3JpcHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kaXNhYmxlLXNjcmlwdC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtw
b2ludHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZHluYW1p
Yy1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHByZXNzaW9u
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Vy
cm9yLWluLXdhdGNoLWV4cHJlc3Npb25zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtw
b2ludHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZmlsZS1z
eXN0ZW0tcHJvamVjdC1tYXBwaW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvZmlsZS1zeXN0ZW0tcHJvamVjdC1tYXBwaW5nLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2lu
dHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9s
aXZlLWVkaXQtYnJlYWtwb2ludHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvbGl2ZS1lZGl0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL211dGF0aW9uLW9ic2VydmVyLXN1c3BlbmQtd2hpbGUtcGF1c2VkLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbXV0YXRpb24t
b2JzZXJ2ZXItc3VzcGVuZC13aGlsZS1wYXVzZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvbmF2aWdhdG9yLXZpZXctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9uYXZpZ2F0b3Itdmlldy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92
aWRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L25ldHdvcmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb3BlcnRpZXMtc3BlY2lhbC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQt
bWFwcGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFj
dC1vdXRsaW5lLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRl
ci1icmVha3BvaW50cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9zY3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHQtc25pcHBldC1tb2RlbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2VsZWN0ZWQtY2FsbC1mcmFtZS1hZnRl
ci1mb3JtYXR0aW5nLXNvdXJjZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3NlbGVjdGVkLWNhbGwtZnJhbWUtYWZ0ZXItZm9ybWF0dGluZy1zb3Vy
Y2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0LWJyZWFr
cG9pbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9zZXQtYnJlYWtwb2ludC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtZnJhbWUtY291bnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUtY291bnQuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXAtdGhyb3VnaC1ldmVudC1s
aXN0ZW5lcnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zdGVwLXRocm91Z2gtZXZlbnQtbGlzdGVuZXJzLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWRpc3BsYXktbmFtZS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1j
b2RlLWRpc3BsYXktbmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci91aS1zb3VyY2UtY29kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJl
c3Npb25zLXBhbmVsLXN3aXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci93YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24tZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci93YXRjaC1leHByZXNzaW9u
cy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIveGhyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIveGhyLWJyZWFrcG9pbnRzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZG9tLXN0YXRpc3RpY3MuaHRtbC1kaXNhYmxlZDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL2JyYWNlLW1hdGNoZXItZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvYnJhY2UtbWF0Y2hlci5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvZWRpdG9yLXRlc3QuanM6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1iYXNpY3MtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXIt
YmFzaWNzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGln
aHRlci1jaHVuay1saW1pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VkaXRvci9oaWdobGlnaHRlci1jaHVuay1saW1pdC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWxvbmctbGlu
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXIt
cGFzdGUtaW4tY29tbWVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50Lmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci10ZXN0LmpzOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24tZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24uaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWJyYWNlLWhpZ2hsaWdo
dGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLWJyYWNlLWhpZ2hsaWdodGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1jaGFyLXRvLWNvb3JkaW5hdGVzLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWNoYXIt
dG8tY29vcmRpbmF0ZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9y
L3RleHQtZWRpdG9yLWZvcm1hdHRlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1mb3JtYXR0ZXIuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hsaWdodC1hcGktZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3It
aGlnaGxpZ2h0LWFwaS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3Iv
dGV4dC1lZGl0b3ItaGlnaGxpZ2h0LXRva2VuLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hsaWdodC10b2tlbi5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0
b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3ItaG9tZS1idXR0b24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1sb25nLWxpbmUt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1l
ZGl0b3ItbG9uZy1saW5lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1tb2RlbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1tb2RlbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItcmVtb3ZlLWNodW5rcy1mcm9tLWRvbS1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRv
ci1yZW1vdmUtY2h1bmtzLWZyb20tZG9tLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLXRvLXNlYXJj
aC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0
LWVkaXRvci1zZWxlY3Rpb24tdG8tc2VhcmNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNob3ctd2hpdGVzcGFjZS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1z
aG93LXdoaXRlc3BhY2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9y
L3RleHQtZWRpdG9yLXNtYXJ0LWJyYWNlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zbWFydC1icmFjZXMuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXRva2VuLWF0LXBvc2l0
aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLXRva2VuLWF0LXBvc2l0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10eXBlLW92ZXItZGVjb3JhdGlvbi1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10eXBl
LW92ZXItZGVjb3JhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0
b3IvdGV4dC1lZGl0b3ItdW5kby1yZWRvLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXVuZG8tcmVkby5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itd29yZC1qdW1wcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci13
b3JkLWp1bXBzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2Jy
ZWFkY3J1bWItdXBkYXRlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2VsZW1lbnRzL2JyZWFkY3J1bWItdXBkYXRlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy9kZWxldGUtZnJvbS1kb2N1bWVudC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2RlbGV0ZS1mcm9tLWRvY3VtZW50
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFj
dGlvbnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50
cy9lZGl0LWRvbS1hY3Rpb25zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1kZWxldGUtaW5saW5lLXN0
eWxlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRz
LWltZy10b29sdGlwLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZWxlbWVudHMvZWxlbWVudHMtaW1nLXRvb2x0aXAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQt
ZG9tYWluLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVu
dHMvZWxlbWVudHMtaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0
ZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
bGVtZW50cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1l
bnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24tb24tcmVmcmVzaC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVs
LXNlbGVjdGlvbi1vbi1yZWZyZXNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5l
bC14aHRtbC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC14aHRtbC1zdHJ1Y3R1cmUueGh0bWwtZGlzYWJs
ZWQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVy
LXNpZGViYXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVt
ZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFuay1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVycy1h
Ym91dC1ibGFuay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9l
eHBhbmQtcmVjdXJzaXZlbHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9lbGVtZW50cy9leHBhbmQtcmVjdXJzaXZlbHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZWxlbWVudHMvaGlkZS1zaG9ydGN1dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2hpZGUtc2hvcnRjdXQuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaWZyYW1lLWxvYWQtZXZlbnQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9pZnJhbWUtbG9h
ZC1ldmVudC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9pbnNl
cnQtbm9kZS1jb2xsYXBzZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1jb2xsYXBzZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9tb2RpZnktY2hhcmRhdGEtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9tb2RpZnktY2hhcmRh
dGEuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvbW92ZS1ub2Rl
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvbW92
ZS1ub2RlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL25vZGUt
eHBhdGgtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50
cy9ub2RlLXhwYXRoLnhodG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50
cy9yZW1vdmUtbm9kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2VsZW1lbnRzL3JlbW92ZS1ub2RlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2VsZW1lbnRzL3Jlc291cmNlcy9pZnJhbWUtbG9hZC1ldmVudC1pZnJhbWUtMS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxvYWQt
ZXZlbnQtaWZyYW1lLTIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVu
dHMvcmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL3VzZXItcHJvcGVydGllcy5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvc2V0LWh0bWwtdmlhLXJlc291cmNl
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvc2hh
ZG93LWRvbS1tb2RpZnktY2hhcmRhdGEtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy9zaGFkb3ctZG9tLW1vZGlmeS1jaGFyZGF0YS5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9zaGFkb3ctcm9vdC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3NoYWRvdy1yb290Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVkaXRz
LTItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy91
bmRvLWRvbS1lZGl0cy0yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1l
bnRzL3VuZG8tZG9tLWVkaXRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL3VwZGF0ZS1zaGFkb3dkb20uaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvdXNlci1wcm9w
ZXJ0aWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V2YWx1YXRlLWluLXBh
Z2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9ldmFsdWF0ZS1p
bi1wYWdlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtYXBpLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1hcGku
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWF1ZGl0cy1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1
ZGl0cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtY29uc29s
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtZXZhbC1jb250ZW50LXNjcmlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFs
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLWV2YWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWV2ZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLW5ldHdvcmstZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
bmV0d29yay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcGFuZWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZWxvYWQuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJl
c291cmNlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNpZGViYXItZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL3Jlc291cmNlcy9hYmUu
cG5nOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL3Jlc291cmNlcy9h
dWRpdHMtc3R5bGUxLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9yZXNvdXJjZXMvdGVzdC1zY3JpcHQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2ZpbGUtbWFwcGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2ZpbGUtbWFwcGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9maWxlLXN5
c3RlbS1tYXBwaW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZmlsZS1zeXN0ZW0tbWFwcGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9m
aWxlLXN5c3RlbS1wcm9qZWN0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24t
ZGlhbG9nLWZpbHRlcmluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9pbnNw
ZWN0b3ItYmFja2VuZC1jb21tYW5kcy1nZW5lcmF0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvaW5zcGVjdG9yLWJhY2tlbmQtY29tbWFuZHMtZ2VuZXJhdGlv
bi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9tYXAtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9tYXAuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvbmV0d29yay1zdGF0dXMtbm9uLWh0dHAtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9uZXR3b3JrLXN0YXR1cy1ub24taHR0cC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9jYW52YXMtcHJvZmlsZXItdGVzdC5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFz
LWhhcy11bmluc3RydW1lbnRlZC1jYW52YXNlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50
ZWQtY2FudmFzZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIv
Y2FudmFzMmQvY2FudmFzLXJlcGxheS1sb2ctZ3JpZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1yZXBsYXktbG9nLWdy
aWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQv
Y2FudmFzLXN0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXN0YWNrLXRyYWNlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLWFwaS1jaGFu
Z2VzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIv
Y2FudmFzMmQvY2FudmFzMmQtYXBpLWNoYW5nZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzMmQtZ3JhZGllbnQtY2FwdHVyaW5nLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFz
MmQvY2FudmFzMmQtZ3JhZGllbnQtY2FwdHVyaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLXByb2ZpbGVyLWNhcHR1cmluZy1i
YXNpY3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxl
ci9jYW52YXMyZC9jYW52YXMyZC1wcm9maWxlci1jYXB0dXJpbmctYmFzaWNzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNv
bi1kb20tZ3JvdXBzLWNoYW5nZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1kb20tZ3JvdXBzLWNoYW5n
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LWNvbXBhcmlzb24tZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWNvbXBhcmlzb24tZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29u
LXNob3ctYWxsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNob3ctYWxsLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93
LW5leHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tc2hvdy1uZXh0Lmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93bi1u
b2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tc2hv
d24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zb3J0aW5n
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1jb21wYXJpc29uLXNvcnRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1leHBhbnNpb24tcHJl
c2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtZXhwYW5zaW9uLXByZXNl
cnZlZC13aGVuLXNvcnRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93LWFsbC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFp
bm1lbnQtc2hvdy1hbGwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93LW5leHQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5t
ZW50LXNob3ctbmV4dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdo
ZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2
ZWQtd2hlbi1zb3J0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1l
bnQtc29ydGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmct
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LWRvbWluYXRvcnMtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1k
b21pbmF0b3JzLXNob3ctYWxsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctYWxsLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5h
dG9ycy1zaG93LW5leHQtYWN0dWFsLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctbmV4dC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9t
aW5hdG9ycy1zaG93LW5leHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3duLW5vZGUtY291bnQtcHJlc2VydmVk
LXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNvdW50LXByZXNl
cnZlZC13aGVuLXNvcnRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRv
cnMtc29ydGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXBy
b2ZpbGUtY3Jhc2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13
cmFwcGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtbG9hZGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1yZXZlYWwtaW4tZG9taW5hdG9ycy12
aWV3LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1yZXZlYWwtaW4tZG9taW5hdG9ycy12aWV3Lmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1leHBhbnNp
b24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1leHBhbnNpb24tcHJl
c2VydmVkLXdoZW4tc29ydGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktcmV0YWluZXJzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5
LXJldGFpbmVycy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1hbGwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1hbGwu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1zdW1tYXJ5LXNob3ctbmV4dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LW5leHQuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5
LXNob3ctcmFuZ2VzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3ctcmFuZ2VzLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93
bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hv
d24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmctZmllbGRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmct
ZmllbGRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLWluc3RhbmNlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0
aW5nLWluc3RhbmNlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanM6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvcmVzb3VyY2VzL2ltYWdlLmpwZWc6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL3NlbGVjdG9yLXByb2ZpbGVyLXVybC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL3NlbGVjdG9y
LXByb2ZpbGVyLXVybC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxl
ci93ZWJnbC93ZWJnbC1wcm9maWxlci1hcGktY2hhbmdlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWFwaS1j
aGFuZ2VzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL3dlYmds
L3dlYmdsLXByb2ZpbGVyLWdldC1lcnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3Byb2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWdldC1lcnJvci5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9ncmVzcy1iYXItZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9ncmVzcy1iYXIuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc25pcHBldC1zdG9yYWdlLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc25pcHBldC1zdG9yYWdlLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9jb21taXQtc2VsZWN0b3ItZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvY29tbWl0LXNlbGVjdG9yLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZl
LWVkaXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2VkaXQtaW5z
cGVjdG9yLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvZWRpdC1pbnNwZWN0b3Itc3R5bGVzaGVldC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9zdHlsZXMvZWRpdC12YWx1ZS13aXRoLXRyaW1tZWQtdXJsLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUt
d2l0aC10cmltbWVkLXVybC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvZm9yY2UtcHNldWRvLXN0YXRlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3Ivc3R5bGVzL2ZvcmNlLXBzZXVkby1zdGF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvaW5hY3RpdmUtcHJvcGVydGllcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9pbmFjdGl2ZS1wcm9wZXJ0aWVzLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9sYXp5LWNvbXB1dGVkLXN0
eWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2xh
enktY29tcHV0ZWQtc3R5bGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL21lZGlhLWVtdWxhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3Ivc3R5bGVzL21lZGlhLXF1ZXJpZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9zdHlsZXMvbWVkaWEtcXVlcmllcy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9zdHlsZXMvbWV0cmljcy1ib3gtc2l6aW5nLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL21ldHJpY3MtYm94LXNpemluZy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcGFzdGUtcHJvcGVydHkt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcGFzdGUt
cHJvcGVydHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3BlcmZv
cm0tdW5kby1wZXJmb3JtLW9mLW1lcmdhYmxlLWFjdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9wZXJmb3JtLXVuZG8tcGVyZm9ybS1vZi1tZXJn
YWJsZS1hY3Rpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3By
b3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3NlbGVjdG9yLWxp
bmUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Nob3ctdXNlci1h
Z2VudC1zdHlsZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9z
dHlsZXMvc2hvdy11c2VyLWFnZW50LXN0eWxlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLWFkZC1uZXctcnVsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLW5ldy1ydWxlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY2FuY2VsLWVkaXRpbmct
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LWNhbmNlbC1lZGl0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtY2hhbmdlLW5vZGUtd2hpbGUtZWRpdGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY2hhbmdlLW5vZGUtd2hpbGUtZWRp
dGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWNv
bW1pdC1lZGl0aW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1jb21taXQtZWRpdGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLWVkaXQtcHJvcGVydHktYWZ0ZXItaW52YWxpZC1ydWxlLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1l
ZGl0LXByb3BlcnR5LWFmdGVyLWludmFsaWQtcnVsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVybC1saW5r
aWZ5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy11cmwtbGlua2lmeS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvc3ZnLXN0eWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL3N2Zy1zdHlsZS54aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL3VwLWRvd24tbnVtZXJpY3MtYW5kLWNvbG9ycy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91cC1kb3duLW51bWVyaWNzLWFuZC1jb2xvcnMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtZHVyaW5nLWRv
bS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9z
dHlsZXMvdXBkYXRlcy1kdXJpbmctZG9tLXRyYXZlcnNhbC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvdXBkYXRlcy10aHJvdHRsZWQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdXBkYXRlcy10aHJvdHRsZWQuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VybC1jb2xvci1zd2F0Y2gtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdXJsLWNvbG9y
LXN3YXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdmFyaWFi
bGVzL2Nzcy12YXJpYWJsZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvdmFyaWFibGVzL2Nzcy12YXJpYWJsZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVmaXhlcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy92ZW5kb3ItcHJlZml4ZXMuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1jc3MtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWNzcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWh0bWwt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zeW50YXgtaGlnaGxp
Z2h0LWh0bWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3ludGF4LWhpZ2hs
aWdodC1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3Ivc3ludGF4LWhpZ2hsaWdodC1qYXZhc2NyaXB0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5Lmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3RhYmJlZC1wYW5lLW1heC10YWItd2lkdGgtY2FsY3VsYXRpb24tZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90YWJiZWQtcGFuZS1tYXgt
dGFiLXdpZHRoLWNhbGN1bGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3RhYmJlZC1wYW5lLXRhYnMtdG8tc2hvdy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL3RhYmJlZC1wYW5lLXRhYnMtdG8tc2hvdy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci90aW1lbGluZS1kZnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtY29hbGVzY2luZy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWNvYWxlc2NpbmcuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtZW51bS1z
dGFiaWxpdHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci91aXNvdXJjZWNvZGUtcmV2aXNpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci91c2VyLW1ldHJpY3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci91c2VyLW1ldHJpY3MuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvdXRpbGl0aWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvdXRpbGl0aWVzLWhpZ2hsaWdodC1yZXN1bHRzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdXRpbGl0aWVzLWhpZ2hsaWdodC1yZXN1bHRzLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3V0aWxpdGllcy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci92ZXJzaW9uLWNvbnRyb2xsZXItZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGluc3BlY3Rvci92ZXJzaW9uLWNvbnRyb2xsZXIuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivdmlldy1jc3MtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci92aWV3LWNzcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3ZpZXctZXZlbnRzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3dv
cmtzcGFjZS1tYXBwaW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3Ivd29ya3NwYWNlLW1hcHBpbmcuaHRtbDogUmVtb3ZlZC4KKwogMjAxNC0wMi0yMCAgR2VvZmZy
ZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1hdGguaW11bCBnaXZlcyB3
cm9uZyByZXN1bHRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1
ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkZmIyMjUwNzM3OGIwZmMzNTUyMGRkYjQ3Njk2MWI4ZjE3NDdj
ODhiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotVGVzdHMgYXVkaXQgcnVsZXMuICAg
ICAKLVBhZ2UgcmVsb2FkZWQuCi0gTmV0d29yayBVdGlsaXphdGlvbgotICAgIENvbWJpbmUgZXh0
ZXJuYWwgSmF2YVNjcmlwdCAoNCkKLSAgICAgVGhlcmUgYXJlIG11bHRpcGxlIHJlc291cmNlcyBz
ZXJ2ZWQgZnJvbSBzYW1lIGRvbWFpbi4gQ29uc2lkZXIgY29tYmluaW5nIHRoZW0gaW50byBhcyBm
ZXcgZmlsZXMgYXMgcG9zc2libGUuCi0gICAgICA0IEphdmFTY3JpcHQgcmVzb3VyY2VzIHNlcnZl
ZCBmcm9tIFtkb21haW5dLgotICAgIFNwZWNpZnkgaW1hZ2UgZGltZW5zaW9ucyAoMikKLSAgICAg
QSB3aWR0aCBhbmQgaGVpZ2h0IHNob3VsZCBiZSBzcGVjaWZpZWQgZm9yIGFsbCBpbWFnZXMgaW4g
b3JkZXIgdG8gc3BlZWQgdXAgcGFnZSBkaXNwbGF5LiBUaGUgZm9sbG93aW5nIGltYWdlKHMpIGFy
ZSBtaXNzaW5nIGEgd2lkdGggYW5kL29yIGhlaWdodDoKLSAgICAgICBmb28xLmpwZwotICAgICAg
IGZvbzIuanBnCi0gV2ViIFBhZ2UgUGVyZm9ybWFuY2UKLSAgICBPcHRpbWl6ZSB0aGUgb3JkZXIg
b2Ygc3R5bGVzIGFuZCBzY3JpcHRzICgyKQotICAgICBUaGUgZm9sbG93aW5nIGV4dGVybmFsIENT
UyBmaWxlcyB3ZXJlIGluY2x1ZGVkIGFmdGVyIGFuIGV4dGVybmFsIEphdmFTY3JpcHQgZmlsZSBp
biB0aGUgZG9jdW1lbnQgaGVhZC4gVG8gZW5zdXJlIENTUyBmaWxlcyBhcmUgZG93bmxvYWRlZCBp
biBwYXJhbGxlbCwgYWx3YXlzIGluY2x1ZGUgZXh0ZXJuYWwgQ1NTIGJlZm9yZSBleHRlcm5hbCBK
YXZhU2NyaXB0LgotICAgICAgIGF1ZGl0cy1zdHlsZTEuY3NzCi0gICAgICAxIGlubGluZSBzY3Jp
cHQgYmxvY2sgd2FzIGZvdW5kIGluIHRoZSBoZWFkIGJldHdlZW4gYW4gZXh0ZXJuYWwgQ1NTIGZp
bGUgYW5kIGFub3RoZXIgcmVzb3VyY2UuIFRvIGFsbG93IHBhcmFsbGVsIGRvd25sb2FkaW5nLCBt
b3ZlIHRoZSBpbmxpbmUgc2NyaXB0IGJlZm9yZSB0aGUgZXh0ZXJuYWwgQ1NTIGZpbGUsIG9yIGFm
dGVyIHRoZSBuZXh0IHJlc291cmNlLgotICAgIFB1dCBDU1MgaW4gdGhlIGRvY3VtZW50IGhlYWQg
KDIpCi0gICAgIENTUyBpbiB0aGUgZG9jdW1lbnQgYm9keSBhZHZlcnNlbHkgaW1wYWN0cyByZW5k
ZXJpbmcgcGVyZm9ybWFuY2UuCi0gICAgIDEgc3R5bGUgYmxvY2socykgaW4gdGhlIAotICAgICAg
YXVkaXRzLXBhbmVsLWZ1bmN0aW9uYWwuaHRtbAotICAgICAgYm9keSBzaG91bGQgYmUgbW92ZWQg
dG8gdGhlIGRvY3VtZW50IGhlYWQuCi0gICAgIExpbmsgbm9kZSAKLSAgICAgIGF1ZGl0cy1zdHls
ZTEuY3NzCi0gICAgICBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIGRvY3VtZW50IGhlYWQgaW4gCi0g
ICAgICBhdWRpdHMtcGFuZWwtZnVuY3Rpb25hbC5odG1sCi0gICAgUmVtb3ZlIHVudXNlZCBDU1Mg
cnVsZXMgKDQpCi0gICAgIDQgcnVsZXMgKDEwMCUpIG9mIENTUyBub3QgdXNlZCBieSB0aGUgY3Vy
cmVudCBwYWdlLgotICAgICAgSW5saW5lIGJsb2NrICMxOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRo
ZSBjdXJyZW50IHBhZ2UuCi0gICAgICAgLnVudXNlZAotICAgICAgIGF1ZGl0cy1zdHlsZTEuY3Nz
Ci0gICAgICA6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAgICAu
c29tZS1zdHlsZQotICAgICAgSW5saW5lIGJsb2NrICMyOiAxMDAlIGlzIG5vdCB1c2VkIGJ5IHRo
ZSBjdXJyZW50IHBhZ2UuCi0gICAgICAgLnZpb2xhdGlvbgotICAgICAgIGF1ZGl0cy1zdHlsZTEu
Y3NzCi0gICAgICA6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhlIGN1cnJlbnQgcGFnZS4KLSAgICAg
ICAuc29tZS1zdHlsZQotICAgIFVzZSBub3JtYWwgQ1NTIHByb3BlcnR5IG5hbWVzIGluc3RlYWQg
b2YgdmVuZG9yLXByZWZpeGVkIG9uZXMgKDEpCi0gICAgICBhdWRpdHMtcGFuZWwtZnVuY3Rpb25h
bC5odG1sCi0gICAgICAgLnZpb2xhdGlvbgotICAgICAgICItd2Via2l0LWJvcmRlci1yYWRpdXMi
IGlzIHVzZWQsIGJ1dCAiYm9yZGVyLXJhZGl1cyIgaXMgc3VwcG9ydGVkLgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFsLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1mdW5jdGlvbmFs
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMDY2MzYxNDY5MTExMTM2ZTdi
M2ZmNGFkZGE5MzI3YzMxMjYyYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtZnVu
Y3Rpb25hbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxl
PgotQG1lZGlhIGFsbCB7Ci0KLS8qIFRoaXMgaXMgYSBjb21tZW50IHRvIHVzZSBzb21lIHNwYWNl
IGJlZm9yZSB0aGUgdW51c2VkIHJ1bGUgKi8KLQotLnVudXNlZCB7Ci0gICAgY29sb3I6IGdyZWVu
OwotICAgIC13ZWJraXQtb3BhY2l0eTogMTsKLSAgICBvcGFjaXR5OiAxOwotfQotCi19Ci08L3N0
eWxlPgotPHNjcmlwdD4KLUpTT04gPSB7fTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJhdWRpdHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTwhLS0gVGhlc2Ugc2NyaXB0cyBh
cmUgbmVlZGVkIHRvIHJlc3VsdCBpbiBhIHZpb2xhdGlvbiBvZiB0aGUgbWF4IEpTIHJlc291cmNl
IGNvdW50IGZyb20gdGhlIHNhbWUgZG9tYWluIC0tPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9h
dWRpdHMtc2NyaXB0MS5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
InJlc291cmNlcy9hdWRpdHMtc3R5bGUxLmNzcyIgdHlwZT0idGV4dC9jc3MiPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9hdWRpdHMtc2NyaXB0Mi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFy
IHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHN0ZXAx
KTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5B
dWRpdFJ1bGVSZXN1bHQucmVzb3VyY2VEb21haW4gPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IHJldHVybiAiW2RvbWFpbl0iOwotICAgICAgICB9OwotCi0gICAgICAgIHZhciBsYXVuY2hlclZp
ZXcgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cy5fbGF1bmNoZXJWaWV3OwotICAgICAgICBs
YXVuY2hlclZpZXcuX3NlbGVjdEFsbENsaWNrZWQodHJ1ZSk7Ci0gICAgICAgIGxhdW5jaGVyVmll
dy5fYXVkaXRQcmVzZW50U3RhdGVFbGVtZW50LmNoZWNrZWQgPSB0cnVlOwotICAgICAgICBsYXVu
Y2hlclZpZXcuX2xhdW5jaEJ1dHRvbkNsaWNrZWQoKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0
LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29sbGVjdEF1ZGl0UmVzdWx0
cygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci1UZXN0cyBhdWRp
dCBydWxlcy4KLTxzdHlsZT4KLS52aW9sYXRpb24geyBjb2xvcjogcmVkOyAtd2Via2l0LWJvcmRl
ci1yYWRpdXM6IDNweDsgfQotPC9zdHlsZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
cmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Ci08aW1nIHNyYz0i
Zm9vMS5qcGciPgotPGltZyBzcmM9ImZvbzIuanBnIiB3aWR0aD0xMDA+Ci08aW1nIHNyYz0iZm9v
My5qcGciIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPgotPGltZyBzcmM9ImZvbzQuanBnIiBz
dHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweCI+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1h
Z2VzLWZ1bmN0aW9uYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0
cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25hbC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5YWE3YmZjYzM3NDI4MmQ5YmE3NWM1NDk5N2NmYWE1Njll
ZTA3YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9hdWRpdHMtcGFuZWwtbm9pbWFnZXMtZnVuY3Rpb25h
bC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UZXN0cyBhdWRp
dCBydWxlcyBvbiBhIHBhZ2Ugd2l0aG91dCBpbWFnZXMuCi1QYWdlIHJlbG9hZGVkLgotIE5ldHdv
cmsgVXRpbGl6YXRpb24KLSAgICBDb21iaW5lIGV4dGVybmFsIEphdmFTY3JpcHQgKDQpCi0gICAg
IFRoZXJlIGFyZSBtdWx0aXBsZSByZXNvdXJjZXMgc2VydmVkIGZyb20gc2FtZSBkb21haW4uIENv
bnNpZGVyIGNvbWJpbmluZyB0aGVtIGludG8gYXMgZmV3IGZpbGVzIGFzIHBvc3NpYmxlLgotICAg
ICAgNCBKYXZhU2NyaXB0IHJlc291cmNlcyBzZXJ2ZWQgZnJvbSBbZG9tYWluXS4KLSBXZWIgUGFn
ZSBQZXJmb3JtYW5jZQotICAgIE9wdGltaXplIHRoZSBvcmRlciBvZiBzdHlsZXMgYW5kIHNjcmlw
dHMgKDIpCi0gICAgIFRoZSBmb2xsb3dpbmcgZXh0ZXJuYWwgQ1NTIGZpbGVzIHdlcmUgaW5jbHVk
ZWQgYWZ0ZXIgYW4gZXh0ZXJuYWwgSmF2YVNjcmlwdCBmaWxlIGluIHRoZSBkb2N1bWVudCBoZWFk
LiBUbyBlbnN1cmUgQ1NTIGZpbGVzIGFyZSBkb3dubG9hZGVkIGluIHBhcmFsbGVsLCBhbHdheXMg
aW5jbHVkZSBleHRlcm5hbCBDU1MgYmVmb3JlIGV4dGVybmFsIEphdmFTY3JpcHQuCi0gICAgICAg
YXVkaXRzLXN0eWxlMS5jc3MKLSAgICAgIDEgaW5saW5lIHNjcmlwdCBibG9jayB3YXMgZm91bmQg
aW4gdGhlIGhlYWQgYmV0d2VlbiBhbiBleHRlcm5hbCBDU1MgZmlsZSBhbmQgYW5vdGhlciByZXNv
dXJjZS4gVG8gYWxsb3cgcGFyYWxsZWwgZG93bmxvYWRpbmcsIG1vdmUgdGhlIGlubGluZSBzY3Jp
cHQgYmVmb3JlIHRoZSBleHRlcm5hbCBDU1MgZmlsZSwgb3IgYWZ0ZXIgdGhlIG5leHQgcmVzb3Vy
Y2UuCi0gICAgUHV0IENTUyBpbiB0aGUgZG9jdW1lbnQgaGVhZCAoMikKLSAgICAgQ1NTIGluIHRo
ZSBkb2N1bWVudCBib2R5IGFkdmVyc2VseSBpbXBhY3RzIHJlbmRlcmluZyBwZXJmb3JtYW5jZS4K
LSAgICAgMSBzdHlsZSBibG9jayhzKSBpbiB0aGUgCi0gICAgICBhdWRpdHMtcGFuZWwtbm9pbWFn
ZXMtZnVuY3Rpb25hbC5odG1sCi0gICAgICBib2R5IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgZG9j
dW1lbnQgaGVhZC4KLSAgICAgTGluayBub2RlIAotICAgICAgYXVkaXRzLXN0eWxlMS5jc3MKLSAg
ICAgIHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBpbiAKLSAgICAgIGF1ZGl0
cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlvbmFsLmh0bWwKLSAgICBSZW1vdmUgdW51c2VkIENTUyBy
dWxlcyAoNCkKLSAgICAgNCBydWxlcyAoMTAwJSkgb2YgQ1NTIG5vdCB1c2VkIGJ5IHRoZSBjdXJy
ZW50IHBhZ2UuCi0gICAgICBJbmxpbmUgYmxvY2sgIzE6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhl
IGN1cnJlbnQgcGFnZS4KLSAgICAgICAudW51c2VkCi0gICAgICAgYXVkaXRzLXN0eWxlMS5jc3MK
LSAgICAgIDogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgotICAgICAgIC5z
b21lLXN0eWxlCi0gICAgICBJbmxpbmUgYmxvY2sgIzI6IDEwMCUgaXMgbm90IHVzZWQgYnkgdGhl
IGN1cnJlbnQgcGFnZS4KLSAgICAgICAudmlvbGF0aW9uCi0gICAgICAgYXVkaXRzLXN0eWxlMS5j
c3MKLSAgICAgIDogMTAwJSBpcyBub3QgdXNlZCBieSB0aGUgY3VycmVudCBwYWdlLgotICAgICAg
IC5zb21lLXN0eWxlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMv
YXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9hdWRpdHMvYXVkaXRzLXBhbmVsLW5vaW1hZ2VzLWZ1bmN0aW9uYWwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjM5NzE4OGRkNjNmNDA3ZjBhOGYzZTg5MGE3MzFjMjg1
MGRmZGEyZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy1wYW5lbC1ub2ltYWdlcy1mdW5jdGlv
bmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3
dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0u
dW51c2VkIHsKLSAgICBjb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdD4KLUpTT04g
PSB7fTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJhdWRpdHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci0KLTwhLS0gVGhlc2Ugc2NyaXB0cyBhcmUgbmVlZGVkIHRvIHJlc3VsdCBp
biBhIHZpb2xhdGlvbiBvZiB0aGUgbWF4IEpTIHJlc291cmNlIGNvdW50IGZyb20gdGhlIHNhbWUg
ZG9tYWluIC0tPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpdHMtc2NyaXB0MS5qcyI+PC9z
Y3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9hdWRpdHMtc3R5
bGUxLmNzcyIgdHlwZT0idGV4dC9jc3MiPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpdHMt
c2NyaXB0Mi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17
Ci0gICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQucmVzb3Vy
Y2VEb21haW4gPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHJldHVybiAiW2RvbWFpbl0iOwot
ICAgICAgICB9OwotCi0gICAgICAgIHZhciBsYXVuY2hlclZpZXcgPSBXZWJJbnNwZWN0b3IucGFu
ZWxzLmF1ZGl0cy5fbGF1bmNoZXJWaWV3OwotICAgICAgICBsYXVuY2hlclZpZXcuX3NlbGVjdEFs
bENsaWNrZWQodHJ1ZSk7Ci0gICAgICAgIGxhdW5jaGVyVmlldy5fYXVkaXRQcmVzZW50U3RhdGVF
bGVtZW50LmNoZWNrZWQgPSB0cnVlOwotICAgICAgICBsYXVuY2hlclZpZXcuX2xhdW5jaEJ1dHRv
bkNsaWNrZWQoKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3Bh
dGNoZXMoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29sbGVjdEF1ZGl0UmVzdWx0cygpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci1UZXN0cyBhdWRpdCBydWxlcyBvbiBhIHBhZ2Ugd2l0
aG91dCBpbWFnZXMuCi08c3R5bGU+Ci0udmlvbGF0aW9uIHsgY29sb3I6IHJlZDsgfQotPC9zdHls
ZT4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEu
Y3NzIiB0eXBlPSJ0ZXh0L2NzcyI+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRzL2F1ZGl0cy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2F1ZGl0cy9hdWRpdHMtdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzVkMTQwYmI3ZDhiMjcxNDZmOTYzMmEzNmE1YzMzMDY2ZmM4YzFhOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
YXVkaXRzL2F1ZGl0cy10ZXN0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotZnVu
Y3Rpb24gaW5pdGlhbGl6ZV9BdWRpdFRlc3RzKCkKLXsKLQotSW5zcGVjdG9yVGVzdC5jb2xsZWN0
QXVkaXRSZXN1bHRzID0gZnVuY3Rpb24oKQotewotICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuYXVk
aXRzLnNob3dSZXN1bHRzKFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRzLmF1ZGl0UmVzdWx0c1Ry
ZWVFbGVtZW50LmNoaWxkcmVuWzBdLnJlc3VsdHMpOwotICAgIHZhciBsaUVsZW1lbnRzID0gV2Vi
SW5zcGVjdG9yLnBhbmVscy5hdWRpdHMudmlzaWJsZVZpZXcuZWxlbWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgibGkiKTsKLSAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxpRWxlbWVudHMubGVuZ3Ro
OyArK2opIHsKLSAgICAgICAgaWYgKGxpRWxlbWVudHNbal0udHJlZUVsZW1lbnQpCi0gICAgICAg
ICAgICBsaUVsZW1lbnRzW2pdLnRyZWVFbGVtZW50LmV4cGFuZCgpOwotICAgIH0KLSAgICBJbnNw
ZWN0b3JUZXN0LmNvbGxlY3RUZXh0Q29udGVudChXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cy52
aXNpYmxlVmlldy5lbGVtZW50LCAwKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5jb2xsZWN0VGV4dENv
bnRlbnQgPSBmdW5jdGlvbihlbGVtZW50LCBsZXZlbCkKLXsKLSAgICB2YXIgbm9kZU91dHB1dCA9
ICIiOwotICAgIHZhciBjaGlsZCA9IGVsZW1lbnQuZmlyc3RDaGlsZDsKLQotICAgIHdoaWxlIChj
aGlsZCkgewotICAgICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7
Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxldmVsOyArK2kpCi0gICAgICAgICAg
ICAgICAgbm9kZU91dHB1dCArPSAiICI7Ci0gICAgICAgICAgICBub2RlT3V0cHV0ICs9IGNoaWxk
Lm5vZGVWYWx1ZS5yZXBsYWNlKCJcdTIwMEIiLCAiIik7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2hp
bGQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7Ci0gICAgICAgICAgICBpZiAobm9k
ZU91dHB1dCAhPT0gIiIpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dChub2RlT3V0cHV0KTsKLSAgICAgICAgICAgICAgICBub2RlT3V0cHV0ID0gIiI7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbGxlY3RUZXh0Q29udGVudChjaGls
ZCwgbGV2ZWwgKyAxKTsKLSAgICAgICAgfQotICAgICAgICBjaGlsZCA9IGNoaWxkLm5leHRTaWJs
aW5nOwotICAgIH0KLSAgICBpZiAobm9kZU91dHB1dCAhPT0gIiIpCi0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KG5vZGVPdXRwdXQpOwotfQotCi19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvYXVkaXRzL3Jlc291cmNlcy9hdWRpdHMtc2NyaXB0MS5qcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvcmVzb3VyY2VzL2F1ZGl0cy1zY3JpcHQxLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTkyMGFjNDcxMmM5MTQ3MWE1MjFjMjU0ZDQ3NzIx
ZGUwMGI4Y2E3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvcmVzb3VyY2VzL2F1ZGl0cy1zY3JpcHQxLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1mdW5jdGlvbiBmb28xKCkKLXsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9hdWRpdHMvcmVzb3VyY2VzL2F1ZGl0cy1z
Y3JpcHQyLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMvYXVkaXRz
LXNjcmlwdDIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4M2ZlMWZhODhlMmJj
MzY5MDNhMDRjMzA4ZWJlMTMzNjQxNDg0NTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9yZXNvdXJjZXMv
YXVkaXRzLXNjcmlwdDIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLWZ1bmN0aW9u
IGZvbzIoKQotewotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2F1ZGl0cy9y
ZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvYXVkaXRz
L3Jlc291cmNlcy9hdWRpdHMtc3R5bGUxLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzcxMTJhZDI1ZDE2NWUzZmYyNWZkZWZkMDE0ODU0NmJlY2JmM2EwNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
YXVkaXRzL3Jlc291cmNlcy9hdWRpdHMtc3R5bGUxLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotLnNvbWUtc3R5bGUgewotICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ci19Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1nZXRFdmVudExpc3RlbmVycy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWdldEV2
ZW50TGlzdGVuZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTc5MWM3MjVjY2JhMWIzZWYwYTk3OGNmNmZiYzZlZjk4MjI0NTkzYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29u
c29sZS9jb21tYW5kLWxpbmUtYXBpLWdldEV2ZW50TGlzdGVuZXJzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNjogU3lu
dGF4RXJyb3I6IEV4cGVjdGVkIGFuIGlkZW50aWZpZXIgYnV0IGZvdW5kICdKYXZhU2NyaXB0JyBp
bnN0ZWFkCi1UZXN0cyBnZXRFdmVudExpc3RlbmVycygpIG1ldGhvZCBvZiBjb25zb2xlIGNvbW1h
bmQgbGluZSBBUEkuCi0KLSAKLS0gaW5uZXIgLQota2V5ZG93bjogewotICAgIDA6IHsKLSAgICAg
ICAgbGlzdGVuZXI6IGZ1bmN0aW9uIGxpc3RlbmVyMSgpIHsgfQotICAgICAgICB1c2VDYXB0dXJl
OiBmYWxzZQotICAgIH0KLSAgICAxOiB7Ci0gICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiBsaXN0
ZW5lcjIoKSB7IH0KLSAgICAgICAgdXNlQ2FwdHVyZTogdHJ1ZQotICAgIH0KLX0KLS0gb3V0ZXIg
LQotbW91c2Vtb3ZlOiB7Ci0gICAgMDogewotICAgICAgICBsaXN0ZW5lcjogZnVuY3Rpb24gbGlz
dGVuZXIxKCkgeyB9Ci0gICAgICAgIHVzZUNhcHR1cmU6IGZhbHNlCi0gICAgfQotfQotbW91c2Vk
b3duOiB7Ci0gICAgMDogewotICAgICAgICBsaXN0ZW5lcjogZnVuY3Rpb24gbGlzdGVuZXIyKCkg
eyB9Ci0gICAgICAgIHVzZUNhcHR1cmU6IHRydWUKLSAgICB9Ci19Ci1rZXlkb3duOiB7Ci0gICAg
MDogewotICAgICAgICBsaXN0ZW5lcjogZnVuY3Rpb24gbGlzdGVuZXIyKCkgeyB9Ci0gICAgICAg
IHVzZUNhcHR1cmU6IHRydWUKLSAgICB9Ci19Ci0tIGF0dHJpYnV0ZSBldmVudCBsaXN0ZW5lcnMg
LQotY2xpY2s6IHsKLSAgICAwOiB7Ci0gICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiBvbmNsaWNr
KGV2ZW50KSB7IGFsZXJ0KDEpIH0KLSAgICAgICAgdXNlQ2FwdHVyZTogZmFsc2UKLSAgICB9Ci19
Ci1tb3VzZW92ZXI6IHsKLSAgICAwOiB7Ci0gICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiBvbm1v
dXNlb3ZlcihldmVudCkgeyBsaXN0ZW5lcjIoKSB9Ci0gICAgICAgIHVzZUNhcHR1cmU6IGZhbHNl
Ci0gICAgfQotfQotLSBlbXB0eSAtCi0tIGludmFsaWQgLQotLSBvYmplY3QgLQotdW5kZWZpbmVk
Ci0tIG51bGwgLQotdW5kZWZpbmVkCi0tIHVuZGVmaW5lZCAtCi11bmRlZmluZWQKLS0gd2luZG93
IC0KLXVuZGVmaW5lZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb21tYW5kLWxpbmUtYXBpLWdldEV2ZW50TGlzdGVuZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWdldEV2ZW50TGlzdGVuZXJzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2NTM5NGJhNGMwNWU2ODQ1MGEwMjc0Y2Qw
M2VlOGVmNDg1NTllMjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1nZXRF
dmVudExpc3RlbmVycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgdGVzdCA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJydW5U
ZXN0c0luUGFnZShnZXRFdmVudExpc3RlbmVycykiLCBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dC5iaW5kKEluc3BlY3RvclRlc3QpKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwIGlkPSJmb28iPgotVGVzdHMgZ2V0RXZlbnRMaXN0ZW5l
cnMoKSBtZXRob2Qgb2YgY29uc29sZSBjb21tYW5kIGxpbmUgQVBJLgotPC9wPgotPGRpdiBpZD0i
b3V0ZXIiPgotPGRpdiBpZD0iaW5uZXIiPgotPC9kaXY+Ci08L2Rpdj4KLTxkaXYgaWQ9ImVtcHR5
Ij4KLTwvZGl2PgotPGJ1dHRvbiBpZD0iYnV0dG9uIiBvbmNsaWNrPSJhbGVydCgxKSIgb25tb3Vz
ZW92ZXI9Imxpc3RlbmVyMigpIj48L2J1dHRvbj4KLTxidXR0b24gaWQ9ImludmFsaWQiIG9uY2xp
Y2s9IkludmFsaWQgSmF2YVNjcmlwdCI+PC9idXR0b24+Ci08c2NyaXB0PgotZnVuY3Rpb24gbGlz
dGVuZXIxKCkKLXsKLX0KLWZ1bmN0aW9uIGxpc3RlbmVyMigpCi17Ci19Ci0KLWRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbm5lciIpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBsaXN0ZW5l
cjEsIGZhbHNlKTsKLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbm5lciIpLmFkZEV2ZW50TGlz
dGVuZXIoImtleWRvd24iLCBsaXN0ZW5lcjIsIHRydWUpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dGVyIikuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgbGlzdGVuZXIxLCBmYWxz
ZSk7Ci1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXIiKS5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZWRvd24iLCBsaXN0ZW5lcjIsIHRydWUpOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91
dGVyIikuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGxpc3RlbmVyMiwgdHJ1ZSk7Ci0KLWZ1
bmN0aW9uIGR1bXBPYmplY3Qob2JqZWN0LCBwcmVmaXgpCi17Ci0gICAgcHJlZml4ID0gcHJlZml4
IHx8ICIiOwotICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHZhbHVlID0gb2Jq
ZWN0W2tleXNbaV1dOwotICAgICAgICB2YXIgbmFtZVdpdGhQcmVmaXggPSBwcmVmaXggKyBrZXlz
W2ldICsgIjogIjsKLSAgICAgICAgc3dpdGNoICh0eXBlb2YodmFsdWUpKSB7Ci0gICAgICAgIGNh
c2UgIm9iamVjdCI6Ci0gICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHsKLSAgICAgICAg
ICAgICAgICBvdXRwdXQobmFtZVdpdGhQcmVmaXggKyAibnVsbCIpOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgb3V0cHV0KG5hbWVXaXRoUHJlZml4
ICsgInsiKTsKLSAgICAgICAgICAgIGR1bXBPYmplY3QodmFsdWUsIHByZWZpeCArICIgICAgIikK
LSAgICAgICAgICAgIG91dHB1dChwcmVmaXggKyAifSIpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgInN0cmluZyI6Ci0gICAgICAgICAgICBvdXRwdXQobmFtZVdpdGhQcmVmaXgg
KyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgImZ1bmN0aW9uIjoKLSAgICAgICAgICAgIHZhciBib2R5ID0gdmFsdWUudG9TdHJpbmcoKS5y
ZXBsYWNlKC9bIFxuXSsvZ20sICIgIik7Ci0gICAgICAgICAgICBib2R5ID0gYm9keS5yZXBsYWNl
KC87IH0vZywgIiB9Iik7Ci0gICAgICAgICAgICBvdXRwdXQobmFtZVdpdGhQcmVmaXggKyBib2R5
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgb3V0
cHV0KG5hbWVXaXRoUHJlZml4ICsgU3RyaW5nKHZhbHVlKSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgIH0KLX0KLQotZnVuY3Rpb24gcnVuVGVzdHNJblBhZ2UoZ2V0RXZlbnRM
aXN0ZW5lcnMpCi17Ci0gICAgb3V0cHV0KCItIGlubmVyIC0iKTsKLSAgICBkdW1wT2JqZWN0KGdl
dEV2ZW50TGlzdGVuZXJzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbm5lciIpKSk7Ci0gICAg
b3V0cHV0KCItIG91dGVyIC0iKTsKLSAgICBkdW1wT2JqZWN0KGdldEV2ZW50TGlzdGVuZXJzKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRlciIpKSk7Ci0gICAgb3V0cHV0KCItIGF0dHJpYnV0
ZSBldmVudCBsaXN0ZW5lcnMgLSIpOwotICAgIGR1bXBPYmplY3QoZ2V0RXZlbnRMaXN0ZW5lcnMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpKSk7Ci0gICAgb3V0cHV0KCItIGVtcHR5
IC0iKTsKLSAgICBkdW1wT2JqZWN0KGdldEV2ZW50TGlzdGVuZXJzKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJlbXB0eSIpKSk7Ci0gICAgb3V0cHV0KCItIGludmFsaWQgLSIpOwotICAgIGR1bXBP
YmplY3QoZ2V0RXZlbnRMaXN0ZW5lcnMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImludmFsaWQi
KSkpOwotICAgIG91dHB1dCgiLSBvYmplY3QgLSIpOwotICAgIG91dHB1dCh0eXBlb2YgZ2V0RXZl
bnRMaXN0ZW5lcnMoe30pKTsKLSAgICBvdXRwdXQoIi0gbnVsbCAtIik7Ci0gICAgb3V0cHV0KHR5
cGVvZiBnZXRFdmVudExpc3RlbmVycyhudWxsKSk7Ci0gICAgb3V0cHV0KCItIHVuZGVmaW5lZCAt
Iik7Ci0gICAgb3V0cHV0KHR5cGVvZiBnZXRFdmVudExpc3RlbmVycyh1bmRlZmluZWQpKTsKLSAg
ICBvdXRwdXQoIi0gd2luZG93IC0iKTsKLSAgICBvdXRwdXQodHlwZW9mIGdldEV2ZW50TGlzdGVu
ZXJzKHdpbmRvdykpOwotfQotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYmlnLWFycmF5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYmlnLWFycmF5
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWYwMjljMmQ4NGU5
MGU1OGQwMTBlMzJiYzEyMzg1ODg3MmFlMDFhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWJpZy1hcnJheS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMDAgKzAsMCBAQAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiAwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEz
LDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMy
LDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwxMDAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
ODogLCwsLCwsLCwsCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IDAsMSwyLDMsNCw1LDYsNyw4
LDksLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsMTAwCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjk6IDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgs
MTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcs
MzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYs
NTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUs
NzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQs
OTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDEx
MCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0
LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgs
MTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1Miwx
NTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2
NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgx
LDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUs
MTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwy
MTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIy
NCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4
LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIs
MjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2Niwy
NjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4
MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1
LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDks
MzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywz
MjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMz
OCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUy
LDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYs
MzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwz
ODEsMzgyLDM4MywzODQsMzg1LDM4NiwzODcsMzg4LDM4OSwzOTAsMzkxLDM5MiwzOTMsMzk0LDM5
NSwzOTYsMzk3LDM5OCwzOTksNDAwLDQwMSw0MDIsNDAzLDQwNAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDQyOiAlTwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiAlTwotVGVzdHMgdGhhdCBjb25z
b2xlIGxvZ2dpbmcgZHVtcHMgbGFyZ2UgYXJyYXlzIHByb3Blcmx5LgotCi0KLQotQXJyYXlbMTAx
XQotICAgIFswIOKApiAxOV0KLSAgICAwOiAwCi0gICAgMTogMQotICAgIDI6IDIKLSAgICAzOiAz
Ci0gICAgNDogNAotICAgIDU6IDUKLSAgICA2OiA2Ci0gICAgNzogNwotICAgIDg6IDgKLSAgICA5
OiA5Ci0gICAgMTA6IDEwCi0gICAgMTE6IDExCi0gICAgMTI6IDEyCi0gICAgMTM6IDEzCi0gICAg
MTQ6IDE0Ci0gICAgMTU6IDE1Ci0gICAgMTY6IDE2Ci0gICAgMTc6IDE3Ci0gICAgMTg6IDE4Ci0g
ICAgMTk6IDE5Ci0gICAgWzIwIOKApiAzOV0KLSAgICAyMDogMjAKLSAgICAyMTogMjEKLSAgICAy
MjogMjIKLSAgICAyMzogMjMKLSAgICAyNDogMjQKLSAgICAyNTogMjUKLSAgICAyNjogMjYKLSAg
ICAyNzogMjcKLSAgICAyODogMjgKLSAgICAyOTogMjkKLSAgICAzMDogMzAKLSAgICAzMTogMzEK
LSAgICAzMjogMzIKLSAgICAzMzogMzMKLSAgICAzNDogMzQKLSAgICAzNTogMzUKLSAgICAzNjog
MzYKLSAgICAzNzogMzcKLSAgICAzODogMzgKLSAgICAzOTogMzkKLSAgICBbNDAg4oCmIDEwMF0K
LSAgICA0MDogNDAKLSAgICA0MTogNDEKLSAgICAxMDA6IDEwMAotICAgIGxlbmd0aDogMTAxCi0g
ICAgX19wcm90b19fOiBBcnJheVswXSBjb25zb2xlLWJpZy1hcnJheS5odG1sOjEzCi0KLUFycmF5
WzEwXQotICAgIDA6IHVuZGVmaW5lZAotICAgIDE6IHVuZGVmaW5lZAotICAgIDI6IHVuZGVmaW5l
ZAotICAgIDM6IHVuZGVmaW5lZAotICAgIDQ6IHVuZGVmaW5lZAotICAgIDU6IHVuZGVmaW5lZAot
ICAgIDY6IHVuZGVmaW5lZAotICAgIDc6IHVuZGVmaW5lZAotICAgIDg6IHVuZGVmaW5lZAotICAg
IDk6IHVuZGVmaW5lZAotICAgIGxlbmd0aDogMTAKLSAgICBfX3Byb3RvX186IEFycmF5WzBdIGNv
bnNvbGUtYmlnLWFycmF5Lmh0bWw6MTgKLQotQXJyYXlbMTAxXQotICAgIDA6IDAKLSAgICAxOiAx
Ci0gICAgMjogMgotICAgIDM6IDMKLSAgICA0OiA0Ci0gICAgNTogNQotICAgIDY6IDYKLSAgICA3
OiA3Ci0gICAgODogOAotICAgIDk6IDkKLSAgICAxMDA6IDEwMAotICAgIGxlbmd0aDogMTAxCi0g
ICAgX19wcm90b19fOiBBcnJheVswXSBjb25zb2xlLWJpZy1hcnJheS5odG1sOjI0Ci0KLUFycmF5
WzQwNV0KLSAgICBbMCDigKYgMzk5XQotICAgIFswIOKApiAxOV0KLSAgICBbMjAg4oCmIDM5XQot
ICAgIFs0MCDigKYgNTldCi0gICAgWzYwIOKApiA3OV0KLSAgICBbODAg4oCmIDk5XQotICAgIFsx
MDAg4oCmIDExOV0KLSAgICBbMTIwIOKApiAxMzldCi0gICAgWzE0MCDigKYgMTU5XQotICAgIFsx
NjAg4oCmIDE3OV0KLSAgICBbMTgwIOKApiAxOTldCi0gICAgWzIwMCDigKYgMjE5XQotICAgIFsy
MjAg4oCmIDIzOV0KLSAgICBbMjQwIOKApiAyNTldCi0gICAgWzI2MCDigKYgMjc5XQotICAgIFsy
ODAg4oCmIDI5OV0KLSAgICBbMzAwIOKApiAzMTldCi0gICAgWzMyMCDigKYgMzM5XQotICAgIFsz
NDAg4oCmIDM1OV0KLSAgICBbMzYwIOKApiAzNzldCi0gICAgWzM4MCDigKYgMzk5XQotICAgIFs0
MDAg4oCmIDQwNF0KLSAgICA0MDA6IDQwMAotICAgIDQwMTogNDAxCi0gICAgNDAyOiA0MDIKLSAg
ICA0MDM6IDQwMwotICAgIDQwNDogNDA0Ci0gICAgbGVuZ3RoOiA0MDUKLSAgICBfX3Byb3RvX186
IEFycmF5WzBdIGNvbnNvbGUtYmlnLWFycmF5Lmh0bWw6MjkKLQotQXJyYXlbMTI0XQotICAgIDA6
IDAKLSAgICAxOiAxCi0gICAgMjogMgotICAgIDM6IDMKLSAgICA0OiA0Ci0gICAgNTogNQotICAg
IDY6IDYKLSAgICA3OiA3Ci0gICAgODogOAotICAgIDk6IDkKLSAgICAxMjM6IDEyMwotICAgIC1J
bmZpbml0eTogLUluZmluaXR5Ci0gICAgMy4xNDogMy4xNAotICAgIDQyOTQ5NjcyOTU6IDQyOTQ5
NjcyOTUKLSAgICA0Mjk0OTY3Mjk2OiA0Mjk0OTY3Mjk2Ci0gICAgSW5maW5pdHk6IEluZmluaXR5
Ci0gICAgLTEyMzogLTEyMwotICAgIE5hTjogTmFOCi0gICAgbGVuZ3RoOiAxMjQKLSAgICBfX3By
b3RvX186IEFycmF5WzBdIGNvbnNvbGUtYmlnLWFycmF5Lmh0bWw6NDIKLQotQXJyYXlbNDI5NDk2
NzI5NV0KLSAgICBbMCDigKYgMTldCi0gICAgMDogMAotICAgIDE6IDEKLSAgICAyOiAyCi0gICAg
MzogMwotICAgIDQ6IDQKLSAgICA1OiA1Ci0gICAgNjogNgotICAgIDc6IDcKLSAgICA4OiA4Ci0g
ICAgOTogOQotICAgIDEwOiAxMAotICAgIDExOiAxMQotICAgIDEyOiAxMgotICAgIDEzOiAxMwot
ICAgIDE0OiAxNAotICAgIDE1OiAxNQotICAgIDE2OiAxNgotICAgIDE3OiAxNwotICAgIDE4OiAx
OAotICAgIDE5OiAxOQotICAgIFsyMCDigKYgODM4ODYwOF0KLSAgICAyMDogMjAKLSAgICAzMjog
MzIKLSAgICA2NDogNjQKLSAgICAxMjg6IDEyOAotICAgIDI1NjogMjU2Ci0gICAgNTEyOiA1MTIK
LSAgICAxMDI0OiAxMDI0Ci0gICAgMjA0ODogMjA0OAotICAgIDQwOTY6IDQwOTYKLSAgICA4MTky
OiA4MTkyCi0gICAgMTYzODQ6IDE2Mzg0Ci0gICAgMzI3Njg6IDMyNzY4Ci0gICAgNjU1MzY6IDY1
NTM2Ci0gICAgMTMxMDcyOiAxMzEwNzIKLSAgICAyNjIxNDQ6IDI2MjE0NAotICAgIDUyNDI4ODog
NTI0Mjg4Ci0gICAgMTA0ODU3NjogMTA0ODU3NgotICAgIDIwOTcxNTI6IDIwOTcxNTIKLSAgICA0
MTk0MzA0OiA0MTk0MzA0Ci0gICAgODM4ODYwODogODM4ODYwOAotICAgIFsxNjc3NzIxNiDigKYg
NDI5NDk2NzI5NF0KLSAgICAxNjc3NzIxNjogMTY3NzcyMTYKLSAgICAzMzU1NDQzMjogMzM1NTQ0
MzIKLSAgICA2NzEwODg2NDogNjcxMDg4NjQKLSAgICAxMzQyMTc3Mjg6IDEzNDIxNzcyOAotICAg
IDI2ODQzNTQ1NjogMjY4NDM1NDU2Ci0gICAgNTM2ODcwOTEyOiA1MzY4NzA5MTIKLSAgICAxMDcz
NzQxODI0OiAxMDczNzQxODI0Ci0gICAgMjE0NzQ4MzY0ODogMjE0NzQ4MzY0OAotICAgIDQyOTQ5
NjcyOTQ6IDQyOTQ5NjcyOTQKLSAgICA0Mjk0OTY3Mjk2OiA0Mjk0OTY3Mjk2Ci0gICAgODU4OTkz
NDU5MjogODU4OTkzNDU5MgotICAgIGxlbmd0aDogNDI5NDk2NzI5NQotICAgIF9fcHJvdG9fXzog
QXJyYXlbMF0gY29uc29sZS1iaWctYXJyYXkuaHRtbDo1MgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpZy1hcnJheS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1iaWctYXJyYXkuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDYxNGQ4NTAwNWQyZjQ2OGNkY2YzYzZmM2QxNWI2OTE1ZmY0ZjRh
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWJpZy1hcnJheS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTE3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIHZhciBhID0gW107Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0MjsgKytpKQotICAgICAgICBhW2ldID0gaTsKLSAgICBh
WzEwMF0gPSAxMDA7Ci0gICAgY29uc29sZS5kaXIoYSk7Ci0KLSAgICB2YXIgYiA9IFtdOwotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkKLSAgICAgIGJbaV0gPSB1bmRlZmluZWQ7Ci0g
ICAgY29uc29sZS5kaXIoYik7Ci0KLSAgICB2YXIgYyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTA7ICsraSkKLSAgICAgICAgY1tpXSA9IGk7Ci0gICAgY1sxMDBdID0gMTAwOwotICAg
IGNvbnNvbGUuZGlyKGMpOwotCi0gICAgdmFyIGQgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDQwNTsgKytpKQotICAgICAgZFtpXSA9IGk7Ci0gICAgY29uc29sZS5kaXIoZCk7Ci0KLSAg
ICB2YXIgZSA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkKLSAgICAgICAg
ZVtpXSA9IGk7Ci0gICAgZVsxMjNdID0gMTIzOwotICAgIGVbLTEyM10gPSAtMTIzOwotICAgIGVb
My4xNF0gPSAzLjE0OwotICAgIGVbNDI5NDk2NzI5NV0gPSA0Mjk0OTY3Mjk1OwotICAgIGVbNDI5
NDk2NzI5Nl0gPSA0Mjk0OTY3Mjk2OwotICAgIGVbSW5maW5pdHldID0gSW5maW5pdHk7Ci0gICAg
ZVstSW5maW5pdHldID0gLUluZmluaXR5OwotICAgIGVbTmFOXSA9IE5hTjsKLSAgICBjb25zb2xl
LmxvZygiJU8iLCBlKTsKLQotICAgIHZhciBmID0gW107Ci0gICAgZls0Mjk0OTY3Mjk0XSA9IDQy
OTQ5NjcyOTQ7Ci0gICAgZm9yICh2YXIgaSA9IDIwOyBpID49IDA7IGkgLT0gMikKLSAgICAgICAg
ZltpXSA9IGk7Ci0gICAgZm9yICh2YXIgaSA9IDIsIG4gPSAzMzsgbi0tOyBpICo9IDIpCi0gICAg
ICAgIGZbaV0gPSBpOwotICAgIGZvciAodmFyIGkgPSAxOyBpIDwgMjA7IGkgKz0gMikKLSAgICAg
ICAgZltpXSA9IGk7Ci0gICAgY29uc29sZS5sb2coIiVPIiwgZikKLQotICAgIHJ1blRlc3QoKTsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLkFycmF5R3JvdXBpbmdU
cmVlRWxlbWVudC5fYnVja2V0VGhyZXNob2xkID0gMjA7Ci0KLSAgICB2YXIgbWVzc2FnZXMgPSBX
ZWJJbnNwZWN0b3IuY29uc29sZS5tZXNzYWdlczsKLSAgICB2YXIgc2VjdGlvbnMgPSBbXTsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZh
ciBlbGVtZW50ID0gbWVzc2FnZXNbaV0udG9NZXNzYWdlRWxlbWVudCgpOwotICAgICAgICB2YXIg
bm9kZSA9IGVsZW1lbnQudHJhdmVyc2VOZXh0Tm9kZShlbGVtZW50KTsKLSAgICAgICAgd2hpbGUg
KG5vZGUpIHsKLSAgICAgICAgICAgIGlmIChub2RlLl9zZWN0aW9uKSB7Ci0gICAgICAgICAgICAg
ICAgc2VjdGlvbnMucHVzaChub2RlLl9zZWN0aW9uKTsKLSAgICAgICAgICAgICAgICBtZXNzYWdl
c1tpXS5zZWN0aW9uID0gbm9kZS5fc2VjdGlvbjsKLSAgICAgICAgICAgICAgICBub2RlLl9zZWN0
aW9uLmV4cGFuZGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5vZGUgPSBu
b2RlLnRyYXZlcnNlTmV4dE5vZGUoZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkFycmF5R3JvdXBpbmdUcmVlRWxl
bWVudC5wcm90b3R5cGUsICJvbnBvcHVsYXRlIiwgcG9wdWxhdGVDYWxsZWQsIHRydWUpOwotICAg
IHZhciBwb3B1bGF0ZWQgPSBmYWxzZTsKLSAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxlZCgpCi0g
ICAgewotICAgICAgICBwb3B1bGF0ZWQgPSB0cnVlOwotICAgIH0KLQotICAgIEluc3BlY3RvclRl
c3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhleHBhbmRSZWN1cnNpdmVseSk7Ci0KLSAgICBm
dW5jdGlvbiBleHBhbmRSZWN1cnNpdmVseSgpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IHNlY3Rpb25zW2ldLnByb3BlcnRpZXNUcmVlT3V0bGluZS5jaGlsZHJlbi5sZW5ndGg7
ICsraikgewotICAgICAgICAgICAgICAgIGZvciAodmFyIHRyZWVFbGVtZW50ID0gc2VjdGlvbnNb
aV0ucHJvcGVydGllc1RyZWVPdXRsaW5lLmNoaWxkcmVuW2pdOyB0cmVlRWxlbWVudDsgdHJlZUVs
ZW1lbnQgPSB0cmVlRWxlbWVudC50cmF2ZXJzZU5leHRUcmVlRWxlbWVudChmYWxzZSwgbnVsbCwg
ZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5saXN0SXRlbUVs
ZW1lbnQudGV4dENvbnRlbnQuaW5kZXhPZigiX19wcm90b19fIikgPT09IC0xKQotICAgICAgICAg
ICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuZXhwYW5kKCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChwb3B1bGF0ZWQpCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoY29tcGxldGVUZXN0
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRp
bmdEaXNwYXRjaGVzKGV4cGFuZFJlY3Vyc2l2ZWx5KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBj
b21wbGV0ZVRlc3QoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSW5z
cGVjdG9yVGVzdC50ZXh0Q29udGVudFdpdGhMaW5lQnJlYWtzKFdlYkluc3BlY3Rvci5jb25zb2xl
Vmlldy5tZXNzYWdlc0VsZW1lbnQpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9u
bG9hZCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xlIGxvZ2dpbmcgZHVtcHMgbGFyZ2UgYXJy
YXlzIHByb3Blcmx5LgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWNsZWFyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY2xlYXItZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmJjODYzMDJlZGJiNmFmMTdjNWEzYTNmOWM5
YjUxNzgzMzk5MjY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY2xlYXItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDk6IG9uZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiB0d28KLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAxMTogdGhyZWUKLVRlc3RzIHRoYXQgY29uc29sZSBpcyBjbGVhcmVkIHVwb24gcmVxdWVz
dENsZWFyTWVzc2FnZXMgY2FsbC4KLQotPT09IEJlZm9yZSBjbGVhciA9PT0KLW9uZSBjb25zb2xl
LWNsZWFyLmh0bWw6OQotdHdvIGNvbnNvbGUtY2xlYXIuaHRtbDoxMAotdGhyZWUgY29uc29sZS1j
bGVhci5odG1sOjExCi09PT0gQWZ0ZXIgY2xlYXIgPT09Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY2xlYXIuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtY2xlYXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTVlYzZmMDA1ZjhiN2U1NzBhMGM4OTE1MGZkZGRmZTlhOGM1MmY3My4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWNsZWFyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LQotZnVuY3Rpb24gbG9nKCkgewotICAgIC8vIEZpbGwgY29uc29sZS4KLSAgICBjb25zb2xlLmxv
Zygib25lIik7Ci0gICAgY29uc29sZS5sb2coInR3byIpOwotICAgIGNvbnNvbGUubG9nKCJ0aHJl
ZSIpOwotfQotCi1sb2coKTsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiPT09IEJlZm9yZSBjbGVhciA9PT0iKTsgCi0gICAgSW5zcGVjdG9yVGVz
dC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7Ci0KLSAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5yZXF1
ZXN0Q2xlYXJNZXNzYWdlcygpOwotICAgIAotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQWZ0ZXIgY2xlYXIgPT09Iik7
IAotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5y
dW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGNhbGxiYWNrKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xl
IGlzIGNsZWFyZWQgdXBvbiByZXF1ZXN0Q2xlYXJNZXNzYWdlcyBjYWxsLgotPC9wPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpcnhtbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDJiYTc4NmI2ODE0NWZiNDA4ZGVkMTUwZGUwM2FjYmZmY2FlZmUzYzkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1kaXJ4bWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTMgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBbb2JqZWN0IEhUTUxEb2N1bWVu
dF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogW29iamVjdCBEb2N1bWVudEZyYWdtZW50XQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiBbb2JqZWN0IEhUTUxQYXJhZ3JhcGhFbGVtZW50XQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBbb2JqZWN0IEhUTUxQYXJhZ3JhcGhFbGVtZW50XQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBbb2JqZWN0IEhUTUxEb2N1bWVudF0sW29iamVjdCBE
b2N1bWVudEZyYWdtZW50XSxbb2JqZWN0IEhUTUxTcGFuRWxlbWVudF0KLVRlc3RzIHRoYXQgY29u
c29sZSBsb2dnaW5nIGR1bXBzIHByb3BlciBtZXNzYWdlcy4KLQotI2RvY3VtZW50IGNvbnNvbGUt
ZGlyeG1sLmh0bWw6MTIKLSNkb2N1bWVudC1mcmFnbWVudCBjb25zb2xlLWRpcnhtbC5odG1sOjEz
Ci08cD48L3A+IGNvbnNvbGUtZGlyeG1sLmh0bWw6MTQKLVtwXSBjb25zb2xlLWRpcnhtbC5odG1s
OjE1Ci1bI2RvY3VtZW50LCAjZG9jdW1lbnQtZnJhZ21lbnQsIDxzcGFuPjwvc3Bhbj5dIGNvbnNv
bGUtZGlyeG1sLmh0bWw6MTYKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1kaXJ4bWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtZGlyeG1sLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjMDQy
Yjg0YmYxOWM3YzczNWJlZTEyMDg3NDQxMDUyNzVmZjIzYzguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1kaXJ4bWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBs
b2dUb0NvbnNvbGUoKQotewotICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKTsKLSAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJwIikpOwotCi0gICAgY29uc29sZS5kaXJ4bWwoZG9jdW1lbnQpOwotICAgIGNvbnNv
bGUuZGlyeG1sKGZyYWdtZW50KTsKLSAgICBjb25zb2xlLmRpcnhtbChmcmFnbWVudC5maXJzdENo
aWxkKTsKLSAgICBjb25zb2xlLmxvZyhbZnJhZ21lbnQuZmlyc3RDaGlsZF0pOwotICAgIGNvbnNv
bGUuZGlyeG1sKFtkb2N1bWVudCwgZnJhZ21lbnQsIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKV0pOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJsb2dUb0NvbnNvbGUoKSIpOwotICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQ
ZW5kaW5nRGlzcGF0Y2hlcyhjYWxsYmFjayk7Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xl
IGxvZ2dpbmcgZHVtcHMgcHJvcGVyIG1lc3NhZ2VzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZpbHRl
ci10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtZmlsdGVyLXRlc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1NzJhNjM5ZGJiNmJhMjIwZTA5MjUxNTNlZjJjYWRlNWZhZmFkZTcwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZmlsdGVyLXRlc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTUyICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAwdG9wR3JvdXAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAzOiAxdG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAy
dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAzdG9wR3JvdXAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA5OiA0dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiA1dG9wR3Jv
dXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiA2dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAzOiA3dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiA4dG9wR3JvdXAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAzOiA5dG9wR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5
OiAxMG91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAxMW91dGVyR3JvdXAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA5OiAxMm91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzOiAxM291dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAxNG91dGVyR3JvdXAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAxNW91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA5OiAxNm91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAxN291dGVyR3Jv
dXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAxOG91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAzOiAxOW91dGVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAyMGlubmVy
R3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAyMWlubmVyR3JvdXAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA5OiAyMmlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAyM2lu
bmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAyNGlubmVyR3JvdXAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAzOiAyNWlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAy
NmlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiAyN2lubmVyR3JvdXAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA5OiAyOGlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAz
OiAyOWlubmVyR3JvdXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOTogZW5kCi1UZXN0cyB0aGF0
IGNvbnNvbGUgY2FuIGZpbHRlciBtZXNzYWdlcyBieSBzb3VyY2UuCi0KLQotUnVubmluZzogYmVm
b3JlRmlsdGVyCi1iZWZvcmVGaWx0ZXIKLTB0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0
bWw6OQotMXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotMnRvcEdyb3VwIGNvbnNvbGUtZmlsdGVy
LXRlc3QuaHRtbDo5Ci0zdG9wR3JvdXAgbG9nLXNvdXJjZS5qczozCi00dG9wR3JvdXAgY29uc29s
ZS1maWx0ZXItdGVzdC5odG1sOjkKLTV0b3BHcm91cCBsb2ctc291cmNlLmpzOjMKLTZ0b3BHcm91
cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotN3RvcEdyb3VwIGxvZy1zb3VyY2UuanM6Mwot
OHRvcEdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci05dG9wR3JvdXAgbG9nLXNvdXJj
ZS5qczozCi0+b3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MjIKLSAgMTBvdXRl
ckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gIDExb3V0ZXJHcm91cCBsb2ctc291
cmNlLmpzOjMKLSAgMTJvdXRlckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gIDEz
b3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTRvdXRlckdyb3VwIGNvbnNvbGUtZmlsdGVy
LXRlc3QuaHRtbDo5Ci0gIDE1b3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTZvdXRlckdy
b3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gIDE3b3V0ZXJHcm91cCBsb2ctc291cmNl
LmpzOjMKLSAgMThvdXRlckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gIDE5b3V0
ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgPmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVz
dC5odG1sOjI5Ci0gICAgMjBpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0g
ICAgMjFpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAgIDIyaW5uZXJHcm91cCBjb25zb2xl
LWZpbHRlci10ZXN0Lmh0bWw6OQotICAgIDIzaW5uZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAg
ICAyNGlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgICAyNWlubmVyR3Jv
dXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjZpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3Qu
aHRtbDo5Ci0gICAgMjdpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAgIDI4aW5uZXJHcm91
cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotICAgIDI5aW5uZXJHcm91cCBsb2ctc291cmNl
LmpzOjMKLWVuZCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MzkKLQotUnVubmluZzogYWRkVVJM
MUZpbHRlcgotMXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotM3RvcEdyb3VwIGxvZy1zb3VyY2Uu
anM6MwotNXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotN3RvcEdyb3VwIGxvZy1zb3VyY2UuanM6
MwotOXRvcEdyb3VwIGxvZy1zb3VyY2UuanM6MwotPm91dGVyR3JvdXAgY29uc29sZS1maWx0ZXIt
dGVzdC5odG1sOjIyCi0gIDExb3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTNvdXRlckdy
b3VwIGxvZy1zb3VyY2UuanM6MwotICAxNW91dGVyR3JvdXAgbG9nLXNvdXJjZS5qczozCi0gIDE3
b3V0ZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgMTlvdXRlckdyb3VwIGxvZy1zb3VyY2UuanM6
MwotICA+aW5uZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MjkKLSAgICAyMWlubmVy
R3JvdXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjNpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6Mwot
ICAgIDI1aW5uZXJHcm91cCBsb2ctc291cmNlLmpzOjMKLSAgICAyN2lubmVyR3JvdXAgbG9nLXNv
dXJjZS5qczozCi0gICAgMjlpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotCi1SdW5uaW5nOiBh
ZGRVUkwyRmlsdGVyCi0+b3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MjIKLSAg
PmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjI5Ci0KLVJ1bm5pbmc6IHJlbW92
ZVVSTDFGaWx0ZXIKLTB0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotMnRvcEdy
b3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci00dG9wR3JvdXAgY29uc29sZS1maWx0ZXIt
dGVzdC5odG1sOjkKLTZ0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotOHRvcEdy
b3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0+b3V0ZXJHcm91cCBjb25zb2xlLWZpbHRl
ci10ZXN0Lmh0bWw6MjIKLSAgPmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjI5
Ci0gICAgMjBpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjJpbm5l
ckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjRpbm5lckdyb3VwIGNvbnNv
bGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjZpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRl
c3QuaHRtbDo5Ci0gICAgMjhpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0g
IDEwb3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotICAxMm91dGVyR3JvdXAg
Y29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgMTRvdXRlckdyb3VwIGNvbnNvbGUtZmlsdGVy
LXRlc3QuaHRtbDo5Ci0gIDE2b3V0ZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQot
ICAxOG91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLWVuZCBjb25zb2xlLWZp
bHRlci10ZXN0Lmh0bWw6MzkKLQotUnVubmluZzogcmVzdG9yZVVSTDFGaWx0ZXIKLT5vdXRlckdy
b3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDoyMgotICA+aW5uZXJHcm91cCBjb25zb2xlLWZp
bHRlci10ZXN0Lmh0bWw6MjkKLQotUnVubmluZzogcmVtb3ZlQWxsRmlsdGVycwotMHRvcEdyb3Vw
IGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci0xdG9wR3JvdXAgbG9nLXNvdXJjZS5qczozCi0y
dG9wR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLTN0b3BHcm91cCBsb2ctc291cmNl
LmpzOjMKLTR0b3BHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotNXRvcEdyb3VwIGxv
Zy1zb3VyY2UuanM6MwotNnRvcEdyb3VwIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbDo5Ci03dG9w
R3JvdXAgbG9nLXNvdXJjZS5qczozCi04dG9wR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1s
OjkKLTl0b3BHcm91cCBsb2ctc291cmNlLmpzOjMKLT5vdXRlckdyb3VwIGNvbnNvbGUtZmlsdGVy
LXRlc3QuaHRtbDoyMgotICA+aW5uZXJHcm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6MjkK
LSAgICAyMGlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgICAyMWlubmVy
R3JvdXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjJpbm5lckdyb3VwIGNvbnNvbGUtZmlsdGVyLXRl
c3QuaHRtbDo5Ci0gICAgMjNpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAgIDI0aW5uZXJH
cm91cCBjb25zb2xlLWZpbHRlci10ZXN0Lmh0bWw6OQotICAgIDI1aW5uZXJHcm91cCBsb2ctc291
cmNlLmpzOjMKLSAgICAyNmlubmVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAg
ICAyN2lubmVyR3JvdXAgbG9nLXNvdXJjZS5qczozCi0gICAgMjhpbm5lckdyb3VwIGNvbnNvbGUt
ZmlsdGVyLXRlc3QuaHRtbDo5Ci0gICAgMjlpbm5lckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAx
MG91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgMTFvdXRlckdyb3VwIGxv
Zy1zb3VyY2UuanM6MwotICAxMm91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkK
LSAgMTNvdXRlckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAxNG91dGVyR3JvdXAgY29uc29sZS1m
aWx0ZXItdGVzdC5odG1sOjkKLSAgMTVvdXRlckdyb3VwIGxvZy1zb3VyY2UuanM6MwotICAxNm91
dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAgMTdvdXRlckdyb3VwIGxvZy1z
b3VyY2UuanM6MwotICAxOG91dGVyR3JvdXAgY29uc29sZS1maWx0ZXItdGVzdC5odG1sOjkKLSAg
MTlvdXRlckdyb3VwIGxvZy1zb3VyY2UuanM6MwotZW5kIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRt
bDozOQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWZpbHRlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWZpbHRlci10ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMzE0NWU0
NzhjNWQ4MjBmNmU3YzAzZTFlZjRjM2I0YzBmNmYxMGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1maWx0ZXItdGVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2xvZy1zb3VyY2UuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGxvZzEoKQot
ewotICAgIGNvbnNvbGUubG9nLmFwcGx5KGNvbnNvbGUsIGFyZ3VtZW50cyk7Ci19Ci0KLS8vIENy
ZWF0ZSBhIG1peCBvZiBsb2cgbWVzc2FnZXMgZnJvbSBkaWZmZXJlbnQgc291cmNlIGZpbGVzCi1m
dW5jdGlvbiBvbmxvYWQoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgewot
ICAgICAgICBpZiAoaSAlIDIgPT0gMCkKLSAgICAgICAgICAgIGxvZzEoaSArICJ0b3BHcm91cCIp
OyAvLyBmcm9tIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbAotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBsb2cyKGkgKyAidG9wR3JvdXAiKTsgLy8gZnJvbSBsb2ctc291cmNlLmpzCi0gICAgfQot
Ci0gICAgY29uc29sZS5ncm91cCgib3V0ZXJHcm91cCIpOwotICAgIGZvciAodmFyIGkgPSAxMDsg
aSA8IDIwOyBpKyspIHsKLSAgICAgICAgaWYgKGkgJSAyID09IDApCi0gICAgICAgICAgICBsb2cx
KGkgKyAib3V0ZXJHcm91cCIpOyAvLyBmcm9tIGNvbnNvbGUtZmlsdGVyLXRlc3QuaHRtbAotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBsb2cyKGkgKyAib3V0ZXJHcm91cCIpOyAvLyBmcm9tIGxv
Zy1zb3VyY2UuanMKLSAgICB9Ci0gICAgY29uc29sZS5ncm91cCgiaW5uZXJHcm91cCIpOwotICAg
IGZvciAodmFyIGkgPSAyMDsgaSA8IDMwOyBpKyspIHsKLSAgICAgICAgaWYgKGkgJSAyID09IDAp
Ci0gICAgICAgICAgICBsb2cxKGkgKyAiaW5uZXJHcm91cCIpOyAvLyBmcm9tIGNvbnNvbGUtZmls
dGVyLXRlc3QuaHRtbAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsb2cyKGkgKyAiaW5uZXJH
cm91cCIpOyAvLyBmcm9tIGxvZy1zb3VyY2UuanMKLSAgICB9Ci0gICAgY29uc29sZS5ncm91cEVu
ZCgpOwotICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTsKLQotICAgIGNvbnNvbGUubG9nKCJlbmQiKTsK
LQotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIG1lc3Nh
Z2VzRWxlbWVudCA9IFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5tZXNzYWdlc0VsZW1lbnQ7Ci0K
LSAgICBmdW5jdGlvbiBkdW1wVmlzaWJsZU1lc3NhZ2VzKHJvb3QsIGluZGVudCkKLSAgICB7Ci0g
ICAgICAgIGluZGVudCA9IGluZGVudCB8fCAiIjsKLSAgICAgICAgcm9vdCA9IHJvb3QgfHwgV2Vi
SW5zcGVjdG9yLmNvbnNvbGVWaWV3Lm1lc3NhZ2VzRWxlbWVudC5maXJzdENoaWxkOyAvLyAuY29u
c29sZS1ncm91cAotICAgICAgICB2YXIgY2hpbGRyZW4gPSByb290LmNoaWxkTm9kZXM7Ci0KLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykgewotICAgICAg
ICAgICAgaWYgKGNoaWxkcmVuW2ldLmhhc1N0eWxlQ2xhc3MoImNvbnNvbGUtbWVzc2FnZSIpKSB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoaW5kZW50ICsgIj4iICsg
Y2hpbGRyZW5baV0udGV4dENvbnRlbnQpOwotICAgICAgICAgICAgICAgIGluZGVudCA9IGluZGVu
dCArICIgICI7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuW2ldLmhhc1N0eWxlQ2xh
c3MoImNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMiKSkgewotICAgICAgICAgICAgICAgIHZhciBncm91
cE1lc3NhZ2VzID0gY2hpbGRyZW5baV0uY2hpbGROb2RlczsKLSAgICAgICAgICAgICAgICBmb3Ig
KHZhciBqID0gMDsgaiA8IGdyb3VwTWVzc2FnZXMubGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGdyb3VwTWVzc2FnZXNbal0uaGFzU3R5bGVDbGFzcygiY29uc29sZS1tZXNz
YWdlIikpCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChp
bmRlbnQgKyBncm91cE1lc3NhZ2VzW2pdLnRleHRDb250ZW50KTsKLSAgICAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoZ3JvdXBNZXNzYWdlc1tqXS5oYXNTdHlsZUNsYXNzKCJjb25zb2xlLWdyb3Vw
IikpCi0gICAgICAgICAgICAgICAgICAgICAgICBkdW1wVmlzaWJsZU1lc3NhZ2VzKGdyb3VwTWVz
c2FnZXNbal0sIGluZGVudCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgdmFyIGdyb3VwTWVzc2FnZXMgPSBtZXNzYWdlc0VsZW1lbnQu
cXVlcnlTZWxlY3RvcigiLmNvbnNvbGUtZ3JvdXAtbWVzc2FnZXMiKTsKLQotICAgIHZhciB1cmwx
ID0gZ3JvdXBNZXNzYWdlcy5jaGlsZE5vZGVzWzBdLm1lc3NhZ2UudXJsOwotICAgIHZhciB1cmwy
ID0gZ3JvdXBNZXNzYWdlcy5jaGlsZE5vZGVzWzFdLm1lc3NhZ2UudXJsOwotCi0gICAgSW5zcGVj
dG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiBiZWZvcmVGaWx0ZXIobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoYXJndW1l
bnRzLmNhbGxlZS5uYW1lKTsKLSAgICAgICAgICAgIGR1bXBWaXNpYmxlTWVzc2FnZXMoKTsKLSAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLSAgICAgICAgZnVuY3Rpb24gYWRkVVJMMUZp
bHRlcihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZVZp
ZXcuX2FkZE1lc3NhZ2VVUkxGaWx0ZXIodXJsMSk7Ci0gICAgICAgICAgICBkdW1wVmlzaWJsZU1l
c3NhZ2VzKCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0gICAgICAgIGZ1bmN0
aW9uIGFkZFVSTDJGaWx0ZXIobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmNvbnNvbGVWaWV3Ll9hZGRNZXNzYWdlVVJMRmlsdGVyKHVybDIpOwotICAgICAgICAgICAg
ZHVtcFZpc2libGVNZXNzYWdlcygpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAot
ICAgICAgICBmdW5jdGlvbiByZW1vdmVVUkwxRmlsdGVyKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlVmlldy5fcmVtb3ZlTWVzc2FnZVVSTEZpbHRlcih1
cmwxKTsKLSAgICAgICAgICAgIGR1bXBWaXNpYmxlTWVzc2FnZXMoKTsKLSAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgfSwKLSAgICAgICAgZnVuY3Rpb24gcmVzdG9yZVVSTDFGaWx0ZXIobmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGVWaWV3Ll9hZGRN
ZXNzYWdlVVJMRmlsdGVyKHVybDEpOwotICAgICAgICAgICAgZHVtcFZpc2libGVNZXNzYWdlcygp
OwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotICAgICAgICBmdW5jdGlvbiByZW1v
dmVBbGxGaWx0ZXJzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5j
b25zb2xlVmlldy5fcmVtb3ZlTWVzc2FnZVVSTEZpbHRlcigpOwotICAgICAgICAgICAgZHVtcFZp
c2libGVNZXNzYWdlcygpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgXSk7
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLTxw
PgotICAgIFRlc3RzIHRoYXQgY29uc29sZSBjYW4gZmlsdGVyIG1lc3NhZ2VzIGJ5IHNvdXJjZS4K
LTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjE3YmFkMGE5NTEzODFj
ZDU3ODY0YTNkZGVhNmNjZjAxZDM2ZWU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LWNvbGxlY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAg
QEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogW29iamVjdCBOb2RlTGlzdF0KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxOTogW29iamVjdCBIVE1MQ29sbGVjdGlvbl0KLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAyMzogW29iamVjdCBIVE1MT3B0aW9uc0NvbGxlY3Rpb25dCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjc6IFtvYmplY3QgSFRNTEFsbENvbGxlY3Rpb25dCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMzE6IFtvYmplY3QgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25dCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzU6IFtvYmplY3QgTm9kZUxpc3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
NDE6IDEsMiwKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NDogW29iamVjdCBPYmplY3RdCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTE6IFtvYmplY3QgQXJndW1lbnRzXQotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE1OiBbb2JqZWN0IE5vZGVMaXN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBb
b2JqZWN0IEhUTUxDb2xsZWN0aW9uXQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIzOiBbb2JqZWN0
IEhUTUxPcHRpb25zQ29sbGVjdGlvbl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNzogW29iamVj
dCBIVE1MQWxsQ29sbGVjdGlvbl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMTogW29iamVjdCBI
VE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbl0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzNTogW29i
amVjdCBOb2RlTGlzdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0MTogMSwyLAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQ0OiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1
MTogW29iamVjdCBBcmd1bWVudHNdCi1UZXN0cyB0aGF0IGNvbnNvbGUgbmljZWx5IGZvcm1hdHMg
SFRNTCBDb2xsZWN0aW9ucyBhbmQgTm9kZUxpc3RzLgotCi1Ob2RlTGlzdFsxXSBjb25zb2xlLWZv
cm1hdC1jb2xsZWN0aW9ucy5odG1sOjE1Ci1IVE1MQ29sbGVjdGlvblszXSBjb25zb2xlLWZvcm1h
dC1jb2xsZWN0aW9ucy5odG1sOjE5Ci1IVE1MT3B0aW9uc0NvbGxlY3Rpb25bMl0gY29uc29sZS1m
b3JtYXQtY29sbGVjdGlvbnMuaHRtbDoyMwotSFRNTEFsbENvbGxlY3Rpb25bMTRdIGNvbnNvbGUt
Zm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MjcKLUhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uWzNd
IGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MzEKLU5vZGVMaXN0WzJdIGNvbnNvbGUt
Zm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MzUKLUFycmF5WzJdIGNvbnNvbGUtZm9ybWF0LWNvbGxl
Y3Rpb25zLmh0bWw6NDEKLU5vbkFycmF5V2l0aExlbmd0aCBjb25zb2xlLWZvcm1hdC1jb2xsZWN0
aW9ucy5odG1sOjQ0Ci1Bcmd1bWVudHNbMl0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRt
bDo1MQotW3NlbGVjdCNzZWwsIGl0ZW06IGZ1bmN0aW9uXSBjb25zb2xlLWZvcm1hdC1jb2xsZWN0
aW9ucy5odG1sOjE1Ci1bc2NyaXB0LCBzY3JpcHQsIHNjcmlwdCwgaXRlbTogZnVuY3Rpb24sIG5h
bWVkSXRlbTogZnVuY3Rpb25dIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MTkKLVtv
cHRpb24sIG9wdGlvbiwgc2VsZWN0ZWRJbmRleDogMCwgcmVtb3ZlOiBmdW5jdGlvbiwgbmFtZWRJ
dGVtOiBmdW5jdGlvbiwgYWRkOiBmdW5jdGlvbiwgaXRlbTogZnVuY3Rpb27igKZdIGNvbnNvbGUt
Zm9ybWF0LWNvbGxlY3Rpb25zLmh0bWw6MjMKLVtodG1sLCBoZWFkLCBzY3JpcHQsIHNjcmlwdCwg
c2NyaXB0LCBib2R5LCBwLCBkaXYsIGZvcm0jZiwgc2VsZWN0I3NlbCwgb3B0aW9uLCBvcHRpb24s
IGlucHV0LCBpbnB1dCwgbmFtZWRJdGVtOiBmdW5jdGlvbiwgdGFnczogZnVuY3Rpb24sIGl0ZW06
IGZ1bmN0aW9uXSBjb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sOjI3Ci1bc2VsZWN0I3Nl
bCwgaW5wdXQsIGlucHV0LCBuYW1lZEl0ZW06IGZ1bmN0aW9uLCBpdGVtOiBmdW5jdGlvbiwgbmFt
ZWRJdGVtOiBmdW5jdGlvbl0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDozMQotW2lu
cHV0LCBpbnB1dCwgaXRlbTogZnVuY3Rpb25dIGNvbnNvbGUtZm9ybWF0LWNvbGxlY3Rpb25zLmh0
bWw6MzUKLVsxLCBBcnJheVsyXV0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDo0MQot
Tm9uQXJyYXlXaXRoTGVuZ3RoIHtrZXlzOiBBcnJheVswXX0gY29uc29sZS1mb3JtYXQtY29sbGVj
dGlvbnMuaHRtbDo0NAotWzEsICIyIl0gY29uc29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbDo1
MQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZv
cm1hdC1jb2xsZWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS1mb3JtYXQtY29sbGVjdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzc3MWZjZmIwMzQ0OTE5ZTRhYWI3NTg0YTk3ZjM4Y2M1YmZlY2U5NC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWZvcm1hdC1jb2xsZWN0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTAwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotCi1mdW5jdGlvbiBsb2dUb0NvbnNvbGUoKQotewotICAgIHZhciBmb3JtRWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmIik7Ci0gICAgdmFyIHNlbGVjdEVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsIik7Ci0gICAgdmFyIHNwYW5FbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4iKTsKLQotICAgIC8vIE5vZGVMaXN0Ci0gICAg
dmFyIG5vZGVsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNlbGVjdCIpOwot
ICAgIGNvbnNvbGUubG9nKG5vZGVsaXN0KTsKLQotICAgIC8vIEhUTUxDb2xsZWN0aW9uCi0gICAg
dmFyIGh0bWxjb2xsZWN0aW9uID0gZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjsKLSAgICBjb25zb2xl
LmxvZyhodG1sY29sbGVjdGlvbik7Ci0KLSAgICAvLyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24KLSAg
ICB2YXIgb3B0aW9ucyA9IHNlbGVjdEVsZW1lbnQub3B0aW9uczsKLSAgICBjb25zb2xlLmxvZyhv
cHRpb25zKTsKLQotICAgIC8vIEhUTUxBbGxDb2xsZWN0aW9uCi0gICAgdmFyIGFsbCA9IGRvY3Vt
ZW50LmFsbDsKLSAgICBjb25zb2xlLmxvZyhhbGwpOwotCi0gICAgLy8gSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24gKGN1cnJlbnRseSBzaG93cyBIVE1MQ29sbGVjdGlvbikKLSAgICB2YXIgZm9y
bUNvbnRyb2xzID0gZm9ybUVsZW1lbnQuZWxlbWVudHM7Ci0gICAgY29uc29sZS5sb2coZm9ybUNv
bnRyb2xzKTsKLQotICAgIC8vIFJhZGlvTm9kZUxpc3QgKGN1cnJlbnRseSBzaG93cyBOb2RlTGlz
dCkKLSAgICB2YXIgcmFkaW9Ob2RlTGlzdCA9IGZvcm1FbGVtZW50Lng7Ci0gICAgY29uc29sZS5s
b2cocmFkaW9Ob2RlTGlzdCk7Ci0KLSAgICAvLyBDcm9zcy1yZWZlcmVuY2luZyBhcnJheXMuCi0g
ICAgdmFyIGFycmF5WCA9IFsxXTsKLSAgICB2YXIgYXJyYXlZID0gWzIsIGFycmF5WF07Ci0gICAg
YXJyYXlYLnB1c2goYXJyYXlZKTsKLSAgICBjb25zb2xlLmxvZyhhcnJheVgpOwotCi0gICAgdmFy
IG5vbkFycmF5ID0gbmV3IE5vbkFycmF5V2l0aExlbmd0aCgpOwotICAgIGNvbnNvbGUubG9nKG5v
bkFycmF5KTsKLQotICAgIC8vIEFyZ3VtZW50cwotICAgIGZ1bmN0aW9uIGdlbmVyYXRlQXJndW1l
bnRzKGZvbywgYmFyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsKLSAgICB9Ci0g
ICAgY29uc29sZS5sb2coZ2VuZXJhdGVBcmd1bWVudHMoMSwgIjIiKSk7Ci19Ci0KLWZ1bmN0aW9u
IG9ubG9hZCgpCi17Ci0gICAgbG9nVG9Db25zb2xlKCk7Ci0gICAgcnVuVGVzdCgpOwotfQotCi1m
dW5jdGlvbiBOb25BcnJheVdpdGhMZW5ndGgoKQotewotICAgIHRoaXMua2V5cz1bXTsKLX0KLQot
Tm9uQXJyYXlXaXRoTGVuZ3RoLnByb3RvdHlwZS5fX2RlZmluZUdldHRlcl9fKCJsZW5ndGgiLCBm
dW5jdGlvbigpCi17Ci0gICAgY29uc29sZS5sb2coIi5sZW5ndGggc2hvdWxkIG5vdCBiZSBjYWxs
ZWQiKTsKLSAgICByZXR1cm4gdGhpcy5rZXlzLmxlbmd0aDsKLX0pOwotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2dUb0NvbnNvbGUoKSIs
IGNhbGxiYWNrKTsKLQotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9Im9ubG9hZCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjb25zb2xlIG5pY2VseSBmb3JtYXRz
IEhUTUwgQ29sbGVjdGlvbnMgYW5kIE5vZGVMaXN0cy4KLTwvcD4KLTxkaXYgc3R5bGU9ImRpc3Bs
YXk6bm9uZSI+Ci0gICAgPGZvcm0gaWQ9ImYiPgotICAgICAgICA8c2VsZWN0IGlkPSJzZWwiIG5h
bWU9InNlbCI+Ci0gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxIj5vbmU8L29wdGlvbj4KLSAg
ICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiPnR3bzwvb3B0aW9uPgotICAgICAgICA8L3NlbGVj
dD4KLSAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ4IiB2YWx1ZT0ieDEiIC8+IHgx
Ci0gICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieCIgdmFsdWU9IngyIiAvPiB4Mgot
ICAgIDwvZm9ybT4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxODY3MmQ5NjkzODVlNjAzOTNhY2U5ODFk
N2EyZTc5NzVkNDVkOTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUxICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAyMDogdGVzdCx0ZXN0MiwsLHRlc3Q0LCwsLCwKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAy
MTogJW8KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogJU8KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAyMzogVGVzdCBmb3IgemVybyAiJWYiIGluIGZvcm1hdHRlcgotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUzOiAvXnVybFwoXHMqKD86KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98
XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUm
Ki1+XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwpL2kKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA1NDogL151cmxcKFxzKig/Oig/OiIoPzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9
XHM/fFwuKSkqInwnKD86W15cXFwnXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKicpfCg/Olsh
IyQlJiotflx3XXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKilccypcKS9pCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTM6IC9mb29cXGJhclxzYmF6L2kKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1
NDogL2Zvb1xcYmFyXHNiYXovaQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiB0ZXN0Ci1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTQ6IHRlc3QKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogdGVz
dCBuYW1lZCAidGVzdCIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogdGVzdCBuYW1lZCAidGVz
dCIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVu
dF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogW29iamVjdCBIVE1MUGFyYWdyYXBoRWxlbWVu
dF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9Ci1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTM6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIDI7Ci0g
ICAgfQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJl
dHVybiAyOwotICAgIH0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogMC4xMgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDU0OiAwLjEyCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IGh0dHA6Ly93
ZWJraXQub3JnLwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBodHRwOi8vd2Via2l0Lm9yZy8K
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogbnVsbAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0
OiAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogdW5kZWZpbmVkCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTQ6IAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiBbb2JqZWN0IEF0dHJdCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNTQ6IFtvYmplY3QgQXR0cl0KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1MzogW29iamVjdCBBdHRyXQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBbb2JqZWN0IEF0
dHJdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IFtvYmplY3QgQXR0cl0KLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA1NDogW29iamVjdCBBdHRyXQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiBb
b2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogW29iamVjdCBPYmplY3Rd
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IE5hTgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0
OiBOYU4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogSW5maW5pdHkKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA1NDogSW5maW5pdHkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogLUluZmluaXR5
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTQ6IC1JbmZpbml0eQotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUzOiB0ZXN0LHRlc3QyLCwsdGVzdDQsLCwsLAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0
OiB0ZXN0LHRlc3QyLCwsdGVzdDQsLCwsLAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiBbb2Jq
ZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogW29iamVjdCBPYmplY3RdCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IGZ1bmN0aW9uICgpIHt9Ci1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTQ6IGZ1bmN0aW9uICgpIHt9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTM6IFtvYmpl
Y3QgT2JqZWN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU0OiBbb2JqZWN0IE9iamVjdF0KLVRl
c3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3BlciBtZXNzYWdlcy4KLQotQXJyYXlb
MTBdIGNvbnNvbGUtZm9ybWF0Lmh0bWw6MjAKLUFycmF5WzEwXSBjb25zb2xlLWZvcm1hdC5odG1s
OjIxCi1BcnJheVsxMF0gY29uc29sZS1mb3JtYXQuaHRtbDoyMgotVGVzdCBmb3IgemVybyAiMCIg
aW4gZm9ybWF0dGVyIGNvbnNvbGUtZm9ybWF0Lmh0bWw6MjMKLS9edXJsXChccyooPzooPzoiKD86
W15cXFwiXXwoPzpcXFtcZGEtZl17MSw2fVxzP3xcLikpKiJ8Jyg/OlteXFxcJ118KD86XFxbXGRh
LWZdezEsNn1ccz98XC4pKSonKXwoPzpbISMkJSYqLX5cd118KD86XFxbXGRhLWZdezEsNn1ccz98
XC4pKSopXHMqXCkvaSBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bL151cmxcKFxzKig/Oig/OiIo
PzpbXlxcXCJdfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFzigKY/OlshIyQlJiotflx3XXwoPzpcXFtc
ZGEtZl17MSw2fVxzP3xcLikpKilccypcKS9pXSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9i
YWxzWzBdCi0vXnVybFwoXHMqKD86KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98
XC4pKSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUm
Ki1+XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwpL2kKLS9mb29cXGJhclxzYmF6
L2kgY29uc29sZS1mb3JtYXQuaHRtbDo1MwotWy9mb29cXGJhclxzYmF6L2ldIGNvbnNvbGUtZm9y
bWF0Lmh0bWw6NTQKLWdsb2JhbHNbMV0KLS9mb29cXGJhclxzYmF6L2kKLXRlc3QgY29uc29sZS1m
b3JtYXQuaHRtbDo1MwotWyJ0ZXN0Il0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1sy
XQotInRlc3QiCi10ZXN0IG5hbWVkICJ0ZXN0IiBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bInRl
c3QgbmFtZWQgInRlc3QiIl0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1szXQotInRl
c3QgbmFtZWQgInRlc3QiIgotPHAgaWQ9InAiPlRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1
bXBzIHByb3BlciBtZXNzYWdlcy48L3A+IGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTMKLVtwI3BdIGNv
bnNvbGUtZm9ybWF0Lmh0bWw6NTQKLWdsb2JhbHNbNF0KLTxwIGlkPSJwIj5UZXN0cyB0aGF0IGNv
bnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXIgbWVzc2FnZXMuPC9wPgotZnVuY3Rpb24gKCkgeyBy
ZXR1cm4gMTsgfSBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bZnVuY3Rpb25dIGNvbnNvbGUtZm9y
bWF0Lmh0bWw6NTQKLWdsb2JhbHNbNV0KLWZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0KLWZ1bmN0
aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIDI7Ci0gICAgfSBjb25zb2xlLWZvcm1hdC5odG1sOjUz
Ci1bZnVuY3Rpb25dIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTQKLWdsb2JhbHNbNl0KLWZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgcmV0dXJuIDI7Ci0gICAgfQotMC4xMiBjb25zb2xlLWZvcm1hdC5odG1s
OjUzCi1bMC4xMl0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1s3XQotMC4xMgotaHR0
cDovL3dlYmtpdC5vcmcvIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTMKLVsiaHR0cDovL3dlYmtpdC5v
cmcvIl0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1s4XQotImh0dHA6Ly93ZWJraXQu
b3JnLyIKLW51bGwgY29uc29sZS1mb3JtYXQuaHRtbDo1MwotW251bGxdIGNvbnNvbGUtZm9ybWF0
Lmh0bWw6NTQKLWdsb2JhbHNbOV0KLW51bGwKLXVuZGVmaW5lZCBjb25zb2xlLWZvcm1hdC5odG1s
OjUzCi1bdW5kZWZpbmVkXSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9iYWxzWzEwXQotdW5k
ZWZpbmVkCi1hdHRyPSIiIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTMKLVthdHRyXSBjb25zb2xlLWZv
cm1hdC5odG1sOjU0Ci1nbG9iYWxzWzExXQotYXR0cj0iIgotYXR0cj0idmFsdWUiInZhbHVlIiBj
b25zb2xlLWZvcm1hdC5odG1sOjUzCi1bYXR0cl0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xv
YmFsc1sxMl0KLWF0dHI9InZhbHVlIiJ2YWx1ZSIKLWlkPSJ4IiJ4IiBjb25zb2xlLWZvcm1hdC5o
dG1sOjUzCi1baWRdIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTQKLWdsb2JhbHNbMTNdCi1pZD0ieCIi
eCIKLU9iamVjdCB7fSBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bT2JqZWN0XSBjb25zb2xlLWZv
cm1hdC5odG1sOjU0Ci1nbG9iYWxzWzE0XQotT2JqZWN0IHt9Ci1OYU4gY29uc29sZS1mb3JtYXQu
aHRtbDo1MwotW05hTl0gY29uc29sZS1mb3JtYXQuaHRtbDo1NAotZ2xvYmFsc1sxNV0KLU5hTgot
SW5maW5pdHkgY29uc29sZS1mb3JtYXQuaHRtbDo1MwotW0luZmluaXR5XSBjb25zb2xlLWZvcm1h
dC5odG1sOjU0Ci1nbG9iYWxzWzE2XQotSW5maW5pdHkKLS1JbmZpbml0eSBjb25zb2xlLWZvcm1h
dC5odG1sOjUzCi1bLUluZmluaXR5XSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9iYWxzWzE3
XQotLUluZmluaXR5Ci1bInRlc3QiLCAidGVzdDIiLCA0OiAidGVzdDQiLCBmb286IE9iamVjdF0g
Y29uc29sZS1mb3JtYXQuaHRtbDo1MwotW0FycmF5WzEwXV0gY29uc29sZS1mb3JtYXQuaHRtbDo1
NAotZ2xvYmFsc1sxOF0KLVsidGVzdCIsICJ0ZXN0MiIsIHVuZGVmaW5lZCDDlyAyLCAidGVzdDQi
LCB1bmRlZmluZWQgw5cgNV0KLU9iamVjdCB7fSBjb25zb2xlLWZvcm1hdC5odG1sOjUzCi1bT2Jq
ZWN0XSBjb25zb2xlLWZvcm1hdC5odG1sOjU0Ci1nbG9iYWxzWzE5XQotT2JqZWN0IHt9Ci1bZnVu
Y3Rpb25dIGNvbnNvbGUtZm9ybWF0Lmh0bWw6NTMKLVtBcnJheVsxXV0gY29uc29sZS1mb3JtYXQu
aHRtbDo1NAotZ2xvYmFsc1syMF0KLVtmdW5jdGlvbiAoKSB7fV0KLU9iamVjdCB7YmFyOiAiYmFy
IiwgZm9vOiAiZm9vIn0gY29uc29sZS1mb3JtYXQuaHRtbDo1MwotW09iamVjdF0gY29uc29sZS1m
b3JtYXQuaHRtbDo1NAotZ2xvYmFsc1syMV0KLU9iamVjdCB7YmFyOiAiYmFyIiwgZm9vOiAiZm9v
In0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1m
b3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1mb3JtYXQtc3R5bGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkMWM3MWVkYTAyMDI3NGIzNTM1ZGM0N2IzM2ZiNWI5ODcyYTg5OGYxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4OiAlY0JsdWUhLgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDk6ICVjQmx1ZSEgJWNSZWQhCi1UZXN0cyB0aGF0IGNvbnNv
bGUgbG9nZ2luZyBkdW1wcyBwcm9wZXJseSBzdHlsZWQgbWVzc2FnZXMuCi0KLUJsdWUhLiBjb25z
b2xlLWZvcm1hdC1zdHlsZS5odG1sOjgKLVN0eWxlZCB0ZXh0ICMwOiBjb2xvcjogYmx1ZTsKLUJs
dWUhIFJlZCEgY29uc29sZS1mb3JtYXQtc3R5bGUuaHRtbDo5Ci1TdHlsZWQgdGV4dCAjMDogY29s
b3I6IGJsdWU7Ci1TdHlsZWQgdGV4dCAjMTogY29sb3I6IHJlZDsKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9y
bWF0LXN0eWxlLXdoaXRlbGlzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIxYjkyMTUyYTJjMWI5ZTMyYzFlODIwMTRhZTA1NzMwNTVmNmQ3MjMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4OiAl
Y0NvbG9ycyBhcmUgYXdlc29tZS4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAlY1NvIGFyZSBm
b250cyEKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogJWNBbmQgYm9yZGVycyBhbmQgbWFyZ2lu
cyBhbmQgcGFkZGluZ3MhCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6ICVjdGV4dC0qIGlzIGZp
bmUgYnkgdXMhCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6ICVjRGlzcGxheSwgb24gdGhlIG90
aGVyIGhhbmQsIGlzIGJhZCBuZXdzLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiAlY0FuZCBw
b3NpdGlvbiB0b28uCi1UZXN0cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXJseSBz
dHlsZWQgbWVzc2FnZXMsIGFuZCB0aGF0IHRoZSB3aG9sZSBtZXNzYWdlIGdldHMgdGhlIHNhbWUg
c3R5bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMgc2V0dGluZ3MuCi0KLUNvbG9ycyBhcmUg
YXdlc29tZS4gY29uc29sZS1mb3JtYXQtc3R5bGUtd2hpdGVsaXN0Lmh0bWw6OAotU3R5bGVkIHRl
eHQgIzA6IGNvbG9yOiBibHVlOwotU28gYXJlIGZvbnRzISBjb25zb2xlLWZvcm1hdC1zdHlsZS13
aGl0ZWxpc3QuaHRtbDo5Ci1TdHlsZWQgdGV4dCAjMDogZm9udC1zdHlsZTogbm9ybWFsOyBmb250
LXZhcmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiAxZW07IGxp
bmUtaGVpZ2h0OiBub3JtYWw7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7Ci1BbmQgYm9yZGVycyBh
bmQgbWFyZ2lucyBhbmQgcGFkZGluZ3MhIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5o
dG1sOjEwCi1TdHlsZWQgdGV4dCAjMDogYm9yZGVyOiAxcHggc29saWQgcmVkOyBtYXJnaW46IDIw
cHg7IHBhZGRpbmc6IDEwcHg7Ci10ZXh0LSogaXMgZmluZSBieSB1cyEgY29uc29sZS1mb3JtYXQt
c3R5bGUtd2hpdGVsaXN0Lmh0bWw6MTEKLVN0eWxlZCB0ZXh0ICMwOiB0ZXh0LWRlY29yYXRpb246
IG5vbmU7Ci1EaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuIGNvbnNvbGUt
Zm9ybWF0LXN0eWxlLXdoaXRlbGlzdC5odG1sOjEzCi1TdHlsZWQgdGV4dCAjMDogTk8gU1RZTEVT
IERFRklORUQKLUFuZCBwb3NpdGlvbiB0b28uIGNvbnNvbGUtZm9ybWF0LXN0eWxlLXdoaXRlbGlz
dC5odG1sOjE0Ci1TdHlsZWQgdGV4dCAjMDogTk8gU1RZTEVTIERFRklORUQKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtc3R5bGUtd2hp
dGVsaXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1h
dC1zdHlsZS13aGl0ZWxpc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFh
MzZkNDljOTgzNGU0N2ZmOWM0MjljNDllYjUxZmYxNWQ4YjNkMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWZvcm1hdC1zdHlsZS13aGl0ZWxpc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gb25sb2FkKCkKLXsKLSAgICBjb25zb2xlLmxvZygnJWNDb2xvcnMgYXJl
IGF3ZXNvbWUuJywgJ2NvbG9yOiBibHVlOycpOwotICAgIGNvbnNvbGUubG9nKCclY1NvIGFyZSBm
b250cyEnLCAnZm9udDogMWVtIEhlbHZldGljYTsnKTsKLSAgICBjb25zb2xlLmxvZygnJWNBbmQg
Ym9yZGVycyBhbmQgbWFyZ2lucyBhbmQgcGFkZGluZ3MhJywgJ2JvcmRlcjogMXB4IHNvbGlkIHJl
ZDsgbWFyZ2luOiAyMHB4OyBwYWRkaW5nOiAxMHB4OycpOwotICAgIGNvbnNvbGUubG9nKCclY3Rl
eHQtKiBpcyBmaW5lIGJ5IHVzIScsICd0ZXh0LWRlY29yYXRpb246IG5vbmU7Jyk7Ci0KLSAgICBj
b25zb2xlLmxvZygnJWNEaXNwbGF5LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYmFkIG5ld3MuJywg
J2Rpc3BsYXk6IG5vbmU7Jyk7Ci0gICAgY29uc29sZS5sb2coJyVjQW5kIHBvc2l0aW9uIHRvby4n
LCAncG9zaXRpb246IGFic29sdXRlOycpOwotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXNXaXRoU3R5bGVzKCk7Ci0gICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9Im9ubG9hZCgpIj4KLTxwPlRlc3RzIHRoYXQgY29uc29sZSBsb2dnaW5nIGR1bXBz
IHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcywgYW5kIHRoYXQKLXRoZSB3aG9sZSBtZXNzYWdlIGdl
dHMgdGhlIHNhbWUgc3R5bGUsIHJlZ2FyZGxlc3Mgb2YgbXVsdGlwbGUgJWMKLXNldHRpbmdzLjwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLWZvcm1hdC1zdHlsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2NGI1MDQ2ZWFkNmFhYzg1ODRkNGM4NDhiOTc4OGFjY2I1MmFkNjU5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXN0eWxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyNSArMCwwIEBACi08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBmdW5jdGlvbiBv
bmxvYWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclY0Js
dWUhLicsICdjb2xvcjogYmx1ZTsnKTsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWNC
bHVlISAlY1JlZCEnLCAnY29sb3I6IGJsdWU7JywgJ2NvbG9yOiByZWQ7Jyk7Ci0gICAgICAgICAg
ICAgICAgcnVuVGVzdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiB0
ZXN0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFu
ZENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENv
bnNvbGVNZXNzYWdlc1dpdGhTdHlsZXMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8
L2hlYWQ+Ci0KLSAgICA8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KLSAgICAgIDxwPlRlc3RzIHRo
YXQgY29uc29sZSBsb2dnaW5nIGR1bXBzIHByb3Blcmx5IHN0eWxlZCBtZXNzYWdlcy48L3A+Ci0g
ICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzgyMmJkNTZiZDZjZmQ5YTg1MDc4M2ViNGEzNjNlODQ3
YjZiZjVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMDogbnVsbAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBBcnJheSBvZiBhcnJheXMKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxMzogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNTogTGFyZ2UgYXJyYXkgb2YgYXJyYXlzCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTY6IDEs
MiwzLDQsNSw2LDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTg6IEFycmF5IG9yIGFycmF5IGFuZCBvYmplY3QKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxOTogMSwyLDMsW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MjE6IE9iamVjdCB0YWJsZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBbb2JqZWN0IE9iamVj
dF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogTnVsbCBhcyBjb2x1bW5zCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjU6IDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6IERp
Z2l0IGFzIGNvbHVtbnMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyODogMSwyLDMsNCw1LDYKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAzMDogU3RyaW5nIGFzIGNvbHVtbnMKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAzMTogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMzogUmFuZG9t
IHN0cmluZyBhcyBjb2x1bW5zCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6IDEsMiwzLDQsNSw2
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzY6IEFycmF5IG9mIHN0cmluZ3MgYXMgY29sdW1ucwot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDM3OiBbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3Rd
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzk6IEdvb2QgYW5kIGJhZCBjb2x1bW4gbmFtZXMKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA0MDogW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XQot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDQyOiBNaXNzaW5nIGNvbHVtbiBuYW1lCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgNDM6IFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxMDogbnVsbAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBBcnJheSBv
ZiBhcnJheXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogMSwyLDMsNCw1LDYKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxNTogTGFyZ2UgYXJyYXkgb2YgYXJyYXlzCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTY6IDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2LDEsMiwzLDQsNSw2
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IEFycmF5IG9yIGFycmF5IGFuZCBvYmplY3QKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxOTogMSwyLDMsW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjE6IE9iamVjdCB0YWJsZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBb
b2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogTnVsbCBhcyBjb2x1bW5z
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjU6IDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjc6IERpZ2l0IGFzIGNvbHVtbnMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyODogMSwy
LDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogU3RyaW5nIGFzIGNvbHVtbnMKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAzMTogMSwyLDMsNCw1LDYKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzMzogUmFuZG9tIHN0cmluZyBhcyBjb2x1bW5zCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzQ6
IDEsMiwzLDQsNSw2Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzY6IEFycmF5IG9mIHN0cmluZ3Mg
YXMgY29sdW1ucwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM3OiBbb2JqZWN0IE9iamVjdF0sW29i
amVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzk6IEdvb2QgYW5kIGJhZCBjb2x1
bW4gbmFtZXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogW29iamVjdCBPYmplY3RdLFtvYmpl
Y3QgT2JqZWN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQyOiBNaXNzaW5nIGNvbHVtbiBuYW1l
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDM6IFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVj
dF0KLVRlc3RzIGNvbnNvbGUudGFibGUuCi0KLSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEw
Ci1BcnJheSBvZiBhcnJheXMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMgotIGNvbnNvbGUt
Zm9ybWF0LXRhYmxlLmh0bWw6MTMKLUxhcmdlIGFycmF5IG9mIGFycmF5cyBjb25zb2xlLWZvcm1h
dC10YWJsZS5odG1sOjE1Ci0gY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxNgotQXJyYXkgb3Ig
YXJyYXkgYW5kIG9iamVjdCBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjE4Ci0gY29uc29sZS1m
b3JtYXQtdGFibGUuaHRtbDoxOQotT2JqZWN0IHRhYmxlIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0
bWw6MjEKLSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjIyCi1OdWxsIGFzIGNvbHVtbnMgY29u
c29sZS1mb3JtYXQtdGFibGUuaHRtbDoyNAotIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjUK
LURpZ2l0IGFzIGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoyNwotIGNvbnNvbGUt
Zm9ybWF0LXRhYmxlLmh0bWw6MjgKLVN0cmluZyBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWw6MzAKLSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjMxCi1SYW5kb20gc3RyaW5n
IGFzIGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDozMwotIGNvbnNvbGUtZm9ybWF0
LXRhYmxlLmh0bWw6MzQKLUFycmF5IG9mIHN0cmluZ3MgYXMgY29sdW1ucyBjb25zb2xlLWZvcm1h
dC10YWJsZS5odG1sOjM2Ci0gY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDozNwotR29vZCBhbmQg
YmFkIGNvbHVtbiBuYW1lcyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjM5Ci0gY29uc29sZS1m
b3JtYXQtdGFibGUuaHRtbDo0MAotTWlzc2luZyBjb2x1bW4gbmFtZSBjb25zb2xlLWZvcm1hdC10
YWJsZS5odG1sOjQyCi0gY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDo0MwotIGNvbnNvbGUtZm9y
bWF0LXRhYmxlLmh0bWw6MTAKLUFycmF5IG9mIGFycmF5cyBjb25zb2xlLWZvcm1hdC10YWJsZS5o
dG1sOjEyCi0oaW5kZXgpMDEyMDEyMzE0NTYgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMwot
TGFyZ2UgYXJyYXkgb2YgYXJyYXlzIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTUKLShpbmRl
eCkwMTIwMTIzMTQ1NjIxMjMzNDU2NDEyMzU0NTY2MTIzNzQ1NiBjb25zb2xlLWZvcm1hdC10YWJs
ZS5odG1sOjE2Ci1BcnJheSBvciBhcnJheSBhbmQgb2JqZWN0IGNvbnNvbGUtZm9ybWF0LXRhYmxl
Lmh0bWw6MTgKLShpbmRleCkwMTJhYmMwMTIzdW5kZWZpbmVkdW5kZWZpbmVkdW5kZWZpbmVkMXVu
ZGVmaW5lZHVuZGVmaW5lZHVuZGVmaW5lZDEyMyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjE5
Ci1PYmplY3QgdGFibGUgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoyMQotKGluZGV4KWFiZm9v
MTJiYXIzNCBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjIyCi1OdWxsIGFzIGNvbHVtbnMgY29u
c29sZS1mb3JtYXQtdGFibGUuaHRtbDoyNAotKGluZGV4KTAxMjAxMjMxNDU2IGNvbnNvbGUtZm9y
bWF0LXRhYmxlLmh0bWw6MjUKLURpZ2l0IGFzIGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUu
aHRtbDoyNwotKGluZGV4KTAxMjAxMjMxNDU2IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjgK
LVN0cmluZyBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MzAKLShpbmRleCkw
MDExNCBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjMxCi1SYW5kb20gc3RyaW5nIGFzIGNvbHVt
bnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDozMwotKGluZGV4KTAxIGNvbnNvbGUtZm9ybWF0
LXRhYmxlLmh0bWw6MzQKLUFycmF5IG9mIHN0cmluZ3MgYXMgY29sdW1ucyBjb25zb2xlLWZvcm1h
dC10YWJsZS5odG1sOjM2Ci0oaW5kZXgpYWIwMTIxImZvbyIiYmFyIiBjb25zb2xlLWZvcm1hdC10
YWJsZS5odG1sOjM3Ci1Hb29kIGFuZCBiYWQgY29sdW1uIG5hbWVzIGNvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWw6MzkKLShpbmRleClhYjAxMjEiZm9vInVuZGVmaW5lZCBjb25zb2xlLWZvcm1hdC10
YWJsZS5odG1sOjQwCi1NaXNzaW5nIGNvbHVtbiBuYW1lIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0
bWw6NDIKLShpbmRleCkwMSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjQzCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmM4OTFhNmNhMDdmYTViY2I0Yzc1
MzZlZDkxYmU3NzdkM2E1ZTU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25z
b2xlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gbG9nVG9Db25zb2xl
KCkKLXsKLSAgICBjb25zb2xlLnRhYmxlKCk7Ci0gICAgY29uc29sZS50YWJsZShudWxsKTsKLQot
ICAgIGNvbnNvbGUubG9nKCJBcnJheSBvZiBhcnJheXMiKTsKLSAgICBjb25zb2xlLnRhYmxlKFtb
MSwyLDNdLCBbNCw1LDZdXSk7Ci0KLSAgICBjb25zb2xlLmxvZygiTGFyZ2UgYXJyYXkgb2YgYXJy
YXlzIik7Ci0gICAgY29uc29sZS50YWJsZShbWzEsMiwzXSwgWzQsNSw2XSwgWzEsMiwzXSwgWzQs
NSw2XSwgWzEsMiwzXSwgWzQsNSw2XSwgWzEsMiwzXSwgWzQsNSw2XV0pOwotCi0gICAgY29uc29s
ZS5sb2coIkFycmF5IG9yIGFycmF5IGFuZCBvYmplY3QiKTsKLSAgICBjb25zb2xlLnRhYmxlKFtb
MSwyLDNdLCB7YToxLCBiOjIsIGM6M31dKTsKLQotICAgIGNvbnNvbGUubG9nKCJPYmplY3QgdGFi
bGUiKTsKLSAgICBjb25zb2xlLnRhYmxlKHsiZm9vIjoge2E6MSwgYjoyfSwgImJhciI6IHthOjMs
IGI6NH19KTsKLQotICAgIGNvbnNvbGUubG9nKCJOdWxsIGFzIGNvbHVtbnMiKTsKLSAgICBjb25z
b2xlLnRhYmxlKFtbMSwyLDNdLCBbNCw1LDZdXSwgbnVsbCk7Ci0KLSAgICBjb25zb2xlLmxvZygi
RGlnaXQgYXMgY29sdW1ucyIpOwotICAgIGNvbnNvbGUudGFibGUoW1sxLDIsM10sIFs0LDUsNl1d
LCAwKTsKLQotICAgIGNvbnNvbGUubG9nKCJTdHJpbmcgYXMgY29sdW1ucyIpOwotICAgIGNvbnNv
bGUudGFibGUoW1sxLDIsM10sIFs0LDUsNl1dLCAiMCIpOwotCi0gICAgY29uc29sZS5sb2coIlJh
bmRvbSBzdHJpbmcgYXMgY29sdW1ucyIpOwotICAgIGNvbnNvbGUudGFibGUoW1sxLDIsM10sIFs0
LDUsNl1dLCAiRm9vIik7Ci0KLSAgICBjb25zb2xlLmxvZygiQXJyYXkgb2Ygc3RyaW5ncyBhcyBj
b2x1bW5zIik7Ci0gICAgY29uc29sZS50YWJsZShbe2E6MSwgYjoyLCBjOjN9LCB7YToiZm9vIiwg
YjoiYmFyIn1dLCBbImEiLCAiYiJdKTsKLQotICAgIGNvbnNvbGUubG9nKCJHb29kIGFuZCBiYWQg
Y29sdW1uIG5hbWVzIik7Ci0gICAgY29uc29sZS50YWJsZShbe2E6MSwgYjoyLCBjOjN9LCB7YToi
Zm9vIn1dLCBbImEiLCAiYiIsICJkIl0pOwotCi0gICAgY29uc29sZS5sb2coIk1pc3NpbmcgY29s
dW1uIG5hbWUiKTsKLSAgICBjb25zb2xlLnRhYmxlKFt7YToxLCBiOjIsIGM6M30sIHthOiJmb28i
fV0sIFsiZCJdKTsKLX0KLQotZnVuY3Rpb24gb25sb2FkKCkKLXsKLSAgICBsb2dUb0NvbnNvbGUo
KTsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoImxvZ1RvQ29uc29sZSgpIiwgY2FsbGJhY2spOwotCi0gICAg
ZnVuY3Rpb24gY2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29u
c29sZU1lc3NhZ2VzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgot
PHA+Ci1UZXN0cyBjb25zb2xlLnRhYmxlLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3YzRjYjdiODJmYjAzOGEyNWY2ZDAxN2NlOTcwNmYy
NjE5YWQxOTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDkwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotCi0vLyBHbG9iYWwgVmFsdWVzCi12YXIgZ2xvYmFscyA9IFtdOwot
Ci1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIHZhciBmb28gPSB7IGZvbzogImZvbyJ9OwotICAg
IHZhciBiYXIgPSB7IGJhcjogImJhciIgfTsKLSAgICBiYXIuX19wcm90b19fID0gZm9vOwotCi0g
ICAgdmFyIGFycmF5ID0gWyJ0ZXN0IiwgInRlc3QyIl07IGFycmF5Lmxlbmd0aCA9IDEwOwotICAg
IGFycmF5LmZvbyA9IHt9OyAKLSAgICBhcnJheVs0XSA9ICJ0ZXN0NCI7Ci0KLSAgICBjb25zb2xl
LmxvZyhhcnJheSk7Ci0gICAgY29uc29sZS5sb2coIiVvIiwgYXJyYXkpOwotICAgIGNvbnNvbGUu
bG9nKCIlTyIsIGFycmF5KTsKLSAgICBjb25zb2xlLmxvZygiVGVzdCBmb3IgemVybyBcIiVmXCIg
aW4gZm9ybWF0dGVyIiwgMCk7Ci0gICAgLy8gUG9wdWxhdGUgR2xvYmFscwotICAgIHZhciByZWdl
eDEgPSAvXnVybFwoXHMqKD86KD86Iig/OlteXFxcIl18KD86XFxbXGRhLWZdezEsNn1ccz98XC4p
KSoifCcoPzpbXlxcXCddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqJyl8KD86WyEjJCUmKi1+
XHddfCg/OlxcW1xkYS1mXXsxLDZ9XHM/fFwuKSkqKVxzKlwpL2k7Ci0gICAgdmFyIHJlZ2V4MiA9
IG5ldyBSZWdFeHAoImZvb1xcXFxiYXJcXHNiYXoiLCAiaSIpOwotICAgIHZhciBzdHIgPSAidGVz
dCI7Ci0gICAgdmFyIHN0cjIgPSAidGVzdCBuYW1lZCBcInRlc3RcIiI7Ci0gICAgdmFyIG5vZGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpOwotICAgIHZhciBmdW5jID0gZnVuY3Rpb24o
KSB7IHJldHVybiAxOyB9OwotICAgIHZhciBtdWx0aWxpbmVmdW5jID0gZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHJldHVybiAyOwotICAgIH07Ci0gICAgdmFyIG51bSA9IDEuMmUtMTsKLSAgICB2YXIg
bGlua2lmeSA9ICJodHRwOi8vd2Via2l0Lm9yZy8iOwotICAgIHZhciB2YWx1ZWxlc3NBdHRyaWJ1
dGUgPSBkb2N1bWVudC5jcmVhdGVBdHRyaWJ1dGUoImF0dHIiKTsKLSAgICB2YXIgdmFsdWVkQXR0
cmlidXRlID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCJhdHRyIik7Ci0gICAgdmFsdWVkQXR0
cmlidXRlLnZhbHVlID0gInZhbHVlIjsKLSAgICB2YXIgZXhpc3RpbmdBdHRyaWJ1dGUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgieCIpLmF0dHJpYnV0ZXNbMF07Ci0gICAgdmFyIHRocm93aW5n
TGVuZ3RoR2V0dGVyID0ge2dldCBsZW5ndGgoKSB7IHRocm93ICJMZW5ndGggY2FsbGVkIjsgfX07
Ci0KLSAgICBnbG9iYWxzID0gWwotICAgICAgICByZWdleDEsIHJlZ2V4Miwgc3RyLCBzdHIyLCBu
b2RlLCBmdW5jLCBtdWx0aWxpbmVmdW5jLCBudW0sIGxpbmtpZnksCi0gICAgICAgIG51bGwsIHVu
ZGVmaW5lZCwgdmFsdWVsZXNzQXR0cmlidXRlLCB2YWx1ZWRBdHRyaWJ1dGUsIGV4aXN0aW5nQXR0
cmlidXRlLCB0aHJvd2luZ0xlbmd0aEdldHRlciwKLSAgICAgICAgTmFOLCBOdW1iZXIuUE9TSVRJ
VkVfSU5GSU5JVFksIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSwgYXJyYXksIHt9LCBbZnVuY3Rp
b24oKSB7fV0sIGJhciAKLSAgICBdOwotCi0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiBs
b2coY3VycmVudCkKLXsKLSAgICBjb25zb2xlLmxvZyhnbG9iYWxzW2N1cnJlbnRdKTsKLSAgICBj
b25zb2xlLmxvZyhbZ2xvYmFsc1tjdXJyZW50XV0pOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJnbG9iYWxzLmxlbmd0aCIsIGxvb3BP
dmVyR2xvYmFscy5iaW5kKHRoaXMsIDApKTsKLQotICAgIGZ1bmN0aW9uIGxvb3BPdmVyR2xvYmFs
cyhjdXJyZW50LCB0b3RhbCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGFkdmFuY2UoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgbmV4dCA9IGN1cnJlbnQgKyAxOwotICAgICAgICAgICAg
aWYgKG5leHQgPT0gdG90YWwuZGVzY3JpcHRpb24pIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGFuZENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBs
b29wT3Zlckdsb2JhbHMobmV4dCwgdG90YWwpOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9nKCIgKyBjdXJyZW50ICsgIikiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGV2YWxJbkNvbnNvbGUpOwot
ICAgICAgICBmdW5jdGlvbiBldmFsSW5Db25zb2xlKCkKLSAgICAgICAgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiZ2xvYmFsc1siICsgY3VycmVudCArICJd
Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMo
YWR2YW5jZSk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08ZGl2IGlkPSJ4Ij48L2Rpdj4KLTxwIGlkPSJwIj5UZXN0
cyB0aGF0IGNvbnNvbGUgbG9nZ2luZyBkdW1wcyBwcm9wZXIgbWVzc2FnZXMuPC9wPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29u
c29sZS10cmltLWxvbmctdXJscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWU5MDU5OWQ4YWFjYzgwZjM3NjYyYmY1YThhZTFkNzhkNDViYTU0
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEx
OiBUaGUgVVJMIGlzOiAlcwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBodHRwOi8vZXhhbXBs
ZS5jb20vMi0tLS0tLS0tLTMtLS0tLS0tLS00LS0tLS0tLS0tNS0tLS0tLS0tLTYtLS0tLS0tLS03
LS0tLS0tLS0tOC0tLS0tLS0tLTktLS0tLS0tLS0wLS0tLS0tLS0tMS0tLS0tLS0tLTItLS0tLS0t
LS0zLS0tLS0tLS0tNC0tLS0tLS0tLTUtLS0tLS0tLS02LS0tLS0tLS0tNy0tLS0tLS0tLTgtLS0t
LS0tLS05LS0tLS0tLS0tMAotVGVzdHMgdGhhdCBhIFVSTCBsb2dnZWQgdG8gdGhlIGNvbnNvbGUg
aXMgdHJpbW1lZCBkb3duIHRvIDE1MCBjaGFyYWN0ZXJzLgotCi1UaGUgVVJMIGlzOiBodHRwOi8v
ZXhhbXBsZS5jb20vMi0tLS0tLS0tLTMtLS0tLS0tLS00LS0tLS0tLS0tNS0tLS0tLS0tLTYtLS0t
LS0tLS03LS0tLS3igKYtLS0zLS0tLS0tLS0tNC0tLS0tLS0tLTUtLS0tLS0tLS02LS0tLS0tLS0t
Ny0tLS0tLS0tLTgtLS0tLS0tLS05LS0tLS0tLS0tMCBjb25zb2xlLXRyaW0tbG9uZy11cmxzLmh0
bWw6MTEKLWh0dHA6Ly9leGFtcGxlLmNvbS8yLS0tLS0tLS0tMy0tLS0tLS0tLTQtLS0tLS0tLS01
LS0tLS0tLS0tNi0tLS0tLS0tLTctLS0tLeKApi0tLTMtLS0tLS0tLS00LS0tLS0tLS0tNS0tLS0t
LS0tLTYtLS0tLS0tLS03LS0tLS0tLS0tOC0tLS0tLS0tLTktLS0tLS0tLS0wIGNvbnNvbGUtdHJp
bS1sb25nLXVybHMuaHRtbDoxMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9jb25zb2xlLXRyaW0tbG9uZy11cmxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGY5MTQzYjNjNDZkMjdlODM3MzNmMTY0MGJhODA3MThkZjllM2ZhNjYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10cmltLWxvbmctdXJscy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBvbmxvYWQoKQotewotICAgIC8vICAgICAgICAwLS0tLS0t
LS0tMS0tLS0tLS0tLTItLS0tLS0tLS0zLS0tLS0tLS0tNC0tLS0tLS0tLTUtLS0tLS0tLS02LS0t
LS0tLS0tNy0tLS0tLS0tLTgtLS0tLS0tLS05LS0tLS0tLS0tMC0tLS0tLS0tLTEtLS0tLS0tLS0y
LS0tLS0tLS0tMy0tLS0tLS0tLTQtLS0tLS0tLS01LS0tLS0tLS0tNi0tLS0tLS0tLTctLS0tLS0t
LS04LS0tLS0tLS0tOS0tLS0tLS0tLTAKLSAgICB2YXIgdXJsID0gImh0dHA6Ly9leGFtcGxlLmNv
bS8yLS0tLS0tLS0tMy0tLS0tLS0tLTQtLS0tLS0tLS01LS0tLS0tLS0tNi0tLS0tLS0tLTctLS0t
LS0tLS04LS0tLS0tLS0tOS0tLS0tLS0tLTAtLS0tLS0tLS0xLS0tLS0tLS0tMi0tLS0tLS0tLTMt
LS0tLS0tLS00LS0tLS0tLS0tNS0tLS0tLS0tLTYtLS0tLS0tLS03LS0tLS0tLS0tOC0tLS0tLS0t
LTktLS0tLS0tLS0wIjsKLQotICAgIGNvbnNvbGUubG9nKCJUaGUgVVJMIGlzOiAlcyIsIHVybCk7
Ci0gICAgY29uc29sZS5sb2codXJsKTsKLQotICAgIHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRDb25zb2xlTWVzc2FnZXMoKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBDb25zb2xlTWVzc2FnZXMoKTsKLSAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
b25sb2FkKCkiPgotPHA+Ci1UZXN0cyB0aGF0IGEgVVJMIGxvZ2dlZCB0byB0aGUgY29uc29sZSBp
cyB0cmltbWVkIGRvd24gdG8gMTUwIGNoYXJhY3RlcnMuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4ZGU5NTE5MmM5MzFiNzU5YjBhZTk5YTk2
Y2VkYjE3YTJhOTc3ZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLVRlc3RzIGluc3BlY3RvciBjb29raWUgcGFy
c2VyCi0KLXNvdXJjZTogY29va2llPXZhbHVlCi1uYW1lOiBjb29raWUsIHZhbHVlOiB2YWx1ZSwg
aHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRl
ZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwg
c2l6ZTogMTIKLXsKLX0KLXNvdXJjZTogJHZlcnNpb249MTsgYT1iLGMgID0gICBkLCBlPWYKLW5h
bWU6IGEsIHZhbHVlOiBiLGMgID0gICBkLCBlPWYsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBm
YWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwg
cG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDE3Ci17Ci19Ci1zb3VyY2U6ICR2
ZXJzaW9uPTE7IGE9YjtjICA9ICAgZDsgZSA9ZgotbmFtZTogYSwgdmFsdWU6IGIsIGh0dHBPbmx5
OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBk
b21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDQK
LXsKLX0KLW5hbWU6IGMsIHZhbHVlOiBkLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2Us
IHNlc3Npb246IHRydWUsIHBhdGg6IHVuZGVmaW5lZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6
IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiAxMAotewotfQotbmFtZTogZSwgdmFsdWU6
IGYsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDog
dW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBu
L2EsIHNpemU6IDQKLXsKLX0KLXNvdXJjZTogY29va2UxID0gdmFsdWUxOyBhbm90aGVyIGNvb2tp
ZSA9IGFub3RoZXIgdmFsdWUKLW5hbWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlMSwgaHR0cE9ubHk6
IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRlZmluZWQsIGRv
bWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogMjUK
LXsKLX0KLW5hbWU6IGNvb2tpZSwgdmFsdWU6IGFub3RoZXIgdmFsdWUsIGh0dHBPbmx5OiBmYWxz
ZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46
IHVuZGVmaW5lZCwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDIyCi17Ci19
Ci1zb3VyY2U6IGNvb2tlMSA9IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbTsK
LW5hbWU6IGNvb2tlMSwgdmFsdWU6IHZhbHVlLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFs
c2UsIHNlc3Npb246IHRydWUsIHBhdGg6IC8sIGRvbWFpbjogLmV4YW1wbGUuY29tLCBwb3J0OiB1
bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogNDYKLXsKLSAgICBkb21haW4gOiAiLmV4YW1w
bGUuY29tIgotICAgIHBhdGggOiAiLyIKLX0KLXNvdXJjZTogY29va2UxID0gdmFsdWU7ICRQYXRo
PS87ICREb21haW49LmV4YW1wbGUuY29tIDsgQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9v
OyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUs
IGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywg
ZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXpl
OiA0OAotewotICAgIGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQot
bmFtZTogQ29va2llMiwgdmFsdWU6IHZhbHVlMiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZh
bHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiAvZm9vLCBkb21haW46IGZvby5leGFtcGxlLmNvbSwg
cG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDU4Ci17Ci0gICAgZG9tYWluIDog
ImZvby5leGFtcGxlLmNvbSIKLSAgICBwYXRoIDogIi9mb28iCi19Ci1zb3VyY2U6IGNvb2tlMSA9
IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbQotQ29va2llMiA9IHZhbHVlMjsg
JFBhdGggPSAvZm9vOyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyAKLW5hbWU6IGNvb2tlMSwg
dmFsdWU6IHZhbHVlLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRy
dWUsIHBhdGg6IC8sIGRvbWFpbjogLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGly
ZXM6IG4vYSwgc2l6ZTogNDYKLXsKLSAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgotICAgIHBh
dGggOiAiLyIKLX0KLW5hbWU6IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiBmYWxz
ZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogL2ZvbywgZG9tYWluOiBmb28u
ZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA1OQotewot
ICAgIGRvbWFpbiA6ICJmb28uZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvZm9vIgotfQotc291
cmNlOiAkdmVyc2lvbiA9MTsgY29va2UxID0gdmFsdWU7ICRQYXRoPS87ICREb21haW4gICA9LmV4
YW1wbGUuY29tOyAgCi0gQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAvZm9vOyAkRE9NQUlOID0g
Zm9vLmV4YW1wbGUuY29tOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBm
YWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhh
bXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA1MwotewotICAg
IGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQotbmFtZTogQ29va2ll
MiwgdmFsdWU6IHZhbHVlMiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9u
OiB0cnVlLCBwYXRoOiAvZm9vLCBkb21haW46IGZvby5leGFtcGxlLmNvbSwgcG9ydDogdW5kZWZp
bmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDU4Ci17Ci0gICAgZG9tYWluIDogImZvby5leGFtcGxl
LmNvbSIKLSAgICBwYXRoIDogIi9mb28iCi19Ci1zb3VyY2U6IGNvb2tpZT12YWx1ZQotbmFtZTog
Y29va2llLCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vz
c2lvbjogdHJ1ZSwgcGF0aDogdW5kZWZpbmVkLCBkb21haW46IHVuZGVmaW5lZCwgcG9ydDogdW5k
ZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDEyCi17Ci19Ci1zb3VyY2U6IGE9YgotIGM9ZAot
IGYKLW5hbWU6IGEsIHZhbHVlOiBiLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNl
c3Npb246IHRydWUsIHBhdGg6IHVuZGVmaW5lZCwgZG9tYWluOiB1bmRlZmluZWQsIHBvcnQ6IHVu
ZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiA1Ci17Ci19Ci1uYW1lOiBjLCB2YWx1ZTogZCwg
aHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRl
ZmluZWQsIGRvbWFpbjogdW5kZWZpbmVkLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwg
c2l6ZTogNQotewotfQotbmFtZTogLCB2YWx1ZTogZiwgaHR0cE9ubHk6IGZhbHNlLCBzZWN1cmU6
IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiB1bmRlZmluZWQsIGRvbWFpbjogdW5kZWZpbmVk
LCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogMQotewotfQotc291cmNlOiBj
b29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBEb21haW49LmV4YW1wbGUuY29tOwotbmFtZTogY29va2Ux
LCB2YWx1ZTogdmFsdWUsIGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjog
dHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhw
aXJlczogbi9hLCBzaXplOiA0NAotewotICAgIGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAg
cGF0aCA6ICIvIgotfQotc291cmNlOiBjb29rZTEgPSB2YWx1ZTsgUGF0aD0vOyBEb21haW49ICAu
ZXhhbXBsZS5jb20gCi1Db29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRG9tYWluID0gZm9v
LmV4YW1wbGUuY29tCi1uYW1lOiBjb29rZTEsIHZhbHVlOiB2YWx1ZSwgaHR0cE9ubHk6IGZhbHNl
LCBzZWN1cmU6IGZhbHNlLCBzZXNzaW9uOiB0cnVlLCBwYXRoOiAvLCBkb21haW46IC5leGFtcGxl
LmNvbSwgcG9ydDogdW5kZWZpbmVkLCBleHBpcmVzOiBuL2EsIHNpemU6IDQ3Ci17Ci0gICAgZG9t
YWluIDogIi5leGFtcGxlLmNvbSIKLSAgICBwYXRoIDogIi8iCi19Ci1uYW1lOiBDb29raWUyLCB2
YWx1ZTogdmFsdWUyLCBodHRwT25seTogZmFsc2UsIHNlY3VyZTogZmFsc2UsIHNlc3Npb246IHRy
dWUsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQs
IGV4cGlyZXM6IG4vYSwgc2l6ZTogNTUKLXsKLSAgICBkb21haW4gOiAiZm9vLmV4YW1wbGUuY29t
IgotICAgIHBhdGggOiAiL2ZvbyIKLX0KLXNvdXJjZTogY29va2UxID0gdmFsdWU7IGV4cGlyZXMg
PSBNb24sIE9jdCAxOCAyMDEwIDE3OjAwIEdNVCswMDAwOyBEb21haW4gICA9LmV4YW1wbGUuY29t
Ci1Db29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRE9NQUlOID0gZm9vLmV4YW1wbGUuY29t
OyBIdHRwT25seTsgU2VjdXJlOyBEaXNjYXJkOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUs
IGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVu
ZGVmaW5lZCwgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczog
MTI4NzQyMTIwMDAwMCwgc2l6ZTogODIKLXsKLSAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgot
ICAgIGV4cGlyZXMgOiAiTW9uLCBPY3QgMTggMjAxMCAxNzowMCBHTVQrMDAwMCIKLX0KLW5hbWU6
IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0dHBPbmx5OiB0cnVlLCBzZWN1cmU6IHRydWUsIHNl
c3Npb246IHRydWUsIHBhdGg6IC9mb28sIGRvbWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1
bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6ZTogODMKLXsKLSAgICBkaXNjYXJkIDogdW5kZWZp
bmVkCi0gICAgZG9tYWluIDogImZvby5leGFtcGxlLmNvbSIKLSAgICBodHRwb25seSA6IHVuZGVm
aW5lZAotICAgIHBhdGggOiAiL2ZvbyIKLSAgICBzZWN1cmUgOiB1bmRlZmluZWQKLX0KLXNvdXJj
ZTogY29va2UxID0gdmFsdWU7IG1heC1hZ2U9IDE0NDA7IERvbWFpbiAgID0uZXhhbXBsZS5jb20K
LSBDb29raWUyID0gdmFsdWUyOyBQYXRoID0gL2ZvbzsgRE9NQUlOID0gZm9vLmV4YW1wbGUuY29t
OyBIdHRwT25seTsgU2VjdXJlOyBEaXNjYXJkOwotbmFtZTogY29va2UxLCB2YWx1ZTogdmFsdWUs
IGh0dHBPbmx5OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogZmFsc2UsIHBhdGg6IHVu
ZGVmaW5lZCwgZG9tYWluOiAuZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczog
MTI4NzQyMjY0MDAwMCwgc2l6ZTogNTUKLXsKLSAgICBkb21haW4gOiAiLmV4YW1wbGUuY29tIgot
ICAgIG1heC1hZ2UgOiAiMTQ0MCIKLX0KLW5hbWU6IENvb2tpZTIsIHZhbHVlOiB2YWx1ZTIsIGh0
dHBPbmx5OiB0cnVlLCBzZWN1cmU6IHRydWUsIHNlc3Npb246IHRydWUsIHBhdGg6IC9mb28sIGRv
bWFpbjogZm9vLmV4YW1wbGUuY29tLCBwb3J0OiB1bmRlZmluZWQsIGV4cGlyZXM6IG4vYSwgc2l6
ZTogODMKLXsKLSAgICBkaXNjYXJkIDogdW5kZWZpbmVkCi0gICAgZG9tYWluIDogImZvby5leGFt
cGxlLmNvbSIKLSAgICBodHRwb25seSA6IHVuZGVmaW5lZAotICAgIHBhdGggOiAiL2ZvbyIKLSAg
ICBzZWN1cmUgOiB1bmRlZmluZWQKLX0KLXNvdXJjZTogY29va2UxOyBQYXRoPS87IERvbWFpbj0u
ZXhhbXBsZS5jb207Ci1uYW1lOiAsIHZhbHVlOiBjb29rZTEsIGh0dHBPbmx5OiBmYWxzZSwgc2Vj
dXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAuZXhhbXBsZS5jb20s
IHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiAzNgotewotICAgIGRvbWFpbiA6
ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQotc291cmNlOiBjb29rZTE9OyBQYXRo
PS87IERvbWFpbj0uZXhhbXBsZS5jb207Ci1uYW1lOiBjb29rZTEsIHZhbHVlOiAsIGh0dHBPbmx5
OiBmYWxzZSwgc2VjdXJlOiBmYWxzZSwgc2Vzc2lvbjogdHJ1ZSwgcGF0aDogLywgZG9tYWluOiAu
ZXhhbXBsZS5jb20sIHBvcnQ6IHVuZGVmaW5lZCwgZXhwaXJlczogbi9hLCBzaXplOiAzNwotewot
ICAgIGRvbWFpbiA6ICIuZXhhbXBsZS5jb20iCi0gICAgcGF0aCA6ICIvIgotfQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXBhcnNlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nvb2tpZS1wYXJzZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGRkMmVkNzZmMjI3MzllYTYzNzM3NzZjNDJlZTYyZmRlMGIyZmNiYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29va2llLXBhcnNlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0K
LWZ1bmN0aW9uIGluaXRpYWxpemVfQ29va2llVGVzdHMoKQotewotCi1JbnNwZWN0b3JUZXN0LmR1
bXBDb29raWUgPSBmdW5jdGlvbihjb29raWUpCi17Ci0gICAgdmFyIHJlcXVlc3REYXRlID0gbmV3
IERhdGUoIk1vbiBPY3QgMTggMjAxMCAxNzowMDowMCBHTVQrMDAwMCIpOwotICAgIHZhciBleHBp
cmVzID0gY29va2llLmV4cGlyZXNEYXRlKHJlcXVlc3REYXRlKTsKLQotICAgIHZhciBvdXRwdXQg
PSAibmFtZTogIiArIGNvb2tpZS5uYW1lKCkgKyAiLCB2YWx1ZTogIiArIGNvb2tpZS52YWx1ZSgp
ICsgIiwgaHR0cE9ubHk6ICIgKyBjb29raWUuaHR0cE9ubHkoKSArCi0gICAgICAgICIsIHNlY3Vy
ZTogIiArIGNvb2tpZS5zZWN1cmUoKSArICIsIHNlc3Npb246ICIgKyBjb29raWUuc2Vzc2lvbigp
ICsgIiwgcGF0aDogIiArIGNvb2tpZS5wYXRoKCkgKwotICAgICAgICAiLCBkb21haW46ICIgKyBj
b29raWUuZG9tYWluKCkgKyAiLCBwb3J0OiAiICsgY29va2llLnBvcnQoKSArCi0gICAgICAgICIs
IGV4cGlyZXM6ICIgKyAoZXhwaXJlcyA/IGV4cGlyZXMuZ2V0VGltZSgpIDogIm4vYSIpICsKLSAg
ICAgICAgIiwgc2l6ZTogIiArIGNvb2tpZS5zaXplKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChvdXRwdXQpOwotICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KGNvb2tpZS5hdHRy
aWJ1dGVzKCkpOwotfQotCi1JbnNwZWN0b3JUZXN0LmR1bXBDb29raWVzID0gZnVuY3Rpb24oY29v
a2llcykKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyArK2kpCi0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvb2tpZShjb29raWVzW2ldKTsKLX0KLQotSW5zcGVj
dG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUgPSBmdW5jdGlvbihoZWFkZXIpCi17Ci0gICAgdmFy
IHBhcnNlciA9IG5ldyBXZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyKCk7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoInNvdXJjZTogIiArIGhlYWRlcik7Ci0gICAgSW5zcGVjdG9yVGVzdC5k
dW1wQ29va2llcyhwYXJzZXIucGFyc2VDb29raWUoaGVhZGVyKSk7Ci19Ci0KLUluc3BlY3RvclRl
c3QucGFyc2VBbmREdW1wU2V0Q29va2llID0gZnVuY3Rpb24oaGVhZGVyKQotewotICAgIHZhciBw
YXJzZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlcigpOwotICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJzb3VyY2U6ICIgKyBoZWFkZXIpOwotICAgIEluc3BlY3RvclRlc3QuZHVt
cENvb2tpZXMocGFyc2VyLnBhcnNlU2V0Q29va2llKGhlYWRlcikpOwotfQotCi19Ci0KLXZhciB0
ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1wQ29va2ll
KCJjb29raWU9dmFsdWUiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tpZSgi
JHZlcnNpb249MTsgYT1iLGMgID0gICBkLCBlPWYiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNl
QW5kRHVtcENvb2tpZSgiJHZlcnNpb249MTsgYT1iO2MgID0gICBkOyBlID1mIik7Ci0gICAgSW5z
cGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoImNvb2tlMSA9IHZhbHVlMTsgYW5vdGhlciBj
b29raWUgPSBhbm90aGVyIHZhbHVlIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBD
b29raWUoImNvb2tlMSA9IHZhbHVlOyAkUGF0aD0vOyAkRG9tYWluPS5leGFtcGxlLmNvbTsiKTsK
LSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcENvb2tpZSgiY29va2UxID0gdmFsdWU7ICRQ
YXRoPS87ICREb21haW49LmV4YW1wbGUuY29tIDsgQ29va2llMiA9IHZhbHVlMjsgJFBhdGggPSAv
Zm9vOyAkRE9NQUlOID0gZm9vLmV4YW1wbGUuY29tOyIpOwotICAgIEluc3BlY3RvclRlc3QucGFy
c2VBbmREdW1wQ29va2llKCJjb29rZTEgPSB2YWx1ZTsgJFBhdGg9LzsgJERvbWFpbj0uZXhhbXBs
ZS5jb21cbkNvb2tpZTIgPSB2YWx1ZTI7ICRQYXRoID0gL2ZvbzsgJERPTUFJTiA9IGZvby5leGFt
cGxlLmNvbTsgIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBDb29raWUoIiR2ZXJz
aW9uID0xOyBjb29rZTEgPSB2YWx1ZTsgJFBhdGg9LzsgJERvbWFpbiAgID0uZXhhbXBsZS5jb207
ICBcbiBDb29raWUyID0gdmFsdWUyOyAkUGF0aCA9IC9mb287ICRET01BSU4gPSBmb28uZXhhbXBs
ZS5jb207Iik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29v
a2llPXZhbHVlIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBTZXRDb29raWUoImE9
YlxuIGM9ZFxuIGYiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgi
Y29va2UxID0gdmFsdWU7IFBhdGg9LzsgRG9tYWluPS5leGFtcGxlLmNvbTsiKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNldENvb2tpZSgiY29va2UxID0gdmFsdWU7IFBhdGg9Lzsg
RG9tYWluPSAgLmV4YW1wbGUuY29tIFxuQ29va2llMiA9IHZhbHVlMjsgUGF0aCA9IC9mb287IERv
bWFpbiA9IGZvby5leGFtcGxlLmNvbSIpOwotICAgIEluc3BlY3RvclRlc3QucGFyc2VBbmREdW1w
U2V0Q29va2llKCJjb29rZTEgPSB2YWx1ZTsgZXhwaXJlcyA9IE1vbiwgT2N0IDE4IDIwMTAgMTc6
MDAgR01UKzAwMDA7IERvbWFpbiAgID0uZXhhbXBsZS5jb21cbkNvb2tpZTIgPSB2YWx1ZTI7IFBh
dGggPSAvZm9vOyBET01BSU4gPSBmb28uZXhhbXBsZS5jb207IEh0dHBPbmx5OyBTZWN1cmU7IERp
c2NhcmQ7Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5wYXJzZUFuZER1bXBTZXRDb29raWUoImNvb2tl
MSA9IHZhbHVlOyBtYXgtYWdlPSAxNDQwOyBEb21haW4gICA9LmV4YW1wbGUuY29tXG4gQ29va2ll
MiA9IHZhbHVlMjsgUGF0aCA9IC9mb287IERPTUFJTiA9IGZvby5leGFtcGxlLmNvbTsgSHR0cE9u
bHk7IFNlY3VyZTsgRGlzY2FyZDsiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnBhcnNlQW5kRHVtcFNl
dENvb2tpZSgiY29va2UxOyBQYXRoPS87IERvbWFpbj0uZXhhbXBsZS5jb207Iik7Ci0gICAgSW5z
cGVjdG9yVGVzdC5wYXJzZUFuZER1bXBTZXRDb29raWUoImNvb2tlMT07IFBhdGg9LzsgRG9tYWlu
PS5leGFtcGxlLmNvbTsiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3Rz
IGluc3BlY3RvciBjb29raWUgcGFyc2VyPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nvb2tpZS1yZXNvdXJjZS1tYXRjaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXJlc291cmNlLW1hdGNoLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmRjMTI5Y2FiMzJlZDQ3MmQwNGIz
MjZkZjMzMDU5MTQ5MWIwYjE1ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXJlc291cmNlLW1hdGNoLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRlc3RzIHRoYXQgY29v
a2llcyBhcmUgbWF0Y2hlZCB1cCB3aXRoIHJlc291cmNlcyBjb3JyZWN0bHkuCi0KLVswLDIsNCw2
LDgsMTAsMTIsMTRdCi1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNV0KLVsy
LDMsNiw3LDEwLDExLDE0LDE1XQotWzYsMTRdCi1bNCw1LDYsNywxMiwxMywxNCwxNV0KLVs2LDcs
MTQsMTVdCi1bOCwxMCwxMiwxNF0KLVs4LDksMTAsMTEsMTIsMTMsMTQsMTVdCi1bMTAsMTEsMTQs
MTVdCi1bMTRdCi1bMTIsMTMsMTQsMTVdCi1bMTQsMTVdCi1bXQotW10KLVtdCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb29raWUtcmVzb3VyY2UtbWF0Y2guaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb29raWUtcmVzb3VyY2UtbWF0Y2guaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y5MjkxMDE2NjUwNWJhNjAyZjExNWM3ZDA2ZDE4Y2YwMGEz
NjY2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29va2llLXJlc291cmNlLW1hdGNoLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw5MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKSB7Ci0KLSAgICB2YXIgY29va2llcyA9IFsKLSAgICAgICAgY3JlYXRl
Q29va2llKCJpbnNlY3VyZU9ubHlXZWJraXQiLCAiMTIzNDU2Nzg5MCIsIGZhbHNlLCAid2Via2l0
Lm9yZyIsICIvIiksCi0gICAgICAgIGNyZWF0ZUNvb2tpZSgiaW5zZWN1cmVBbGxXZWJraXQiLCAi
MTIzNDU2Nzg5MDEyMzQ1NiIsIGZhbHNlLCAiLndlYmtpdC5vcmciLCAiLyIpLAotICAgICAgICBj
cmVhdGVDb29raWUoImluc2VjdXJlQWxsV2Via2l0UGF0aCIsICIxMjM0NTY3ODkwMTIzNDU2Iiwg
ZmFsc2UsICIud2Via2l0Lm9yZyIsICIvcGF0aCIpLAotICAgICAgICBjcmVhdGVDb29raWUoInNl
Y3VyZU9ubHlXZWJraXRQYXRoIiwgImJhciIsIHRydWUsICJ3ZWJraXQub3JnIiwgIi9wYXRoIiks
Ci0gICAgICAgIGNyZWF0ZUNvb2tpZSgic2VjdXJlQWxsV2Via2l0IiwgImZvbyIsIHRydWUsICIu
d2Via2l0Lm9yZyIsICIvIiksCi0gICAgICAgIGNyZWF0ZUNvb2tpZSgic2VjdXJlQWxsV2Via2l0
UGF0aCIsICJmb28iLCB0cnVlLCAiLndlYmtpdC5vcmciLCAiL3BhdGgiKSwKLSAgICAgICAgY3Jl
YXRlQ29va2llKCJpbnNlY3VyZU9ubHlXZWJraXRQb3J0IiwgIjEyMzQ1Njc4OTAiLCBmYWxzZSwg
IndlYmtpdC5vcmciLCAiLyIsIDgwKSwKLSAgICAgICAgY3JlYXRlQ29va2llKCJpbnNlY3VyZUFs
bFdlYmtpdFBvcnQiLCAiMTIzNDU2Nzg5MDEyMzQ1NiIsIGZhbHNlLCAiLndlYmtpdC5vcmciLCAi
LyIsIDgwKSwKLSAgICAgICAgY3JlYXRlQ29va2llKCJpbnNlY3VyZUFsbFdlYmtpdFBhdGhQb3J0
IiwgIjEyMzQ1Njc4OTAxMjM0NTYiLCBmYWxzZSwgIi53ZWJraXQub3JnIiwgIi9wYXRoIiwgODAp
LAotICAgICAgICBjcmVhdGVDb29raWUoInNlY3VyZU9ubHlXZWJraXRQYXRoUG9ydCIsICJiYXIi
LCB0cnVlLCAid2Via2l0Lm9yZyIsICIvcGF0aCIsIDgwKSwKLSAgICAgICAgY3JlYXRlQ29va2ll
KCJzZWN1cmVBbGxXZWJraXRQb3J0IiwgImZvbyIsIHRydWUsICIud2Via2l0Lm9yZyIsICIvIiwg
ODApLAotICAgICAgICBjcmVhdGVDb29raWUoInNlY3VyZUFsbFdlYmtpdFBhdGhQb3J0IiwgImZv
byIsIHRydWUsICIud2Via2l0Lm9yZyIsICIvcGF0aCIsIDgwKSwKLSAgICAgICAgY3JlYXRlQ29v
a2llKCJub25NYXRjaGluZzEiLCAiYmFyIiwgZmFsc2UsICJ3ZWJraXQuem9vIiwgIi8iKSwKLSAg
ICAgICAgY3JlYXRlQ29va2llKCJub25NYXRjaGluZzIiLCAiYmFyIiwgZmFsc2UsICJ3ZWJraXQu
b3JnIiwgIi9iYWRQYXRoIiksCi0gICAgICAgIGNyZWF0ZUNvb2tpZSgibm9uTWF0Y2hpbmczIiwg
ImJhciIsIHRydWUsICIubW9vLmNvbSIsICIvIikKLSAgICBdOwotCi0gICAgdmFyIHJlc291cmNl
VVJMcyA9IFsKLSAgICAgICAgImh0dHA6Ly93ZWJraXQub3JnIiwgLy8gMAotICAgICAgICAiaHR0
cDovL3d3dy53ZWJraXQub3JnOjgxIiwgLy8gMQotICAgICAgICAiaHR0cDovL3dlYmtpdC5vcmcv
cGF0aCIsIC8vIDIKLSAgICAgICAgImh0dHA6Ly93d3cud2Via2l0Lm9yZy9wYXRoIiwgLy8gMwot
ICAgICAgICAiaHR0cHM6Ly93ZWJraXQub3JnLyIsIC8vIDQKLSAgICAgICAgImh0dHBzOi8vd3d3
LndlYmtpdC5vcmcvIiwgLy8gNQotICAgICAgICAiaHR0cHM6Ly93ZWJraXQub3JnOjgxL3BhdGgi
LCAvLyA2Ci0gICAgICAgICJodHRwczovL3d3dy53ZWJraXQub3JnL3BhdGgiLCAvLyA3Ci0KLSAg
ICAgICAgImh0dHA6Ly93ZWJraXQub3JnOjgwIiwgLy8gOAotICAgICAgICAiaHR0cDovL3d3dy53
ZWJraXQub3JnOjgwIiwgLy8gOQotICAgICAgICAiaHR0cDovL3dlYmtpdC5vcmc6ODAvcGF0aCIs
IC8vIDEwCi0gICAgICAgICJodHRwOi8vd3d3LndlYmtpdC5vcmc6ODAvcGF0aCIsIC8vIDExCi0g
ICAgICAgICJodHRwczovL3dlYmtpdC5vcmc6ODAvIiwgLy8gMTIKLSAgICAgICAgImh0dHBzOi8v
d3d3LndlYmtpdC5vcmc6ODAvIiwgLy8gMTMKLSAgICAgICAgImh0dHBzOi8vd2Via2l0Lm9yZzo4
MC9wYXRoIiwgLy8gMTQKLSAgICAgICAgImh0dHBzOi8vd3d3LndlYmtpdC5vcmc6ODAvcGF0aCIs
IC8vIDE1Ci0KLSAgICAgICAgImh0dHA6Ly93d3cuYm9vLmNvbTo4MCIsIC8vIDE2Ci0gICAgICAg
ICJodHRwczovL3d3dy5ib28uY29tOjgwL3BhdGgiLCAvLyAxNwotICAgICAgICAiaHR0cDovL3d3
dy5tb28uY29tOjgwLyIsIC8vIDE4Ci0gICAgICAgICJodHRwOi8vd3d3LmJvby5jb206ODAiLCAv
LyAxOQotICAgICAgICAiaHR0cHM6Ly93d3cuYm9vLmNvbTo4MC9wYXRoIiwgLy8gMjAKLSAgICAg
ICAgImh0dHA6Ly93d3cubW9vLmNvbTo4MC8iIC8vIDIxCi0gICAgXTsKLQotICAgIHZhciByZXN1
bHQgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgdmFyIGNvb2tpZVJlc3VsdCA9IFtdOwotICAgICAgICBmb3IgKHZhciBqID0gMDsg
aiA8IHJlc291cmNlVVJMcy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgaWYgKFdlYkluc3Bl
Y3Rvci5Db29raWVzLmNvb2tpZU1hdGNoZXNSZXNvdXJjZVVSTChjb29raWVzW2ldLCByZXNvdXJj
ZVVSTHNbal0pKQotICAgICAgICAgICAgICAgIGNvb2tpZVJlc3VsdC5wdXNoKGopOwotICAgICAg
ICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJbIiArIGNvb2tpZVJlc3VsdCAr
ICJdIik7Ci0gICAgfQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0KLSAgICBm
dW5jdGlvbiBjcmVhdGVDb29raWUobmFtZSwgdmFsdWUsIHNlY3VyZSwgZG9tYWluLCBwYXRoLCBw
b3J0KQotICAgIHsKLSAgICAgICAgdmFyIHByb3RvY29sQ29va2llID0gewotICAgICAgICAgICAg
bmFtZTogbmFtZSwKLSAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSwKLSAgICAgICAgICAgIGRvbWFp
bjogZG9tYWluLAotICAgICAgICAgICAgcG9ydDogcG9ydCwKLSAgICAgICAgICAgIHBhdGg6IHBh
dGgsCi0gICAgICAgICAgICBleHBpcmVzOiAiVGh1IEphbiAwMSAxOTcwIDAwOjAwOjAwIEdNVCIs
Ci0gICAgICAgICAgICBzaXplOiBuYW1lLmxlbmd0aCArIHZhbHVlLmxlbmd0aCwKLSAgICAgICAg
ICAgIGh0dHBPbmx5OiBmYWxzZSwKLSAgICAgICAgICAgIHNlY3VyZTogc2VjdXJlLAotICAgICAg
ICAgICAgc2Vzc2lvbjogdHJ1ZQotICAgICAgICB9OwotICAgICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLkNvb2tpZXMuYnVpbGRDb29raWVQcm90b2NvbE9iamVjdChwcm90b2NvbENvb2tpZSk7Ci0g
ICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPgotVGVzdHMgdGhhdCBjb29raWVzIGFyZSBtYXRjaGVkIHVwIHdpdGggcmVzb3VyY2VzIGNv
cnJlY3RseS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2N1cmwtY29tbWFuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3VybC1jb21tYW5kLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDFkMDY4YWRjOTdjZWFjNzc1YTZjNDBjOTc1YWVjOWI1Y2FjOWYwOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3VybC1jb21tYW5kLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBA
QAotVGVzdHMgY3VybCBjb21tYW5kIGdlbmVyYXRpb24KLQotY3VybCAiaHR0cDovL2V4YW1wbGUu
b3JnL3BhdGgiCi1jdXJsICJodHRwOi8vZXhhbXBsZS5vcmcvcGF0aCIgLS1kYXRhLWJpbmFyeSAi
MTIzIgotY3VybCAiaHR0cDovL2V4YW1wbGUub3JnL3BhdGgiIC1IICJDb250ZW50LVR5cGU6IGFw
cGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgLS1kYXRhICIxJmIiCi1jdXJsICJodHRw
Oi8vZXhhbXBsZS5vcmcvcGF0aCIgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIg
LS1kYXRhLWJpbmFyeSAie1wiYVwiOjF9IgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3VybC1jb21tYW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3VybC1jb21t
YW5kLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzYmYxZDViNTlhZTU0Njkx
MGE1YmJkMzY5NmI3ZTBmNWE1MmM0YTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2N1cmwtY29tbWFuZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQot
ewotICAgIHZhciBsb2dWaWV3ID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJuZXR3b3JrIikuX25ldHdv
cmtMb2dWaWV3OwotICAgIAotICAgIGZ1bmN0aW9uIG5ld1JlcXVlc3QoaGVhZGVycywgZGF0YSkK
LSAgICB7Ci0gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrUmVx
dWVzdCgwLCAiaHR0cDovL2V4YW1wbGUub3JnL3BhdGgiLCAwLCAwLCAwKTsKLSAgICAgICAgcmVx
dWVzdC5yZXF1ZXN0TWV0aG9kID0gZGF0YSA/ICJQT1NUIiA6ICJHRVQiOwotICAgICAgICB2YXIg
aGVhZGVyTGlzdCA9IFtdOwotICAgICAgICBpZiAoaGVhZGVycykgewotICAgICAgICAgICAgZm9y
ICh2YXIgaSBpbiBoZWFkZXJzKQotICAgICAgICAgICAgICAgIGhlYWRlckxpc3QucHVzaCh7bmFt
ZTogaSwgdmFsdWU6IGhlYWRlcnNbaV19KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGF0YSkg
ewotICAgICAgICAgICAgaGVhZGVyTGlzdC5wdXNoKHtuYW1lOiAiQ29udGVudC1MZW5ndGgiLCB2
YWx1ZTogZGF0YS5sZW5ndGh9KTsKLSAgICAgICAgICAgIHJlcXVlc3QucmVxdWVzdEZvcm1EYXRh
ID0gZGF0YTsKLSAgICAgICAgfQotICAgICAgICByZXF1ZXN0LnJlcXVlc3RIZWFkZXJzID0gaGVh
ZGVyTGlzdDsKLSAgICAgICAgcmV0dXJuIHJlcXVlc3Q7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
ZHVtcFJlcXVlc3QoaGVhZGVycywgZGF0YSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KGxvZ1ZpZXcuX2dlbmVyYXRlQ3VybENvbW1hbmQobmV3UmVxdWVzdChoZWFkZXJz
LCBkYXRhKSkpOwotICAgIH0KLQotICAgIGR1bXBSZXF1ZXN0KHt9KQotICAgIGR1bXBSZXF1ZXN0
KHt9LCAiMTIzIik7Ci0gICAgZHVtcFJlcXVlc3QoeyJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRp
b24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sICIxJmIiKTsKLSAgICBkdW1wUmVxdWVzdCh7IkNv
bnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIn0sICJ7XCJhXCI6MX0iKTsKLSAgICAKLSAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGN1cmwgY29tbWFuZCBnZW5lcmF0
aW9uPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RhdGFiYXNlLXRhYmxlLW5hbWUtZXhjYXBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RhdGFiYXNlLXRhYmxlLW5hbWUtZXhjYXBpbmctZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2M4Y2E4ODA5ODNhNjBjYzE0ZTQzZjI1MDA3
NThhNTRiZGFmZDlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhYmFzZS10YWJsZS1uYW1lLWV4Y2FwaW5nLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdHMgaG93IHRhYmxl
IG5hbWVzIGFyZSBlc2NhcGVkIGluIGRhdGFiYXNlIHRhYmxlIHZpZXcuCi0KLUJ1ZyA3NDQyMgot
T3JpZ2luYWwgdmFsdWU6IHRhYmxlLW5hbWUtd2l0aC1kYXNoZXMtYW5kLSJxdW90ZXMiCi1Fc2Nh
cGVkIHZhbHVlOiB0YWJsZS1uYW1lLXdpdGgtZGFzaGVzLWFuZC0iInF1b3RlcyIiCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhYmFzZS10YWJsZS1uYW1lLWV4Y2FwaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGF0YWJhc2UtdGFibGUtbmFtZS1leGNhcGlu
Zy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTk1MGRlMDY5Y2QwZGE2MjEw
Y2VkMTA5ZGNlMmM4ZGY4NzYxZDQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhYmFzZS10YWJsZS1uYW1lLWV4
Y2FwaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoInJlc291cmNlcyIpOwotICAgIHZhciB0YWJsZU5hbWUgPSAidGFibGUt
bmFtZS13aXRoLWRhc2hlcy1hbmQtXCJxdW90ZXNcIiI7Ci0gICAgdmFyIGVzY2FwZWRUYWJsZU5h
bWUgPSBXZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZVZpZXcucHJvdG90eXBlLl9lc2NhcGVUYWJs
ZU5hbWUodGFibGVOYW1lLCAiIiwgdHJ1ZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ik9yaWdpbmFsIHZhbHVlOiAiICsgdGFibGVOYW1lKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRXNjYXBlZCB2YWx1ZTogIiArIGVzY2FwZWRUYWJsZU5hbWUpOwotICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLSA8cD5UZXN0cyBob3cgdGFibGUgbmFtZXMgYXJlIGVzY2FwZWQgaW4g
ZGF0YWJhc2UgdGFibGUgdmlldy48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjEyMDUiPkJ1ZyA3NDQyMjwvYT4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhZ3JpZC1hdXRvc2l6ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGF0YWdyaWQtYXV0b3NpemUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OWNhODFkYTFmMDQwZDRkNGU3
ZDk0M2I4OTM5MTRjMjM3NGQ3Y2U3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kYXRhZ3JpZC1hdXRvc2l6ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1UZXN0cyBEYXRhR3JpZCBj
b2x1bW4gYXV0byBzaXplIGNhbGN1bGF0aW9uLgotCi1CdWcgMTAxMzYzCi1BdXRvIHNpemluZyBb
MTk4LDIsNDAwXSwgbWluUGVyY2VudD05MCwgbWF4UGVyY2VudD11bmRlZmluZWQKLSAgICBbMzMs
MzMsMzRdCi1BdXRvIHNpemluZyBbMTAwMF0sIG1pblBlcmNlbnQ9NSwgbWF4UGVyY2VudD11bmRl
ZmluZWQKLSAgICBbMTAwXQotQXV0byBzaXppbmcgWzEwXSwgbWluUGVyY2VudD01LCBtYXhQZXJj
ZW50PXVuZGVmaW5lZAotICAgIFsxMDBdCi1BdXRvIHNpemluZyBbMTAwMCwxMDAwXSwgbWluUGVy
Y2VudD01LCBtYXhQZXJjZW50PXVuZGVmaW5lZAotICAgIFs1MCw1MF0KLUF1dG8gc2l6aW5nIFsz
MCwzMCwzMCwzMF0sIG1pblBlcmNlbnQ9NSwgbWF4UGVyY2VudD11bmRlZmluZWQKLSAgICBbMjUs
MjUsMjUsMjVdCi1BdXRvIHNpemluZyBbMSwxMDAsMTAwLDEwMF0sIG1pblBlcmNlbnQ9MjUsIG1h
eFBlcmNlbnQ9dW5kZWZpbmVkCi0gICAgWzI1LDI1LDI1LDI1XQotQXV0byBzaXppbmcgWzEwMCwx
MDAsMTAwLDEwMF0sIG1pblBlcmNlbnQ9MjUsIG1heFBlcmNlbnQ9dW5kZWZpbmVkCi0gICAgWzI1
LDI1LDI1LDI1XQotQXV0byBzaXppbmcgWzEsMSwxLDEwMF0sIG1pblBlcmNlbnQ9MjUsIG1heFBl
cmNlbnQ9dW5kZWZpbmVkCi0gICAgWzI1LDI1LDI1LDI1XQotQXV0byBzaXppbmcgWzEsMTAwLDEw
MF0sIG1pblBlcmNlbnQ9MjUsIG1heFBlcmNlbnQ9NDAKLSAgICBbMjUsMzcsMzhdCi1BdXRvIHNp
emluZyBbMTAwLDEwMCwxMDBdLCBtaW5QZXJjZW50PTI1LCBtYXhQZXJjZW50PTQwCi0gICAgWzM0
LDMzLDMzXQotQXV0byBzaXppbmcgWzEsMSwxMDBdLCBtaW5QZXJjZW50PTI1LCBtYXhQZXJjZW50
PTQwCi0gICAgWzMwLDMwLDQwXQotQXV0byBzaXppbmcgWzMsMTAsNyw3LDEzLDEzLDksMTAsMTUs
MTUsMjAsMjAsMTQsMTQsMTIsMTIsMTIsMTAsOSwxNCwxMCw2LDcsMTAsMThdLCBtaW5QZXJjZW50
PTUsIG1heFBlcmNlbnQ9dW5kZWZpbmVkCi0gICAgWzQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQs
NCw0LDQsNCw0LDQsNCw0LDQsNCw0LDRdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kYXRhZ3JpZC1hdXRvc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RhdGFn
cmlkLWF1dG9zaXplLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxYTc1NDAz
MzFiOGUwMGFiZjk4NGYxZjE1YjY2M2EyYmY5ODY4OGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RhdGFncmlkLWF1
dG9zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIGZ1bmN0aW9uIHRlc3RBdXRvU2l6ZSh3aWR0aHMsIG1pblBlcmNlbnQsIG1h
eFBlcmNlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXV0byBz
aXppbmcgIiArIEpTT04uc3RyaW5naWZ5KHdpZHRocykgKyAiLCBtaW5QZXJjZW50PSIgKyBtaW5Q
ZXJjZW50ICsgIiwgbWF4UGVyY2VudD0iICsgbWF4UGVyY2VudCk7Ci0gICAgICAgIHZhciByZXN1
bHQgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLl9hdXRvU2l6ZVdpZHRocyh3aWR0
aHMsIG1pblBlcmNlbnQsIG1heFBlcmNlbnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiICAgICIgKyBKU09OLnN0cmluZ2lmeShyZXN1bHQpKTsKLSAgICB9Ci0KLSAgICB0ZXN0
QXV0b1NpemUoWzE5OCwgMiwgNDAwXSwgOTApOwotICAgIHRlc3RBdXRvU2l6ZShbMTAwMF0sIDUp
OwotICAgIHRlc3RBdXRvU2l6ZShbMTBdLCA1KTsKLSAgICB0ZXN0QXV0b1NpemUoWzEwMDAsIDEw
MDBdLCA1KTsKLSAgICB0ZXN0QXV0b1NpemUoWzMwLCAzMCwgMzAsIDMwXSwgNSk7Ci0gICAgdGVz
dEF1dG9TaXplKFsxLCAxMDAsIDEwMCwgMTAwXSwgMjUpOwotICAgIHRlc3RBdXRvU2l6ZShbMTAw
LCAxMDAsIDEwMCwgMTAwXSwgMjUpOwotICAgIHRlc3RBdXRvU2l6ZShbMSwgMSwgMSwgMTAwXSwg
MjUpOwotICAgIHRlc3RBdXRvU2l6ZShbMSwgMTAwLCAxMDBdLCAyNSwgNDApOwotICAgIHRlc3RB
dXRvU2l6ZShbMTAwLCAxMDAsIDEwMF0sIDI1LCA0MCk7Ci0gICAgdGVzdEF1dG9TaXplKFsxLCAx
LCAxMDBdLCAyNSwgNDApOwotCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTM2MwotICAgIHRlc3RBdXRvU2l6ZShbMywgMTAsIDcsIDcsIDEzLCAxMywg
OSwgMTAsIDE1LCAxNSwgMjAsIDIwLCAxNCwgMTQsIDEyLCAxMiwgMTIsIDEwLCA5LCAxNCwgMTAs
IDYsIDcsIDEwLCAxOF0sIDUpOwotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVz
dHMgRGF0YUdyaWQgY29sdW1uIGF1dG8gc2l6ZSBjYWxjdWxhdGlvbi48L3A+Ci08YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMzYzIj5CdWcgMTAxMzYz
PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci1saXN0ZW5lcnMtY291bnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci1saXN0
ZW5lcnMtY291bnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
ZGNiZGJjMDZlNjZjZjY5OWVmYzIwZTA4M2ZiZjA5Y2I3M2Y2MjE0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVha3BvaW50LW1hbmFnZXItbGlzdGVuZXJzLWNvdW50LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRoYXQgc2NyaXB0cyBwYW5lbCBkb2Vz
IG5vdCBjcmVhdGUgdG9vIG1hbnkgc291cmNlIGZyYW1lcy4KLQotRGVidWdnZXIgd2FzIGVuYWJs
ZWQuCi0KLVJ1bm5pbmc6IHRlc3RTb3VyY2VGcmFtZXNDb3VudAotUGFnZSByZWxvYWRlZC4KLU51
bWJlciBvZiBicmVha3BvaW50LWFkZGVkIGV2ZW50IGxpc3RlbmVycyBpcyAzCi1EdW1waW5nIFNv
dXJjZUZyYW1lcyBsaXN0ZW5pbmcgZm9yIGJyZWFrcG9pbnQtYWRkZWQgZXZlbnQ6Ci0gICAgc2Ny
aXB0MS5qcwotICAgIHNjcmlwdDIuanMKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci1s
aXN0ZW5lcnMtY291bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
a3BvaW50LW1hbmFnZXItbGlzdGVuZXJzLWNvdW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI2NDgxOTJiNzI3ZDM4MmQyYzA4ZWIyZmNiZTYwN2U4NjdiMWYxOTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci1saXN0ZW5lcnMtY291bnQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JpcHQxLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2NyaXB0Mi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RT
dWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VGcmFtZXNDb3VudChuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHM7Ci0gICAgICAgICAgICB2YXIgc291cmNlRnJhbWVDb3VudCA9IDA7Ci0KLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic2NyaXB0MS5qcyIsIGRpZFNob3dTY3Jp
cHRTb3VyY2VzKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZXMo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFn
ZShkaWRSZWxvYWQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRS
ZWxvYWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1NjcmlwdFNvdXJjZSgic2NyaXB0Mi5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2Fpbik7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VB
Z2FpbigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGxpc3RlbmVycyA9IFdl
Ykluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5fbGlzdGVuZXJzWyJicmVha3BvaW50LWFkZGVk
Il07Ci0gICAgICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDMgYnJlYWtwb2ludC1hZGRl
ZCBldmVudCBsaXN0ZW5lcnM6Ci0gICAgICAgICAgICAgICAgLy8gIC0gQnJlYWtwb2ludHNTaWRl
YmFyUGFuZQotICAgICAgICAgICAgICAgIC8vICAtIDIgc2hvd24gdGFicwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOdW1iZXIgb2YgYnJlYWtwb2ludC1hZGRlZCBl
dmVudCBsaXN0ZW5lcnMgaXMgIiArIGxpc3RlbmVycy5sZW5ndGgpOwotCi0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24gZHVtcExpc3RlbmVyKGxpc3RlbmVyKQotICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKCEobGlzdGVuZXIudGhpc09iamVjdCBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IGxpc3RlbmVyLnRoaXNPYmpl
Y3Q7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiAr
IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGUubmFtZSgpKTsKLSAgICAgICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBTb3VyY2VG
cmFtZXMgbGlzdGVuaW5nIGZvciBicmVha3BvaW50LWFkZGVkIGV2ZW50OiIpOwotICAgICAgICAg
ICAgICAgIGxpc3RlbmVycy5tYXAoZHVtcExpc3RlbmVyKTsKLQotICAgICAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfTsKLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBzY3JpcHRz
IHBhbmVsIGRvZXMgbm90IGNyZWF0ZSB0b28gbWFueSBzb3VyY2UgZnJhbWVzLjwvcD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9j
YWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ0ZjBiZjdlYzFjNGVmNzk1NmRjMDIz
OTk0OGQzMTIzMTU1NjAxNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRz
LWRpc2NhcmRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1U
ZXN0cyB0aGF0IFJhd1NvdXJjZUNvZGUgbGlzdGVuZXJzIGNvdW50IHdvbid0IGdyb3cgb24gZWFj
aCBzY3JpcHQgcGF1c2UuIEJ1ZyA3MDk5NgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVu
bmluZzogdGVzdENhbGxTdGFja1BsYWNhcmRzRGlzY2FyZGVkCi1TY3JpcHQgc291cmNlIHdhcyBz
aG93bi4KLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KLVJlY2VpdmVkIERlYnVnZ2VyUGF1
c2VkIGV2ZW50LgotRnVuY3Rpb24gbmFtZTogdGVzdEZ1bmN0aW9uCi1TY3JpcHQgZXhlY3V0aW9u
IHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLVNldCB0aW1lciBmb3IgdGVzdCBm
dW5jdGlvbi4KLVJlY2VpdmVkIERlYnVnZ2VyUGF1c2VkIGV2ZW50LgotRnVuY3Rpb24gbmFtZTog
dGVzdEZ1bmN0aW9uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24g
cmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2Fy
ZGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwNTQ5ZmI3ZGE4MWM0NDVi
NzU1OTdlNGIyZjc2N2YxY2ZlODNmYWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1w
bGFjYXJkcy1kaXNjYXJkZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rp
b24gdGVzdEZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1Z2dlcjsKLX0KLQotdmFyIHRlc3QgPSBmdW5j
dGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RDYWxsU3RhY2tQbGFjYXJkc0Rpc2NhcmRlZChuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclBhdXNlZCwgZGlk
UGF1c2UsIHRoaXMpOwotICAgICAgICAgICAgdmFyIHByZXZpb3VzQ291bnQgPSB1bmRlZmluZWQ7
Ci0gICAgICAgICAgICBmdW5jdGlvbiBkaWRQYXVzZShldmVudCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVjZWl2ZWQgRGVidWdnZXJQ
YXVzZWQgZXZlbnQuIik7Ci0gICAgICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IGV2ZW50LmRh
dGEuY2FsbEZyYW1lc1swXTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRnVuY3Rpb24gbmFtZTogIiArIGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUpOwotICAgICAgICAg
ICAgICAgIHZhciBjb3VudCA9IGxpdmVMb2NhdGlvbnNDb3VudCgpOwotICAgICAgICAgICAgICAg
IGlmIChwcmV2aW91c0NvdW50ICE9PSB1bmRlZmluZWQgJiYgY291bnQgIT09IHByZXZpb3VzQ291
bnQpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMRUQ6
IExpdmUgbG9jYXRpb25zIGNvdW50IGhhcyBjaGFuZ2VkISIpOwotICAgICAgICAgICAgICAgIHBy
ZXZpb3VzQ291bnQgPSBjb3VudDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJjYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0
bWwiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dT
Y3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLiIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1
c2VkKGRpZFBhdXNlMSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmdW5jdGlvbiBkaWRQ
YXVzZTEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVz
dW1lRXhlY3V0aW9uKGRpZFJlc3VtZTEpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmdW5j
dGlvbiBkaWRSZXN1bWUxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChkaWRQYXVzZTIpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkUGF1c2UyKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihkaWRSZXN1
bWUyKQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVzdW1lMigpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9LAotICAgIF0pOwotCi0gICAgZnVuY3Rpb24gbGl2ZUxvY2F0aW9uc0NvdW50KCkKLSAg
ICB7Ci0gICAgICAgIHZhciBjb3VudCA9IDA7Ci0gICAgICAgIHZhciBzY3JpcHRzID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0czsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gc2Ny
aXB0cykKLSAgICAgICAgICAgIGNvdW50ICs9IHNjcmlwdHNbaWRdLl9sb2NhdGlvbnMuc2l6ZSgp
OwotICAgICAgICByZXR1cm4gY291bnQ7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IFJhd1NvdXJjZUNv
ZGUgbGlzdGVuZXJzIGNvdW50IHdvbid0IGdyb3cgb24gZWFjaCBzY3JpcHQgcGF1c2UuIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk5NiI+QnVnIDcw
OTk2PC9hPgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvY29udGVudC1wcm92aWRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbnRlbnQtcHJvdmlkZXJzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY2NGIyODZmZTJkMTZiNmEwMmY0YWRk
YmRjNDc5NDFkZjJjMGI0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29udGVudC1wcm92aWRlcnMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgQ29udGVu
dFByb3ZpZGVyIGltcGxlbWVudGF0aW9ucy4KLQotCi1SdW5uaW5nOiB0ZXN0Q29uY2F0ZW5hdGVk
U2NyaXB0c0NvbnRlbnRQcm92aWRlcgotICA8c2NyaXB0PmZ1bmN0aW9uIGZvbygpIHsgcmV0dXJu
IDA7IH08L3NjcmlwdD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdD5mdW5jdGlvbiBiYXIoKSB7IHJldHVybiAwOyB9
PC9zY3JpcHQ+Ci0KLSAgICAgICAgICAgIDxzY3JpcHQ+Ci1mdW5jdGlvbiBiYXooKQotewotICBy
ZXR1cm4gMDsKLX0KLTwvc2NyaXB0PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvY29udGVudC1wcm92aWRlcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlNTk4NjhiNDU1ZGJjY2QzMTMyZTlhZTVmMmRmY2IwNDNjYWUwMDMzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIGNyZWF0ZU1vY2tTY3JpcHQoaWQsIHNvdXJj
ZSwgcmFuZ2UpCi0gICAgewotICAgICAgICByYW5nZSA9IHJhbmdlIHx8IFswLCAwLCAxMDAsIDBd
OwotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9u
KGNhbGxiYWNrKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKHNvdXJj
ZSwgZmFsc2UsICJ0ZXh0L2phdmFzY3JpcHQiKTsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICBnZXQgbGluZU9mZnNldCgpIHsgcmV0dXJuIHJhbmdlWzBdOyB9LAotICAgICAgICAgICAgZ2V0
IGNvbHVtbk9mZnNldCgpIHsgcmV0dXJuIHJhbmdlWzFdOyB9LAotICAgICAgICAgICAgZ2V0IGVu
ZExpbmUoKSB7IHJldHVybiByYW5nZVsyXTsgfSwKLSAgICAgICAgICAgIGdldCBlbmRDb2x1bW4o
KSB7IHJldHVybiByYW5nZVszXTsgfQotICAgICAgICB9OwotICAgIH0KLQotICAgIEluc3BlY3Rv
clRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdENvbmNhdGVuYXRlZFNj
cmlwdHNDb250ZW50UHJvdmlkZXIobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNj
cmlwdHMgPSBbXTsKLSAgICAgICAgICAgIHNjcmlwdHMucHVzaChjcmVhdGVNb2NrU2NyaXB0KCIx
IiwgIlxuZnVuY3Rpb24gYmF6KClcbntcbiAgcmV0dXJuIDA7XG59XG4iLCBbMywgMjAsIDcsIDBd
KSk7Ci0gICAgICAgICAgICBzY3JpcHRzLnB1c2goY3JlYXRlTW9ja1NjcmlwdCgiMiIsICJmdW5j
dGlvbiBmb28oKSB7IHJldHVybiAwOyB9IiwgWzAsIDEwLCAwLCAzOF0pKTsKLSAgICAgICAgICAg
IHNjcmlwdHMucHVzaChjcmVhdGVNb2NrU2NyaXB0KCIzIiwgImZ1bmN0aW9uIGJhcigpIHsgcmV0
dXJuIDA7IH0iLCBbMSwgNzAsIDEsIDk4XSkpOwotICAgICAgICAgICAgc2NyaXB0cy5wdXNoKGNy
ZWF0ZU1vY2tTY3JpcHQoIjQiLCAidGhpcyBzaG91bGQgbm90IGFwcGVhciBpbiBkaXNwbGF5ZWQg
Y29udGVudCIsIFswLCAyMCwgMCwgNjNdKSk7Ci0gICAgICAgICAgICB2YXIgY29udGVudFByb3Zp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVy
KHNjcmlwdHMpOwotICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQoY29udGVu
dCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ0ZXh0L2h0bWwiLCBtaW1lVHlwZSk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoY29udGVudCk7Ci0gICAgICAg
ICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY29udGVudFByb3Zp
ZGVyLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsKLSAgICAgICAgfQotICAgIF0p
OwotfTsKLQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgotPHA+VGVzdHMgQ29udGVudFByb3ZpZGVyIGltcGxlbWVudGF0aW9ucy48L3A+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVi
dWctaW5saW5lZC1zY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Zy1pbmxpbmVkLXNjcmlwdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkNmIzNjY0YTI3YWM5MmE4ZjJhNWVhZjViMzUzZDYxMjc4NThmZjBi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Zy1pbmxpbmVkLXNjcmlwdHMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotVGVzdHMgdGhhdCBhbGwgaW5saW5lZCBz
Y3JpcHRzIGZyb20gdGhlIHNhbWUgZG9jdW1lbnQgYXJlIHNob3duIGluIHRoZSBzYW1lIHNvdXJj
ZSBmcmFtZSB3aXRoIGh0bWwgc2NyaXB0IHRhZ3MuIEJ1ZyA1NDU0NC4KLQotRGVidWdnZXIgd2Fz
IGVuYWJsZWQuCi1TY3JpcHQgc291cmNlIHdhcyBzaG93bi4KLVNjcmlwdCBleGVjdXRpb24gcGF1
c2VkLgotQ2FsbCBzdGFjazoKLSAgICAwKSAgKGRlYnVnLWlubGluZWQtc2NyaXB0cy5odG1sOjMp
Ci09PVNvdXJjZSBmcmFtZSBjb250ZW50cyBzdGFydD09Ci0KLQotICA8c2NyaXB0PiAgZnVuY3Rp
b24gZjEoKSB7IHJldHVybiAwOyB9OyBmMSgpOyAgPC9zY3JpcHQ+Ci09PVNvdXJjZSBmcmFtZSBj
b250ZW50cyBlbmQ9PQotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAg
IDApIGY0IChkZWJ1Zy1pbmxpbmVkLXNjcmlwdHMuaHRtbDoxMCkKLSAgICAxKSAgKGRlYnVnLWlu
bGluZWQtc2NyaXB0cy5odG1sOjEyKQotPT1Tb3VyY2UgZnJhbWUgY29udGVudHMgc3RhcnQ9PQot
Ci0KLSAgPHNjcmlwdD4gIGZ1bmN0aW9uIGYxKCkgeyByZXR1cm4gMDsgfTsgZjEoKTsgIDwvc2Ny
aXB0PiAgICAgPHNjcmlwdD5mdW5jdGlvbiBmMigpIHsgcmV0dXJuIDA7IH08L3NjcmlwdD48c2Ny
aXB0PgotZnVuY3Rpb24gZjMoKSB7IHJldHVybiAwOyB9Ci08L3NjcmlwdD4KLQotPHNjcmlwdD4K
LWZ1bmN0aW9uIGY0KCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLWY0KCk7Ci08L3NjcmlwdD4KLT09
U291cmNlIGZyYW1lIGNvbnRlbnRzIGVuZD09Ci1QYWdlIHJlbG9hZGVkLgotRGVidWdnZXIgd2Fz
IGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZGVidWctaW5saW5lZC1zY3JpcHRzLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGVidWctaW5saW5lZC1zY3JpcHRzLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzM2YyMGZjNjVkMDFlOWVkNzJiNDllYmVmZDk2NGYwOWFk
ODMxM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnLWlubGluZWQtc2NyaXB0cy5odG1sLWRp
c2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAg
PHNjcmlwdD4gIGZ1bmN0aW9uIGYxKCkgeyByZXR1cm4gMDsgfTsgZjEoKTsgIDwvc2NyaXB0PiAg
ICAgPHNjcmlwdD5mdW5jdGlvbiBmMigpIHsgcmV0dXJuIDA7IH08L3NjcmlwdD48c2NyaXB0Pgot
ZnVuY3Rpb24gZjMoKSB7IHJldHVybiAwOyB9Ci08L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0
aW9uIGY0KCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLWY0KCk7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10
ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17
Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGVwMSwgdHJ1ZSk7Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3Jp
cHRTb3VyY2UoImRlYnVnLWlubGluZWQtc2NyaXB0cy5odG1sIiwgc3RlcDIpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXAyKHNvdXJjZUZyYW1lKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLiIpOwotICAgICAgICAvLyBV
c2UgZmFrZSByZXNvdXJjZXMgdG8gbWFrZSBzdXJlIHRoYXQgc2NyaXB0cyB3aWxsIGJlIGxvYWRl
ZCBmcm9tIEphdmFTY3JpcHQgVk0uCi0gICAgICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdl
ci5pbmZsaWdodFJlc291cmNlRm9yVVJMID0gZnVuY3Rpb24oKSB7IHJldHVybiBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlKCk7IH07Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2lu
dChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJy
ZWFrcG9pbnQoc291cmNlRnJhbWUsIDksICIiLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0VW50aWxQYXVzZWQoc3RlcDMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBh
Z2UoSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdC5iaW5kKEluc3BlY3RvclRlc3Qp
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyhjYWxsRnJhbWVzKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBleGVjdXRpb24gcGF1c2VkLiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImRlYnVnLWlubGluZWQtc2NyaXB0
cy5odG1sIiwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KHNvdXJjZUZyYW1l
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU291cmNlRnJhbWVDb250ZW50cyhz
b3VyY2VGcmFtZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKEluc3Bl
Y3RvclRlc3Qud2FpdFVudGlsUGF1c2VkLmJpbmQobnVsbCwgc3RlcDUpKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwNShjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgaWYgKGNhbGxGcmFt
ZXNbMF0ubGluZSAhPT0gOSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVj
dXRpb24oSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQuYmluZChudWxsLCBzdGVwNSkpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
aG93U2NyaXB0U291cmNlKCJkZWJ1Zy1pbmxpbmVkLXNjcmlwdHMuaHRtbCIsIHN0ZXA2KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNihzb3VyY2VGcmFtZSkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcFNvdXJjZUZyYW1lQ29udGVudHMoc291cmNlRnJhbWUpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBh
dXNlZC5iaW5kKG51bGwsIHN0ZXA3KSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDcoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24oSW5zcGVjdG9yVGVz
dC53YWl0VW50aWxQYXVzZWQuYmluZChudWxsLCBzdGVwNSkpOwotICAgIH0KLX0KLQotPC9zY3Jp
cHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0
aGF0IGFsbCBpbmxpbmVkIHNjcmlwdHMgZnJvbSB0aGUgc2FtZSBkb2N1bWVudCBhcmUgc2hvd24g
aW4gdGhlIHNhbWUgc291cmNlIGZyYW1lIHdpdGggaHRtbCBzY3JpcHQgdGFncy4KLTxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU0NCI+QnVnIDU0NTQ0
LjwvYT4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV4cGFuZC1zY29wZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXhwYW5kLXNjb3BlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlkNTkwNzI1YjYxNTAxNzU3
N2ZhMmY4M2NjMzIyZmUwNzhmZmJlMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXhw
YW5kLXNjb3BlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLQot
VGVzdCB0aGF0IHNlY3Rpb25zIHJlcHJlc2VudGluZyBzY29wZXMgb2YgdGhlIGN1cnJlbnQgY2Fs
bCBmcmFtZSBhcmUgZXhwYW5kYWJsZSBhbmQgY29udGFpbiBjb3JyZWN0IGRhdGEuCi0KLURlYnVn
Z2VyIHdhcyBlbmFibGVkLgotRXZhbHVhdGVkIHNjcmlwdCBpbiBjb25zb2xlLgotU2NyaXB0IGV4
ZWN1dGlvbiBwYXVzZWQuCi0KLUR1bXAgc2NvcGUgc2VjdGlvbnM6Ci1XaW5kb3dXaXRoIEJsb2Nr
Ci0gICAgZTogRXJyb3IKLUxvY2FsCi0gICAgYXJndW1lbnRzOiBBcmd1bWVudHNbMV0KLSAgICBp
bm5lckZ1bmN0aW9uTG9jYWxWYXI6IDIwMTIKLSAgICB0aGlzOiBXaW5kb3cKLSAgICB4OiAyMDEw
Ci1XaW5kb3dXaXRoIEJsb2NrCi0gICAgaW5uZXJGdW5jdGlvbjogZnVuY3Rpb24gaW5uZXJGdW5j
dGlvbih4KSB7Ci1DbG9zdXJlCi0gICAgbWFrZUNsb3N1cmVMb2NhbFZhcjogImxvY2FsLlRleHRQ
YXJhbSIKLSAgICBuOiAiVGV4dFBhcmFtIgotV2luZG93R2xvYmFsCi0gICAgPHNlY3Rpb24gY29s
bGFwc2VkPgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotRGVidWdnZXIgd2FzIGRpc2FibGVk
LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
ZXhwYW5kLXNjb3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdn
ZXItZXhwYW5kLXNjb3BlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlOTBk
NzRhNjUwZTMzMzM0ZDRhMzcwY2M2OTFjMTk2OTQ0NGEyNmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RlYnVnZ2VyLWV4cGFuZC1zY29wZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiBtYWtlQ2xvc3VyZShuKSB7Ci0gIHZhciBtYWtlQ2xvc3VyZUxvY2FsVmFyID0gJ2xv
Y2FsLicgKyBuOwotICByZXR1cm4gZnVuY3Rpb24gaW5uZXJGdW5jdGlvbih4KSB7Ci0gICAgdmFy
IGlubmVyRnVuY3Rpb25Mb2NhbFZhciA9IGFyZ3VtZW50c1swXSArIDI7Ci0gICAgdHJ5IHsKLSAg
ICAgIHRocm93IG5ldyBFcnJvcigiQW4gZXhjZXB0aW9uIik7Ci0gICAgfSBjYXRjaCAoZSkgewot
ICAgICAgZS50b1N0cmluZygpOwotICAgICAgZGVidWdnZXI7Ci0gICAgfQotICAgIHJldHVybiBu
ICsgbWFrZUNsb3N1cmVMb2NhbFZhciArIGFyZ3VtZW50c1swXSArIGlubmVyRnVuY3Rpb25Mb2Nh
bFZhcjsKLSAgfQotfQotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKSB7Ci0gIHZhciBmID0gbWFr
ZUNsb3N1cmUoJ1RleHRQYXJhbScpOwotICBmKDIwMTApOwotfQotCi0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHZhciBzY3JpcHRUb0V2YWx1YXRlID0gInNldFRpbWVvdXQodGVzdEZ1bmN0aW9u
LCAwKSI7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQot
ICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJbkNvbnNvbGUoc2NyaXB0VG9FdmFsdWF0ZSwgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQuYmlu
ZChJbnNwZWN0b3JUZXN0LCAiRXZhbHVhdGVkIHNjcmlwdCBpbiBjb25zb2xlLiIpKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIC8vIEV4cGFuZCBhbGwgYnV0IGdsb2JhbCBz
Y29wZXMuIEV4cGFuZGluZyBnbG9iYWwgc2NvcGUgdGFrZXMgZm9yIHRvbyBsb25nCi0gICAgICAg
IC8vIHNvIHdlIGtlZXAgaXQgY29sbGFwc2VkLgotICAgICAgICB2YXIgc2VjdGlvbnMgPSBXZWJJ
bnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwoKS5zaWRlYmFyUGFuZXMuc2NvcGVj
aGFpbi5fc2VjdGlvbnM7Ci0gICAgICAgIC8vIGdsb2JhbCBzY29wZSBpcyBhbHdheXMgdGhlIGxh
c3Qgb25lLgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aCAtIDE7
IGkrKykKLSAgICAgICAgICAgIHNlY3Rpb25zW2ldLmV4cGFuZCgpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgCi0gICAgICAgIHZhciBzZWN0aW9ucyA9IFdlYklu
c3BlY3Rvci5pbnNwZWN0b3JWaWV3LmN1cnJlbnRQYW5lbCgpLnNpZGViYXJQYW5lcy5zY29wZWNo
YWluLl9zZWN0aW9uczsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcCBzY29wZSBzZWN0aW9uczoiKTsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWN0aW9ucy5sZW5ndGg7IGkrKykgewotICAgICAg
ICAgICAgdmFyIHNlY3Rpb24gPSBzZWN0aW9uc1tpXTsKLSAgICAgICAgICAgIHZhciBwcm9wZXJ0
aWVzID0gc2VjdGlvbi5wcm9wZXJ0aWVzRm9yVGVzdDsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KEluc3BlY3RvclRlc3QudGV4dENvbnRlbnRXaXRoTGluZUJyZWFrcyhzZWN0
aW9uLmVsZW1lbnQpKTsKLSAgICAgICAgICAgIGlmICghc2VjdGlvbi5leHBhbmRlZCkKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIDxzZWN0aW9uIGNvbGxhcHNl
ZD4iKTsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJU
ZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPGlucHV0IHR5cGU9J2J1dHRvbicgb25jbGljaz0ndGVzdEZ1bmN0aW9uKCkn
IHZhbHVlPSdUZXN0Jy8+Ci08cD4KLVRlc3QgdGhhdCBzZWN0aW9ucyByZXByZXNlbnRpbmcgc2Nv
cGVzIG9mIHRoZSBjdXJyZW50IGNhbGwgZnJhbWUgYXJlIGV4cGFuZGFibGUKLWFuZCBjb250YWlu
IGNvcnJlY3QgZGF0YS4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wcm90by1wcm9wZXJ0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcHJvdG8tcHJv
cGVydHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDE5NmM4
MTAxZTdmZDdiZWJjMDAwMmQ3ZWJjZDA4NTNhMzU4OWY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1wcm90by1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi1UZXN0cyB0aGF0IG9iamVjdCdzIF9fcHJvdG9fXyBwcm9wZXJ0eSBpcyBwcmVz
ZW50IGluIG9iamVjdCBwcm9wZXJ0aWVzIHNlY3Rpb24gd2hlbiBzY3JpcHQgaXMgcGF1c2VkIG9u
IGEgYnJlYWtwb2ludC5CdWcgNDEyMTQKLQotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TZXQgdGlt
ZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUV4cGFuZGVk
IHByb3BlcnR5OiBvLl9fcHJvdG9fXy5fX3Byb3RvX18KLUV4cGFuZGVkIHByb3BlcnR5OiBkLl9f
cHJvdG9fXy5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fXy5fX3Byb3RvX18KLVNjcmlwdCBl
eGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXByb3RvLXByb3BlcnR5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcHJvdG8tcHJvcGVy
dHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE2NzE3N2Y5MzRiZGQyOWEw
ZTU5Zjk5MzNhZmM3YjEzNjhmMDEzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItcHJv
dG8tcHJvcGVydHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gQygp
Ci17Ci19Ci0KLUMucHJvdG90eXBlID0gewotICAgIG06IGZ1bmN0aW9uKCkgeyB9Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RGdW5jdGlvbigpCi17Ci0gICAgdmFyIG8gPSBuZXcgQygpOwotICAgIHZhciBk
ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwotICAgIGRlYnVnZ2VyOwotfQotCi12YXIgdGVz
dCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0
ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkKHN0ZXAyKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgdmFyIHNlY3Rpb25z
ID0gV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCkuc2lkZWJhclBhbmVz
LnNjb3BlY2hhaW4uX3NlY3Rpb25zOwotICAgICAgICB2YXIgbG9jYWxTY29wZSA9IHNlY3Rpb25z
WzBdLnByb3BlcnRpZXNUcmVlT3V0bGluZTsKLSAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBbCi0g
ICAgICAgICAgICBsb2NhbFNjb3BlLCBbIm8iLCAiX19wcm90b19fIiwgIl9fcHJvdG9fXyJdLAot
ICAgICAgICAgICAgbG9jYWxTY29wZSwgWyJkIiwgIl9fcHJvdG9fXyIsICJfX3Byb3RvX18iLCAi
X19wcm90b19fIiwgIl9fcHJvdG9fXyIsICJfX3Byb3RvX18iXQotICAgICAgICBdOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGFuZFByb3BlcnRpZXMocHJvcGVydGllcywgc3RlcDMpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgb2JqZWN0J3MgX19w
cm90b19fIHByb3BlcnR5IGlzIHByZXNlbnQgaW4gb2JqZWN0IHByb3BlcnRpZXMgc2VjdGlvbiB3
aGVuCi1zY3JpcHQgaXMgcGF1c2VkIG9uIGEgYnJlYWtwb2ludC48YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDEyMTQiPkJ1ZyA0MTIxNDwvYT4KLTwvcD4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RlYnVnZ2VyLXNjcmlwdC1wcmVwcm9jZXNzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXNjcmlwdC1wcmVwcm9jZXNzb3ItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTA0NDliZTY1Y2FmYjBi
MTYzZjY2ZWMyMzA1N2IyYjM3ZDk4ODc4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1z
Y3JpcHQtcHJlcHJvY2Vzc29yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICsw
LDAgQEAKLVRlc3RzIHNjcmlwdCBwcmVwcm9jZXNzb3IgKGFiaWxpdHkgdG8gcHJlcHJvY2VzcyBh
bGwgc2NyaXB0cyB1cG9uIHJlbG9hZCkuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotUGFnZSBy
ZWxvYWRlZC4KLWluc3BlY3Rvci10ZXN0LmpzCi1kZWJ1Z2dlci10ZXN0LmpzCi1kZWJ1Z2dlci1z
Y3JpcHQtcHJlcHJvY2Vzc29yLmh0bWwKLWRlYnVnZ2VyLXNjcmlwdC1wcmVwcm9jZXNzb3IuaHRt
bAotCi0KLVBhZ2UgcmVsb2FkZWQuCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zY3JpcHQtcHJlcHJv
Y2Vzc29yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc2Ny
aXB0LXByZXByb2Nlc3Nvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzU1
NDZmMWQ0MjA4NjEzYWY0NTQ1NTViZWU1MzViZTEzYjg2NmVjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9kZWJ1Z2dlci1zY3JpcHQtcHJlcHJvY2Vzc29yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWZ1bmN0aW9uIGxvYWQoKQotewotICAgIGV2YWwoImZ1bmN0aW9uIGR5bmFtaWMiICsg
IlNjcmlwdDEoKSB7fSIpOyAKLSAgICBldmFsKCJmdW5jdGlvbiBkeW5hbWljIiArICJTY3JpcHQy
KCkge30iKTsgCi0gICAgcnVuVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBm
dW5jdGlvbiBwcmVwcm9jZXNzb3Ioc2NyaXB0LCBuYW1lKQotICAgIHsKLSAgICAgICAgaWYgKHNj
cmlwdC5pbmRleE9mKCJkeW5hbWljIiArICJTY3JpcHQxIikgIT09IC0xKQotICAgICAgICAgICAg
cmV0dXJuIHNjcmlwdCArICIvL0Agc291cmNlVVJMPWR5bmFtaWNTY3JpcHQxIjsKLSAgICAgICAg
aWYgKHNjcmlwdC5pbmRleE9mKCJkeW5hbWljIiArICJTY3JpcHQyIikgIT09IC0xKSB7Ci0gICAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHZhciB3ID0gZXZhbCgid2luZG93Iik7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHNjcmlwdCArICIvL0Agc291cmNlVVJMPUZBSUxfd2luZG93
X3Nob3VsZF9ub3RfYmVfdGhlcmUiOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICAgICAgICAgIHJldHVybiBzY3JpcHQgKyAiLy9AIHNvdXJjZVVSTD1keW5hbWljU2NyaXB0MiI7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHxu
YW1lfCBhcmd1bWVudCBpcyBjb3JyZWN0LiBOb3RlOiBpZiBuYW1lIGlzIG5vdCBwYXNzZWQgaW4K
LSAgICAgICAgLy8gdGhlIHJlc3VsdHMgd2lsbCBiZSBhIHNjcmlwdCB3aXRoIGEgc291cmNlVVJM
IGVxdWFsIHRvIHRoZSBvcmlnaW5hbCBmaWxlIG5hbWUuCi0gICAgICAgIHJldHVybiBzY3JpcHQg
KyAiLy9AIHNvdXJjZVVSTD0iICsgbmFtZSArICIuanMiOyAKLSAgICB9Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
LSAgICB7ICAgICAgICAgCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShzdGVwMiwg
dW5kZWZpbmVkLCAiKCIgKyBwcmVwcm9jZXNzb3IgKyAiKSIpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGFjY2VwdChzY3JpcHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHZhciBz
Y3JpcHRzID0gSW5zcGVjdG9yVGVzdC5xdWVyeVNjcmlwdHMoYWNjZXB0KTsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHNjcmlwdHNb
aV0uc291cmNlVVJMKSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKEluc3Bl
Y3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QuYmluZChJbnNwZWN0b3JUZXN0KSk7Ci0gICAg
fQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJsb2FkKCkiPgotPHA+
Ci1UZXN0cyBzY3JpcHQgcHJlcHJvY2Vzc29yIChhYmlsaXR5IHRvIHByZXByb2Nlc3MgYWxsIHNj
cmlwdHMgdXBvbiByZWxvYWQpLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3RlcC1pbnRvLWV2ZW50
LWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9k
ZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyMmZkYjM2ZGMxNzNkZGVjMTlmYzk5ODEzNWY4N2RlZTc1Yjli
MDgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdHMgdGhh
dCBzdGVwcGluZyBpbnRvIGRpc3BhdGNoRXZlbnQoKSBtZXRob2Qgd2lsbCBsZWFkIHRvIGEgcGF1
c2UgaW4gdGhlIGZpcnN0IGV2ZW50IGxpc3RlbmVyLgotCi1SZWNpZXZlZCBmb28gZXZlbnQoMSkh
IFJlY2lldmVkIGZvbyBldmVudCgyKSEKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2V0IHRpbWVy
IGZvciB0ZXN0IGZ1bmN0aW9uLgotU3RlcHBpbmcgaW50by4uLgotU3RlcHBpbmcgaW50by4uLgot
U1VDQ0VTUzogRGlkIHN0ZXAgaW50byBldmVudCBsaXN0ZW5lcihmb29FdmVudEhhbmRsZXIxKS4K
LVN0ZXBwaW5nIGludG8uLi4KLVN0ZXBwaW5nIGludG8uLi4KLVN0ZXBwaW5nIGludG8uLi4KLVNV
Q0NFU1M6IERpZCBzdGVwIGludG8gZXZlbnQgbGlzdGVuZXIoZm9vRXZlbnRIYW5kbGVyMikuCi1E
ZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVuZXIuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGVwLWludG8tZXZlbnQtbGlzdGVu
ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZkOGVlYWY3NTU3ZmM2ODMx
MTlkYzgyYzA4ZTM0ZTU2OTc1MjMzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItc3Rl
cC1pbnRvLWV2ZW50LWxpc3RlbmVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3RGdW5jdGlvbigpCi17Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJteURpdiIpOwotICAgIGZ1bmN0aW9uIGZvb0V2ZW50SGFuZGxlcjEoKSB7Ci0gICAg
ICAgIGRpdi50ZXh0Q29udGVudCArPSAiUmVjaWV2ZWQgZm9vIGV2ZW50KDEpIVxuIjsKLSAgICB9
Ci0gICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoImZvbyIsIGZvb0V2ZW50SGFuZGxlcjEpOwotCi0g
ICAgZnVuY3Rpb24gZm9vRXZlbnRIYW5kbGVyMigpIHsKLSAgICAgICAgZGl2LnRleHRDb250ZW50
ICs9ICJSZWNpZXZlZCBmb28gZXZlbnQoMikhXG4iOwotICAgIH0KLSAgICBkaXYuYWRkRXZlbnRM
aXN0ZW5lcigiZm9vIiwgZm9vRXZlbnRIYW5kbGVyMik7Ci0KLSAgICB2YXIgZSA9IG5ldyBDdXN0
b21FdmVudCgnZm9vJyk7Ci0gICAgZGVidWdnZXI7Ci0gICAgZGl2LmRpc3BhdGNoRXZlbnQoZSk7
Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3Quc3RhcnRE
ZWJ1Z2dlclRlc3Qoc3RlcDEsIHRydWUpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQo
c3RlcDIpOwotICAgIH0KLQotCi0gICAgZnVuY3Rpb24gY2hlY2tUb3BGcmFtZUZ1bmN0aW9uKGNh
bGxGcmFtZXMsIGV4cGVjdGVkTmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciB0b3BGdW5jdGlvbk5h
bWUgPSBjYWxsRnJhbWVzWzBdLmZ1bmN0aW9uTmFtZTsKLSAgICAgICAgaWYgKGV4cGVjdGVkTmFt
ZSA9PT0gdG9wRnVuY3Rpb25OYW1lKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlNVQ0NFU1M6IERpZCBzdGVwIGludG8gZXZlbnQgbGlzdGVuZXIoIiArIGV4cGVjdGVkTmFt
ZSArICIpLiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRkFJTDogVW5leHBlY3RlZCB0b3AgZnVuY3Rpb246IGV4cGVjdGVkICIgKyBleHBlY3Rl
ZE5hbWUgKyAiLCBmb3VuZCAiICsgdG9wRnVuY3Rpb25OYW1lKTsKLSAgICB9Ci0KLSAgICB2YXIg
c3RlcENvdW50ID0gMDsKLSAgICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQotICAgIHsKLSAg
ICAgICAgaWYgKHN0ZXBDb3VudCA9PT0gMikKLSAgICAgICAgICAgIGNoZWNrVG9wRnJhbWVGdW5j
dGlvbihjYWxsRnJhbWVzLCAiZm9vRXZlbnRIYW5kbGVyMSIpOwotICAgICAgICBlbHNlIGlmIChz
dGVwQ291bnQgPT09IDUpCi0gICAgICAgICAgICBjaGVja1RvcEZyYW1lRnVuY3Rpb24oY2FsbEZy
YW1lcywgImZvb0V2ZW50SGFuZGxlcjIiKTsKLQotICAgICAgICBpZiAoc3RlcENvdW50IDwgNSkg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlN0ZXBwaW5nIGludG8uLi4i
KTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRzLXN0ZXAtaW50
byIpLmNsaWNrKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFJlc3VtZWQo
SW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQuYmluZChJbnNwZWN0b3JUZXN0LCBzdGVwMikp
OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1
Z2dlclRlc3QoKTsKLSAgICAgICAgc3RlcENvdW50Kys7Ci0gICAgfQotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHN0
ZXBwaW5nIGludG8gZGlzcGF0Y2hFdmVudCgpIG1ldGhvZCB3aWxsIGxlYWQgdG8gYSBwYXVzZSBp
biB0aGUgZmlyc3QgZXZlbnQgbGlzdGVuZXIuCi08L3A+Ci08ZGl2IGlkPSJteURpdiI+PC9kaXY+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kaXNhYmxlLXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvZGlzYWJsZS1zY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmZjI0ZDAzN2ViODBjZmM5N2MxMWRhMDIxYTdmZmI4N2EzYjI0NzhjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9kaXNhYmxlLXNjcmlwdC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IGluc3BlY3RvciBlZmZlY3RpdmVseSBk
aXNhYmxlcyBzY3JpcHQgZXhlY3V0aW9uIGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4KLQotCi1SdW5u
aW5nOiBpbml0Ci1TY3JpcHQgZXhlY3V0aW9uIHN0YXR1czogYWxsb3dlZAotCi1SdW5uaW5nOiBj
aGVja0Rpc2FibGVkCi1TY3JpcHQgZXhlY3V0aW9uIHN0YXR1czogZGlzYWJsZWQKLQotUnVubmlu
ZzogY2hlY2tSZXN0b3JlZAotU2NyaXB0IGV4ZWN1dGlvbiBzdGF0dXM6IGFsbG93ZWQKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Rpc2FibGUtc2NyaXB0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGlzYWJsZS1zY3JpcHQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMwMTVmZmUxNjMyNjU2ZjA2M2M2ZDJjMzE5
ZmFhZWQ2NGYzN2MyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGlzYWJsZS1zY3JpcHQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gZHVtcFN0YXRl
KG5leHQpCi0gICAgewotICAgICAgICBQYWdlQWdlbnQuZ2V0U2NyaXB0RXhlY3V0aW9uU3RhdHVz
KHN0YXR1c0NhbGxiYWNrKTsKLSAgICAgICAgZnVuY3Rpb24gc3RhdHVzQ2FsbGJhY2soZXJyb3Is
IHN0YXR1cykKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yOiAiICsgSlNPTi5zdHJpbmdpZnko
ZXJyb3IpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JpcHQgZXhlY3V0aW9uIHN0YXR1czog
IiArIHN0YXR1cyk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBzZXRKU0Rpc2FibGVkKGRpc2FibGVkLCBuZXh0KQotICAgIHsKLSAgICAgICAg
UGFnZUFnZW50LnNldFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkKGRpc2FibGVkLCBuZXh0KTsKLSAg
ICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9u
IGluaXQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgUGFnZUFnZW50LmVuYWJsZSgpOwot
ICAgICAgICAgICAgZHVtcFN0YXRlKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0
aW9uIGNoZWNrRGlzYWJsZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgc2V0SlNEaXNh
YmxlZCh0cnVlLCBkdW1wU3RhdGUuYmluZChudWxsLCBuZXh0KSk7Ci0gICAgICAgIH0sCi0KLSAg
ICAgICAgZnVuY3Rpb24gY2hlY2tSZXN0b3JlZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBzZXRKU0Rpc2FibGVkKGZhbHNlLCBkdW1wU3RhdGUuYmluZChudWxsLCBuZXh0KSk7Ci0gICAg
ICAgIH0KLSAgICBdKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgaW5zcGVjdG9yIGVmZmVjdGl2ZWx5IGRpc2FibGVz
IHNjcmlwdCBleGVjdXRpb24gaW4gdGhlIGluc3BlY3RlZCBwYWdlLgotPC9wPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1i
cmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
ZG9tLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjc0NzQ2NTZiNzVhN2YxZjFiMjBlNzAwMTBlNDAwZmNhNDY2Y2E0OS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDU4ICswLDAgQEAKLVRlc3RzIERPTSBicmVha3BvaW50cy4gQnVnIDQyODg2Ci0KLURlYnVnZ2Vy
IHdhcyBlbmFibGVkLgotVGVzdCB0aGF0ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlz
IGhpdCB3aGVuIGFwcGVuZGluZyBhIGNoaWxkLgotU2V0ICdTdWJ0cmVlIE1vZGlmaWVkJyBET00g
YnJlYWtwb2ludCBvbiByb290RWxlbWVudC4KLUFwcGVuZCBjaGlsZEVsZW1lbnQgdG8gcm9vdEVs
ZW1lbnQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgYXBw
ZW5kRWxlbWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MTIpCi0gICAgMSkgICg6MSkKLVBhdXNl
ZCBvbiBhICJTdWJ0cmVlIE1vZGlmaWVkIiBicmVha3BvaW50IHNldCBvbiBkaXYjcm9vdEVsZW1l
bnQsIGJlY2F1c2UgYSBuZXcgY2hpbGQgd2FzIGFkZGVkIHRvIHRoYXQgbm9kZS4KLVNjcmlwdCBl
eGVjdXRpb24gcmVzdW1lZC4KLVRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2lu
dCBpcyBoaXQgd2hlbiBhcHBlbmRpbmcgYSBncmFuZGNoaWxkLgotQXBwZW5kIGdyYW5kY2hpbGRF
bGVtZW50IHRvIGNoaWxkRWxlbWVudC4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBz
dGFjazoKLSAgICAwKSBhcHBlbmRFbGVtZW50IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMikKLSAg
ICAxKSAgKDoxKQotUGF1c2VkIG9uIGEgIlN1YnRyZWUgTW9kaWZpZWQiIGJyZWFrcG9pbnQgc2V0
IG9uIGRpdiNyb290RWxlbWVudCwgYmVjYXVzZSBhIG5ldyBjaGlsZCB3YXMgYWRkZWQgdG8gaXRz
IGRlc2NlbmRhbnQgZGl2I2NoaWxkRWxlbWVudC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4K
LVRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiByZW1v
dmluZyBhIGNoaWxkLgotUmVtb3ZlIGdyYW5kY2hpbGRFbGVtZW50LgotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIHJlbW92ZUVsZW1lbnQgKGRvbS1icmVha3Bv
aW50cy5odG1sOjI0KQotICAgIDEpICAoOjEpCi1QYXVzZWQgb24gYSAiU3VidHJlZSBNb2RpZmll
ZCIgYnJlYWtwb2ludCBzZXQgb24gZGl2I3Jvb3RFbGVtZW50LCBiZWNhdXNlIGl0cyBkZXNjZW5k
YW50IGRpdiNncmFuZGNoaWxkRWxlbWVudCB3YXMgcmVtb3ZlZC4KLVNjcmlwdCBleGVjdXRpb24g
cmVzdW1lZC4KLVRlc3QgdGhhdCAnQXR0cmlidXRlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhp
dCB3aGVuIG1vZGlmeWluZyBhdHRyaWJ1dGUuCi1TZXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcgRE9N
IGJyZWFrcG9pbnQgb24gcm9vdEVsZW1lbnQuCi1Nb2RpZnkgcm9vdEVsZW1lbnQgY2xhc3NOYW1l
LgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIG1vZGlmeUF0
dHJpYnV0ZSAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MTgpCi0gICAgMSkgICg6MSkKLVBhdXNlZCBv
biBhICJBdHRyaWJ1dGUgTW9kaWZpZWQiIGJyZWFrcG9pbnQgc2V0IG9uIGRpdiNyb290RWxlbWVu
dC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLVRlc3QgdGhhdCAnTm9kZSBSZW1vdmVkJyBi
cmVha3BvaW50IGlzIGhpdCB3aGVuIHJlbW92aW5nIGEgbm9kZS4KLVNldCAnTm9kZSBSZW1vdmVk
JyBET00gYnJlYWtwb2ludCBvbiBlbGVtZW50VG9SZW1vdmUuCi1SZW1vdmUgZWxlbWVudFRvUmVt
b3ZlLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIHJlbW92
ZUVsZW1lbnQgKGRvbS1icmVha3BvaW50cy5odG1sOjI0KQotICAgIDEpICAoOjEpCi1QYXVzZWQg
b24gYSAiTm9kZSBSZW1vdmVkIiBicmVha3BvaW50IHNldCBvbiBkaXYjZWxlbWVudFRvUmVtb3Zl
LgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotVGVzdCB0aGF0IERPTSBicmVha3BvaW50cyBh
cmUgcGVyc2lzdGVkIGJldHdlZW4gcGFnZSByZWxvYWRzLgotU2V0ICdTdWJ0cmVlIE1vZGlmaWVk
JyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4KLVBhZ2UgcmVsb2FkZWQuCi1BcHBlbmQg
Y2hpbGRFbGVtZW50IHRvIHJvb3RFbGVtZW50LgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1D
YWxsIHN0YWNrOgotICAgIDApIGFwcGVuZEVsZW1lbnQgKGRvbS1icmVha3BvaW50cy5odG1sOjEy
KQotICAgIDEpICAoOjEpCi1QYXVzZWQgb24gYSAiU3VidHJlZSBNb2RpZmllZCIgYnJlYWtwb2lu
dCBzZXQgb24gZGl2I3Jvb3RFbGVtZW50LCBiZWNhdXNlIGEgbmV3IGNoaWxkIHdhcyBhZGRlZCB0
byB0aGF0IG5vZGUuCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1EZWJ1Z2dlciB3YXMgZGlz
YWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20t
YnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJl
YWtwb2ludHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWZiMzgzNjNiMGM4
NTMxNzdkMDBiOTNlMjc5MmVlYTNjNDQ2NDViYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJy
ZWFrcG9pbnRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNzcgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiBhcHBlbmRFbGVtZW50KHBhcmVudElkLCBjaGlsZElkKQotewotICAgIHZhciBjaGls
ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGNoaWxkLmlkID0gY2hpbGRJ
ZDsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwYXJlbnRJZCkuYXBwZW5kQ2hpbGQoY2hp
bGQpOwotfQotCi1mdW5jdGlvbiBtb2RpZnlBdHRyaWJ1dGUoZWxlbWVudElkLCBuYW1lLCB2YWx1
ZSkKLXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7Ci0gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotfQotCi1mdW5jdGlv
biBtb2RpZnlBdHRyTm9kZShlbGVtZW50SWQsIG5hbWUsIHZhbHVlKQotewotICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICBlbGVtZW50LmF0
dHJpYnV0ZXNbbmFtZV0udmFsdWUgPSB2YWx1ZTsKLX0KLQotZnVuY3Rpb24gc2V0QXR0ck5vZGUo
ZWxlbWVudElkLCBuYW1lLCB2YWx1ZSkKLXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0gICAgdmFyIGF0dHIgPSBkb2N1bWVudC5jcmVhdGVB
dHRyaWJ1dGUobmFtZSk7Ci0gICAgYXR0ci52YWx1ZSA9IHZhbHVlOwotICAgIGVsZW1lbnQuYXR0
cmlidXRlcy5zZXROYW1lZEl0ZW0oYXR0cik7Ci19Ci0KLWZ1bmN0aW9uIG1vZGlmeVN0eWxlQXR0
cmlidXRlKGVsZW1lbnRJZCwgbmFtZSwgdmFsdWUpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJv
cGVydHkobmFtZSwgdmFsdWUpOwotfQotCi1mdW5jdGlvbiByZW1vdmVFbGVtZW50KGVsZW1lbnRJ
ZCkKLXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7Ci0gICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpOwotfQotCi1m
dW5jdGlvbiBzZXRJbm5lckhUTUwoZWxlbWVudElkLCBodG1sKQotewotICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICBlbGVtZW50LmlubmVy
SFRNTCA9IGh0bWw7Ci19Ci0KLWZ1bmN0aW9uIGJyZWFrRGVidWdnZXIoKQotewotICAgIGRlYnVn
Z2VyOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJlbGVtZW50cyIpOwotCi0gICAgdmFyIHBhbmUgPSBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2lu
dHNTaWRlYmFyUGFuZTsKLSAgICB2YXIgcm9vdEVsZW1lbnQ7Ci0gICAgSW5zcGVjdG9yVGVzdC5y
dW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJbnNlcnRDaGlsZChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVz
dCB0aGF0ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIGFwcGVuZGlu
ZyBhIGNoaWxkLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJyb290
RWxlbWVudCIsIHN0ZXAyKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIobm9kZSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByb290RWxlbWVudCA9IG5vZGU7Ci0gICAgICAg
ICAgICAgICAgcGFuZS5fc2V0QnJlYWtwb2ludChub2RlLCBwYW5lLl9icmVha3BvaW50VHlwZXMu
U3VidHJlZU1vZGlmaWVkLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiU2V0ICdTdWJ0cmVlIE1vZGlmaWVkJyBET00gYnJlYWtwb2ludCBvbiByb290RWxl
bWVudC4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0
aFRpbWVvdXQoImFwcGVuZEVsZW1lbnQoJ3Jvb3RFbGVtZW50JywgJ2NoaWxkRWxlbWVudCcpIik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBjaGlsZEVs
ZW1lbnQgdG8gcm9vdEVsZW1lbnQuIik7Ci0gICAgICAgICAgICAgICAgd2FpdFVudGlsUGF1c2Vk
QW5kRHVtcFN0YWNrKG5leHQpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RJbnNlcnRHcmFuZGNoaWxkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgJ1N1YnRyZWUgTW9kaWZpZWQn
IGJyZWFrcG9pbnQgaXMgaGl0IHdoZW4gYXBwZW5kaW5nIGEgZ3JhbmRjaGlsZC4iKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgiYXBwZW5kRWxl
bWVudCgnY2hpbGRFbGVtZW50JywgJ2dyYW5kY2hpbGRFbGVtZW50JykiKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBcHBlbmQgZ3JhbmRjaGlsZEVsZW1lbnQgdG8gY2hp
bGRFbGVtZW50LiIpOwotICAgICAgICAgICAgd2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKG5l
eHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVDaGlsZChuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0
aGF0ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIHJlbW92aW5nIGEg
Y2hpbGQuIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRp
bWVvdXQoInJlbW92ZUVsZW1lbnQoJ2dyYW5kY2hpbGRFbGVtZW50JykiKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZW1vdmUgZ3JhbmRjaGlsZEVsZW1lbnQuIik7Ci0g
ICAgICAgICAgICB3YWl0VW50aWxQYXVzZWRBbmREdW1wU3RhY2sobmV4dCk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdElubmVySFRNTChuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdTdWJ0cmVlIE1vZGlm
aWVkJyBicmVha3BvaW50IGlzIGhpdCBleGFjdGx5IG9uY2Ugd2hlbiBzZXR0aW5nIGlubmVySFRN
TC4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91
dCgic2V0SW5uZXJIVE1MKCdjaGlsZEVsZW1lbnQnLCAnPGJyPjxicj4nKSIpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCBjaGlsZEVsZW1lbnQuaW5uZXJIVE1MLiIp
OwotICAgICAgICAgICAgd2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKHN0ZXAyKTsKLQotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHN0ZXAzKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoImJyZWFrRGVidWdnZXIoKSIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDYWxsIGJyZWFrRGVi
dWdnZXIsIGV4cGVjdCBpdCB0byBzaG93IHVwIGluIG5leHQgc3RhY2sgdHJhY2UuIik7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKGZyYW1lcykKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGZy
YW1lcyk7Ci0gICAgICAgICAgICAgICAgcGFuZS5fcmVtb3ZlQnJlYWtwb2ludChyb290RWxlbWVu
dCwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLlN1YnRyZWVNb2RpZmllZCk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24obmV4dCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdE1vZGlmeUF0dHJpYnV0ZShuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0
ICdBdHRyaWJ1dGUgTW9kaWZpZWQnIGJyZWFrcG9pbnQgaXMgaGl0IHdoZW4gbW9kaWZ5aW5nIGF0
dHJpYnV0ZS4iKTsKLSAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQocm9vdEVsZW1lbnQs
IHBhbmUuX2JyZWFrcG9pbnRUeXBlcy5BdHRyaWJ1dGVNb2RpZmllZCwgdHJ1ZSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdBdHRyaWJ1dGUgTW9kaWZpZWQnIERP
TSBicmVha3BvaW50IG9uIHJvb3RFbGVtZW50LiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJtb2RpZnlBdHRyaWJ1dGUoJ3Jvb3RFbGVtZW50
JywgJ2RhdGEtdGVzdCcsICdmb28nKSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIk1vZGlmeSByb290RWxlbWVudCBkYXRhLXRlc3QgYXR0cmlidXRlLiIpOwotICAgICAg
ICAgICAgd2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKHN0ZXAyKTsKLQotICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDIoY2FsbEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBwYW5lLl9yZW1vdmVCcmVha3BvaW50KHJvb3RFbGVtZW50LCBwYW5lLl9icmVha3BvaW50VHlw
ZXMuQXR0cmlidXRlTW9kaWZpZWQpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0TW9kaWZ5QXR0ck5vZGUo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRl
c3QgdGhhdCAnQXR0cmlidXRlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIG1vZGlm
eWluZyBBdHRyIG5vZGUuIik7Ci0gICAgICAgICAgICBwYW5lLl9zZXRCcmVha3BvaW50KHJvb3RF
bGVtZW50LCBwYW5lLl9icmVha3BvaW50VHlwZXMuQXR0cmlidXRlTW9kaWZpZWQsIHRydWUpOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCAnQXR0cmlidXRlIE1vZGlm
aWVkJyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgibW9kaWZ5QXR0ck5vZGUoJ3Jvb3RF
bGVtZW50JywgJ2RhdGEtdGVzdCcsICdiYXInKSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIk1vZGlmeSByb290RWxlbWVudCBkYXRhLXRlc3QgYXR0cmlidXRlLiIpOwot
ICAgICAgICAgICAgd2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKHN0ZXAyKTsKLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDIoY2FsbEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBwYW5lLl9yZW1vdmVCcmVha3BvaW50KHJvb3RFbGVtZW50LCBwYW5lLl9icmVha3Bv
aW50VHlwZXMuQXR0cmlidXRlTW9kaWZpZWQpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QXR0ck5v
ZGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlRlc3QgdGhhdCAnQXR0cmlidXRlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIGFk
ZGluZyBhIG5ldyBBdHRyIG5vZGUuIik7Ci0gICAgICAgICAgICBwYW5lLl9zZXRCcmVha3BvaW50
KHJvb3RFbGVtZW50LCBwYW5lLl9icmVha3BvaW50VHlwZXMuQXR0cmlidXRlTW9kaWZpZWQsIHRy
dWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCAnQXR0cmlidXRl
IE1vZGlmaWVkJyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgic2V0QXR0ck5vZGUoJ3Jv
b3RFbGVtZW50JywgJ2RhdGEtZm9vJywgJ2JhcicpIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiTW9kaWZ5IHJvb3RFbGVtZW50IGRhdGEtZm9vIGF0dHJpYnV0ZS4iKTsK
LSAgICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhzdGVwMik7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAyKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgcGFuZS5fcmVtb3ZlQnJlYWtwb2ludChyb290RWxlbWVudCwgcGFuZS5fYnJlYWtw
b2ludFR5cGVzLkF0dHJpYnV0ZU1vZGlmaWVkKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdE1vZGlmeVN0
eWxlQXR0cmlidXRlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJUZXN0IHRoYXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBo
aXQgd2hlbiBtb2RpZnlpbmcgc3R5bGUgYXR0cmlidXRlLiIpOwotICAgICAgICAgICAgcGFuZS5f
c2V0QnJlYWtwb2ludChyb290RWxlbWVudCwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLkF0dHJpYnV0
ZU1vZGlmaWVkLCB0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJT
ZXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1lbnQuIik7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoIm1v
ZGlmeVN0eWxlQXR0cmlidXRlKCdyb290RWxlbWVudCcsICdjb2xvcicsICdncmVlbicpIik7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTW9kaWZ5IHJvb3RFbGVtZW50IHN0
eWxlLmNvbG9yIGF0dHJpYnV0ZS4iKTsKLSAgICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFuZER1
bXBTdGFjayhzdGVwMik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKGNhbGxGcmFtZXMp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcGFuZS5fcmVtb3ZlQnJlYWtwb2ludChy
b290RWxlbWVudCwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLkF0dHJpYnV0ZU1vZGlmaWVkKTsKLSAg
ICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdFJlbW92ZU5vZGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnTm9kZSBSZW1vdmVkJyBicmVha3Bv
aW50IGlzIGhpdCB3aGVuIHJlbW92aW5nIGEgbm9kZS4iKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Qubm9kZVdpdGhJZCgiZWxlbWVudFRvUmVtb3ZlIiwgc3RlcDIpOwotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBzdGVwMihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHBh
bmUuX3NldEJyZWFrcG9pbnQobm9kZSwgcGFuZS5fYnJlYWtwb2ludFR5cGVzLk5vZGVSZW1vdmVk
LCB0cnVlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdO
b2RlIFJlbW92ZWQnIERPTSBicmVha3BvaW50IG9uIGVsZW1lbnRUb1JlbW92ZS4iKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoInJlbW92
ZUVsZW1lbnQoJ2VsZW1lbnRUb1JlbW92ZScpIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlJlbW92ZSBlbGVtZW50VG9SZW1vdmUuIik7Ci0gICAgICAgICAgICAg
ICAgd2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKG5leHQpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZWxvYWQobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCBET00gYnJlYWtw
b2ludHMgYXJlIHBlcnNpc3RlZCBiZXR3ZWVuIHBhZ2UgcmVsb2Fkcy4iKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgicm9vdEVsZW1lbnQiLCBzdGVwMik7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAyKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgcGFuZS5fc2V0QnJlYWtwb2ludChub2RlLCBwYW5lLl9icmVha3BvaW50VHlwZXMuU3VidHJl
ZU1vZGlmaWVkLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBwYW5lLl9zYXZlQnJlYWtwb2ludHMo
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdTdWJ0cmVl
IE1vZGlmaWVkJyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoc3RlcDMpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoc3RlcDQpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJhcHBlbmRF
bGVtZW50KCdyb290RWxlbWVudCcsICdjaGlsZEVsZW1lbnQnKSIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBcHBlbmQgY2hpbGRFbGVtZW50IHRvIHJvb3RFbGVt
ZW50LiIpOwotICAgICAgICAgICAgICAgIHdhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhuZXh0
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZnVuY3Rpb24gd2Fp
dFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0VW50aWxQYXVzZWQocGF1c2VkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUsICJz
ZXRTdGF0dXMiLCBzZXRTdGF0dXMpOwotCi0gICAgICAgIHZhciBjYXB0aW9uOwotICAgICAgICB2
YXIgY2FsbEZyYW1lczsKLQotICAgICAgICBmdW5jdGlvbiBzZXRTdGF0dXMoc3RhdHVzKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAodHlwZW9mIHN0YXR1cyA9PT0gInN0cmluZyIpCi0gICAg
ICAgICAgICAgICAgY2FwdGlvbiA9IHN0YXR1czsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBjYXB0aW9uID0gc3RhdHVzLnRleHRDb250ZW50OwotICAgICAgICAgICAgaWYgKGNh
bGxGcmFtZXMpCi0gICAgICAgICAgICAgICAgc3RlcDEoKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGZ1bmN0aW9uIHBhdXNlZChmcmFtZXMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNhbGxGcmFt
ZXMgPSBmcmFtZXM7Ci0gICAgICAgICAgICBpZiAodHlwZW9mIGNhcHRpb24gPT09ICJzdHJpbmci
KQotICAgICAgICAgICAgICAgIHN0ZXAxKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlv
biBzdGVwMSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0
YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dChjYXB0aW9uKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlz
cGF0Y2hlcyhzdGVwMik7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKEluc3Bl
Y3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
RE9NIGJyZWFrcG9pbnRzLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDI4ODYiPkJ1ZyA0Mjg4NjwvYT4KLTwvcD4KLQotPGRpdiBpZD0icm9vdEVsZW1l
bnQiIHN0eWxlPSJjb2xvcjogcmVkIj4KLTxkaXYgaWQ9ImVsZW1lbnRUb1JlbW92ZSI+PC9kaXY+
Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIwZWYzNTU3MGMxMTgwMDFhNTk1MmYxMjE3
ZDFjMDFiOTY4YjhhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRlc3RzIHRoYXQgaW5s
aW5lIHNjcmlwdHMgYW5kIGRvY3VtZW50LndyaXRlIHNjcmlwdHMgZ2V0IGRpZmZlcmVudCB1aVNv
dXJjZUNvZGVzIHdpdGggZGlmZmVyZW50IFVSTHMuIEJ1ZyA4NzExOQotCi1EZWJ1Z2dlciB3YXMg
ZW5hYmxlZC4KLUR1bXBpbmcgc2NyaXB0czoKLXNjcmlwdDE6IExheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWcuaHRtbAotSXMgYW5vbnltb3VzOmZhbHNlCi1J
cyBpbmxpbmUgc2NyaXB0OmZhbHNlCi1zY3JpcHQyOiBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwKLUlzIGFub255bW91czpmYWxzZQotSXMgaW5s
aW5lIHNjcmlwdDpmYWxzZQotRHVtcGluZyB1aVNvdXJjZUNvZGVzOgotVUlTb3VyY2VDb2RlOiBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLmh0bWwKLVVJ
U291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNj
cmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29u
dGVudDogZnVuY3Rpb24gZm9vKCkgeyB9Ci1VSVNvdXJjZUNvZGU6IExheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWcuaHRtbAotVUlTb3VyY2VDb2RlIGlzIGVk
aXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQotTWlt
ZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKLVVJU291cmNlQ29kZSBjb250ZW50OiBmdW5jdGlvbiBi
YXIoKSB7IH0KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0LXRhZy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMTAxMmY3OGIyMzRhNjg5NGUyYzRmYjcwYjVjNzkyM2ZhMGFm
NzkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWcuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDk0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1kb2N1bWVudC53cml0ZSgiPHNjcmlwIiAr
ICJ0PmZ1bmN0aW9uIGZvbygpIHsgfTwvc2MiICsgInJpcHQ+Iik7Ci0KLWZ1bmN0aW9uIGNyZWF0
ZVNjcmlwdFRhZygpCi17Ci0gICAgdmFyIHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzY3JpcHQiKTsKLSAgICBzY3JpcHRFbGVtZW50LnRleHRDb250ZW50ID0gImZ1bmN0
aW9uIGJhcigpIHsgfSI7Ci0gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHRFbGVt
ZW50KTsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5z
dGFydERlYnVnZ2VyVGVzdChzdGVwMSk7Ci0KLSAgICB2YXIgc2NyaXB0czsKLSAgICBmdW5jdGlv
biBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJj
cmVhdGVTY3JpcHRUYWcoKSIsIHN0ZXAyKTsKLSAgICB9Ci0gICAgCi0gICAgZnVuY3Rpb24gc3Rl
cDIoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUGFyc2VkU2NyaXB0U291
cmNlLCBzdGVwMyk7Ci0gICAgICAgIHN0ZXAzKCk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9u
IHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIHNjcmlwdHMgPSBPYmplY3QudmFsdWVzKFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdHMpOwotICAgICAgICBmdW5jdGlvbiBmaWx0ZXJPdXRT
dGFuZGFsb25lQW5kSW5saW5lU2NyaXB0cyhzY3JpcHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiAhc2NyaXB0LmlzSW5saW5lU2NyaXB0KCkgJiYgc2NyaXB0LnNvdXJjZVVSTC5pbmRl
eE9mKCJkeW5hbWljLXNjcmlwdC10YWcuaHRtbCIpICE9PSAtMTsKLSAgICAgICAgfQotICAgICAg
ICBzY3JpcHRzID0gc2NyaXB0cy5maWx0ZXIoZmlsdGVyT3V0U3RhbmRhbG9uZUFuZElubGluZVNj
cmlwdHMpOwotICAgICAgICBpZiAoc2NyaXB0cy5sZW5ndGggPj0gMikgewotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCBzdGVwMyk7Ci0gICAg
ICAgICAgICBzdGVwNCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIHN0
ZXA0KCkKLSAgICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gW107Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIHNjcmlwdHM6Iik7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHNj
cmlwdCA9IHNjcmlwdHNbaV07Ci0gICAgICAgICAgICB2YXIgdXJsID0gc2NyaXB0LnNvdXJjZVVS
TC5yZXBsYWNlKC8uKkxheW91dFRlc3RzLywgIkxheW91dFRlc3RzIik7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgic2NyaXB0IiArIChpKzEpICsgIjogIiArIHVybCk7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSXMgYW5vbnltb3VzOiIgKyBzY3Jp
cHQuaXNBbm9ueW1vdXNTY3JpcHQoKSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiSXMgaW5saW5lIHNjcmlwdDoiICsgc2NyaXB0LmlzSW5saW5lU2NyaXB0KCkpOwotICAg
ICAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlv
bigwLCAwKS51aVNvdXJjZUNvZGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHNlZW5VSVNv
dXJjZUNvZGVzID0gbmV3IE1hcCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RHVtcGluZyB1aVNvdXJjZUNvZGVzOiIpOwotICAgICAgICAKLSAgICAgICAgdmFyIGluZGV4ID0g
MDsKLSAgICAgICAgZHVtcE5leHRVSVNvdXJjZUNvZGUoKTsKLSAgICAgICAgZnVuY3Rpb24gZHVt
cE5leHRVSVNvdXJjZUNvZGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPj0g
dWlTb3VyY2VDb2Rlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGVzRHVt
cGVkKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZXNbaW5kZXhdOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSwgdWlTb3VyY2VDb2Rl
RHVtcGVkKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlRHVtcGVkKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXNl
ZW5VSVNvdXJjZUNvZGVzLmdldCh1aVNvdXJjZUNvZGUpLCAiVUlTb3VyY2VDb2RlIG1hdGNoZXMg
dHdvIHNjcmlwdHM6ICIgKyB1aVNvdXJjZUNvZGUub3JpZ2luVVJMKCkpOwotICAgICAgICAgICAg
ICAgIHNlZW5VSVNvdXJjZUNvZGVzLnB1dCh1aVNvdXJjZUNvZGUsIHVpU291cmNlQ29kZSk7Ci0g
ICAgICAgICAgICAgICAgKytpbmRleDsKLSAgICAgICAgICAgICAgICBkdW1wTmV4dFVJU291cmNl
Q29kZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmdW5j
dGlvbiB1aVNvdXJjZUNvZGVzRHVtcGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0
IGlubGluZSBzY3JpcHRzIGFuZCBkb2N1bWVudC53cml0ZSBzY3JpcHRzIGdldCBkaWZmZXJlbnQg
dWlTb3VyY2VDb2RlcyB3aXRoIGRpZmZlcmVudCBVUkxzLgotPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3MTE5Ij5CdWcgODcxMTk8L2E+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHlu
YW1pYy1zY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9keW5hbWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4YWIyZGQyZDk0MTE2MjMxZjUxOWZlYTljZThkZWViYzM5ZDJjNzljLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDMwOiBEb25lLgotVGVzdHMgdGhh
dCBzY3JpcHRzIGZvciBkeW5hbWljYWxseSBhZGRlZCBzY3JpcHQgZWxlbWVudHMgYXJlIHNob3du
IGluIHNvdXJjZXMgcGFuZWwgaWYgbG9hZGVkIHdpdGggaW5zcGVjdG9yIG9wZW4uCi0KLUJ1ZyA5
OTMyNAotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1VSVNvdXJjZUNvZGVzOgotICAgIGRlYnVnZ2Vy
LXRlc3QuanMKLSAgICBkeW5hbWljLXNjcmlwdC5qcwotICAgIGR5bmFtaWMtc2NyaXB0cy5odG1s
Ci0gICAgZXZhbFNvdXJjZVVSTC5qcwotICAgIGluc3BlY3Rvci10ZXN0LmpzCi0gICAgc2NyaXB0
RWxlbWVudENvbnRlbnRTb3VyY2VVUkwuanMKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDdiMjg1MTdkZGFhZjVkYzQ2YTU2ZjUz
NjYzNDMyY2ViMjA4OTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGFwcGVuZER5bmFtaWNTY3JpcHRFbGVtZW50KHNy
YywgY29udGVudCkKLXsKLSAgICB2YXIgc2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNjcmlwdCIpOwotICAgIGlmIChzcmMpCi0gICAgICAgIHNjcmlwdEVsZW1lbnQuc3Jj
ID0gc3JjOwotICAgIGVsc2UKLSAgICAgICAgc2NyaXB0RWxlbWVudC50ZXh0Q29udGVudCA9IGNv
bnRlbnQ7Ci0gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHRFbGVtZW50KTsKLX0K
LQotZnVuY3Rpb24gbG9hZFNjcmlwdHMoKQotewotICAgIHZhciBzb3VyY2VVUkxDb21tZW50ID0g
IlxuIC8vQCBzb3VyY2VVUkw9IjsKLSAgICB3aW5kb3cuZXZhbCgiZnVuY3Rpb24gZm9vRXZhbCgp
IHt9Iik7Ci0gICAgd2luZG93LmV2YWwoImZ1bmN0aW9uIGZvb0V2YWxTb3VyY2VVUkwoKSB7fSIg
KyBzb3VyY2VVUkxDb21tZW50ICsgImV2YWxTb3VyY2VVUkwuanMiKTsKLSAgICBhcHBlbmREeW5h
bWljU2NyaXB0RWxlbWVudCgiIiwgImZ1bmN0aW9uIGZvb1NjcmlwdEVsZW1lbnRDb250ZW50MSgp
IHt9Iik7Ci0gICAgYXBwZW5kRHluYW1pY1NjcmlwdEVsZW1lbnQoIiIsICJmdW5jdGlvbiBmb29T
Y3JpcHRFbGVtZW50Q29udGVudDIoKSB7fSIpOwotICAgIGFwcGVuZER5bmFtaWNTY3JpcHRFbGVt
ZW50KCIiLCAiZnVuY3Rpb24gZm9vU2NyaXB0RWxlbWVudENvbnRlbnRTb3VyY2VVUkwoKSB7fSIg
KyBzb3VyY2VVUkxDb21tZW50ICsgInNjcmlwdEVsZW1lbnRDb250ZW50U291cmNlVVJMLmpzIik7
Ci0gICAgYXBwZW5kRHluYW1pY1NjcmlwdEVsZW1lbnQoInJlc291cmNlcy9keW5hbWljLXNjcmlw
dC5qcyIpOwotfQotCi1mdW5jdGlvbiBzY3JpcHRMb2FkZWQoKQotewotICAgIGNvbnNvbGUubG9n
KCJEb25lLiIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZENvbnNvbGVTbmlmZmVyKHN0ZXAxKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJsb2FkU2NyaXB0cygpIiwgZnVuY3Rpb24oKSB7IH0pCi0KLSAgICBmdW5jdGlvbiBzdGVwMSgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAyKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5zaG93
UGFuZWwoInNjcmlwdHMiKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBXZWJJbnNwZWN0
b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZXNGb3JQcm9qZWN0VHlwZShXZWJJbnNwZWN0b3IucHJv
amVjdFR5cGVzLk5ldHdvcmspOwotICAgICAgICB2YXIgdXJscyA9IHVpU291cmNlQ29kZXMubWFw
KGZ1bmN0aW9uKHVpU291cmNlQ29kZSkgeyByZXR1cm4gdWlTb3VyY2VDb2RlLm5hbWUoKTsgfSk7
Ci0gICAgICAgIHVybHMuc29ydCgpOwotCi0gICAgICAgIHZhciB3aGl0ZUxpc3QgPSBbImRlYnVn
Z2VyLXRlc3QuanMiLCAiZHluYW1pYy1zY3JpcHQuanMiLCAiZHluYW1pYy1zY3JpcHRzLmh0bWwi
LCAiZXZhbFNvdXJjZVVSTC5qcyIsICJpbnNwZWN0b3ItdGVzdC5qcyIsICJzY3JpcHRFbGVtZW50
Q29udGVudFNvdXJjZVVSTC5qcyJdOwotICAgICAgICBmdW5jdGlvbiBmaWx0ZXIodXJsKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdoaXRlTGlzdC5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgICAgIGlmICh1cmwuaW5kZXhPZih3aGl0ZUxpc3RbaV0pICE9
PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAg
ICAgICAgdXJscyA9IHVybHMuZmlsdGVyKGZpbHRlcik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZXM6Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdXJscy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCIgICAgIiArIHVybHNbaV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdn
ZXJUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHNjcmlwdHMgZm9yIGR5bmFtaWNhbGx5IGFkZGVkIHNj
cmlwdCBlbGVtZW50cyBhcmUgc2hvd24gaW4gc291cmNlcyBwYW5lbCBpZiBsb2FkZWQgd2l0aCBp
bnNwZWN0b3Igb3Blbi48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTkzMjQiPkJ1ZyA5OTMyNDwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHBy
ZXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJy
b3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhYmZiODAyMjI1NjVhYjJhNTYzMjNlMjUxMWRiMDliMWY0ZmZkMjVhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHByZXNzaW9ucy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIHRoYXQgd2F0Y2hlcyBwYW5lIHJl
bmRlcnMgZXJyb3JzIGluIHJlZC4KLQotU1VDQ0VTUwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvZXJyb3ItaW4td2F0Y2gtZXhwcmVzc2lvbnMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1leHByZXNzaW9ucy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGZkODYxYjY2MzZmY2QxZTkwNDAw
ZjQyNTY0ZWNjYTc4ZWY4OGM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9lcnJvci1pbi13YXRjaC1l
eHByZXNzaW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgZm9vID0gMTIzCi0KLXZhciB0ZXN0
ID0gZnVuY3Rpb24oKQotewotICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBh
bmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgotICAgIFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLQotICAgIHZhciB3YXRjaEV4cHJlc3Np
b25zUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hF
eHByZXNzaW9uczsKLSAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKLQotICAgIHZh
ciB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247
Ci0gICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtdOwotICAg
IHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiIyQlIik7Ci0g
ICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24udXBkYXRlKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0
LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQod2F0Y2hFeHByZXNzaW9u
c1NlY3Rpb24uZWxlbWVudC50ZXh0Q29udGVudC5pbmRleE9mKCI8bm90IGF2YWlsYWJsZT4iKSAh
PT0gLTEgPyAiU1VDQ0VTUyIgOiAiRkFJTEVEIik7Ci0KLSAgICAgICAgLy8gQ2xlYXIgd2F0Y2gg
ZXhwcmVzc2lvbnMgYWZ0ZXIgZXhlY3V0aW9uLgotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2Vj
dGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0
aW9uLnVwZGF0ZSgpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgotPHA+Ci1UZXN0cyB0aGF0IHdhdGNoZXMgcGFuZSByZW5kZXJzIGVycm9ycyBpbiByZWQuCi08
L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTFhN2JiN2FhMmI5NmVh
ZGQ0NGNlN2UxYTk3ZTkzN2VlMTA1NzgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmVudC1saXN0
ZW5lci1icmVha3BvaW50cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCww
IEBACi1UZXN0cyBldmVudCBsaXN0ZW5lciBicmVha3BvaW50cy4KLQotCi1EZWJ1Z2dlciB3YXMg
ZW5hYmxlZC4KLQotUnVubmluZzogdGVzdENsaWNrQnJlYWtwb2ludAotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIHRlc3RFbGVtZW50Q2xpY2tlZCAoZXZlbnQt
bGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbDo3KQotICAgIDEpIGFkZExpc3RlbmVyQW5kQ2xpY2sg
KGV2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLmh0bWw6MTYpCi0gICAgMikgICg6MSkKLVNjcmlw
dCBleGVjdXRpb24gcmVzdW1lZC4KLQotUnVubmluZzogdGVzdFRpbWVyRmlyZWRCcmVha3BvaW50
Ci1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgdGltZXJGaXJl
ZCAoZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbDoxOSkKLVNjcmlwdCBleGVjdXRpb24g
cmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M4MzIzNTQ0YjgzMDAxZWQwMzEy
MTQ3ODJjNjZmMWFmMmZkNzA4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZlbnQtbGlzdGVuZXIt
YnJlYWtwb2ludHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVz
dEVsZW1lbnRDbGlja2VkKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZnVuY3Rpb24gYWRkTGlz
dGVuZXJBbmRDbGljaygpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpOwotICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0ZXN0
RWxlbWVudENsaWNrZWQsIHRydWUpOwotICAgIGVsZW1lbnQuY2xpY2soKTsKLX0KLQotZnVuY3Rp
b24gdGltZXJGaXJlZCgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLSAgICB2YXIgcGFuZSA9
IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMuZXZlbnRMaXN0ZW5lckJy
ZWFrcG9pbnRzOwotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAg
ICAgICBmdW5jdGlvbiB0ZXN0Q2xpY2tCcmVha3BvaW50KG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQoImxpc3RlbmVyOmNsaWNrIik7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChwYXVzZWQpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJhZGRMaXN0ZW5lckFuZENsaWNr
KCkiKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkKGNhbGxGcmFtZXMpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShj
YWxsRnJhbWVzKTsKLSAgICAgICAgICAgICAgICBwYW5lLl9yZW1vdmVCcmVha3BvaW50KCJsaXN0
ZW5lcjpjbGljayIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0
aW9uKHJlc3VtZWQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiByZXN1
bWVkKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJhZGRMaXN0ZW5lckFuZENsaWNrKCkpIiwgbmV4dCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFRpbWVyRmlyZWRCcmVha3BvaW50
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQoImluc3Ry
dW1lbnRhdGlvbjp0aW1lckZpcmVkIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRV
bnRpbFBhdXNlZChwYXVzZWQpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgic2V0VGltZW91dCh0aW1lckZpcmVkLCAxMCkiKTsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gcGF1c2VkKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAgICAgICAgICAgICAg
ICBwYW5lLl9yZW1vdmVCcmVha3BvaW50KCJpbnN0cnVtZW50YXRpb246dGltZXJGaXJlZCIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKG5leHQpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIGV2ZW50IGxpc3RlbmVyIGJy
ZWFrcG9pbnRzLgotPC9wPgotCi08aW5wdXQgdHlwZT1idXR0b24gaWQ9InRlc3QiPjwvaW5wdXQ+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9maWxlLXN5c3RlbS1wcm9qZWN0LW1hcHBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2ZpbGUtc3lzdGVtLXByb2plY3QtbWFwcGluZy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkNDNlY2I3MzU4YWQ2YzEy
NWY0ZGY2NzU0NGE4NDY2ZTNiY2I4YmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2ZpbGUtc3lzdGVt
LXByb2plY3QtbWFwcGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCww
IEBACi1UZXN0cyBmaWxlIHN5c3RlbSBwcm9qZWN0IG1hcHBpbmdzLgotCi0KLVJ1bm5pbmc6IHRl
c3RBdXRvbWF0aWNNYXBwaW5nCi1BZGRpbmcgZmlsZSBzeXN0ZW0uCi1BZGRpbmcgbmV0d29yayBy
ZXNvdXJjZS4KLVVJU291cmNlQ29kZSB1cmkgdG8gdXJsIG1hcHBpbmdzOgotICAgIGZpbGVzeXN0
ZW06L3Zhci93d3cvaHRtbC9mb28uanMgLT4gCi0gICAgZmlsZXN5c3RlbTovdmFyL3d3dy9iYXIu
anMgLT4gCi1BZGRpbmcgbWFwcGluZyBiZXR3ZWVuIG5ldHdvcmsgYW5kIGZpbGUgc3lzdGVtIHJl
c291cmNlcy4KLUVtdWxhdGUgcmVsb2FkaW5nIGluc3BlY3Rvci4KLVVJU291cmNlQ29kZSB1cmkg
dG8gdXJsIG1hcHBpbmdzOgotICAgIGZpbGVzeXN0ZW06L3Zhci93d3cvaHRtbC9mb28uanMgLT4g
aHR0cDovL2xvY2FsaG9zdC9odG1sL2Zvby5qcwotICAgIGZpbGVzeXN0ZW06L3Zhci93d3cvYmFy
LmpzIC0+IGh0dHA6Ly9sb2NhbGhvc3QvYmFyLmpzCi1SZW1vdmluZyBtYXBwaW5nIGJldHdlZW4g
bmV0d29yayBhbmQgZmlsZSBzeXN0ZW0gcmVzb3VyY2VzLgotRW11bGF0ZSByZWxvYWRpbmcgaW5z
cGVjdG9yLgotVUlTb3VyY2VDb2RlIHVyaSB0byB1cmwgbWFwcGluZ3M6Ci0gICAgZmlsZXN5c3Rl
bTovdmFyL3d3dy9odG1sL2Zvby5qcyAtPiAKLSAgICBmaWxlc3lzdGVtOi92YXIvd3d3L2Jhci5q
cyAtPiAKLQotUnVubmluZzogdGVzdFNjcmlwdEZpbGVPblJlbG9hZFdpdGhEaXJ0eUZpbGUKLUFk
ZGluZyBmaWxlIHN5c3RlbS4KLUR1bXBpbmcgdWlTb3VyY2VDb2RlIGFuZCBzY3JpcHQgY29udGVu
dDoKLSAgICB1aVNvdXJjZUNvZGU6IDxmb28gY29udGVudD4KLSAgICBzY3JpcHQ6IDxmb28gY29u
dGVudD4KLSAgLy9AIHNvdXJjZVVSTD1odHRwOi8vbG9jYWxob3N0L2h0bWwvZm9vLmpzICAKLSAK
LSAtIGhhc0RpdmVyZ2VkRnJvbVZNOiBmYWxzZQotIC0gc291cmNlRnJhbWUuX211dGVkOiBmYWxz
ZQotRWRpdGluZyB1aVNvdXJjZUNvZGU6Ci0gLSBoYXNEaXZlcmdlZEZyb21WTTogdHJ1ZQotIC0g
c291cmNlRnJhbWUuX211dGVkOiB0cnVlCi1Db21taXR0aW5nIHVpU291cmNlQ29kZSB3aXRoIGxp
dmUgZWRpdCBmYWlsdXJlOgotRHVtcGluZyB1aVNvdXJjZUNvZGUgYW5kIHNjcmlwdCBjb250ZW50
OgotICAgIHVpU291cmNlQ29kZTogPGZvbyBjb250ZW50IGVkaXRlZD4KLSAgICBzY3JpcHQ6IDxm
b28gY29udGVudD4KLSAgLy9AIHNvdXJjZVVSTD1odHRwOi8vbG9jYWxob3N0L2h0bWwvZm9vLmpz
ICAKLSAKLSAtIGhhc0RpdmVyZ2VkRnJvbVZNOiB0cnVlCi0gLSBzb3VyY2VGcmFtZS5fbXV0ZWQ6
IHRydWUKLVJlbG9hZGluZyB3aXRoIHNhdmVkIGJ1dCBkaXZlcmdlZCB1aVNvdXJjZUNvZGU6Ci1M
b2FkaW5nIHNjcmlwdC4KLUR1bXBpbmcgdWlTb3VyY2VDb2RlIGFuZCBzY3JpcHQgY29udGVudDoK
LSAgICB1aVNvdXJjZUNvZGU6IDxmb28gY29udGVudCBlZGl0ZWQ+Ci0gICAgc2NyaXB0OiA8Zm9v
IGNvbnRlbnQ+Ci0gIC8vQCBzb3VyY2VVUkw9aHR0cDovL2xvY2FsaG9zdC9odG1sL2Zvby5qcyAg
Ci0gCi0gLSBoYXNEaXZlcmdlZEZyb21WTTogdHJ1ZQotIC0gc291cmNlRnJhbWUuX211dGVkOiB0
cnVlCi1FZGl0aW5nIHVpU291cmNlQ29kZSBhZ2FpbjoKLSAtIGhhc0RpdmVyZ2VkRnJvbVZNOiB0
cnVlCi0gLSBzb3VyY2VGcmFtZS5fbXV0ZWQ6IHRydWUKLUNvbW1pdHRpbmcgdWlTb3VyY2VDb2Rl
IGFnYWluICh3aXRoIGxpdmUgZWRpdCBzdWNjZXNzIG5vdyk6Ci1EdW1waW5nIHVpU291cmNlQ29k
ZSBhbmQgc2NyaXB0IGNvbnRlbnQ6Ci0gICAgdWlTb3VyY2VDb2RlOiA8Zm9vIGNvbnRlbnQgZWRp
dGVkIGFnYWluPgotICAgIHNjcmlwdDogPGZvbyBjb250ZW50IGVkaXRlZCBhZ2Fpbj4KLSAvL0Ag
c291cmNlVVJMPWh0dHA6Ly9sb2NhbGhvc3QvaHRtbC9mb28uanMKLSAtIGhhc0RpdmVyZ2VkRnJv
bVZNOiBmYWxzZQotIC0gc291cmNlRnJhbWUuX211dGVkOiBmYWxzZQotUmVsb2FkaW5nIHBhZ2U6
Ci1Mb2FkaW5nIHNjcmlwdC4KLSAtIGhhc0RpdmVyZ2VkRnJvbVZNOiBmYWxzZQotIC0gc291cmNl
RnJhbWUuX211dGVkOiBmYWxzZQotRWRpdGluZyB1aVNvdXJjZUNvZGUgYWdhaW4gYW5kIHJlbG9h
ZGluZyB3aGlsZSBpdCBpcyBkaXJ0eToKLUxvYWRpbmcgc2NyaXB0LgotIC0gaGFzRGl2ZXJnZWRG
cm9tVk06IHRydWUKLSAtIHNvdXJjZUZyYW1lLl9tdXRlZDogdHJ1ZQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZmlsZS1zeXN0ZW0tcHJvamVjdC1tYXBwaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZmlsZS1zeXN0ZW0tcHJvamVj
dC1tYXBwaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5MmIxNzQ2Nzkz
OWY4ODQ5MGQyMjgzNmQ4NmZjYjE5MmZkN2Y4ZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2ZpbGUt
c3lzdGVtLXByb2plY3QtbWFwcGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjE4ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pc29sYXRlZC1maWxlc3lz
dGVtLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IGZ1bmN0aW9uIGR1bXBVSVNvdXJjZUNvZGVzKHVpU291cmNlQ29kZXMsIG5leHQpCi0gICAgewot
ICAgICAgICBpbm5lckR1bXBVSVNvdXJjZUNvZGVzKHVpU291cmNlQ29kZXMsIDAsIG5leHQpOwot
Ci0gICAgICAgIGZ1bmN0aW9uIGlubmVyRHVtcFVJU291cmNlQ29kZXModWlTb3VyY2VDb2Rlcywg
c3RhcnRJbmRleCwgbmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIiIpOwotICAgICAgICAgICAgaWYgKHN0YXJ0SW5kZXggPT09IHVpU291cmNlQ29k
ZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291
cmNlQ29kZSh1aVNvdXJjZUNvZGVzW3N0YXJ0SW5kZXhdLCBpbm5lckR1bXBVSVNvdXJjZUNvZGVz
LmJpbmQodGhpcywgdWlTb3VyY2VDb2Rlcywgc3RhcnRJbmRleCArIDEsIG5leHQpKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIHZhciBtYW5hZ2VyOwotICAgIHZhciByZXNvdXJjZVNjcmlwdE1h
cHBpbmc7Ci0gICAgdmFyIGRlZmF1bHRTY3JpcHRNYXBwaW5nOwotICAgIGZ1bmN0aW9uIGNyZWF0
ZU9iamVjdHMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2Uo
KTsKLSAgICAgICAgbWFuYWdlciA9IEluc3BlY3RvclRlc3QuY3JlYXRlSXNvbGF0ZWRGaWxlU3lz
dGVtTWFuYWdlcihJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIEluc3BlY3RvclRlc3QudGVz
dEZpbGVTeXN0ZW1NYXBwaW5nKTsKLSAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nID0gbmV3
IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcoSW5zcGVjdG9yVGVzdC50ZXN0V29y
a3NwYWNlKTsKLSAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9y
LkRlZmF1bHRTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7Ci0gICAg
fQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0
ZXN0QXV0b21hdGljTWFwcGluZyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlv
biB1aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpIHsgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBkdW1wRmlsZVN5c3RlbVVJU291cmNlQ29kZXNNYXBwaW5ncygpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBJbnNwZWN0b3JUZXN0LnRlc3RX
b3Jrc3BhY2UucHJvamVjdChmaWxlU3lzdGVtUHJvamVjdElkKS51aVNvdXJjZUNvZGVzKCk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZSB1cmkg
dG8gdXJsIG1hcHBpbmdzOiIpOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiAgICAiICsgdWlTb3VyY2VDb2Rlc1tpXS51cmkoKSArICIgLT4gIiAr
IHVpU291cmNlQ29kZXNbaV0udXJsKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFy
IGZpbGVTeXN0ZW1QYXRoID0gIi92YXIvd3d3IjsKLSAgICAgICAgICAgIHZhciBmaWxlU3lzdGVt
UHJvamVjdElkID0gV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUucHJvamVj
dElkKGZpbGVTeXN0ZW1QYXRoKTsKLSAgICAgICAgICAgIHZhciBmaWxlcyA9IHsiL2h0bWwvZm9v
LmpzIjogIjxmb28gY29udGVudD4iLCAiL2Jhci5qcyI6ICI8YmFyIGNvbnRlbnQ+In07Ci0KLSAg
ICAgICAgICAgIGNyZWF0ZU9iamVjdHMoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGVz
dEZpbGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKFtdKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3VyY2VDb2Rl
QWRkZWQsIDQpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBm
aWxlIHN5c3RlbS4iKTsKLSAgICAgICAgICAgIG1hbmFnZXIuYWRkTW9ja0ZpbGVTeXN0ZW0oZmls
ZVN5c3RlbVBhdGgsIGZpbGVzKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJBZGRpbmcgbmV0d29yayByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkTW9ja1VJU291cmNlQ29kZVRvV29ya3NwYWNlKCJodHRwOi8vbG9jYWxob3N0L2h0bWwvZm9v
LmpzIiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCAiPGZvbyBjb250ZW50PiIp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3Bh
Y2UoImh0dHA6Ly9sb2NhbGhvc3QvYmFyLmpzIiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMu
U2NyaXB0LCAiPGZvbyBjb250ZW50PiIpOwotICAgICAgICAgICAgZHVtcEZpbGVTeXN0ZW1VSVNv
dXJjZUNvZGVzTWFwcGluZ3MoKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBJbnNw
ZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlKGZpbGVTeXN0ZW1Qcm9qZWN0SWQs
IFsiaHRtbCIsICJmb28uanMiXSk7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1VJU291cmNlQ29k
ZSA9IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS51aVNvdXJjZUNvZGUoImh0dHA6Ly9sb2Nh
bGhvc3QiLCBbImh0bWwiLCAiZm9vLmpzIl0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5v
dmVycmlkZShXZWJJbnNwZWN0b3IsICJzdWdnZXN0UmVsb2FkIiwgZnVuY3Rpb24oKSB7IH0pOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBtYXBwaW5nIGJldHdl
ZW4gbmV0d29yayBhbmQgZmlsZSBzeXN0ZW0gcmVzb3VyY2VzLiIpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZE1hcHBpbmcobmV0d29ya1VJU291cmNlQ29kZSwg
dWlTb3VyY2VDb2RlLCBtYW5hZ2VyLmZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlcik7Ci0gICAg
ICAgICAgICBtYW5hZ2VyLnJlbW92ZU1vY2tGaWxlU3lzdGVtKGZpbGVTeXN0ZW1QYXRoKTsKLQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVtdWxhdGUgcmVsb2FkaW5nIGlu
c3BlY3Rvci4iKTsKLSAgICAgICAgICAgIGNyZWF0ZU9iamVjdHMoKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3Vy
Y2VDb2RlQWRkZWQsIDIpOwotICAgICAgICAgICAgbWFuYWdlci5hZGRNb2NrRmlsZVN5c3RlbShm
aWxlU3lzdGVtUGF0aCwgZmlsZXMpOwotICAgICAgICAgICAgZHVtcEZpbGVTeXN0ZW1VSVNvdXJj
ZUNvZGVzTWFwcGluZ3MoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoV2Vi
SW5zcGVjdG9yLCAic3VnZ2VzdFJlbG9hZCIsIGZ1bmN0aW9uKCkgeyB9KTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZW1vdmluZyBtYXBwaW5nIGJldHdlZW4gbmV0d29y
ayBhbmQgZmlsZSBzeXN0ZW0gcmVzb3VyY2VzLiIpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2Rl
ID0gSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLnVpU291cmNlQ29kZShmaWxlU3lzdGVtUHJv
amVjdElkLCBbImh0bWwiLCAiZm9vLmpzIl0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50
ZXN0V29ya3NwYWNlLnJlbW92ZU1hcHBpbmcodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIG1h
bmFnZXIucmVtb3ZlTW9ja0ZpbGVTeXN0ZW0oZmlsZVN5c3RlbVBhdGgpOwotCi0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRW11bGF0ZSByZWxvYWRpbmcgaW5zcGVjdG9yLiIp
OwotICAgICAgICAgICAgY3JlYXRlT2JqZWN0cygpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNvZGVBZGRl
ZCwgMik7Ci0gICAgICAgICAgICBtYW5hZ2VyLmFkZE1vY2tGaWxlU3lzdGVtKGZpbGVTeXN0ZW1Q
YXRoLCBmaWxlcyk7Ci0gICAgICAgICAgICBkdW1wRmlsZVN5c3RlbVVJU291cmNlQ29kZXNNYXBw
aW5ncygpOwotICAgICAgICAgICAgbWFuYWdlci5yZW1vdmVNb2NrRmlsZVN5c3RlbSgiL3Zhci93
d3ciKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0RmlsZU1hcHBpbmcuc2V0TWFw
cGluZ0VudHJpZXMoW10pOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RTY3JpcHRGaWxlT25SZWxvYWRXaXRoRGlydHlGaWxlKG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciBvcmlnaW5hbEZpbGVDb250ZW50ID0gIjxmb28gY29u
dGVudD4iOwotICAgICAgICAgICAgdmFyIHNjcmlwdFVSTCA9ICJodHRwOi8vbG9jYWxob3N0L2h0
bWwvZm9vLmpzIjsKLSAgICAgICAgICAgIHZhciBzY3JpcHRDb250ZW50ID0gb3JpZ2luYWxGaWxl
Q29udGVudCArICJcbiAgLy9AIHNvdXJjZVVSTD0iICsgc2NyaXB0VVJMICsgIiAgXG4gIjsKLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkgeyB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHVubG9hZFNjcmlwdCgpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLl9kZWJ1Z2dlclJlc2V0KCk7Ci0gICAg
ICAgICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuX2RlYnVnZ2VyUmVzZXQoKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gbG9hZFNjcmlwdCgpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRN
b2NrKHNjcmlwdFVSTCwgMCwgMCwgZmFsc2UsIHNjcmlwdENvbnRlbnQpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQo
dWlTb3VyY2VDb2RlQWRkZWQsIDEpOwotICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBw
aW5nLmFkZFNjcmlwdChzY3JpcHQpOwotICAgICAgICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFw
cGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFy
IGZpbGVTeXN0ZW1QYXRoID0gIi92YXIvd3d3IjsKLSAgICAgICAgICAgIHZhciBmaWxlU3lzdGVt
UHJvamVjdElkID0gV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9qZWN0RGVsZWdhdGUucHJvamVj
dElkKGZpbGVTeXN0ZW1QYXRoKTsKLSAgICAgICAgICAgIHZhciBmaWxlcyA9IHsiL2h0bWwvZm9v
LmpzIjogb3JpZ2luYWxGaWxlQ29udGVudCwgIi9iYXIuanMiOiAiPGJhciBjb250ZW50PiJ9Owot
ICAgICAgICAgICAgY3JlYXRlT2JqZWN0cygpOwotICAgICAgICAgICAgdmFyIGVudHJ5MSA9IG5l
dyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6Ly9sb2NhbGhvc3QvIiwgIi92
YXIvd3d3LyIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0RmlsZU1hcHBpbmcuc2V0
TWFwcGluZ0VudHJpZXMoW2VudHJ5MV0pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0
Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNvZGVBZGRlZCwgMik7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIGZpbGUgc3lzdGVt
LiIpOwotICAgICAgICAgICAgbWFuYWdlci5hZGRNb2NrRmlsZVN5c3RlbShmaWxlU3lzdGVtUGF0
aCwgZmlsZXMpOwotCi0gICAgICAgICAgICBsb2FkU2NyaXB0KCk7Ci0KLSAgICAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2Rl
KGZpbGVTeXN0ZW1Qcm9qZWN0SWQsIFsiaHRtbCIsICJmb28uanMiXSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNob3dVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlLCBkaWRTaG93U2NyaXB0
U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZHVtcFVJU291cmNlQ29kZUFuZFNjcmlw
dENvbnRlbnRzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiRHVtcGluZyB1aVNvdXJjZUNvZGUgYW5kIHNjcmlwdCBjb250ZW50OiIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgdWlTb3VyY2VDb2Rl
OiAiICsgdWlTb3VyY2VDb2RlLndvcmtpbmdDb3B5KCkpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgc2NyaXB0OiAiICsgc2NyaXB0Q29udGVudCk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291
cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZHVtcFVJU291cmNlQ29k
ZUFuZFNjcmlwdENvbnRlbnRzKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAtIGhhc0RpdmVyZ2VkRnJvbVZNOiAiICsgISF1aVNvdXJjZUNvZGUuc2NyaXB0Rmls
ZSgpLmhhc0RpdmVyZ2VkRnJvbVZNKCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgLSBzb3VyY2VGcmFtZS5fbXV0ZWQ6ICIgKyAhIXNvdXJjZUZyYW1lLl9tdXRl
ZCk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdGluZyB1
aVNvdXJjZUNvZGU6Iik7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdD
b3B5KCI8Zm9vIGNvbnRlbnQgZWRpdGVkPiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIgLSBoYXNEaXZlcmdlZEZyb21WTTogIiArICEhdWlTb3VyY2VDb2RlLnNj
cmlwdEZpbGUoKS5oYXNEaXZlcmdlZEZyb21WTSgpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiIC0gc291cmNlRnJhbWUuX211dGVkOiAiICsgISFzb3VyY2VGcmFt
ZS5fbXV0ZWQpOwotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0U2NyaXB0U291cmNlT3Zl
cnJpZGVGYWlsdXJlKHNjcmlwdElkLCBuZXdDb250ZW50LCBjYWxsYmFjaykKLSAgICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCJlcnJvciIpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLCAic2V0U2NyaXB0U291cmNlIiwgc2V0U2NyaXB0U291cmNlT3Zl
cnJpZGVGYWlsdXJlKTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJDb21taXR0aW5nIHVpU291cmNlQ29kZSB3aXRoIGxpdmUgZWRpdCBmYWlsdXJlOiIpOwotICAg
ICAgICAgICAgICAgIHVpU291cmNlQ29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsg
fSk7Ci0gICAgICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZUFuZFNjcmlwdENvbnRlbnRzKCk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAtIGhhc0RpdmVyZ2Vk
RnJvbVZNOiAiICsgISF1aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpLmhhc0RpdmVyZ2VkRnJvbVZN
KCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgLSBzb3VyY2VG
cmFtZS5fbXV0ZWQ6ICIgKyAhIXNvdXJjZUZyYW1lLl9tdXRlZCk7Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVsb2FkaW5nIHdpdGggc2F2ZWQgYnV0IGRpdmVy
Z2VkIHVpU291cmNlQ29kZToiKTsKLSAgICAgICAgICAgICAgICB1bmxvYWRTY3JpcHQoKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXVpU291cmNlQ29kZS5zY3Jp
cHRGaWxlKCksICJVSVNvdXJjZUNvZGUgc2hvdWxkIG5vdCBoYXZlIHNjcmlwdCBmaWxlIGFmdGVy
IHVubG9hZGluZyBzY3JpcHRzLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0VHJ1ZSghc291cmNlRnJhbWUuX211dGVkLCAiU2F2ZWQgYnV0IGRpdmVyZ2VkIHNvdXJjZSBm
cmFtZSBzaG91bGQgbm90IGJlIG11dGVkIik7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiTG9hZGluZyBzY3JpcHQuIik7Ci0gICAgICAgICAgICAgICAgbG9hZFNj
cmlwdCgpOwotICAgICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVBbmRTY3JpcHRDb250ZW50
cygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgLSBoYXNEaXZl
cmdlZEZyb21WTTogIiArICEhdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKS5oYXNEaXZlcmdlZEZy
b21WTSgpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIC0gc291
cmNlRnJhbWUuX211dGVkOiAiICsgISFzb3VyY2VGcmFtZS5fbXV0ZWQpOwotCi0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgdWlTb3VyY2VDb2RlIGFnYWlu
OiIpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiPGZvbyBj
b250ZW50IGVkaXRlZCBhZ2Fpbj4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiIC0gaGFzRGl2ZXJnZWRGcm9tVk06ICIgKyAhIXVpU291cmNlQ29kZS5zY3JpcHRG
aWxlKCkuaGFzRGl2ZXJnZWRGcm9tVk0oKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIiAtIHNvdXJjZUZyYW1lLl9tdXRlZDogIiArICEhc291cmNlRnJhbWUuX211
dGVkKTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldFNjcmlwdFNvdXJjZU92ZXJyaWRl
U3VjY2VzcyhzY3JpcHRJZCwgbmV3Q29udGVudCwgY2FsbGJhY2spCi0gICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb250ZW50ID0gbmV3Q29udGVudDsKLSAgICAg
ICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwg
InNldFNjcmlwdFNvdXJjZSIsIHNldFNjcmlwdFNvdXJjZU92ZXJyaWRlU3VjY2Vzcyk7Ci0KLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29tbWl0dGluZyB1aVNvdXJj
ZUNvZGUgYWdhaW4gKHdpdGggbGl2ZSBlZGl0IHN1Y2Nlc3Mgbm93KToiKTsKLSAgICAgICAgICAg
ICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7IH0pOwotICAg
ICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVBbmRTY3JpcHRDb250ZW50cygpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgLSBoYXNEaXZlcmdlZEZyb21WTTog
IiArICEhdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKS5oYXNEaXZlcmdlZEZyb21WTSgpKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIC0gc291cmNlRnJhbWUuX211
dGVkOiAiICsgISFzb3VyY2VGcmFtZS5fbXV0ZWQpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlJlbG9hZGluZyBwYWdlOiIpOwotICAgICAgICAgICAgICAgIHVu
bG9hZFNjcmlwdCgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSgh
dWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKSwgIlVJU291cmNlQ29kZSBzaG91bGQgbm90IGhhdmUg
c2NyaXB0IGZpbGUgYWZ0ZXIgdW5sb2FkaW5nIHNjcmlwdHMuIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFzb3VyY2VGcmFtZS5fbXV0ZWQsICJTYXZlZCBhbmQg
bWVyZ2VkIHNvdXJjZSBmcmFtZSBzaG91bGQgbm90IGJlIG11dGVkIik7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxvYWRpbmcgc2NyaXB0LiIpOwotICAgICAgICAg
ICAgICAgIGxvYWRTY3JpcHQoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiIC0gaGFzRGl2ZXJnZWRGcm9tVk06ICIgKyAhIXVpU291cmNlQ29kZS5zY3JpcHRGaWxl
KCkuaGFzRGl2ZXJnZWRGcm9tVk0oKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIiAtIHNvdXJjZUZyYW1lLl9tdXRlZDogIiArICEhc291cmNlRnJhbWUuX211dGVk
KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHVp
U291cmNlQ29kZSBhZ2FpbiBhbmQgcmVsb2FkaW5nIHdoaWxlIGl0IGlzIGRpcnR5OiIpOwotICAg
ICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiPGZvbyBjb250ZW50IGVk
aXRlZCBhbmQgZGlydHk+Iik7Ci0gICAgICAgICAgICAgICAgdW5sb2FkU2NyaXB0KCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCF1aVNvdXJjZUNvZGUuc2NyaXB0
RmlsZSgpLCAiVUlTb3VyY2VDb2RlIHNob3VsZCBub3QgaGF2ZSBzY3JpcHQgZmlsZSBhZnRlciB1
bmxvYWRpbmcgc2NyaXB0cy4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dFRydWUoc291cmNlRnJhbWUuX211dGVkLCAiRGlydHkgc291cmNlIGZyYW1lIHNob3VsZCBiZSBt
dXRlZCIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJMb2FkaW5n
IHNjcmlwdC4iKTsKLSAgICAgICAgICAgICAgICBsb2FkU2NyaXB0KCk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAtIGhhc0RpdmVyZ2VkRnJvbVZNOiAiICsgISF1
aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpLmhhc0RpdmVyZ2VkRnJvbVZNKCkpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgLSBzb3VyY2VGcmFtZS5fbXV0ZWQ6ICIg
KyAhIXNvdXJjZUZyYW1lLl9tdXRlZCk7Ci0KLSAgICAgICAgICAgICAgICB1bmxvYWRTY3JpcHQo
KTsKLSAgICAgICAgICAgICAgICBsb2FkU2NyaXB0OwotCi0gICAgICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19OwotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBmaWxlIHN5c3RlbSBwcm9q
ZWN0IG1hcHBpbmdzLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRkZTQzNzk3NWE4Y2U5YzYzZDMyMWQ0ODBiYTg3NjQ2ZjgzODU3
MDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0cyB0aGF0IExpbmtpZmllciB3b3JrcyBjb3JyZWN0
bHkuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotVGhlIHN0cmluZyAiYXQgdHJpZ2dlckVycm9y
IChodHRwOi8vbG9jYWxob3N0L3Nob3cvOjIyOjExKSAiIGxpbmtpZmllcyB0byB1cmw6IGh0dHA6
Ly9sb2NhbGhvc3Qvc2hvdy8KLVRoZSBsaW5lTnVtYmVyIGlzIDIyIHdpdGggdHlwZSBudW1iZXIK
LWxpc3RlbmVycyBhZGRlZCBvbiByYXcgc291cmNlIGNvZGU6IDEKLW9yaWdpbmFsIGxvY2F0aW9u
OiBsaW5raWZpZXIuaHRtbDo5Ci1wcmV0dHkgcHJpbnRlZCBsb2NhdGlvbjogbGlua2lmaWVyLmh0
bWw6MTIKLXJldmVydGVkIGxvY2F0aW9uOiBsaW5raWZpZXIuaHRtbDo5Ci1saXN0ZW5lcnMgcmVt
b3ZlZCBmcm9tIHJhdyBzb3VyY2UgY29kZTogMQotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkZmRhZWRmNjNiODRhMWIxYjY2N2Y3NWRjMWMwOWQ4OTM0
M2E0MDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsOTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBkdW1teVNjcmlwdCgpCi17Ci0gICAgY29uc29sZS5sb2co
ImR1bW15IHN0cmluZyIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHdhaXRGb3JTY3JpcHRzKTsKLQotICAgIHZhciBsaW5raWZp
ZXI7Ci0gICAgdmFyIGxpbms7Ci0gICAgdmFyIHNjcmlwdDsKLSAgICB2YXIgdWlTb3VyY2VDb2Rl
OwotCi0gICAgZnVuY3Rpb24gd2FpdEZvclNjcmlwdHMoKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJsaW5raWZpZXIuaHRtbCIsIGRlYnVnZ2VyVGVzdCk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGVidWdnZXJUZXN0KCkKLSAgICB7Ci0gICAgICAgIHZh
ciBzY3JpcHRzID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0czsKLSAgICAgICAg
Zm9yICh2YXIgc2NyaXB0SWQgaW4gc2NyaXB0cykgewotICAgICAgICAgICAgdmFyIHNjcmlwdENh
bmRpZGF0ZSA9IHNjcmlwdHNbc2NyaXB0SWRdOwotICAgICAgICAgICAgaWYgKHNjcmlwdENhbmRp
ZGF0ZS5zb3VyY2VVUkwgPT09IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMICYmIHNjcmlw
dENhbmRpZGF0ZS5saW5lT2Zmc2V0ID09PSA0KSB7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0g
c2NyaXB0Q2FuZGlkYXRlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB1aVNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iu
d29ya3NwYWNlLnVpU291cmNlQ29kZUZvck9yaWdpblVSTChXZWJJbnNwZWN0b3IuaW5zcGVjdGVk
UGFnZVVSTCk7Ci0gICAgICAgIHZhciBsaW5raWZ5TWUgPSAiYXQgdHJpZ2dlckVycm9yIChodHRw
Oi8vbG9jYWxob3N0L3Nob3cvOjIyOjExKSI7Ci0gICAgICAgIHZhciBmcmFnbWVudCA9IFdlYklu
c3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudChsaW5raWZ5TWUpOwotICAgICAgICB2YXIg
YW5jaG9yID0gZnJhZ21lbnQucXVlcnlTZWxlY3RvcignYScpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiVGhlIHN0cmluZyBcIiIgKyBsaW5raWZ5TWUgKyAiIFwiIGxpbmtpZmll
cyB0byB1cmw6ICIgKyBhbmNob3IuaHJlZik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJUaGUgbGluZU51bWJlciBpcyAiICsgYW5jaG9yLmxpbmVOdW1iZXIgKyAiIHdpdGggdHlw
ZSAiICsgKHR5cGVvZiBhbmNob3IubGluZU51bWJlcikpOwotCi0gICAgICAgIGxpbmtpZmllciA9
IG5ldyBXZWJJbnNwZWN0b3IuTGlua2lmaWVyKCk7Ci0gICAgICAgIHZhciBjb3VudDEgPSBsaXZl
TG9jYXRpb25zQ291bnQoKTsKLSAgICAgICAgbGluayA9IGxpbmtpZmllci5saW5raWZ5TG9jYXRp
b24oV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwsIDgsIDAsICJkdW1teS1jbGFzcyIpOwot
ICAgICAgICB2YXIgY291bnQyID0gbGl2ZUxvY2F0aW9uc0NvdW50KCk7Ci0KLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoImxpc3RlbmVycyBhZGRlZCBvbiByYXcgc291cmNlIGNvZGU6
ICIgKyAoY291bnQyIC0gY291bnQxKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJvcmlnaW5hbCBsb2NhdGlvbjogIiArIGxpbmsudGV4dENvbnRlbnQpOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihsaW5raWZpZXIuX2Zvcm1hdHRlciwgImZvcm1hdExpdmVB
bmNob3IiLCBsaW5rVXBkYXRlZCk7Ci0gICAgICAgIHVpU291cmNlQ29kZS5zZXRGb3JtYXR0ZWQo
dHJ1ZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbGlua1VwZGF0ZWQoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInByZXR0eSBwcmludGVkIGxvY2F0aW9uOiAiICsg
bGluay50ZXh0Q29udGVudCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihsaW5r
aWZpZXIuX2Zvcm1hdHRlciwgImZvcm1hdExpdmVBbmNob3IiLCBsaW5rUmV2ZXJ0ZWQpOwotICAg
ICAgICB1aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVkKGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBsaW5rUmV2ZXJ0ZWQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoInJldmVydGVkIGxvY2F0aW9uOiAiICsgbGluay50ZXh0Q29udGVudCk7Ci0KLSAgICAgICAg
dmFyIGNvdW50MSA9IGxpdmVMb2NhdGlvbnNDb3VudCgpOwotICAgICAgICBsaW5raWZpZXIucmVz
ZXQoKTsKLSAgICAgICAgdmFyIGNvdW50MiA9IGxpdmVMb2NhdGlvbnNDb3VudCgpOwotCi0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJsaXN0ZW5lcnMgcmVtb3ZlZCBmcm9tIHJhdyBz
b3VyY2UgY29kZTogIiArIChjb3VudDEgLSBjb3VudDIpKTsKLQotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbGl2ZUxv
Y2F0aW9uc0NvdW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzY3JpcHQuX2xvY2F0aW9ucy5z
aXplKCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IExpbmtpZmllciB3b3JrcyBjb3JyZWN0bHkuCi08
cD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVhMjZkNzNhYmVlNTQ3NzVhNTMyMGMyZDgx
NGRjODg2MTQxZDQ0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzOCArMCwwIEBACi1UZXN0cyBicmVh
a3BvaW50cyBhcmUgY29ycmVjdGx5IGRpbW1lZCBhbmQgcmVzdG9yZWQgaW4gSmF2YVNjcmlwdFNv
dXJjZUZyYW1lIGR1cmluZyBsaXZlIGVkaXQuCi0KLUJ1ZyA5OTU5OAotRGVidWdnZXIgd2FzIGVu
YWJsZWQuCi0KLVJ1bm5pbmc6IHRlc3RFZGl0VW5kbwotU2V0dGluZyBicmVha3BvaW50OgotICAg
IFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxz
ZSkKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLWJyZWFr
cG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlv
bnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBw
cm9qZWN0IHR5cGU6IG5ldHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLSAgICBEdW1waW5nIGJy
ZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJl
cjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxlOi8vCi1FZGl0aW5n
IHNvdXJjZToKLSAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIp
Ci0gICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9
IHRydWUpCi0gICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9
IDIsIGRpc2FibGVkID0gZmFsc2UpCi0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAg
ICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKLSAgICBEdW1waW5n
IGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5q
cywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVi
dWdnZXI6Ci0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJl
YWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVj
dCBpZDogZmlsZTovLwotVW5kb2luZyBzb3VyY2UgZWRpdGluZzoKLSAgICBPcmlnaW5hbFRleHRF
ZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBUZXh0RWRpdG9yLnJl
bW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgVGV4dEVkaXRvci5yZW1vdmVCcmVh
a3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5l
TnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3Rv
cmFnZQotICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAg
IER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFr
cG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdvcmssIHByb2plY3Qg
aWQ6IGZpbGU6Ly8KLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRpdC1t
ZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBw
cm9qZWN0IGlkOiBmaWxlOi8vCi1GaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6Ci0gICAgVGV4
dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIER1bXBpbmcgYnJl
YWtwb2ludCBzdG9yYWdlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgIER1
bXBpbmcgYnJlYWtwb2ludHMKLQotUnVubmluZzogdGVzdEVkaXRDb21taXQKLVNldHRpbmcgYnJl
YWtwb2ludDoKLSAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRp
c2FibGVkID0gZmFsc2UpCi0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAg
ZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKLSAgICBEdW1waW5nIGJyZWFr
cG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGlu
ZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxlOi8vCi0g
ICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMu
anMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVjdCBpZDogZmls
ZTovLwotRWRpdGluZyBzb3VyY2U6Ci0gICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9p
bnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCi0gICAgVGV4dEVkaXRvci5yZW1v
dmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSB0cnVlKQotICAgIER1bXBpbmcgYnJlYWtwb2lu
dCBzdG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVl
Ci0gICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUt
YnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHBy
b2plY3QgaWQ6IGRlYnVnZ2VyOgotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJs
OiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5l
dHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLUNvbW1pdHRpbmcgZWRpdGVkIHNvdXJjZToKLSAg
ICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgVGV4dEVk
aXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRFZGl0b3IuYWRk
QnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVu
YWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJs
OiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5l
dHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAg
ICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0
eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxlOi8vCi1GaW5hbGx5IHJlbW92aW5nIGJyZWFr
cG9pbnQ6Ci0gICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQot
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgRHVtcGluZyBicmVha3BvaW50IGxv
Y2F0aW9ucwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLQotUnVubmluZzogdGVzdEVkaXRDb21t
aXRGYWlsRWRpdENvbW1pdAotU2V0dGluZyBicmVha3BvaW50OgotICAgIFRleHRFZGl0b3IuYWRk
QnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVu
YWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJs
OiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5l
dHdvcmssIHByb2plY3QgaWQ6IGZpbGU6Ly8KLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAg
ICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0
eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxlOi8vCi1FZGl0aW5nIHNvdXJjZToKLSAgICBP
cmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQg
PSBmYWxzZSkKLSAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIp
Ci0gICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9
IHRydWUpCi0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS1i
cmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9j
YXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjog
MiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVidWdnZXI6Ci0gICAgRHVt
cGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxp
bmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVjdCBpZDogZmlsZTovLwot
Q29tbWl0dGluZyBlZGl0ZWQgc291cmNlOgotICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdl
Ci0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCi0gICAgRHVt
cGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2lu
dHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHByb2plY3QgaWQ6
IGRlYnVnZ2VyOgotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiBlZGl0LW1l
LWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdvcmssIHBy
b2plY3QgaWQ6IGZpbGU6Ly8KLUVkaXRpbmcgc291cmNlIGFnYWluIHNvIHRoYXQgbGl2ZSBlZGl0
IGNvdWxkIHN1Y2NlZWQ6Ci0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAg
ZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKLSAgICBEdW1waW5nIGJyZWFr
cG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGlu
ZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVidWdnZXI6
Ci0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2lu
dHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVjdCBpZDog
ZmlsZTovLwotQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFnYWluOgotICAgIE9yaWdpbmFsVGV4
dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRFZGl0b3Iu
cmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBUZXh0RWRpdG9yLnJlbW92ZUJy
ZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxp
bmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBz
dG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCi0g
ICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJl
YWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVj
dCBpZDogZmlsZTovLwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiBlZGl0
LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdvcmss
IHByb2plY3QgaWQ6IGZpbGU6Ly8KLUZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKLSAgICBU
ZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgRHVtcGluZyBi
cmVha3BvaW50IHN0b3JhZ2UKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAg
RHVtcGluZyBicmVha3BvaW50cwotCi1SdW5uaW5nOiB0ZXN0RWRpdENvbW1pdEZhaWxVbmRvQ29t
bWl0Ci1TZXR0aW5nIGJyZWFrcG9pbnQ6Ci0gICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxp
bmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBz
dG9yYWdlCi0gICAgICAgIGVkaXQtbWUtYnJlYWtwb2ludHMuanM6MiwgZW5hYmxlZDp0cnVlCi0g
ICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJl
YWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVj
dCBpZDogZmlsZTovLwotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiBlZGl0
LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IG5ldHdvcmss
IHByb2plY3QgaWQ6IGZpbGU6Ly8KLUVkaXRpbmcgc291cmNlOgotICAgIE9yaWdpbmFsVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQotICAg
IFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBUZXh0RWRp
dG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gdHJ1ZSkKLSAgICBE
dW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
OjIsIGVuYWJsZWQ6dHJ1ZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAg
ICAgdXJsOiBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5
cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLSAgICBEdW1waW5nIGJyZWFrcG9p
bnRzCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwg
cHJvamVjdCB0eXBlOiBuZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxlOi8vCi1Db21taXR0aW5nIGVk
aXRlZCBzb3VyY2U6Ci0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRp
dC1tZS1icmVha3BvaW50cy5qczoyLCBlbmFibGVkOnRydWUKLSAgICBEdW1waW5nIGJyZWFrcG9p
bnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51
bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVidWdnZXI6Ci0g
ICAgRHVtcGluZyBicmVha3BvaW50cwotICAgICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMu
anMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogbmV0d29yaywgcHJvamVjdCBpZDogZmls
ZTovLwotVW5kb2luZyBzb3VyY2UgZWRpdGluZzoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3Rv
cmFnZQotICAgICAgICBlZGl0LW1lLWJyZWFrcG9pbnRzLmpzOjIsIGVuYWJsZWQ6dHJ1ZQotICAg
IER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAgdXJsOiBlZGl0LW1lLWJyZWFr
cG9pbnRzLmpzLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0
IGlkOiBkZWJ1Z2dlcjoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogZWRp
dC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBuZXR3b3Jr
LCBwcm9qZWN0IGlkOiBmaWxlOi8vCi1Db21taXR0aW5nIGVkaXRlZCBzb3VyY2UgYWdhaW46Ci0g
ICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0g
ICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQotICAgIFRleHRF
ZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBUZXh0RWRpdG9yLmFk
ZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCi0gICAgRHVtcGlu
ZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICAgICAgZWRpdC1tZS1icmVha3BvaW50cy5qczoyLCBl
bmFibGVkOnRydWUKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVy
bDogZWRpdC1tZS1icmVha3BvaW50cy5qcywgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBu
ZXR3b3JrLCBwcm9qZWN0IGlkOiBmaWxlOi8vCi0gICAgRHVtcGluZyBicmVha3BvaW50cwotICAg
ICAgICB1cmw6IGVkaXQtbWUtYnJlYWtwb2ludHMuanMsIGxpbmVOdW1iZXI6IDIsIHByb2plY3Qg
dHlwZTogbmV0d29yaywgcHJvamVjdCBpZDogZmlsZTovLwotRmluYWxseSByZW1vdmluZyBicmVh
a3BvaW50OgotICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikK
LSAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBs
b2NhdGlvbnMKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0KLVJ1bm5pbmc6IHRlc3RFZGl0QW5v
bnltb3VzVW5kbwotU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TaG93aW5nIHNjcmlwdCBzb3Vy
Y2U6Ci1TZXR0aW5nIGJyZWFrcG9pbnQ6Ci0gICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFr
cG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCi0gICAgRHVtcGluZyBicmVh
a3BvaW50IHN0b3JhZ2UKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAg
IHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlk
OiBkZWJ1Z2dlcjoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogLCBsaW5l
TnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoK
LUVkaXRpbmcgc291cmNlOgotICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgRHVt
cGluZyBicmVha3BvaW50IGxvY2F0aW9ucwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwg
cHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVidWdnZXI6Ci0gICAgRHVtcGlu
ZyBicmVha3BvaW50cwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBl
OiBkZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVidWdnZXI6Ci1VbmRvaW5nIHNvdXJjZSBlZGl0aW5n
OgotICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCi0gICAgRHVtcGluZyBicmVha3BvaW50
IGxvY2F0aW9ucwotICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBk
ZWJ1Z2dlciwgcHJvamVjdCBpZDogZGVidWdnZXI6Ci0gICAgRHVtcGluZyBicmVha3BvaW50cwot
ICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgcHJvamVjdCB0eXBlOiBkZWJ1Z2dlciwgcHJv
amVjdCBpZDogZGVidWdnZXI6Ci1GaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6Ci0gICAgT3Jp
Z2luYWxUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCi0gICAgRHVt
cGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25z
Ci0gICAgRHVtcGluZyBicmVha3BvaW50cwotCi1SdW5uaW5nOiB0ZXN0RWRpdER5bmFtaWNBbm9u
eW1vdXNVbmRvCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9u
IHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLVNob3dpbmcgc2NyaXB0IHNvdXJj
ZToKLVNldHRpbmcgYnJlYWtwb2ludDoKLSAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtw
b2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKLSAgICBEdW1waW5nIGJyZWFr
cG9pbnQgc3RvcmFnZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKLSAgICAgICAg
dXJsOiAsIGxpbmVOdW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHByb2plY3QgaWQ6
IGRlYnVnZ2VyOgotICAgIER1bXBpbmcgYnJlYWtwb2ludHMKLSAgICAgICAgdXJsOiAsIGxpbmVO
dW1iZXI6IDIsIHByb2plY3QgdHlwZTogZGVidWdnZXIsIHByb2plY3QgaWQ6IGRlYnVnZ2VyOgot
RWRpdGluZyBzb3VyY2U6Ci0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICBEdW1w
aW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBw
cm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLSAgICBEdW1waW5n
IGJyZWFrcG9pbnRzCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6
IGRlYnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLVVuZG9pbmcgc291cmNlIGVkaXRpbmc6
Ci0gICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKLSAgICBEdW1waW5nIGJyZWFrcG9pbnQg
bG9jYXRpb25zCi0gICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRl
YnVnZ2VyLCBwcm9qZWN0IGlkOiBkZWJ1Z2dlcjoKLSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi0g
ICAgICAgIHVybDogLCBsaW5lTnVtYmVyOiAyLCBwcm9qZWN0IHR5cGU6IGRlYnVnZ2VyLCBwcm9q
ZWN0IGlkOiBkZWJ1Z2dlcjoKLUZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKLSAgICBPcmln
aW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKLSAgICBEdW1w
aW5nIGJyZWFrcG9pbnQgc3RvcmFnZQotICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMK
LSAgICBEdW1waW5nIGJyZWFrcG9pbnRzCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2lu
dHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtw
b2ludHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk3ZmJiYjU1ZGNhZWYy
NGY3YTYxNjc4MGY5YjhkMWE0MmMzYWQ5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0
LWJyZWFrcG9pbnRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NDUgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbGl2ZS1lZGl0LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9lZGl0LW1lLWJyZWFrcG9pbnRzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1mdW5jdGlvbiBsb2FkRHluYW1pY0Fub255bW91c1NjcmlwdCgpCi17Ci0gICAgZnVuY3Rpb24g
dGVzdEZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGRlYnVnZ2VyOwotICAgIH0KLSAgICB2YXIg
c2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAgIHNj
cmlwdEVsZW1lbnQudGV4dENvbnRlbnQgPSBTdHJpbmcodGVzdEZ1bmN0aW9uKTsKLSAgICBkb2N1
ZW1udC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdEVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7
ICAKLQotICAgIGZ1bmN0aW9uIHBhdGhUb0ZpbGVOYW1lKHBhdGgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gcGF0aC5zdWJzdHJpbmcocGF0aC5sYXN0SW5kZXhPZigiLyIpICsgMSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCkKLSAgICB7
Ci0gICAgICAgIHZhciBicmVha3BvaW50TWFuYWdlciA9IFdlYkluc3BlY3Rvci5icmVha3BvaW50
TWFuYWdlcjsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gYnJlYWtwb2ludE1hbmFnZXIuX3N0
b3JhZ2UuX3NldHRpbmcuZ2V0KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIg
ICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBicmVha3BvaW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgICAgICAgICIgKyBwYXRoVG9GaWxlTmFtZShicmVha3BvaW50c1tpXS5zb3Vy
Y2VGaWxlSWQpICsgIjoiICsgYnJlYWtwb2ludHNbaV0ubGluZU51bWJlciArICIsIGVuYWJsZWQ6
IiArIGJyZWFrcG9pbnRzW2ldLmVuYWJsZWQpOwotCi0gICAgICAgIHZhciBicmVha3BvaW50TWFu
YWdlciA9IFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlcjsKLSAgICAgICAgbG9jYXRpb25z
ID0gYnJlYWtwb2ludE1hbmFnZXIuYWxsQnJlYWtwb2ludExvY2F0aW9ucygpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMi
KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2NhdGlvbnMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIHZhciB1aUxvY2F0aW9uID0gbG9jYXRpb25zW2ldLnVpTG9jYXRpb247Ci0g
ICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlMb2NhdGlvbi51aVNvdXJjZUNvZGU7Ci0g
ICAgICAgICAgICB2YXIgb3JpZ2luVVJMID0gdWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpOwotICAg
ICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSB1aUxvY2F0aW9uLmxpbmVOdW1iZXI7Ci0gICAgICAg
ICAgICB2YXIgcHJvamVjdCA9IHVpU291cmNlQ29kZS5wcm9qZWN0KCk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICB1cmw6ICIgKyBwYXRoVG9GaWxlTmFtZShv
cmlnaW5VUkwpICsgIiwgbGluZU51bWJlcjogIiArIGxpbmVOdW1iZXIgKyAiLCBwcm9qZWN0IHR5
cGU6ICIgKyBwcm9qZWN0LnR5cGUoKSArICIsIHByb2plY3QgaWQ6ICIgKyBwcm9qZWN0LmlkKCkp
OwotICAgICAgICB9Ci0KLSAgICAgICAgYnJlYWtwb2ludHMgPSBicmVha3BvaW50TWFuYWdlci5h
bGxCcmVha3BvaW50cygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIER1
bXBpbmcgYnJlYWtwb2ludHMiKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3Bv
aW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3Bv
aW50c1tpXTsKLSAgICAgICAgICAgIHZhciBwcmltYXJ5VUlMb2NhdGlvbiA9IGJyZWFrcG9pbnQu
cHJpbWFyeVVJTG9jYXRpb24oKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBwcmlt
YXJ5VUlMb2NhdGlvbi51aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICB2YXIgb3JpZ2luVVJMID0g
dWlTb3VyY2VDb2RlLm9yaWdpblVSTCgpOwotICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBw
cmltYXJ5VUlMb2NhdGlvbi5saW5lTnVtYmVyOwotICAgICAgICAgICAgdmFyIHByb2plY3QgPSB1
aVNvdXJjZUNvZGUucHJvamVjdCgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiAgICAgICAgdXJsOiAiICsgcGF0aFRvRmlsZU5hbWUob3JpZ2luVVJMKSArICIsIGxpbmVO
dW1iZXI6ICIgKyBsaW5lTnVtYmVyICsgIiwgcHJvamVjdCB0eXBlOiAiICsgcHJvamVjdC50eXBl
KCkgKyAiLCBwcm9qZWN0IGlkOiAiICsgcHJvamVjdC5pZCgpKTsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGFkZEJyZWFrcG9pbnRTbmlmZmVyKGxpbmVOdW1iZXIsIGRpc2FibGVk
KQotICAgIHsKLSAgICAgICAgdmFyIHByZWZpeCA9IHRoaXMubWFpbiA/ICIiIDogIk9yaWdpbmFs
IjsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgcHJlZml4ICsgIlRl
eHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gIiArIGxpbmVOdW1iZXIgKyAiLCBk
aXNhYmxlZCA9ICIgKyBkaXNhYmxlZCArICIpIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmVt
b3ZlQnJlYWtwb2ludFNuaWZmZXIobGluZU51bWJlcikKLSAgICB7Ci0gICAgICAgIHZhciBwcmVm
aXggPSB0aGlzLm1haW4gPyAiIiA6ICJPcmlnaW5hbCI7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgICAgIiArIHByZWZpeCArICJUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQo
bGluZU51bWJlciA9ICIgKyBsaW5lTnVtYmVyICsgIikiKTsKLSAgICB9Ci0KLSAgICBXZWJJbnNw
ZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuX3N0b3JhZ2UuX2JyZWFrcG9pbnRzID0ge307Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4dEVkaXRvci5w
cm90b3R5cGUsICJhZGRCcmVha3BvaW50IiwgYWRkQnJlYWtwb2ludFNuaWZmZXIsIHRydWUpOwot
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuRGVmYXVsdFRleHRFZGl0
b3IucHJvdG90eXBlLCAicmVtb3ZlQnJlYWtwb2ludCIsIHJlbW92ZUJyZWFrcG9pbnRTbmlmZmVy
LCB0cnVlKTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAg
ICAgICBmdW5jdGlvbiB0ZXN0RWRpdFVuZG8obmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
dmFyIGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgdWlTb3VyY2VDb2RlLCBzY3JpcHQsIG9yaWdpbmFs
SmF2YVNjcmlwdFNvdXJjZUZyYW1lLCBvcmlnaW5hbFVJU291cmNlQ29kZTsKLQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLWJyZWFrcG9pbnRzLmpz
IiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dT
Y3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
amF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7Ci0gICAgICAgICAgICAgICAgdWlT
b3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsKLSAgICAgICAgICAgICAgICBq
YXZhU2NyaXB0U291cmNlRnJhbWUuX3RleHRFZGl0b3IubWFpbiA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcg
YnJlYWtwb2ludDoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2Fk
ZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWQpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQo
bG9jYXRpb24pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQobG9jYXRpb24uc2NyaXB0SWQpOwotCi0g
ICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRT
b3VyY2VGcmFtZSwgIn0iLCAifS8vIik7Ci0KLSAgICAgICAgICAgICAgICBvcmlnaW5hbFVJU291
cmNlQ29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVt
YmVyKS51aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlT
b3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNv
ZGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2lu
YWxVSVNvdXJjZUNvZGUoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxKYXZhU2NyaXB0U291cmNl
RnJhbWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2
YVNjcmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VD
b2RlLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7
Ci0KLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVW5kb2luZyBzb3VyY2Ug
ZWRpdGluZzoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJl
c29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWRBZ2Fpbik7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC51bmRvU291cmNlRWRpdGluZyhqYXZhU2NyaXB0U291cmNlRnJhbWUp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2
ZWRBZ2FpbigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRT
dG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoiKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAyKTsK
LQotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwot
ICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAg
ICAgICBmdW5jdGlvbiB0ZXN0RWRpdENvbW1pdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2lu
YWxKYXZhU2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwotCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUtYnJlYWtwb2ludHMu
anMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hv
d1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBqYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICB1
aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXR0aW5nIGJyZWFr
cG9pbnQ6Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSwgIl9hZGRSZXNv
bHZlZExvY2F0aW9uIiwgYnJlYWtwb2ludFJlc29sdmVkKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDIsICIiLCB0cnVlKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29sdmVkKGxvY2F0
aW9uKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNjcmlwdCA9IFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKGxvY2F0aW9uLnNjcmlwdElkKTsKLQotICAgICAg
ICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHNvdXJjZToiKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShqYXZhU2NyaXB0U291cmNl
RnJhbWUsICJ9IiwgIn0vLyIpOwotCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxVSVNvdXJjZUNv
ZGUgPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24obG9jYXRpb24ubGluZU51bWJlciku
dWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1VJU291cmNl
Q29kZShvcmlnaW5hbFVJU291cmNlQ29kZSwgZGlkU2hvd09yaWdpbmFsVUlTb3VyY2VDb2RlKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd09yaWdpbmFsVUlT
b3VyY2VDb2RlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG9y
aWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1l
ICE9PSBqYXZhU2NyaXB0U291cmNlRnJhbWUsICJFZGl0ZWQgYW5kIG9yaWdpbmFsIGphdmFTY3Jp
cHRTb3VyY2VGcmFtZXMgc2hvdWxkIGRpZmZlci4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxVSVNvdXJjZUNvZGUgIT09IHVpU291cmNlQ29kZSwg
IkVkaXRlZCBhbmQgb3JpZ2luYWwgdWlTb3VyY2VDb2RlcyBzaG91bGQgZGlmZmVyLiIpOwotCi0g
ICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbW1pdHRpbmcgZWRpdGVkIHNv
dXJjZToiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29s
dmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWRBZ2Fpbik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21taXRTb3VyY2UoamF2YVNjcmlwdFNvdXJjZUZyYW1lKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29sdmVkQWdhaW4o
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFu
ZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJG
aW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZW1vdmVCcmVha3BvaW50KGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgMik7Ci0KLSAgICAg
ICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdEVkaXRDb21taXRGYWlsRWRpdENvbW1pdChuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwg
b3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwotCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUtYnJlYWtw
b2ludHMuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBqYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAg
ICAgICB1aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXR0aW5n
IGJyZWFrcG9pbnQ6Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSwgIl9h
ZGRSZXNvbHZlZExvY2F0aW9uIiwgYnJlYWtwb2ludFJlc29sdmVkKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDIsICIiLCB0cnVlKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29sdmVk
KGxvY2F0aW9uKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNjcmlwdCA9IFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKGxvY2F0aW9uLnNjcmlwdElkKTsKLQot
ICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHNvdXJjZToiKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShqYXZhU2NyaXB0
U291cmNlRnJhbWUsICJ9IiwgIi8vfSIpOwotCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxVSVNv
dXJjZUNvZGUgPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24obG9jYXRpb24ubGluZU51
bWJlcikudWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1VJ
U291cmNlQ29kZShvcmlnaW5hbFVJU291cmNlQ29kZSwgZGlkU2hvd09yaWdpbmFsVUlTb3VyY2VD
b2RlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd09yaWdp
bmFsVUlTb3VyY2VDb2RlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lICE9PSBqYXZhU2NyaXB0U291cmNlRnJhbWUsICJFZGl0ZWQgYW5kIG9yaWdpbmFsIGph
dmFTY3JpcHRTb3VyY2VGcmFtZXMgc2hvdWxkIGRpZmZlci4iKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxVSVNvdXJjZUNvZGUgIT09IHVpU291cmNl
Q29kZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgdWlTb3VyY2VDb2RlcyBzaG91bGQgZGlmZmVyLiIp
OwotCi0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbW1pdHRpbmcgZWRp
dGVkIHNvdXJjZToiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfZGlkRWRpdFNjcmlwdFNvdXJjZSIsIGNvbW1p
dEZhaWxlZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21taXRTb3VyY2UoamF2
YVNjcmlwdFNvdXJjZUZyYW1lKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rp
b24gY29tbWl0RmFpbGVkKGVycm9yKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghIWVycm9yLCAiQ29tbWl0IHNob3VsZCBoYXZlIGZhaWxl
ZC4iKTsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMo
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdGluZyBzb3Vy
Y2UgYWdhaW4gc28gdGhhdCBsaXZlIGVkaXQgY291bGQgc3VjY2VlZDoiKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShqYXZhU2NyaXB0U291cmNlRnJhbWUs
ICIvL30iLCAifS8vIik7Ci0KLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VB
bmRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
Q29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFnYWluOiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtw
b2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZl
ZEFnYWluKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbW1pdFNvdXJjZShqYXZh
U2NyaXB0U291cmNlRnJhbWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBicmVha3BvaW50UmVzb2x2ZWRBZ2FpbigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoiKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoamF2YVNjcmlw
dFNvdXJjZUZyYW1lLCAyKTsKLQotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFn
ZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RWRpdENvbW1pdEZhaWxVbmRvQ29t
bWl0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJh
bWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSwg
b3JpZ2luYWxVSVNvdXJjZUNvZGU7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1Nj
cmlwdFNvdXJjZSgiZWRpdC1tZS1icmVha3BvaW50cy5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2Up
OwotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1l
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGphdmFTY3JpcHRTb3VyY2VGcmFtZSA9
IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IHNvdXJjZUZyYW1l
Ll91aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2ludDoiKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2Vy
LkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50
UmVzb2x2ZWQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChz
b3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24pCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9y
SWQobG9jYXRpb24uc2NyaXB0SWQpOwotCi0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRT
dG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIn0iLCAiLy99Iik7Ci0KLSAg
ICAgICAgICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRv
VUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51aVNvdXJjZUNvZGU7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2Rl
LCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUoc291cmNlRnJhbWUpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJh
bWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRy
dWUob3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2YVNjcmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlm
ZmVyLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5h
bFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2RlLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNv
dXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7Ci0KLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtw
b2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlOiIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgIl9k
aWRFZGl0U2NyaXB0U291cmNlIiwgY29tbWl0RmFpbGVkKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbW1pdFNvdXJjZShqYXZhU2NyaXB0U291cmNlRnJhbWUpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBjb21taXRGYWlsZWQoZXJyb3IpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCEhZXJyb3Is
ICJDb21taXQgc2hvdWxkIGhhdmUgZmFpbGVkLiIpOwotICAgICAgICAgICAgICAgIGR1bXBCcmVh
a3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOiIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QudW5kb1NvdXJjZUVkaXRpbmcoamF2YVNjcmlwdFNvdXJjZUZyYW1lKTsK
LQotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb21taXR0aW5nIGVkaXRl
ZCBzb3VyY2UgYWdhaW46Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSwg
Il9hZGRSZXNvbHZlZExvY2F0aW9uIiwgYnJlYWtwb2ludFJlc29sdmVkQWdhaW4pOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tbWl0U291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNv
bHZlZEFnYWluKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2lu
dFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OiIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVtb3ZlQnJlYWtwb2ludChqYXZhU2NyaXB0U291cmNlRnJhbWUsIDIp
OwotCi0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7
Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0QW5vbnltb3VzVW5kbyhuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlw
dCwgbGl2ZUVkaXRTb3VyY2VGcmFtZSwgbGl2ZUVkaXRVSVNvdXJjZUNvZGU7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgZGVidWdnZXI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKFN0cmluZyh0ZXN0RnVuY3Rpb24pLCBJbnNwZWN0b3JU
ZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZC5iaW5kKEluc3BlY3RvclRlc3Qs
IHBhdXNlZCkpOwotICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkKCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVkKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gcmVzdW1lZCgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNob3dpbmcg
c2NyaXB0IHNvdXJjZToiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dVSVNv
dXJjZUNvZGUocGFuZWwudmlzaWJsZVZpZXcuX3VpU291cmNlQ29kZSwgZGlkU2hvd1NjcmlwdFNv
dXJjZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3Jp
cHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgamF2
YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7Ci0gICAgICAgICAgICAgICAgdWlTb3Vy
Y2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsKLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBicmVha3BvaW50
OiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRM
b2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZlZChsb2NhdGlvbikK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNb2RlbC5zY3JpcHRGb3JJZChsb2NhdGlvbi5zY3JpcHRJZCk7Ci0KLSAgICAgICAgICAg
ICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAg
ICBsaXZlRWRpdFVJU291cmNlQ29kZSA9IFdlYkluc3BlY3Rvci5saXZlRWRpdFN1cHBvcnQudWlT
b3VyY2VDb2RlRm9yTGl2ZUVkaXQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNob3dVSVNvdXJjZUNvZGUobGl2ZUVkaXRVSVNvdXJjZUNvZGUsIGRpZFNob3dM
aXZlRWRpdFNjcmlwdFNvdXJjZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZFNob3dMaXZlRWRpdFNjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBsaXZlRWRpdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKGxpdmVFZGl0U291cmNlRnJh
bWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2YVNj
cmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0VHJ1ZShsaXZlRWRpdFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2Rl
LCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIp
OwotICAgICAgICAgICAgICAgIGxpdmVFZGl0U291cmNlRnJhbWUuX3RleHRFZGl0b3IubWFpbiA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXBsYWNlSW5Tb3VyY2UobGl2
ZUVkaXRTb3VyY2VGcmFtZSwgIn0iLCAifS8vIik7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFr
cG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0KLSAgICAgICAgICAgICAgICB2YXIgb3JpZ2lu
YWxVSVNvdXJjZUNvZGUgPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24obG9jYXRpb24u
bGluZU51bWJlcikudWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291cmNlQ29kZSA9PT0gdWlTb3VyY2VDb2RlLCAiTWFwcGVk
IGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBiZSB0aGUgc2FtZS4iKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVW5kb2luZyBzb3VyY2UgZWRpdGlu
ZzoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnVuZG9Tb3VyY2VFZGl0aW5nKGxp
dmVFZGl0U291cmNlRnJhbWUpOwotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFn
ZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1VJU291
cmNlQ29kZSh1aVNvdXJjZUNvZGUsIGRpZFNob3dPcmlnaW5hbFVJU291cmNlQ29kZSk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dPcmlnaW5hbFVJU291cmNl
Q29kZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OiIpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucmVtb3ZlQnJlYWtwb2ludChqYXZhU2NyaXB0U291cmNl
RnJhbWUsIDIpOwotICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0
aW9ucygpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RWRpdER5bmFtaWNBbm9ueW1vdXNVbmRvKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291
cmNlQ29kZSwgc2NyaXB0LCBsaXZlRWRpdFNvdXJjZUZyYW1lLCBsaXZlRWRpdFVJU291cmNlQ29k
ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgibG9hZER5bmFtaWNBbm9ueW1vdXNTY3JpcHQoKSIsIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1
bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkLmJpbmQoSW5zcGVjdG9yVGVzdCwgcGF1c2VkKSk7Ci0g
ICAgICAgICAgICBmdW5jdGlvbiBwYXVzZWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHJlc3VtZWQpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiByZXN1bWVkKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2hvd2luZyBzY3JpcHQgc291cmNl
OiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1VJU291cmNlQ29kZShwYW5l
bC52aXNpYmxlVmlldy5fdWlTb3VyY2VDb2RlLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3Vy
Y2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBqYXZhU2NyaXB0U291cmNl
RnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBzb3Vy
Y2VGcmFtZS5fdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXR0aW5nIGJyZWFrcG9pbnQ6Iik7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSwgIl9hZGRSZXNvbHZlZExvY2F0aW9uIiwgYnJl
YWtwb2ludFJlc29sdmVkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFr
cG9pbnQoc291cmNlRnJhbWUsIDIsICIiLCB0cnVlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29sdmVkKGxvY2F0aW9uKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNj
cmlwdEZvcklkKGxvY2F0aW9uLnNjcmlwdElkKTsKLQotICAgICAgICAgICAgICAgIGR1bXBCcmVh
a3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwotICAgICAgICAgICAgICAgIGxpdmVFZGl0VUlT
b3VyY2VDb2RlID0gV2ViSW5zcGVjdG9yLmxpdmVFZGl0U3VwcG9ydC51aVNvdXJjZUNvZGVGb3JM
aXZlRWRpdCh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1VJU291cmNlQ29kZShsaXZlRWRpdFVJU291cmNlQ29kZSwgZGlkU2hvd0xpdmVFZGl0U2NyaXB0
U291cmNlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd0xp
dmVFZGl0U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGxpdmVFZGl0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUobGl2ZUVkaXRTb3VyY2VGcmFtZSAhPT0gamF2YVNj
cmlwdFNvdXJjZUZyYW1lLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCBqYXZhU2NyaXB0U291cmNlRnJh
bWVzIHNob3VsZCBkaWZmZXIuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRUcnVlKGxpdmVFZGl0VUlTb3VyY2VDb2RlICE9PSB1aVNvdXJjZUNvZGUsICJFZGl0ZWQgYW5k
IG9yaWdpbmFsIHVpU291cmNlQ29kZXMgc2hvdWxkIGRpZmZlci4iKTsKLSAgICAgICAgICAgICAg
ICBsaXZlRWRpdFNvdXJjZUZyYW1lLl90ZXh0RWRpdG9yLm1haW4gPSB0cnVlOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHNvdXJjZToiKTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShsaXZlRWRpdFNvdXJjZUZy
YW1lLCAifSIsICJ9Ly8iKTsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VB
bmRMb2NhdGlvbnMoKTsKLQotICAgICAgICAgICAgICAgIHZhciBvcmlnaW5hbFVJU291cmNlQ29k
ZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51
aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9y
aWdpbmFsVUlTb3VyY2VDb2RlID09PSB1aVNvdXJjZUNvZGUsICJNYXBwZWQgYW5kIG9yaWdpbmFs
IHVpU291cmNlQ29kZXMgc2hvdWxkIGJlIHRoZSBzYW1lLiIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOiIpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QudW5kb1NvdXJjZUVkaXRpbmcobGl2ZUVkaXRTb3VyY2VG
cmFtZSk7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25z
KCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZSwgZGlkU2hvd09yaWdpbmFsVUlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd09yaWdpbmFsVUlTb3VyY2VDb2RlKHNvdXJjZUZy
YW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6Iik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5yZW1vdmVCcmVha3BvaW50KGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgMik7Ci0g
ICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7Ci0gICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotICAgIF0pOwot
fTsKLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5U
ZXN0cyBicmVha3BvaW50cyBhcmUgY29ycmVjdGx5IGRpbW1lZCBhbmQgcmVzdG9yZWQgaW4gSmF2
YVNjcmlwdFNvdXJjZUZyYW1lIGR1cmluZyBsaXZlIGVkaXQuPC9wPgotPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NTk4Ij5CdWcgOTk1OTg8L2E+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbGl2ZS1lZGl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9saXZlLWVkaXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NjNiMmJiNGNlMmY2YjIxZDk4YTczYzc0NTFkMGVhODM3ZThmMzUxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9saXZlLWVkaXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM6IFVuY2F1Z2h0IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICwKLVRlc3RzIGxpdmUgZWRpdCBmZWF0dXJlLgotCi1EZWJ1Z2dlciB3YXMgZW5h
YmxlZC4KLQotUnVubmluZzogdGVzdExpdmVFZGl0Ci09PVNvdXJjZSBmcmFtZSBjb250ZW50cyBz
dGFydD09Ci1mdW5jdGlvbiBmKCkKLXsKLSAgICByZXR1cm4gImxpdmUtZWRpdGVkIHN0cmluZyI7
Ci19Ci0KLT09U291cmNlIGZyYW1lIGNvbnRlbnRzIGVuZD09Ci0KLVJ1bm5pbmc6IHRlc3RMaXZl
RWRpdFN5bnRheEVycm9yCi09PVNvdXJjZSBmcmFtZSBjb250ZW50cyBzdGFydD09Ci1mdW5jdGlv
biBzeW50YXhFcnJvcigpCi17Ci0gICAgcmV0dXJuICJJJ20gZ29vZCI7Ci19Ci0KLT09U291cmNl
IGZyYW1lIGNvbnRlbnRzIGVuZD09Ci0KLVJ1bm5pbmc6IHRlc3RMaXZlRWRpdFdoZW5QYXVzZWQK
LVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1TY3Jp
cHQgZXhlY3V0aW9uIHJlc3VtZWQuCi0KLVJ1bm5pbmc6IHRlc3ROb0NyYXNoV2hlbk9ubHlPbmVG
dW5jdGlvbk9uU3RhY2sKLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotQ2FsbCBzdGFjazoKLSAg
ICAwKSBmMSAoZWRpdC1tZS13aGVuLXBhdXNlZC5qczoxMykKLVNjcmlwdCBleGVjdXRpb24gcmVz
dW1lZC4KLVNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgotU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVk
LgotCi1SdW5uaW5nOiB0ZXN0QnJlYWtwb2ludHNVcGRhdGVkCi1EZWJ1Z2dlciB3YXMgZGlzYWJs
ZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVk
aXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ5ZGQxZmFmNzgyMDk3NDEyMGU2NzBlNTgx
YjM5OGVlNTJiN2VjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvbGl2ZS1l
ZGl0LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9lZGl0LW1lLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZWRpdC1tZS1zeW50YXgtZXJyb3Iu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9lZGl0LW1lLXdoZW4tcGF1c2Vk
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFy
IHBhbmVsID0gV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOyAgCi0KLSAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdExp
dmVFZGl0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1Nj
cmlwdFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHJlcGxhY2VJblNvdXJjZShzb3VyY2VGcmFtZSwgInJldHVy
biAwOyIsICJyZXR1cm4gXCJsaXZlLWVkaXRlZCBzdHJpbmdcIjsiLCBkaWRFZGl0U2NyaXB0U291
cmNlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlw
dFNvdXJjZSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZSgiZigpIiwgZGlkRXZhbHVhdGVJblBhZ2UpCi0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEV2YWx1YXRlSW5QYWdlKHJlc3VsdCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygibGl2ZS1l
ZGl0ZWQgc3RyaW5nIiwgcmVzdWx0LmRlc2NyaXB0aW9uLCAiZWRpdGVkIGZ1bmN0aW9uIHJldHVy
bnMgd3JvbmcgcmVzdWx0Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU291
cmNlRnJhbWVDb250ZW50cyhwYW5lbC52aXNpYmxlVmlldyk7Ci0gICAgICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RM
aXZlRWRpdFN5bnRheEVycm9yKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS1zeW50YXgtZXJyb3IuanMiLCBkaWRTaG93
U2NyaXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJj
ZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJlcGxhY2VJblNvdXJjZShzb3VyY2VGcmFtZSwgIixcIkknbSBnb29kXCIiLCAiXCJJJ20g
Z29vZFwiIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU291cmNlRnJhbWVD
b250ZW50cyhwYW5lbC52aXNpYmxlVmlldyk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RMaXZlRWRpdFdo
ZW5QYXVzZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93
U2NyaXB0U291cmNlKCJlZGl0LW1lLXdoZW4tcGF1c2VkLmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJj
ZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJh
bWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50
aWxQYXVzZWQocGF1c2VkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJmMSgpIiwgZGlkRXZhbHVhdGVJblBhZ2UpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBwYXVzZWQoY2FsbEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICByZXBsYWNlSW5Tb3VyY2UocGFuZWwudmlzaWJsZVZpZXcsICJyZXR1cm4gMTsi
LCAicmV0dXJuIDI7XG5cblxuXG4iLCBkaWRFZGl0U2NyaXB0U291cmNlKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlwdFNvdXJjZSgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24oKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkRXZhbHVhdGVJblBhZ2Uo
cmVzdWx0KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKCIzIiwgcmVzdWx0LmRlc2NyaXB0aW9uLCAiZWRpdGVkIGZ1bmN0aW9uIHJldHVy
bnMgd3JvbmcgcmVzdWx0Iik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAg
fQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3ROb0NyYXNoV2hlbk9ubHlPbmVG
dW5jdGlvbk9uU3RhY2sobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLXdoZW4tcGF1c2VkLmpzIiwgZGlkU2hvd1Njcmlw
dFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291
cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53
YWl0VW50aWxQYXVzZWQocGF1c2VkKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KGYxLCAwKSIpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBwYXVzZWQoY2FsbEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwot
ICAgICAgICAgICAgICAgIHJlcGxhY2VJblNvdXJjZShwYW5lbC52aXNpYmxlVmlldywgImRlYnVn
Z2VyOyIsICJkZWJ1Z2dlcjtcbiIsIGRpZEVkaXRTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihJbnNw
ZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZC5iaW5kKEluc3BlY3RvclRlc3QsIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uLmJpbmQoSW5zcGVjdG9yVGVzdCwgbmV4dCkpKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0QnJlYWtwb2ludHNVcGRh
dGVkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1Njcmlw
dFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihzb3VyY2VGcmFtZSwg
Il9hZGRCcmVha3BvaW50RGVjb3JhdGlvbiIsIGJyZWFrcG9pbnRBZGRlZCk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1
ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRBZGRl
ZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmVwbGFjZUluU291cmNlKHBhbmVs
LnZpc2libGVWaWV3LCAiZnVuY3Rpb24gZigpIiwgImZ1bmN0aW9uIG5ld0Z1bmN0aW9uQ3JlYXRl
ZFdpdGhMaXZlRWRpdCgpXG57XG59XG5mdW5jdGlvbiBmKCkiLCBkaWRFZGl0U2NyaXB0U291cmNl
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlwdFNv
dXJjZSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0g
cGFuZWwudmlzaWJsZVZpZXcuX2JyZWFrcG9pbnRzOwotICAgICAgICAgICAgICAgIGZvciAodmFy
IGxpbmVOdW1iZXIgaW4gYnJlYWtwb2ludHMpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKCI1IiwgbGluZU51bWJlcik7Ci0gICAgICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBy
ZXBsYWNlSW5Tb3VyY2Uoc291cmNlRnJhbWUsIHN0cmluZywgcmVwbGFjZW1lbnQsIGNhbGxiYWNr
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLCAiX2RpZEVkaXRTY3JpcHRTb3VyY2UiLCBjYWxsYmFjayk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKHNvdXJjZUZyYW1lLCBzdHJpbmcsIHJlcGxh
Y2VtZW50KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21taXRTb3VyY2Uoc291cmNlRnJhbWUp
OwotICAgICAgICAKLSAgICB9Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBsaXZlIGVkaXQgZmVhdHVyZS48L3A+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9tdXRhdGlvbi1vYnNlcnZlci1zdXNwZW5kLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbXV0YXRpb24tb2JzZXJ2ZXItc3VzcGVuZC13
aGlsZS1wYXVzZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
ZTNiNDNkMjUxZmI4Zjk1NDI4ZjkyODhhNzY4ZDhmZjJiNDFkYWVmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9tdXRhdGlvbi1vYnNlcnZlci1zdXNwZW5kLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UZXN0cyB0aGF0IERPTSBNdXRhdGlvbiBP
YnNlcnZlcnMgZG8gbm90IGF0dGVtcHQgdG8gZGVsaXZlciBtdXRhdGlvbiByZWNvcmRzIHdoaWxl
IHRoZSBkZWJ1Z2dlciBpcyBwYXVzZWQuQnVnIDEwNTgxMAotCi1EZWJ1Z2dlciB3YXMgZW5hYmxl
ZC4KLURJViBhbmQgb2JzZXJ2ZXIgc2V0dXAuCi1kZWxpdmVyeUNvdW50ID0gMAotc2V0QXR0cmli
dXRlIHNob3VsZCBoYXZlIHRyaWdnZXJlZCBkZWxpdmVyeS4KLWRlbGl2ZXJ5Q291bnQgPSAxCi1t
dXRhdGVBbmRQYXVzZSBpbnZva2VkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1EZWxpdmVy
eSBzaG91bGQgbm90IGhhdmUgdGFrZW4gcGxhY2UuCi1kZWxpdmVyeUNvdW50ID0gMQotU2NyaXB0
IGV4ZWN1dGlvbiByZXN1bWVkLgotU2Vjb25kIGRlbGl2ZXJ5IHNob3VsZCBub3cgaGF2ZSBoYXBw
ZW5lZC4KLWRlbGl2ZXJ5Q291bnQgPSAyCi1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9tdXRhdGlvbi1vYnNlcnZlci1z
dXNwZW5kLXdoaWxlLXBhdXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L211dGF0aW9uLW9ic2VydmVyLXN1c3BlbmQtd2hpbGUtcGF1c2VkLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNjYzcwOTk1NjFmMjM2NTI0NDc4NTQ0YzNhZjZkYzcyZjEwYTNi
MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL211dGF0aW9uLW9ic2VydmVyLXN1c3BlbmQtd2hpbGUt
cGF1c2VkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciB0ZXN0ID0gZnVuY3Rp
b24oKQotewotICAgIHZhciBzZXR1cCA9Ci0gICAgICAgICJ3aW5kb3cudGVzdERpdiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuIiArCi0gICAgICAgICJ3aW5kb3cuZGVsaXZlcnlD
b3VudCA9IDA7XG4iICsKLSAgICAgICAgInZhciBvYnNlcnZlciA9IG5ldyBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyKGZ1bmN0aW9uKHJlY29yZHMpIHtcbiIgKwotICAgICAgICAiICAgIHdpbmRvdy5k
ZWxpdmVyeUNvdW50Kys7XG4iICsKLSAgICAgICAgIn0pO1xuIiArCi0gICAgICAgICJvYnNlcnZl
ci5vYnNlcnZlKHdpbmRvdy50ZXN0RGl2LCB7IGF0dHJpYnV0ZXM6IHRydWUgfSk7IjsKLSAgICAK
LSAgICB2YXIgbXV0YXRlQW5kUGF1c2UgPSAKLSAgICAgICAgImZ1bmN0aW9uIG11dGF0ZUFuZFBh
dXNlKCkge1xuIiArCi0gICAgICAgICIgICAgd2luZG93LnRlc3REaXYuc2V0QXR0cmlidXRlKCdm
b28nLCAnYmF6Jyk7XG4iICsKLSAgICAgICAgIiAgICBkZWJ1Z2dlcjtcbiIgKwotICAgICAgICAi
fTtcbiIgKwotICAgICAgICAic2V0VGltZW91dChtdXRhdGVBbmRQYXVzZSwgMCk7IjsKLQotICAg
IEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24g
c3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZShz
ZXR1cCwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RElWIGFuZCBvYnNlcnZlciBzZXR1cC4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJbkNvbnNvbGVBbmREdW1wKCJkZWxpdmVyeUNvdW50Iiwgc3RlcDIpOwotICAgICAgICB9
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJ3aW5kb3cudGVzdERpdi5zZXRBdHRyaWJ1dGUoJ2Zv
bycsICdiYXInKSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoInNldEF0dHJpYnV0ZSBzaG91bGQgaGF2ZSB0cmlnZ2VyZWQgZGVsaXZlcnkuIik7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlQW5kRHVtcCgiZGVsaXZl
cnlDb3VudCIsIHN0ZXAzKTsgCi0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0
ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUobXV0
YXRlQW5kUGF1c2UsIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0LmJpbmQoSW5zcGVjdG9yVGVzdCwg
Im11dGF0ZUFuZFBhdXNlIGludm9rZWQuIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRV
bnRpbFBhdXNlZChzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKSB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEZWxpdmVyeSBzaG91bGQgbm90IGhhdmUgdGFr
ZW4gcGxhY2UuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGVBbmRE
dW1wKCJkZWxpdmVyeUNvdW50IiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJlc3VtZUV4ZWN1dGlvbihzdGVwNSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHN0ZXA1KCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2Vjb25k
IGRlbGl2ZXJ5IHNob3VsZCBub3cgaGF2ZSBoYXBwZW5lZC4iKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluQ29uc29sZUFuZER1bXAoImRlbGl2ZXJ5Q291bnQiLCBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgRE9NIE11dGF0
aW9uIE9ic2VydmVycyBkbyBub3QgYXR0ZW1wdCB0byBkZWxpdmVyIG11dGF0aW9uIHJlY29yZHMg
d2hpbGUgdGhlIGRlYnVnZ2VyIGlzIHBhdXNlZC48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1ODEwIj5CdWcgMTA1ODEwPC9hPgotPC9wPgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
bmF2aWdhdG9yLXZpZXctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL25hdmlnYXRvci12aWV3LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzAyMWRkYTlhNjM1MTNhZDZiMjM0OTJhMWY4NTA2NjAzZWE5NmM4Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvbmF2aWdhdG9yLXZpZXctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTMyICswLDAgQEAKLVRlc3RzIHNjcmlwdHMgcGFuZWwgZmlsZSBzZWxlY3RvcnMuCi0KLUFk
ZGluZyBmaXJzdCByZXNvdXJjZToKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRz
JyB0YWI6Ci0gICAgbG9jYWxob3N0OjgwODAKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdD
b250ZW50IHNjcmlwdHMnIHRhYjoKLQotRXhwYW5kaW5nIGRvbWFpbnM6Ci0gIER1bXBpbmcgU2Ny
aXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAgIGxvY2FsaG9zdDo4MDgwCi0gICAgICBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZm9vL2JhcgotICBEdW1waW5nIFNjcmlwdHNO
YXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotCi1BZGRpbmcgc2Vjb25kIHJlc291cmNl
OgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgICBsb2NhbGhv
c3Q6ODA4MAotICAgICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKLSAg
RHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKLQotQWRkaW5n
IG90aGVyIHJlc291cmNlczoKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0
YWI6Ci0gICAgbG9jYWxob3N0OjgwODAKLSAgICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9mb28KLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRh
YjoKLQotQWRkaW5nIGNvbnRlbnQgc2NyaXB0cyBhbmQgc29tZSByYW5kb20gcmVzb3VyY2VzOgot
ICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgICAobm8gZG9tYWlu
KQotICAgIGV4YW1wbGUuY29tCi0gICAgbG9jYWxob3N0OjgwODAKLSAgICAgIExheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9mb28KLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250
ZW50IHNjcmlwdHMnIHRhYjoKLSAgICBsb2NhbGhvc3Q6ODA4MAotCi1SZXZlYWxpbmcgZmlyc3Qg
cmVzb3VyY2U6Ci0gIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAg
IChubyBkb21haW4pCi0gICAgZXhhbXBsZS5jb20KLSAgICBsb2NhbGhvc3Q6ODA4MAotICAgICAg
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2ZvbwotICAgICAgICBiYXIKLSAgICAgICAg
ICBzY3JpcHQuanMKLSAgICAgICAgICBzY3JpcHQuanM/YT0xCi0gICAgICAgICAgc2NyaXB0Lmpz
P2E9MgotICAgICAgICBiYXoKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNj
cmlwdHMnIHRhYjoKLSAgICBsb2NhbGhvc3Q6ODA4MAotCi1BZGRpbmcgc29tZSByZXNvdXJjZXMg
dG8gY2hhbmdlIHRoZSB3YXkgZGVidWdnZXIgZm9sZGVyIGxvb2tzIGxpa2UsIGZpcnN0OgotICBE
dW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgICAobm8gZG9tYWluKQot
ICAgIGV4YW1wbGUuY29tCi0gICAgbG9jYWxob3N0OjgwODAKLSAgICAgIExheW91dFRlc3RzL2lu
c3BlY3RvcgotICAgICAgICBkZWJ1Z2dlci9mb28KLSAgICAgICAgICBiYXIKLSAgICAgICAgICAg
IHNjcmlwdC5qcwotICAgICAgICAgICAgc2NyaXB0LmpzP2E9MQotICAgICAgICAgICAgc2NyaXB0
LmpzP2E9MgotICAgICAgICAgIGJhegotICAgICAgICBkZWJ1Z2dlcjIvZm9vL2JhcgotICBEdW1w
aW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotICAgIGxvY2FsaG9z
dDo4MDgwCi0KLVNlY29uZDoKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0
YWI6Ci0gICAgKG5vIGRvbWFpbikKLSAgICBleGFtcGxlLmNvbQotICAgIGxvY2FsaG9zdDo4MDgw
Ci0gICAgICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IKLSAgICAgICAgZGVidWdnZXIvZm9vCi0gICAg
ICAgICAgYmFyCi0gICAgICAgICAgICBzY3JpcHQuanMKLSAgICAgICAgICAgIHNjcmlwdC5qcz9h
PTEKLSAgICAgICAgICAgIHNjcmlwdC5qcz9hPTIKLSAgICAgICAgICBiYXoKLSAgICAgICAgZGVi
dWdnZXIyL2Zvby9iYXIKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlw
dHMnIHRhYjoKLSAgICBsb2NhbGhvc3Q6ODA4MAotCi1PdGhlcnM6Ci0gIER1bXBpbmcgU2NyaXB0
c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAgIChubyBkb21haW4pCi0gICAgZXhhbXBsZS5j
b20KLSAgICBsb2NhbGhvc3Q6ODA4MAotICAgICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yCi0gICAg
ICAgIGRlYnVnZ2VyL2ZvbwotICAgICAgICAgIGJhcgotICAgICAgICAgICAgc2NyaXB0LmpzCi0g
ICAgICAgICAgICBzY3JpcHQuanM/YT0xCi0gICAgICAgICAgICBzY3JpcHQuanM/YT0yCi0gICAg
ICAgICAgYmF6Ci0gICAgICAgIGRlYnVnZ2VyMi9mb28KLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdh
dG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKLSAgICBsb2NhbGhvc3Q6ODA4MAotCi1SZXZlYWxp
bmcgYWxsIHJlc291cmNlczoKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0
YWI6Ci0gICAgKG5vIGRvbWFpbikKLSAgICAgID9hPWIKLSAgICAgIHZlcnlfbG9vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb+KApgotICAgIGV4YW1wbGUuY29tCi0gICAgICAocHJv
Z3JhbSkKLSAgICAgID9hPWIKLSAgICBsb2NhbGhvc3Q6ODA4MAotICAgICAgTGF5b3V0VGVzdHMv
aW5zcGVjdG9yCi0gICAgICAgIGRlYnVnZ2VyL2ZvbwotICAgICAgICAgIGJhcgotICAgICAgICAg
ICAgc2NyaXB0LmpzCi0gICAgICAgICAgICBzY3JpcHQuanM/YT0xCi0gICAgICAgICAgICBzY3Jp
cHQuanM/YT0yCi0gICAgICAgICAgYmF6Ci0gICAgICAgICAgICBzY3JpcHQuanMKLSAgICAgICAg
ZGVidWdnZXIyL2ZvbwotICAgICAgICAgIGJhcgotICAgICAgICAgICAgc2NyaXB0LmpzCi0gICAg
ICAgICAgICBzY3JpcHQuanM/YT0xCi0gICAgICAgICAgICBzY3JpcHQuanM/YT0yCi0gICAgICAg
ICAgYmF6Ci0gICAgICAgICAgICBzY3JpcHQuanMKLSAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9y
ICdDb250ZW50IHNjcmlwdHMnIHRhYjoKLSAgICBsb2NhbGhvc3Q6ODA4MAotICAgICAgTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKLSAgICAgICAgY29udGVudFNjcmlwdC5q
cz9hPTEKLSAgICAgICAgY29udGVudFNjcmlwdC5qcz9hPTIKLSAgICAgICAgY29udGVudFNjcmlw
dDIuanM/YT0xCi0KLVJlbW92aW5nIGFsbCByZXNvdXJjZXM6Ci0gIER1bXBpbmcgU2NyaXB0c05h
dmlnYXRvciAnU2NyaXB0cycgdGFiOgotICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRl
bnQgc2NyaXB0cycgdGFiOgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9uYXZpZ2F0b3Itdmlldy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL25hdmlnYXRvci12aWV3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVk
YmQ2ZWEwYmY3NjE4MmE0NTZiYmU3NDUwYTEwMjY2MDdjMTFlMGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL25hdmlnYXRvci12aWV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJz
Y3JpcHRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UodHJ1ZSk7Ci0gICAg
dmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwoSW5zcGVjdG9yVGVzdC50
ZXN0V29ya3NwYWNlKTsKLSAgICB2YXIgbmF2aWdhdG9yID0gcGFuZWwuX25hdmlnYXRvcjsKLQot
ICAgIHZhciB1aVNvdXJjZUNvZGVzID0gW107Ci0gICAgZnVuY3Rpb24gYWRkVUlTb3VyY2VDb2Rl
KHVybCwgaXNDb250ZW50U2NyaXB0KQotICAgIHsKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVR5cGVzLlNjcmlwdCwgIiIsICJ0ZXh0L2phdmFzY3JpcHQiKTsKLSAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
ci5hZGRGaWxlRm9yVVJMKHVybCwgY29udGVudFByb3ZpZGVyLCBmYWxzZSwgaXNDb250ZW50U2Ny
aXB0KTsKLSAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHVpU291cmNlQ29kZSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gZHVtcE5hdmlnYXRvcigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKG5hdmlnYXRvciwgIiAgIik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gZXhwYW5kRG9tYWlucyh0cmVlKQotICAgIHsKLSAgICAgICAgdmFyIGNoaWxkcmVu
ID0gbmF2aWdhdG9yLl9zY3JpcHRzVmlldy5fc2NyaXB0c1RyZWUuY2hpbGRyZW47Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpCi0gICAgICAgICAgY2hp
bGRyZW5baV0uZXhwYW5kKCk7Ci0gICAgfQotCi0gICAgdmFyIHJvb3RVUkwgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDgwL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci8iOwotICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlyc3QgcmVzb3VyY2U6Iik7Ci0gICAgYWRkVUlT
b3VyY2VDb2RlKHJvb3RVUkwgKyAiZm9vL2Jhci9zY3JpcHQuanMiLCBmYWxzZSk7Ci0gICAgZHVt
cE5hdmlnYXRvcigpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFeHBhbmRpbmcgZG9t
YWluczoiKTsKLSAgICBleHBhbmREb21haW5zKG5hdmlnYXRvci5fc2NyaXB0c1ZpZXcuX3Njcmlw
dHNUcmVlKTsKLSAgICBkdW1wTmF2aWdhdG9yKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkFkZGluZyBzZWNvbmQgcmVzb3VyY2U6Iik7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RV
UkwgKyAiZm9vL2Jhci9zY3JpcHQuanM/YT0yIiwgZmFsc2UpOwotICAgIGR1bXBOYXZpZ2F0b3Io
KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIG90aGVyIHJlc291cmNlczoi
KTsKLSAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVSTCArICJmb28vYmFyL3NjcmlwdC5qcz9hPTEi
LCBmYWxzZSk7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwgKyAiZm9vL2Jhei9zY3JpcHQu
anMiLCBmYWxzZSk7Ci0gICAgZHVtcE5hdmlnYXRvcigpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkFkZGluZyBjb250ZW50IHNjcmlwdHMgYW5kIHNvbWUgcmFuZG9tIHJlc291cmNl
czoiKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVSTCArICJmb28vYmFyL2NvbnRlbnRTY3Jp
cHQyLmpzP2E9MSIsIHRydWUpOwotICAgIGFkZFVJU291cmNlQ29kZShyb290VVJMICsgImZvby9i
YXIvY29udGVudFNjcmlwdC5qcz9hPTIiLCB0cnVlKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUocm9v
dFVSTCArICJmb28vYmFyL2NvbnRlbnRTY3JpcHQuanM/YT0xIiwgdHJ1ZSk7Ci0gICAgYWRkVUlT
b3VyY2VDb2RlKCJodHRwOi8vZXhhbXBsZS5jb20vIiwgZmFsc2UpOwotICAgIGFkZFVJU291cmNl
Q29kZSgiaHR0cDovL2V4YW1wbGUuY29tLz9hPWIiLCBmYWxzZSk7Ci0gICAgYWRkVUlTb3VyY2VD
b2RlKCI/YT1iIiwgZmFsc2UpOwotICAgIGFkZFVJU291cmNlQ29kZSgidmVyeV9sb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfdXJsIiwgZmFsc2UpOwotICAgIGR1bXBOYXZp
Z2F0b3IoKTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXZlYWxpbmcgZmlyc3Qg
cmVzb3VyY2U6Iik7Ci0gICAgbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNv
ZGVzWzBdKTsKLSAgICBkdW1wTmF2aWdhdG9yKCk7Ci0KLSAgICAvLyBIZXJlIHdlIGtlZXAgaHR0
cDovL2xvY2FsaG9zdDo4MDgwL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlcjIvIGZvbGRl
ciBjb2xsYXBzZWQgd2hpbGUgYWRkaW5nIHJlc291cmNlcyBpbnRvIGl0LgotICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc29tZSByZXNvdXJjZXMgdG8gY2hhbmdlIHRoZSB3YXkg
ZGVidWdnZXIgZm9sZGVyIGxvb2tzIGxpa2UsIGZpcnN0OiIpOwotICAgIHZhciByb290VVJMMiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwODAvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyMi8i
OwotICAgIGFkZFVJU291cmNlQ29kZShyb290VVJMMiArICJmb28vYmFyL3NjcmlwdC5qcyIsIGZh
bHNlKTsKLSAgICBkdW1wTmF2aWdhdG9yKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiU2Vjb25kOiIpOwotICAgIGFkZFVJU291cmNlQ29kZShyb290VVJMMiArICJmb28vYmFyL3Nj
cmlwdC5qcz9hPTIiLCBmYWxzZSk7Ci0gICAgZHVtcE5hdmlnYXRvcigpOwotICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJPdGhlcnM6Iik7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwy
ICsgImZvby9iYXIvc2NyaXB0LmpzP2E9MSIsIGZhbHNlKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUo
cm9vdFVSTDIgKyAiZm9vL2Jhei9zY3JpcHQuanMiLCBmYWxzZSk7Ci0gICAgZHVtcE5hdmlnYXRv
cigpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJldmVhbGluZyBhbGwgcmVzb3Vy
Y2VzOiIpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsr
aSkKLSAgICAgICAgbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ld
KTsKLSAgICBkdW1wTmF2aWdhdG9yKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
UmVtb3ZpbmcgYWxsIHJlc291cmNlczoiKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291
cmNlQ29kZXMubGVuZ3RoOyArK2kpCi0gICAgICAgIG5hdmlnYXRvci5yZW1vdmVVSVNvdXJjZUNv
ZGUodWlTb3VyY2VDb2Rlc1tpXSk7Ci0gICAgZHVtcE5hdmlnYXRvcigpOwotCi0gICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHNjcmlwdHMgcGFuZWwgZmlsZSBzZWxlY3Rv
cnMuCi08L3A+Ci08L2JvZHk+Ci0KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUt
cHJvdmlkZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTgz
NWM2MjA3NjQ2NTdmODczNjgxNmI5MmI0Y2NlZDc2Y2JlMWQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyNiArMCwwIEBACi1UZXN0cyBOZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIgY2xh
c3MuCi0KLQotUnVubmluZzogdGVzdERvY3VtZW50UmVzb3VyY2UKLUNyZWF0aW5nIHJlc291cmNl
LgotVUlTb3VyY2VDb2RlOiBodHRwOi8vZmFrZS51cmwvMQotVUlTb3VyY2VDb2RlIGlzIGVkaXRh
YmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQotTWltZSB0
eXBlOiB0ZXh0L2h0bWwKLVVJU291cmNlQ29kZSBjb250ZW50OiA8ZG9jdW1lbnQgcmVzb3VyY2Ug
Y29udGVudD4KLQotUnVubmluZzogdGVzdFNjcmlwdFJlc291cmNlCi1DcmVhdGluZyByZXNvdXJj
ZS4KLVVJU291cmNlQ29kZTogaHR0cDovL2Zha2UudXJsLzIKLVVJU291cmNlQ29kZSBpcyBlZGl0
YWJsZTogdHJ1ZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQotTWltZSB0
eXBlOiB0ZXh0L2phdmFzY3JpcHQKLVVJU291cmNlQ29kZSBjb250ZW50OiA8c2NyaXB0IHJlc291
cmNlIGNvbnRlbnQ+Ci0KLVJ1bm5pbmc6IHRlc3RTdHlsZXNoZWV0UmVzb3VyY2UKLUNyZWF0aW5n
IHJlc291cmNlLgotVUlTb3VyY2VDb2RlOiBodHRwOi8vZmFrZS51cmwvMwotVUlTb3VyY2VDb2Rl
IGlzIGVkaXRhYmxlOiB0cnVlCi1NaW1lIHR5cGU6IHRleHQvY3NzCi1VSVNvdXJjZUNvZGUgY29u
dGVudDogPHN0eWxlc2hlZXQgcmVzb3VyY2UgY29udGVudD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vjb2RlLXByb3ZpZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUt
cHJvdmlkZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZlMTM1MDc2MmFi
ZmRkZjE5Yjg5ZjA1NWU5MTkyNzRkNDI2OWRjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29y
ay11aXNvdXJjZWNvZGUtcHJvdmlkZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIG1vY2tDb250ZW50c01hcCA9
IHt9OwotICAgIHZhciBsYXN0UmVzb3VyY2VJZCA9IDA7Ci0KLSAgICBOZXR3b3JrQWdlbnQuZ2V0
UmVzcG9uc2VCb2R5ID0gZnVuY3Rpb24ocmVxdWVzdElkLCBjYWxsYmFjaykKLSAgICB7Ci0gICAg
ICAgIGNhbGxiYWNrKHVuZGVmaW5lZCwgbW9ja0NvbnRlbnRzTWFwW3JlcXVlc3RJZF0sIGZhbHNl
KTsKLSAgICB9Ci0KLSAgICBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VDb250ZW50ID0gZnVuY3Rpb24o
ZnJhbWVJZCwgdXJsLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGNhbGxiYWNrKHVuZGVmaW5l
ZCwgbW9ja0NvbnRlbnRzTWFwW3VybF0sIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBj
cmVhdGVSZXNvdXJjZU1vY2sodHlwZSwgY29udGVudCkKLSAgICB7Ci0gICAgICAgIHZhciBkb2N1
bWVudFVSTCA9ICJodHRwOi8vZmFrZS51cmwiOwotICAgICAgICB2YXIgcmVzb3VyY2VJZCA9ICsr
bGFzdFJlc291cmNlSWQgKyAiIjsKLSAgICAgICAgdmFyIHVybCA9IGRvY3VtZW50VVJMICsgIi8i
ICsgcmVzb3VyY2VJZDsKLSAgICAgICAgdmFyIGZyYW1lSWQgPSAiZnJhbWUtaWQiOwotICAgICAg
ICB2YXIgbG9hZGVySWQgPSAibG9hZGVyLWlkIjsKLSAgICAgICAgdmFyIG1pbWVUeXBlOwotICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
eXBlcy5Eb2N1bWVudDoKLSAgICAgICAgICAgIG1pbWVUeXBlID0gInRleHQvaHRtbCI7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
Y3JpcHQ6Ci0gICAgICAgICAgICBtaW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5
bGVzaGVldDoKLSAgICAgICAgICAgIG1pbWVUeXBlID0gInRleHQvY3NzIjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHJlc291cmNlID0gbmV3IFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZShudWxsLCB1cmwsIGRvY3VtZW50VVJMLCBmcmFtZUlkLCBsb2FkZXJJZCwg
dHlwZSwgbWltZVR5cGUpOwotICAgICAgICBtb2NrQ29udGVudHNNYXBbdXJsXSA9IGNvbnRlbnQ7
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3Vy
Y2VBZGRlZCwgcmVzb3VyY2UpOwotCi0gICAgICAgIHJldHVybiByZXNvdXJjZTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBmaW5pc2hSZXNvdXJjZShyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHJl
c291cmNlLnJlcXVlc3QuZmluaXNoZWQgPSB0cnVlOwotICAgICAgICByZXNvdXJjZS5yZXF1ZXN0
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3QuRXZl
bnRzLkZpbmlzaGVkTG9hZGluZywgcmVzb3VyY2UucmVxdWVzdCk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gY3JlYXRlTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKCkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0KCk7Ci0gICAgICAgIHZh
ciBuZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtV
SVNvdXJjZUNvZGVQcm92aWRlcihJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJv
dmlkZXIsIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7Ci0gICAgICAgIHJldHVybiBuZXR3
b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXI7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5U
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RG9jdW1lbnRSZXNvdXJjZShuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyID0g
Y3JlYXRlTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyKCk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiQ3JlYXRpbmcgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KHVpU291cmNl
Q29kZUFkZGVkKTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlTW9j
ayhXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudCwgIjxkb2N1bWVudCByZXNvdXJj
ZSBjb250ZW50PiIpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZCh1
aVNvdXJjZUNvZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdFJlc291cmNlKG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciBuZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIgPSBj
cmVhdGVOZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIoKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJDcmVhdGluZyByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3VyY2VD
b2RlQWRkZWQpOwotICAgICAgICAgICAgdmFyIHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2VNb2Nr
KFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgIjxzY3JpcHQgcmVzb3VyY2UgY29u
dGVudD4iKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRkZWQodWlTb3Vy
Y2VDb2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIG5leHQpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTdHlsZXNoZWV0UmVzb3VyY2UobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgdmFyIG5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciA9IGNy
ZWF0ZU5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlcigpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkNyZWF0aW5nIHJlc291cmNlLiIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRFdmVudCh1aVNvdXJjZUNv
ZGVBZGRlZCk7Ci0gICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBjcmVhdGVSZXNvdXJjZU1vY2so
V2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCwgIjxzdHlsZXNoZWV0IHJlc291
cmNlIGNvbnRlbnQ+Iik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVk
KHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSwKLSAgICBdKTsKLX07Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIE5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciBjbGFz
cy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjM5NTdlYWY4ZWMxMTY2YWRkZWNlZTUyMzJjZWI2
ODdmODY2YmI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9wZXJ0aWVzLXNwZWNpYWwtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotVGVzdHMgaG93IGRlYnVnZ2Vy
IHByZXNlbnRzIHNwZWNpYWwgcHJvcGVydGllcyBvZiBjbG9zdXJlcywgYm91bmQgZnVuY3Rpb25z
IGFuZCBvYmplY3Qgd3JhcHBlcnMuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2NyaXB0IHNv
dXJjZSB3YXMgc2hvd24uCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1XYXRjaCBleHBy
ZXNzaW9ucyB1cGRhdGVkLgotTm9kZXMgYXJlIGV4cGFuZGVkLgotJ09iamVjdCh0cnVlKScgPT4g
J0Jvb2xlYW4nCi0gICAgJ19fcHJvdG9fXycgPT4gJ0Jvb2xlYW4nCi0nKGZ1bmN0aW9uKGEsYikg
eyByZXR1cm4gYSArIGI7IH0pJyA9PiAnZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9
JwotICAgICdhcmd1bWVudHMnID0+ICdudWxsJwotICAgICdjYWxsZXInID0+ICdudWxsJwotICAg
ICdsZW5ndGgnID0+ICcyJwotICAgICduYW1lJyA9PiAnIiInCi0gICAgJ3Byb3RvdHlwZScgPT4g
J09iamVjdCcKLSAgICAnX19wcm90b19fJyA9PiAnZnVuY3Rpb24gKCkgeycKLSAgICA8ZnVuY3Rp
b24gc2NvcGU+Ci0nKGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYSArIGI7IH0pLmJpbmQoe30sIDIp
JyA9PiAnZnVuY3Rpb24gKCkgeycKLSAgICAnZ2V0IGFyZ3VtZW50cycgPT4gJ2Z1bmN0aW9uICgp
IHsnCi0gICAgJ2dldCBjYWxsZXInID0+ICdmdW5jdGlvbiAoKSB7JwotICAgICdsZW5ndGgnID0+
ICcxJwotICAgICduYW1lJyA9PiAnIiInCi0gICAgJ3NldCBhcmd1bWVudHMnID0+ICdmdW5jdGlv
biAoKSB7JwotICAgICdzZXQgY2FsbGVyJyA9PiAnZnVuY3Rpb24gKCkgeycKLSAgICAnX19wcm90
b19fJyA9PiAnZnVuY3Rpb24gKCkgeycKLSAgICA8ZnVuY3Rpb24gc2NvcGU+Ci1EZWJ1Z2dlciB3
YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9wcm9wZXJ0aWVzLXNwZWNpYWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2RhODNkYTE3ZmQyNjZkMWZjMDgxM2ViNGM3MTEyNWYwMGRhN2IyNy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcHJvcGVydGllcy1zcGVjaWFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIHZhciB4ID0gTWF0aC5z
cXJ0KDEwKTsKLSAgICByZXR1cm4geDsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0g
ICAgSW5zcGVjdG9yVGVzdC5zZXRRdWlldCh0cnVlKTsKLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0
RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIHZhciBjdXJyZW50U291cmNlRnJhbWU7Ci0gICAg
dmFyIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAg
IHsKLSAgICAgICAgLy8gV2UgbmVlZCB0byBpbml0aWFsaXplIHNjcmlwdHMgcGFuZWwgc28gdGhh
dCB3YXRjaCBleHByZXNzaW9ucyBzZWN0aW9uIGlzIGNyZWF0ZWQuCi0gICAgICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLQotICAgICAgICB2YXIgd2F0Y2hFeHByZXNzaW9u
c1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLndhdGNoRXhw
cmVzc2lvbnM7Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNQYW5lLmV4cGFuZCgpOwotCi0gICAg
ICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uID0gd2F0Y2hFeHByZXNzaW9uc1BhbmUuc2VjdGlv
bjsKLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucyA9IFtd
OwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2go
Ik9iamVjdCh0cnVlKSIpOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4
cHJlc3Npb25zLnB1c2goIihmdW5jdGlvbihhLGIpIHsgcmV0dXJuIGEgKyBiOyB9KSIpOwotICAg
ICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zLnB1c2goIihmdW5j
dGlvbihhLGIpIHsgcmV0dXJuIGEgKyBiOyB9KS5iaW5kKHt9LCAyKSIpOwotICAgICAgICB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUoKTsKLQotICAgICAgICB2YXIgdGVzdE5hbWUgPSBX
ZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTDsKLSAgICAgICAgdGVzdE5hbWUgPSB0ZXN0TmFt
ZS5zdWJzdHJpbmcodGVzdE5hbWUubGFzdEluZGV4T2YoJy8nKSArIDEpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UodGVzdE5hbWUsIGRpZFNob3dTY3JpcHRTb3VyY2Up
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUp
Ci0gICAgewotICAgICAgICBjdXJyZW50U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQoY3VycmVudFNvdXJjZUZyYW1lLCA5
LCAiIiwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuV2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlLCAidXBkYXRlIiwgd2F0Y2hFeHBy
ZXNzaW9uc1VwZGF0ZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFu
ZFdhaXRVbnRpbFBhdXNlZChkaWRQYXVzZWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRpZFBh
dXNlZChjYWxsRnJhbWVzKQotICAgIHsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB3YXRjaEV4cHJl
c3Npb25zVXBkYXRlZCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
V2F0Y2ggZXhwcmVzc2lvbnMgdXBkYXRlZC4iKTsKLSAgICAgICAgdmFyIHRyZWVOb2RlcyA9IHdh
dGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3BlcnRpZXNUcmVlT3V0bGluZS5jaGlsZHJlbjsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlTm9kZXMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgIHRyZWVOb2Rlc1tpXS5leHBhbmQoKTsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0
b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMobm9kZXNFeHBhbmRlZCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gbm9kZXNFeHBhbmRlZCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiTm9kZXMgYXJlIGV4cGFuZGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBPYmplY3RQcm9wZXJ0eVNlY3Rpb25EZWVwKHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9u
KTsKLQotICAgICAgICAvLyBDbGVhciB3YXRjaCBleHByZXNzaW9ucyBhZnRlciBleGVjdXRpb24u
Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsK
LSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24udXBkYXRlKCk7Ci0KLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBob3cgZGVidWdn
ZXIgcHJlc2VudHMgc3BlY2lhbCBwcm9wZXJ0aWVzIG9mIGNsb3N1cmVzLCBib3VuZCBmdW5jdGlv
bnMgYW5kIG9iamVjdCB3cmFwcGVycy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNj
cmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2RhYjI5ZjI1YTg0MDc4NzA2MDg2MjIyNjE1OWJkMmNlM2U0MmE0OC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNzEgKzAsMCBAQAotVGVzdHMgUmVzb3VyY2VTY3JpcHRNYXBwaW5nIGNsYXNzLgotCi0K
LVJ1bm5pbmc6IHRlc3RTY3JpcHRXaXRoUGVuZGluZ1Jlc291cmNlCi1BZGRpbmcgc2NyaXB0IGZv
ciBwZW5kaW5nIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6IGZvby5qcwotVUlTb3VyY2VDb2RlIGlz
IGVkaXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiB0cnVlCi1N
aW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxjb250ZW50
IHNjcmlwdCBzb3VyY2U+Ci1BZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCByZXNvdXJj
ZS4KLVVJU291cmNlQ29kZTogZm9vLmpzCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUK
LVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9q
YXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29udGVudDogPGNvbnRlbnQgc2NyaXB0IHJlc291cmNl
IGNvbnRlbnQ+Ci0KLVJ1bm5pbmc6IHRlc3RTY3JpcHRXaXRoRmluaXNoZWRSZXNvdXJjZQotQWRk
aW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCi1VSVNvdXJjZUNvZGU6IGZv
by5qcwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCi1VSVNvdXJjZUNvZGUgaXMgY29u
dGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VD
b2RlIGNvbnRlbnQ6IDxzY3JpcHQgcmVzb3VyY2UgY29udGVudD4KLUFkZGluZyBzY3JpcHQgZm9y
IGZpbmlzaGVkIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6IGZvby5qcwotVUlTb3VyY2VDb2RlIGlz
IGVkaXRhYmxlOiB0cnVlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1N
aW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxzY3JpcHQg
cmVzb3VyY2UgY29udGVudD4KLQotUnVubmluZzogdGVzdEhUTUxXaXRoUGVuZGluZ1Jlc291cmNl
Ci1BZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6
IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29k
ZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9odG1sCi1VSVNvdXJj
ZUNvZGUgY29udGVudDogICA8c2NyaXB0PjxzY3JpcHQgc291cmNlIDE+PC9zY3JpcHQ+Ci1BZGRp
bmcgc2Vjb25kIHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LgotVUlTb3VyY2VDb2RlOiBpbmRl
eC5odG1sCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCi1VSVNvdXJjZUNvZGUgaXMg
Y29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5cGU6IHRleHQvaHRtbAotVUlTb3VyY2VDb2Rl
IGNvbnRlbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2NyaXB0Pjxz
Y3JpcHQgc291cmNlIDI+PC9zY3JpcHQ+Ci1BZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hl
ZCByZXNvdXJjZS4KLVVJU291cmNlQ29kZTogaW5kZXguaHRtbAotVUlTb3VyY2VDb2RlIGlzIGVk
aXRhYmxlOiBmYWxzZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQotTWlt
ZSB0eXBlOiB0ZXh0L2h0bWwKLVVJU291cmNlQ29kZSBjb250ZW50OiA8cmVzb3VyY2UgY29udGVu
dD4KLQotUnVubmluZzogdGVzdEhUTUxXaXRoRmluaXNoZWRSZXNvdXJjZQotQWRkaW5nIHVpU291
cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCi1VSVNvdXJjZUNvZGU6IGluZGV4Lmh0bWwK
LVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29kZSBpcyBjb250ZW50
IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9odG1sCi1VSVNvdXJjZUNvZGUgY29udGVu
dDogPHJlc291cmNlIGNvbnRlbnQ+Ci1BZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBmaW5pc2hlZCBy
ZXF1ZXN0LgotVUlTb3VyY2VDb2RlOiBpbmRleC5odG1sCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFi
bGU6IGZhbHNlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCi1NaW1lIHR5
cGU6IHRleHQvaHRtbAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxyZXNvdXJjZSBjb250ZW50Pgot
QWRkaW5nIHNlY29uZCBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuCi1VSVNvdXJjZUNvZGU6
IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKLVVJU291cmNlQ29k
ZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9odG1sCi1VSVNvdXJj
ZUNvZGUgY29udGVudDogPHJlc291cmNlIGNvbnRlbnQ+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhODc3MThlZTBhMTliYTNlZWRlMDYwZmVh
Yzg1ZTZhMGRkNzRiOTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBw
aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIHZhciBkZWZhdWx0U2NyaXB0TWFwcGluZzsKLSAgICBmdW5jdGlvbiBj
cmVhdGVSZXNvdXJjZVNjcmlwdE1hcHBpbmcoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jcmVhdGVXb3Jrc3BhY2UoKTsKLSAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcgPSBuZXcg
V2ViSW5zcGVjdG9yLkRlZmF1bHRTY3JpcHRNYXBwaW5nKEluc3BlY3RvclRlc3QudGVzdFdvcmtz
cGFjZSk7Ci0gICAgICAgIHZhciByZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLlJlc291cmNlU2NyaXB0TWFwcGluZyhJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UpOwot
ICAgICAgICByZXR1cm4gcmVzb3VyY2VTY3JpcHRNYXBwaW5nOwotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdFdpdGhQ
ZW5kaW5nUmVzb3VyY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNjcmlwdDsK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLl9yZXNldCgpOwotICAgICAg
ICAgICAgdmFyIHJlc291cmNlU2NyaXB0TWFwcGluZyA9IGNyZWF0ZVJlc291cmNlU2NyaXB0TWFw
cGluZygpOwotICAgICAgICAgICAgdmFyIHVybCA9ICJmb28uanMiOwotICAgICAgICAgICAgc3Rl
cDEoKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2NyaXB0IGZvciBw
ZW5kaW5nIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICAgICAgc2NyaXB0ID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgMCwgMCwgdHJ1ZSwgIjxjb250ZW50IHNjcmlwdCBzb3Vy
Y2U+Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlT
b3VyY2VDb2RlQWRkZWRFdmVudChvcmlnaW5hbFVJU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAg
ICAgICAgICBkZWZhdWx0U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAg
ICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgdmFyIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwotICAg
ICAgICAgICAgICAgIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KTsKLQotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VD
b2RlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxVSVNv
dXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24ob3JpZ2luYWxVSVNvdXJjZUNvZGUs
IDAsIDUsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KSk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMTAsIDAsIG9yaWdp
bmFsVUlTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDEwLCAwKSk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VD
b2RlLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAy
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuIik7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVUlTb3VyY2VDb2RlQWRkZWRF
dmVudCh1aVNvdXJjZUNvZGVBZGRlZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UodXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
eXBlcy5TY3JpcHQsICI8Y29udGVudCBzY3JpcHQgcmVzb3VyY2UgY29udGVudD4iKTsKLQotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tV
SUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0
aW9uKDAsIDUpKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xv
Y2F0aW9uKHNjcmlwdCwgMTAsIDAsIHVpU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlv
bigxMCwgMCkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJj
ZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdFdpdGhGaW5pc2hl
ZFJlc291cmNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQ7Ci0gICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKLSAgICAgICAgICAg
IHZhciBtb2NrVUlTb3VyY2VDb2RlOwotICAgICAgICAgICAgdmFyIHJlc291cmNlU2NyaXB0TWFw
cGluZyA9IGNyZWF0ZVJlc291cmNlU2NyaXB0TWFwcGluZygpOwotICAgICAgICAgICAgdmFyIHVy
bCA9ICJmb28uanMiOwotICAgICAgICAgICAgc3RlcDEoKTsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJBZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCByZXNvdXJjZS4iKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VVSVNvdXJjZUNv
ZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUZvclJlc291cmNlQWRkZWQpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkTW9ja1VJU291cmNlQ29kZVRvV29ya3NwYWNlKHVybCwgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCAiPHNjcmlwdCByZXNvdXJjZSBjb250ZW50
PiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVG
b3JSZXNvdXJjZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBtb2NrVUlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIHN0ZXAyKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2NyaXB0IGZv
ciBmaW5pc2hlZCByZXF1ZXN0LiIpOwotICAgICAgICAgICAgICAgIHNjcmlwdCA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDAsIDAsIGZhbHNlLCAiPHNjcmlwdCBzb3VyY2U+
Iik7Ci0gICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3Jp
cHQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKG1vY2tV
SVNvdXJjZUNvZGUsIDAsIDUsIHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KSk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwg
MTAsIDAsIG1vY2tVSVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMTAsIDApKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUobW9ja1VJU291
cmNlQ29kZSwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdEhUTUxXaXRoUGVuZGluZ1Jlc291cmNlKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciBzY3JpcHQxOwotICAgICAgICAgICAgdmFyIHNjcmlwdDI7Ci0gICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5fcmVzZXQoKTsKLSAgICAgICAgICAgIHZhciBy
ZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBjcmVhdGVSZXNvdXJjZVNjcmlwdE1hcHBpbmcoKTsKLSAg
ICAgICAgICAgIHZhciBvcmlnaW5hbFVJU291cmNlQ29kZTE7Ci0gICAgICAgICAgICB2YXIgb3Jp
Z2luYWxVSVNvdXJjZUNvZGUyOwotICAgICAgICAgICAgdmFyIHVybCA9ICJpbmRleC5odG1sIjsK
LSAgICAgICAgICAgIHN0ZXAxKCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRk
aW5nIGZpcnN0IHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LiIpOwotICAgICAgICAgICAgICAg
IHNjcmlwdDEgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1vY2sodXJsLCAwLCAxMCwgZmFs
c2UsICI8c2NyaXB0IHNvdXJjZSAxPiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
d2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQob3JpZ2luYWxVSVNvdXJjZUNv
ZGVBZGRlZCk7Ci0gICAgICAgICAgICAgICAgZGVmYXVsdFNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0
KHNjcmlwdDEpOwotICAgICAgICAgICAgICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRTY3Jp
cHQoc2NyaXB0MSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc2NyaXB0MS5y
YXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxVSVNvdXJjZUNvZGUxID0gdWlTb3VyY2VD
b2RlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tVSUxvY2F0aW9uKG9yaWdpbmFsVUlTb3VyY2VDb2RlMSwgMCwgNSwgc2NyaXB0MS5yYXdM
b2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDEwLCAwLCBvcmlnaW5hbFVJU291cmNlQ29kZTEu
dWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMTAsIDApKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUxLCBzdGVwMik7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHNlY29u
ZCBzY3JpcHQgZm9yIHBlbmRpbmcgcmVxdWVzdC4iKTsKLSAgICAgICAgICAgICAgICBzY3JpcHQy
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgMCwgNDUsIGZhbHNlLCAiPHNj
cmlwdCBzb3VyY2UgMj4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JX
b3Jrc3BhY2VVSVNvdXJjZUNvZGVBZGRlZEV2ZW50KG9yaWdpbmFsVUlTb3VyY2VDb2RlQWRkZWQp
OwotICAgICAgICAgICAgICAgIGRlZmF1bHRTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQy
KTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlw
dDIpOwotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gb3JpZ2luYWxVSVNvdXJjZUNvZGVBZGRl
ZCh1aVNvdXJjZUNvZGUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBv
cmlnaW5hbFVJU291cmNlQ29kZTIgPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24ob3JpZ2luYWxV
SVNvdXJjZUNvZGUyLCAwLCA1LCBzY3JpcHQyLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUp
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0
MSwgMTAsIDAsIG9yaWdpbmFsVUlTb3VyY2VDb2RlMS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigx
MCwgMCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZShv
cmlnaW5hbFVJU291cmNlQ29kZTIsIHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgdWlTb3VyY2VDb2RlIGZvciBmaW5pc2hlZCByZXNv
dXJjZS4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VV
SVNvdXJjZUNvZGVBZGRlZEV2ZW50KHVpU291cmNlQ29kZUFkZGVkKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZE1vY2tVSVNvdXJjZUNvZGVUb1dvcmtzcGFjZSh1cmwsIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVR5cGVzLkRvY3VtZW50LCAiPHJlc291cmNlIGNvbnRlbnQ+Iik7Ci0K
LSAgICAgICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUp
Ci0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNo
ZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDAsIDUsIHNjcmlwdDEucmF3TG9jYXRpb25Ub1VJ
TG9jYXRpb24oMCwgNSkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNr
UmF3TG9jYXRpb24oc2NyaXB0MSwgMTAsIDAsIHVpU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdM
b2NhdGlvbigxMCwgMCkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBV
SVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlLCBuZXh0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEhUTUxXaXRoRmlu
aXNoZWRSZXNvdXJjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0MTsK
LSAgICAgICAgICAgIHZhciBzY3JpcHQyOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuX3Jlc2V0KCk7Ci0gICAgICAgICAgICB2YXIgbW9ja1VJU291cmNlQ29kZTsKLSAg
ICAgICAgICAgIHZhciByZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBjcmVhdGVSZXNvdXJjZVNjcmlw
dE1hcHBpbmcoKTsKLSAgICAgICAgICAgIHZhciB1cmwgPSAiaW5kZXguaHRtbCI7Ci0gICAgICAg
ICAgICBzdGVwMSgpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyB1aVNv
dXJjZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFkZGVkRXZlbnQodWlTb3VyY2VD
b2RlRm9yUmVzb3VyY2VBZGRlZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRN
b2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3BhY2UodXJsLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBl
cy5Eb2N1bWVudCwgIjxyZXNvdXJjZSBjb250ZW50PiIpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVGb3JSZXNvdXJjZUFkZGVkKHVpU291cmNlQ29k
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBtb2NrVUlTb3VyY2VDb2RlID0gdWlT
b3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGUsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlyc3Qgc2NyaXB0IGZvciBmaW5pc2hlZCByZXF1ZXN0LiIp
OwotICAgICAgICAgICAgICAgIHNjcmlwdDEgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNjcmlwdE1v
Y2sodXJsLCAxLCAxMCwgZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAxPiIpOwotICAgICAgICAgICAg
ICAgIHJlc291cmNlU2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0MSk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24obW9ja1VJU291cmNlQ29kZSwgMSwg
MjAsIHNjcmlwdDEucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMSwgMjApKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0MSwgMSwgMCwgbW9ja1VJ
U291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxLCAwKSk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDYsIDAsIG1vY2tVSVNv
dXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oNiwgMCkpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZShtb2NrVUlTb3VyY2VDb2RlLCBzdGVwMyk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIHNl
Y29uZCBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuIik7Ci0gICAgICAgICAgICAgICAgc2Ny
aXB0MiA9IEluc3BlY3RvclRlc3QuY3JlYXRlU2NyaXB0TW9jayh1cmwsIDUsIDQ1LCBmYWxzZSwg
IjxzY3JpcHRcbnNvdXJjZVxuMj4iKTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1h
cHBpbmcuYWRkU2NyaXB0KHNjcmlwdDIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tVSUxvY2F0aW9uKG1vY2tVSVNvdXJjZUNvZGUsIDEsIDIwLCBzY3JpcHQxLnJhd0xvY2F0
aW9uVG9VSUxvY2F0aW9uKDEsIDIwKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
aGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDEsIDAsIG1vY2tVSVNvdXJjZUNvZGUudWlMb2NhdGlv
blRvUmF3TG9jYXRpb24oMSwgMCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hl
Y2tSYXdMb2NhdGlvbihzY3JpcHQyLCA2LCAwLCBtb2NrVUlTb3VyY2VDb2RlLnVpTG9jYXRpb25U
b1Jhd0xvY2F0aW9uKDYsIDApKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBV
SVNvdXJjZUNvZGUobW9ja1VJU291cmNlQ29kZSwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+VGVzdHMgUmVzb3VyY2VTY3JpcHRNYXBwaW5nIGNsYXNzLjwvcD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9yZXZlYWwtZXhlY3V0aW9uLWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4NmZmYjIyYzk0MjkwM2UzODExNWRlODY4MmUzZjI0ZGUx
MjlhMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3JldmVhbC1leGVjdXRpb24tbGluZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UZXN0cyB0aGF0IGV4ZWN1dGlv
biBsaW5lIGlzIHJldmVhbGVkIGFuZCBoaWdobGlnaHRlZCB3aGVuIGRlYnVnZ2VyIGlzIHBhdXNl
ZC4KLQotQnVnIDgwMzA2Ci1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFJl
dmVhbEFuZEhpZ2hsaWdodEV4ZWN1dGlvbkxpbmUKLVNldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlv
bi4KLUV4ZWN1dGlvbiBsaW5lIHJldmVhbGVkIGFuZCBoaWdobGlnaHRlZC4KLURlYnVnZ2VyIHdh
cyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3JldmVhbC1leGVjdXRpb24tbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3JldmVhbC1leGVjdXRpb24tbGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiZmI0NGM4NzRmOTQxOWU5Yzk1NDdiNzgxOWU0ZDI4YTc0MjQ1NTExLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9yZXZlYWwtZXhlY3V0aW9uLWxpbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDYxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpCi17Ci0gICAgZGVidWdnZXI7Ci19Ci0KLXZh
ciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIEluc3BlY3RvclRlc3Quc2V0UXVpZXQodHJ1ZSk7
Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RSZXZlYWxBbmRIaWdobGlnaHRFeGVjdXRpb25MaW5lKG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciBleGVjdXRpb25MaW5lU2V0ID0gZmFsc2U7Ci0gICAgICAgICAgICB2
YXIgZXhlY3V0aW9uTGluZVJldmVhbGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSwgInJldmVh
bExpbmUiLCBkaWRSZXZlYWxMaW5lKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSwgInNldEV4
ZWN1dGlvbkxpbmUiLCBkaWRTZXRFeGVjdXRpb25MaW5lKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkKGRpZFBhdXNlZCk7Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZFBhdXNlZChjYWxsRnJhbWVzKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTZXRFeGVjdXRpb25MaW5l
KGxpbmUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKGV4ZWN1dGlvbkxpbmVT
ZXQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBleGVjdXRp
b25MaW5lU2V0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBtYXliZU5leHQoKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmV2ZWFsTGluZShsaW5lKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGlmIChleGVjdXRpb25MaW5lUmV2ZWFsZWQpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1Nob3dp
bmcoKSkgewotICAgICAgICAgICAgICAgICAgICBleGVjdXRpb25MaW5lUmV2ZWFsZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgICAgICBtYXliZU5leHQoKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIG1heWJlTmV4dCgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKGV4ZWN1dGlvbkxpbmVSZXZlYWxlZCAmJiBleGVj
dXRpb25MaW5lU2V0KSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJFeGVjdXRpb24gbGluZSByZXZlYWxlZCBhbmQgaGlnaGxpZ2h0ZWQuIik7Ci0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKG5leHQpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IGV4
ZWN1dGlvbiBsaW5lIGlzIHJldmVhbGVkIGFuZCBoaWdobGlnaHRlZCB3aGVuIGRlYnVnZ2VyIGlz
IHBhdXNlZC48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODAzMDYiPkJ1ZyA4MDMwNjwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFj
dC1vdXRsaW5lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRl
YzA0YzQxOTZhZDEwOGU1MjFlMzcwMWI2ODBjZjBjNWFmYjI2YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzOSArMCwwIEBACi1UZXN0cyB0aGUgc2NyaXB0IG91dGxpbmUgZXh0cmFjdGlvbiBmdW5jdGlv
bmFsaXR5LgotCi17Ci0gICAgY2h1bmsgOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgIGFyZ3Vt
ZW50cyA6ICIoeCwgeSkiCi0gICAgICAgICAgICBsaW5lIDogMAotICAgICAgICAgICAgbmFtZSA6
ICJmaXJzdCIKLSAgICAgICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBhcmd1bWVudHMgOiAi
KHksIHopIgotICAgICAgICAgICAgbGluZSA6IDEKLSAgICAgICAgICAgIG5hbWUgOiAic2Vjb25k
IgotICAgICAgICB9Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGFyZ3VtZW50cyA6ICIoYXJnKSIK
LSAgICAgICAgICAgIGxpbmUgOiA0Ci0gICAgICAgICAgICBuYW1lIDogIk9iamVjdCIKLSAgICAg
ICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBhcmd1bWVudHMgOiAiKGEsIGIsIGMsIGQsIGUs
IGYpIgotICAgICAgICAgICAgbGluZSA6IDYKLSAgICAgICAgICAgIG5hbWUgOiAiZnVuY3Rpb25P
blByb3RvdHlwZSIKLSAgICAgICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBhcmd1bWVudHMg
OiAiKCkiCi0gICAgICAgICAgICBsaW5lIDogOAotICAgICAgICAgICAgbmFtZSA6ICJpbm5lckZ1
bmN0aW9uMSIKLSAgICAgICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBhcmd1bWVudHMgOiAi
KGFyZzEsIGFyZzIpIgotICAgICAgICAgICAgbGluZSA6IDkKLSAgICAgICAgICAgIG5hbWUgOiAi
aW5uZXJGdW5jdGlvbjIiCi0gICAgICAgIH0KLSAgICBdCi0gICAgaW5kZXggOiAxCi0gICAgdG90
YWwgOiAxCi19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
Y3JpcHQtZXh0cmFjdC1vdXRsaW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2NyaXB0LWV4dHJhY3Qtb3V0bGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxNjhiYTg5MTdkMjQyYmM3NjE0MDNhOTJjYzAxNTQ4NTBhOGNhM2Q4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHQtZXh0cmFjdC1vdXRsaW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvb2JmdXNjYXRlZC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0ZXN0
ID0gZnVuY3Rpb24oKQotewotICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJTY3JpcHRGb3Jt
YXR0ZXJXb3JrZXIuanMiKTsKLSAgICB2YXIgcGFyc2VkU2NyaXB0ID0gImZ1bmN0aW9uIGZpcnN0
KHgseSkgeyB9XG4gdmFyIHNlY29uZCA9IGZ1bmN0aW9uKHkgXG4gLCBcbnopIHsgfVxuIE9iamVj
dCA9IGZ1bmN0aW9uKGFyZykge1xufVxuIE9iamVjdC5wcm90b3R5cGUuZnVuY3Rpb25PblByb3Rv
dHlwZSA9IGZ1bmN0aW9uICAoICBhLCAgYiAgLCAgXG4gIGMsICBkICAgLCAgXG4gIGUgICwgIGYg
KSAgICB7IGZ1bmN0aW9uIGlubmVyRnVuY3Rpb24xKCkge1xuIHZhciBpbm5lckZ1bmN0aW9uMiA9
IGZ1bmN0aW9uKGFyZzEsYXJnMikge30gfSB9IjsKLQotICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJ
bnNwZWN0b3JUZXN0LnNhZmVXcmFwKGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRPYmplY3QoZXZlbnQuZGF0YSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfSk7Ci0KLSAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0aW9u
KGV2ZW50KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yIGlu
IHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH07Ci0KLSAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBtZXRob2Q6ICJvdXRs
aW5lIiwgcGFyYW1zOiB7IGNvbnRlbnQ6IHBhcnNlZFNjcmlwdCB9IH0pOwotfQotCi08L3Njcmlw
dD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGUg
c2NyaXB0IG91dGxpbmUgZXh0cmFjdGlvbiBmdW5jdGlvbmFsaXR5LgotPC9wPgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0LWZvcm1hdHRlci1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1YTIxZTNkYTcwNWQ5NmY0MTAyYjY1YTZj
MDRhMTZmZDExNGM2MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItYnJl
YWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotVGVz
dHMgdGhlIHNjcmlwdCBmb3JtYXR0aW5nIGlzIHdvcmtpbmcgZmluZSB3aXRoIGJyZWFrcG9pbnRz
LgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdEJyZWFrcG9pbnRzSW5P
cmlnaW5hbEFuZEZvcm1hdHRlZFNvdXJjZQotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1CcmVh
a3BvaW50IHNpZGViYXIgcGFuZSB3aGlsZSBwYXVzZWQgaW4gcmF3Ci0KLSAgICBzY3JpcHQtZm9y
bWF0dGVyLWJyZWFrcG9pbnRzLmh0bWw6MTEKLSAgICB2YXIgZj0wOwotU2NyaXB0IGV4ZWN1dGlv
biByZXN1bWVkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1CcmVha3BvaW50IHNpZGViYXIg
cGFuZSB3aGlsZSBwYXVzZWQgaW4gcHJldHR5IHByaW50ZWQKLQotICAgIHNjcmlwdC1mb3JtYXR0
ZXItYnJlYWtwb2ludHMuaHRtbDoxOAotICAgIHZhciBmID0gMDsKLUJyZWFrcG9pbnQgc2lkZWJh
ciBwYW5lIHdoaWxlIHBhdXNlZCBpbiByYXcKLQotICAgIHNjcmlwdC1mb3JtYXR0ZXItYnJlYWtw
b2ludHMuaHRtbDoxMQotICAgIHZhciBmPTA7Ci1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi0K
LVJ1bm5pbmc6IHRlc3RCcmVha3BvaW50U2V0SW5PcmlnaW5hbEFuZFJlbW92ZWRJbkZvcm1hdHRl
ZAotQWRkaW5nIGJyZWFrcG9pbnQuCi1Gb3JtYXR0aW5nLgotUmVtb3ZpbmcgYnJlYWtwb2ludC4K
LVVuZm9ybWF0dGluZy4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItYnJlYWtwb2ludHMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWJy
ZWFrcG9pbnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiNjBlMzlkZTY5
YTljNjU0MWE2MGQxZDBhNTk3NTFhZGU2ZmM4MWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dC1mb3JtYXR0ZXItYnJlYWtwb2ludHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LQotZnVuY3Rpb24gZjEoKQotewotICAgIHZhciBhPTA7dmFyIGI9MTt2YXIgYz0zO3ZhciBkPTQ7
dmFyIGU9NTsKLSAgICB2YXIgZj0wOwotICAgIHJldHVybiAwOwotfQotCi12YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuX3N0b3JhZ2Uu
X2JyZWFrcG9pbnRzID0ge307Ci0gICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzOwotICAgIHZhciBzb3VyY2VGcmFtZTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuRGVi
dWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0QnJlYWtwb2ludHNJbk9yaWdp
bmFsQW5kRm9ybWF0dGVkU291cmNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy5o
dG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNo
b3dTY3JpcHRTb3VyY2UoZnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc291
cmNlRnJhbWUgPSBmcmFtZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFr
cG9pbnQoc291cmNlRnJhbWUsIDEwLCAiIiwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0VW50aWxQYXVzZWQocGF1c2VkSW5GMSk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJmMSgpIik7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZEluRjEoY2FsbEZyYW1lcykKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFNpZGViYXJQYW5lKCJ3aGls
ZSBwYXVzZWQgaW4gcmF3Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVF
eGVjdXRpb24ocmVzdW1lZCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHJlc3VtZWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLl91
aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2
ZW50cy5Gb3JtYXR0ZWRDaGFuZ2VkLCBkaWRGb3JtYXRQYWdlLCB0aGlzKTsKLSAgICAgICAgICAg
ICAgICBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0cnVlKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkRm9ybWF0UGFnZSgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgc291cmNlRnJhbWUuX3VpU291cmNlQ29kZS5yZW1vdmVF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkZvcm1hdHRlZENo
YW5nZWQsIGRpZEZvcm1hdFBhZ2UsIHRoaXMpOwotICAgICAgICAgICAgICAgIC8vIFRoZXJlIHNo
b3VsZCBiZSBhIGJyZWFrcG9pbnQgaW4gZjEgYWx0aG91Z2ggc2NyaXB0IGlzIHByZXR0eS1wcmlu
dGVkLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHBhdXNl
ZEluRjFBZ2Fpbik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZVdpdGhUaW1lb3V0KCJmMSgpIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIHBhdXNlZEluRjFBZ2FpbihjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGR1bXBCcmVha3BvaW50U2lkZWJhclBhbmUoIndoaWxlIHBhdXNlZCBpbiBwcmV0dHkg
cHJpbnRlZCIpOwotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGUuc2V0
Rm9ybWF0dGVkKGZhbHNlKTsKLSAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFNpZGViYXJQ
YW5lKCJ3aGlsZSBwYXVzZWQgaW4gcmF3Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5yZW1vdmVCcmVha3BvaW50KHNvdXJjZUZyYW1lLCAxMCk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24obmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEJyZWFrcG9pbnRTZXRJbk9yaWdpbmFsQW5kUmVt
b3ZlZEluRm9ybWF0dGVkKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2hvd1NjcmlwdFNvdXJjZSgic2NyaXB0LWZvcm1hdHRlci1icmVha3BvaW50cy5odG1sIiwg
ZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3Jp
cHRTb3VyY2UoZnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc291cmNlRnJh
bWUgPSBmcmFtZTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRk
aW5nIGJyZWFrcG9pbnQuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSwg
Il9hZGRSZXNvbHZlZExvY2F0aW9uIiwgYnJlYWtwb2ludFJlc29sdmVkKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQoc291cmNlRnJhbWUsIDEwLCAiIiwgdHJ1
ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNv
bHZlZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLCAidXBkYXRlTGl2ZUxv
Y2F0aW9ucyIsIGRpZEZvcm1hdFBhZ2UpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJGb3JtYXR0aW5nLiIpOwotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLl91
aVNvdXJjZUNvZGUuc2V0Rm9ybWF0dGVkKHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBkaWRGb3JtYXRQYWdlKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVtb3ZpbmcgYnJlYWtwb2ludC4iKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoc291cmNlRnJhbWUs
IDE3KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVW5mb3JtYXR0
aW5nLiIpOwotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGUuc2V0Rm9y
bWF0dGVkKGZhbHNlKTsKLSAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSBXZWJJbnNw
ZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuX3N0b3JhZ2UuX3NldHRpbmcuZ2V0KCk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoYnJlYWtwb2ludHMubGVuZ3RoLCAw
LCAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgYnJlYWtwb2ludHMgaW4gdGhlIHN0b3JhZ2UuIik7
Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
XSk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wQnJlYWtwb2ludFNpZGViYXJQYW5lKHRpdGxlKQotICAg
IHsKLSAgICAgICAgdmFyIHBhbmVFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRz
LnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLmxpc3RFbGVtZW50Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJCcmVha3BvaW50IHNpZGViYXIgcGFuZSAiICsgdGl0bGUpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChJbnNwZWN0b3JUZXN0LnRleHRDb250ZW50V2l0
aExpbmVCcmVha3MocGFuZUVsZW1lbnQpKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotCi08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoZSBzY3JpcHQgZm9y
bWF0dGluZyBpcyB3b3JraW5nIGZpbmUgd2l0aCBicmVha3BvaW50cy4KLTwvcD4KLQotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdC1mb3JtYXR0ZXItY29uc29sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1jb25zb2xlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWVlMGZiMTkwNDIzZWNmYWI1OTk0MTM1NDY4ZjUyYWFh
MzBkMjQ0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1jb25zb2xlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxMDogVGVzdCBtZXNzYWdlLgotVGVzdHMgdGhhdCB0aGUgc2NyaXB0IGZvcm1hdHRp
bmcgY2hhbmdlcyBjb25zb2xlIGxpbmUgbnVtYmVycy4KLQotRGVidWdnZXIgd2FzIGVuYWJsZWQu
Ci0KLVJ1bm5pbmc6IHRlc3RDb25zb2xlTWVzc2FnZXNGb3JGb3JtYXR0ZWRTY3JpcHRzCi1zY3Jp
cHQtZm9ybWF0dGVyLWNvbnNvbGUuaHRtbDoxMAotUHJlLWZvcm1hdCByb3cgbWVzc2FnZSBsaXN0
OgotWyI5Il0KLVsiOSJdCi1zY3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUuaHRtbDoxMwotUG9zdC1m
b3JtYXQgcm93IG1lc3NhZ2UgbGlzdDoKLVsiMTIiXQotWyIxMiJdCi1EZWJ1Z2dlciB3YXMgZGlz
YWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHQtZm9ybWF0dGVyLWNvbnNvbGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zY3JpcHQtZm9ybWF0dGVyLWNvbnNvbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZGZjZTY2YTg3YmIzMTcyN2I3N2VjYTg2ZWE0NjZmZGNhY2E2NWRkMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1jb25zb2xlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4K
LQotPHNjcmlwdD4KLQotZnVuY3Rpb24gZjEoKQotewotICAgIGNvbnNvbGUuZXJyb3IoIlRlc3Qg
bWVzc2FnZS4iKTsKLX0KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgdmFyIHBhbmVs
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzOwotICAgIHZhciB3b3JrZXIgPSBuZXcgV29y
a2VyKCJTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMiKTsKLSAgICB2YXIgc291cmNlRnJhbWU7Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rp
b24gdGVzdENvbnNvbGVNZXNzYWdlc0ZvckZvcm1hdHRlZFNjcmlwdHMobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJzY3JpcHQtZm9y
bWF0dGVyLWNvbnNvbGUuaHRtbCIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKGZyYW1lKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHNvdXJjZUZyYW1lID0gZnJhbWU7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZjEoKSIsIGRpZEV2YWx1YXRlKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkRXZhbHVhdGUoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGR1bXBDb25zb2xlTWVzc2FnZVVSTHMoKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUHJlLWZvcm1hdCByb3cgbWVzc2FnZSBsaXN0OiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KEpTT04uc3RyaW5naWZ5
KE9iamVjdC5rZXlzKHNvdXJjZUZyYW1lLl9yb3dNZXNzYWdlcykpKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhzb3Vy
Y2VGcmFtZS5fbWVzc2FnZUJ1YmJsZXMpKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLCAidXBkYXRl
TGl2ZUxvY2F0aW9ucyIsIGRpZEZvcm1hdExpbmtUZXh0KTsKLSAgICAgICAgICAgICAgICBzb3Vy
Y2VGcmFtZS5fdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0cnVlKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkRm9ybWF0TGlua1RleHQoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGR1bXBDb25zb2xlTWVzc2FnZVVSTHMoKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUG9zdC1mb3JtYXQgcm93IG1lc3NhZ2UgbGlz
dDoiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChKU09OLnN0cmlu
Z2lmeShPYmplY3Qua2V5cyhzb3VyY2VGcmFtZS5fcm93TWVzc2FnZXMpKSk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMo
c291cmNlRnJhbWUuX21lc3NhZ2VCdWJibGVzKSkpOwotICAgICAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotCi0gICAgZnVuY3Rpb24gZHVtcENv
bnNvbGVNZXNzYWdlVVJMcygpCi0gICAgewotICAgICAgICB2YXIgbWVzc2FnZXMgPSBXZWJJbnNw
ZWN0b3IuY29uc29sZS5tZXNzYWdlczsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNz
YWdlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBtZXNzYWdlc1tp
XS50b01lc3NhZ2VFbGVtZW50KCk7Ci0gICAgICAgICAgICB2YXIgYW5jaG9yID0gZWxlbWVudC5x
dWVyeVNlbGVjdG9yKCIuY29uc29sZS1tZXNzYWdlLXVybCIpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoYW5jaG9yLnRleHRDb250ZW50KTsKLSAgICAgICAgfQotICAgIH0K
LX0KLQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+VGVzdHMgdGhhdCB0aGUgc2NyaXB0IGZvcm1hdHRpbmcgY2hhbmdlcyBjb25zb2xlIGxpbmUg
bnVtYmVycy4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZWU3Y2Y5YWQwZWY4ZGI0
NGU3YzhjOTJjYzc3ODVjYzExZjczNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlw
cGV0LW1vZGVsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRl
c3RzIHNjcmlwdCBzbmlwcGV0IG1vZGVsLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVu
bmluZzogdGVzdENyZWF0ZUFuZFJlbmFtZQotU25pcHBldCBjcmVhdGVkLgotU25pcHBldCB1aVNv
dXJjZUNvZGUgdXJsIGlzIGNvcnJlY3QuCi0KLVJ1bm5pbmc6IHRlc3RFdmFsdWF0ZQotTGFzdCBl
dmFsdWF0aW9uIHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6IHNuaXBwZXRzOi8vLzFfMQotU25pcHBl
dCBzY3JpcHQgYWRkZWQsIHNvdXJjZVVSTCA9IHNuaXBwZXRzOi8vLzFfMQotU25pcHBldCBleGVj
dXRpb24gcmVzdWx0OiB1bmRlZmluZWQKLUxhc3QgZXZhbHVhdGlvbiBzb3VyY2UgdXJsIGZvciBz
bmlwcGV0OiBzbmlwcGV0czovLy8yXzIKLVNuaXBwZXQgc2NyaXB0IGFkZGVkLCBzb3VyY2VVUkwg
PSBzbmlwcGV0czovLy8yXzIKLVNuaXBwZXQgZXhlY3V0aW9uIHJlc3VsdDogZnVuY3Rpb24gZG9l
c05vdGhpbmcoKSB7Ci0gICAgdmFyICBpID0gMisyOwotfQotTGFzdCBldmFsdWF0aW9uIHNvdXJj
ZSB1cmwgZm9yIHNuaXBwZXQ6IHNuaXBwZXRzOi8vLzFfMwotU25pcHBldCBzY3JpcHQgYWRkZWQs
IHNvdXJjZVVSTCA9IHNuaXBwZXRzOi8vLzFfMwotU25pcHBldCBleGVjdXRpb24gcmVzdWx0OiB1
bmRlZmluZWQKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM3ZWFiZWUwMDVkN2FlMGFlMjVkMmVjOTM5OGRiMGNk
ZWRkMzQ5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlv
biByZXNldFNuaXBwZXRzU2V0dGluZ3MoKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNj
cmlwdFNuaXBwZXRNb2RlbC5fc25pcHBldFN0b3JhZ2UucmVzZXQoKTsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5fbGFzdFNuaXBwZXRFdmFsdWF0aW9uSW5kZXhTZXR0
aW5nLnNldCgwKTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2Ugc25pcHBldHMg
YXJlIHRha2VuIG91dCBvZiBleHBlcmltZW50cy4KLSAgICBXZWJJbnNwZWN0b3IuZXhwZXJpbWVu
dHNTZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQgPSB7fTsKLSAgICBXZWJJbnNwZWN0b3IuZXhwZXJp
bWVudHNTZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQuaXNFbmFibGVkID0gZnVuY3Rpb24oKSB7IHJl
dHVybiB0cnVlOyB9OwotICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtz
cGFjZSgpOwotICAgIHZhciBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLnByb2pl
Y3RUeXBlcy5TbmlwcGV0cyk7Ci0gICAgdmFyIHdvcmtzcGFjZUNvbnRyb2xsZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLldvcmtzcGFjZUNvbnRyb2xsZXIod29ya3NwYWNlKTsKLSAgICBXZWJJbnNwZWN0
b3Iuc2NyaXB0U25pcHBldE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9k
ZWwod29ya3NwYWNlLCBzbmlwcGV0V29ya3NwYWNlUHJvdmlkZXIpOwotICAgIEluc3BlY3RvclRl
c3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0Q3JlYXRlQW5k
UmVuYW1lKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlc2V0U25pcHBldHNTZXR0aW5n
cygpOwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IFdlYkluc3BlY3Rvci5zY3JpcHRT
bmlwcGV0TW9kZWwuY3JlYXRlU2NyaXB0U25pcHBldCgpOwotICAgICAgICAgICAgdmFyIHNuaXBw
ZXROYW1lID0gIlRlc3RTbmlwcGV0IiArIE1hdGgucmFuZG9tKCk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBjcmVhdGVkLiIpOwotICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHVpU291cmNl
Q29kZSwgc25pcHBldE5hbWUpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlbmFtZShzbmlw
cGV0TmFtZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCB3b3Jr
c3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aCwgIk9ubHkgb25lIHNuaXBwZXQgdWlTb3VyY2VD
b2RlIHNob3VsZCBiZSBwcmVzZW50LiIpOwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IHdvcmtzcGFjZS51aVNvdXJjZUNvZGVzKClbMF07Ci0gICAgICAgICAgICBpZiAodWlTb3VyY2VD
b2RlLm9yaWdpblVSTCgpLmluZGV4T2Yoc25pcHBldE5hbWUpID09PSAtMSkKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBl
dCB1aVNvdXJjZUNvZGUgdXJsIGlzIGNvcnJlY3QuIik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEV2YWx1YXRlKG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJlc2V0U25pcHBldHNTZXR0aW5ncygpOwotCi0gICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlMSA9IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuY3JlYXRl
U2NyaXB0U25pcHBldCgpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRN
b2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHVpU291cmNlQ29kZTEsICJTbmlwcGV0MSIpOwotICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlMS5yZW5hbWUoIlNuaXBwZXQxIik7Ci0gICAgICAgICAgICB2
YXIgY29udGVudCA9ICIiOwotICAgICAgICAgICAgY29udGVudCArPSAiLy8gVGhpcyBzbmlwcGV0
IGRvZXMgbm90aGluZy5cbiI7Ci0gICAgICAgICAgICBjb250ZW50ICs9ICJ2YXIgaSA9IDIrMjtc
biI7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUxLnNldFdvcmtpbmdDb3B5KGNvbnRlbnQpOwot
Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMiA9IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlw
cGV0TW9kZWwuY3JlYXRlU2NyaXB0U25pcHBldCgpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHVpU291cmNlQ29kZTIsICJT
bmlwcGV0MiIpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlMi5yZW5hbWUoIlNuaXBwZXQyIik7
Ci0gICAgICAgICAgICBjb250ZW50ID0gIiI7Ci0gICAgICAgICAgICBjb250ZW50ICs9ICIvLyBU
aGlzIHNuaXBwZXQgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nIGFuZCByZXR1
cm5zIGl0LlxuIjsKLSAgICAgICAgICAgIGNvbnRlbnQgKz0gImZ1bmN0aW9uIGRvZXNOb3RoaW5n
KCkge1xuIjsKLSAgICAgICAgICAgIGNvbnRlbnQgKz0gIiAgICB2YXIgIGkgPSAyKzI7XG4iOwot
ICAgICAgICAgICAgY29udGVudCArPSAifTtcbiI7Ci0gICAgICAgICAgICBjb250ZW50ICs9ICJk
b2VzTm90aGluZztcbiI7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUyLnNldFdvcmtpbmdDb3B5
KGNvbnRlbnQpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBldmFsdWF0ZVNuaXBwZXRBbmREdW1w
RXZhbHVhdGlvbkRldGFpbHModWlTb3VyY2VDb2RlLCBjYWxsYmFjaykKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNu
aXBwZXRTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSwgImFkZFNjcmlwdCIsIGR1bXBTY3JpcHQpOwot
ICAgICAgICAgICAgICAgIC8vIEpTQyBkb2VzIG5vdCBzdXBwb3J0IGNvbXBpbGUtYW5kLXJ1biBm
b3Igc25pcHBldCBldmFsdWF0aW9uLCBzbyBkaWZmZXJlbnQgcGxhdGZvcm1zIGhhdmUgc2xpZ2h0
bHkgZGlmZmVyZW50IGNvZGVmbG93IGhlcmUsIGhlbmNlIHR3byBzbmlmZmVycy4KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZSwgIl9wcmludFJlc3VsdCIsIGR1bXBSZXN1bHQpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVs
LnByb3RvdHlwZSwgIl9wcmludFJ1blNjcmlwdFJlc3VsdCIsIGR1bXBSZXN1bHQpOwotICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuZXZhbHVhdGVTY3JpcHRT
bmlwcGV0KHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIGV2YWx1YXRpb25Tb3Vy
Y2VVUkwgPSBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLl9ldmFsdWF0aW9uU291cmNl
VVJMKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIHNuaXBwZXRJZCA9IFdlYklu
c3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZS5nZXQo
dWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
TGFzdCBldmFsdWF0aW9uIHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6ICIgKyBldmFsdWF0aW9uU291
cmNlVVJMKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhzbmlw
cGV0SWQsIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuX3NuaXBwZXRJZEZvclNvdXJj
ZVVSTChldmFsdWF0aW9uU291cmNlVVJMKSwgIlNuaXBwZXQgY2FuIG5vdCBiZSBpZGVudGlmaWVk
IGJ5IGl0cyBldmFsdWF0aW9uIHNvdXJjZVVSTC4iKTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGR1bXBTY3JpcHQoc2NyaXB0KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgc2NyaXB0IGFkZGVkLCBzb3Vy
Y2VVUkwgPSAiICsgc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAgICAgZnVuY3Rpb24gZHVtcFJlc3VsdChyZXN1bHQsIHdhc1Rocm93bikKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTbmlwcGV0IGV4ZWN1dGlvbiByZXN1bHQ6ICIgKyByZXN1bHQuZGVzY3JpcHRpb24pOwotICAg
ICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25EZXRh
aWxzKHVpU291cmNlQ29kZTEsIHN0ZXAyKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBF
dmFsdWF0aW9uRGV0YWlscyh1aVNvdXJjZUNvZGUyLCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBldmFsdWF0ZVNuaXBwZXRBbmREdW1wRXZhbHVhdGlvbkRldGFpbHModWlTb3VyY2VDb2Rl
MSwgbmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHNjcmlwdCBz
bmlwcGV0IG1vZGVsLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJhMjk2MmIyMzRmZTgwNTc4NGNhMDM0Y2RjOGJm
NWZjMmU2MjAwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1UZXN0cyB0aGF0IHNjcmlwdHMgcGFu
ZWwgVUkgZWxlbWVudHMgd29yayBhcyBpbnRlbmRlZC4KLQotCi1SdW5uaW5nOiB0ZXN0SW5pdGlh
bExvYWQKLUR1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICAobm8gZG9t
YWluKQotICAgIGJhci5qcwotICAgIGJhei5qcwotICAgIGZvby5qcwotICAgIGZvb2Jhci5qcwot
RHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKLQotU291cmNl
IHJlcXVlc3RlZCBmb3IgYmF6LmpzCi0KLVJ1bm5pbmc6IHRlc3RSZXNldAotU291cmNlIHJlcXVl
c3RlZCBmb3IgYmF6LmpzCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoK
LSAgKG5vIGRvbWFpbikKLSAgICBiYXIuanMKLSAgICBiYXouanMKLSAgICBmb28uanMKLUR1bXBp
bmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0KLUR1bXBpbmcgU2Ny
aXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdD
b250ZW50IHNjcmlwdHMnIHRhYjoKLQotRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRz
JyB0YWI6Ci0gIChubyBkb21haW4pCi0gICAgYmFyLmpzCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0
b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotCi0KLVJ1bm5pbmc6IHRlc3REZWJ1Z2dlclVJU291
cmNlQ29kZUFkZGVkQW5kUmVtb3ZlZAotRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRz
JyB0YWI6Ci0gIChubyBkb21haW4pCi0gICAgZm9vLmpzCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0
b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1Nj
cmlwdHMnIHRhYjoKLSAgKG5vIGRvbWFpbikKLSAgICBmb28uanMKLSAgICBzb3VyY2UuanMKLUR1
bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxYjIxNGQ1MTY5OTI1ZDhkYzQzNzNmM2U5NzY5ZDRi
ZWY1NjI1OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDExMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3Bh
Y2UtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwotICAgIEluc3BlY3RvclRlc3QuY3Jl
YXRlV29ya3NwYWNlKHRydWUpOwotCi0gICAgZnVuY3Rpb24gY3JlYXRlQ29udGVudFByb3ZpZGVy
KHVybCkKLSAgICB7Ci0gICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVj
dG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlcihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3Jp
cHQsICIiLCAidGV4dC9qYXZhc2NyaXB0Iik7Ci0gICAgICAgIGNvbnRlbnRQcm92aWRlci5yZXF1
ZXN0Q29udGVudCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgICAgICB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU291cmNlIHJlcXVlc3RlZCBmb3IgIiArIHVybCk7Ci0g
ICAgICAgICAgICBjYWxsYmFjaygiIik7Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiBjb250
ZW50UHJvdmlkZXI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY3JlYXRlTW9ja1dvcmtzcGFjZSgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSh0cnVlKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0RGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIoSW5zcGVjdG9yVGVzdC50ZXN0V29y
a3NwYWNlLCBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzLkRlYnVnZ2VyKTsKLSAgICAgICAgcmV0
dXJuIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBh
ZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsIHVybCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNw
ZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCh1cmws
IGNyZWF0ZUNvbnRlbnRQcm92aWRlcih1cmwpLCBmYWxzZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gYWRkRGVidWdnZXJGaWxlKHdvcmtzcGFjZSwgdXJsKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IEluc3BlY3RvclRlc3QudGVzdERlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVS
TCh1cmwsIGNyZWF0ZUNvbnRlbnRQcm92aWRlcih1cmwpLCBmYWxzZSk7Ci0gICAgfQotCi0gICAg
SW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0SW5pdGlh
bExvYWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHdvcmtzcGFjZSA9IGNyZWF0
ZU1vY2tXb3Jrc3BhY2UoKTsKLQotICAgICAgICAgICAgYWRkTmV0d29ya0ZpbGUod29ya3NwYWNl
LCAiZm9vYmFyLmpzIik7Ci0KLSAgICAgICAgICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsKHdvcmtzcGFjZSk7Ci0gICAgICAgICAgICBwYW5lbC5zaG93KCk7Ci0K
LSAgICAgICAgICAgIGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwgImZvby5qcyIpOwotICAgICAg
ICAgICAgYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCAiYmFyLmpzIik7Ci0gICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCAiYmF6LmpzIik7Ci0g
ICAgICAgICAgICBwYW5lbC5fbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNv
ZGUpOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBh
bmVsLl9uYXZpZ2F0b3IpOwotCi0gICAgICAgICAgICAvLyBTZWxlY3QgImJhei5qcyIuCi0gICAg
ICAgICAgICBwYW5lbC5fc2hvd0ZpbGUod29ya3NwYWNlLnVpU291cmNlQ29kZUZvck9yaWdpblVS
TCgiYmF6LmpzIikpOwotICAgICAgICAgICAgcGFuZWwuZGV0YWNoKCk7Ci0KLSAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVzZXQobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgdmFyIHdvcmtzcGFjZSA9IGNyZWF0ZU1vY2tXb3Jrc3Bh
Y2UoKTsKLSAgICAgICAgICAgIHZhciB3b3Jrc3BhY2VDb250cm9sbGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2VDb250cm9sbGVyKHdvcmtzcGFjZSk7Ci0gICAgICAgICAgICB2YXIgcGFu
ZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCh3b3Jrc3BhY2UpOwotICAgICAgICAg
ICAgcGFuZWwuc2hvdygpOwotCi0gICAgICAgICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2Us
ICJmb28uanMiKTsKLSAgICAgICAgICAgIGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwgImJhci5q
cyIpOwotICAgICAgICAgICAgYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCAiYmF6LmpzIik7Ci0K
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25h
dmlnYXRvcik7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3Bh
Y2VQcm92aWRlci5yZXNldCgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0
c05hdmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJiYXIuanMiKTsKLSAgICAgICAgICAgIHBh
bmVsLl9uYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0b3Ip
OwotCi0gICAgICAgICAgICBwYW5lbC5kZXRhY2goKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAg
ICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RGVidWdnZXJVSVNvdXJjZUNvZGVBZGRl
ZEFuZFJlbW92ZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHdvcmtzcGFjZSA9
IGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKTsKLSAgICAgICAgICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsKHdvcmtzcGFjZSk7Ci0gICAgICAgICAgICBwYW5lbC5zaG93
KCk7Ci0KLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBhZGROZXR3b3JrRmlsZSh3b3Jr
c3BhY2UsICJmb28uanMiKTsKLSAgICAgICAgICAgIHZhciBkZWJ1Z2dlclVJU291cmNlQ29kZSA9
IGFkZERlYnVnZ2VyRmlsZSh3b3Jrc3BhY2UsICJjb21waWxlZC5qcyIpOwotICAgICAgICAgICAg
cGFuZWwuX25hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKLSAgICAg
ICAgICAgIHBhbmVsLl9uYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKGRlYnVnZ2VyVUlTb3Vy
Y2VDb2RlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3Io
cGFuZWwuX25hdmlnYXRvcik7Ci0KLSAgICAgICAgICAgIC8vIFBsdWcgY29tcGlsZXIgc291cmNl
IG1hcHBpbmcuCi0gICAgICAgICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJzb3VyY2Uu
anMiKTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihw
YW5lbC5fbmF2aWdhdG9yKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfQotICAgIF0p
OwotfTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
VGVzdHMgdGhhdCBzY3JpcHRzIHBhbmVsIFVJIGVsZW1lbnRzIHdvcmsgYXMgaW50ZW5kZWQuPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzA4NTllNTBmZTkxYmU4NjJmNGZjZjNiN2EzMzljM2ZjZTZiYThjNy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDU5ICswLDAgQEAKLVRlc3RzIHNjcmlwdHMgc29ydGluZyBpbiB0aGUgc2Ny
aXB0cyBwYW5lbC4KLQotCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoK
LSAgKG5vIGRvbWFpbikKLSAgYmFyLmNvbQotICBmb28uY29tCi1EdW1waW5nIFNjcmlwdHNOYXZp
Z2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgotICAobm8gZG9tYWluKQotICBleHRlbnNpb24t
bmFtZQotCi1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgKG5vIGRv
bWFpbikKLSAgYmFyLmNvbQotICBmb28uY29tCi0gICAgX2pzL3Byb2R1Y3Rpb24KLSAgICBmb28v
cGF0aAotICAgIGkKLSAgICBibG9jay5qcz9ibG9jaz1mb28KLSAgICBnYS5qcwotICAgIGxlbnRh
LmJhbj9wZz00ODgzJmlmcj0xCi0gICAgbGVudGEuYmFuP3BnPTUzMDkmaWZyPTEKLSAgICB0b3Ax
MDAuamNuPzgwNjc0Ci1EdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycg
dGFiOgotICAobm8gZG9tYWluKQotICBleHRlbnNpb24tbmFtZQotCi1EdW1waW5nIFNjcmlwdHNO
YXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgKG5vIGRvbWFpbikKLSAgICAqTm9uKlVSTCpwYXRo
Ci0gIGJhci5jb20KLSAgICBmb28vcGF0aAotICAgICAgYmFyLmpzP2ZpbGU9YmFyL3p6ei5qcwot
ICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcwotICBmb28uY29tCi0gICAgX2pzL3Byb2R1Y3Rp
b24KLSAgICAgIG1vdG9yLmpzPzEzMDg5Mjc0MzIKLSAgICBmb28vcGF0aAotICAgICAgYmFyLmpz
P2ZpbGU9YmFyL3p6ei5qcwotICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcwotICAgIGkKLSAg
ICAgIGpzCi0gICAgICAgIGpxdWVyeS0xLjUuMS5taW4uanMKLSAgICAgICAganF1ZXJ5LmNvb2tp
ZS5qcwotICAgICAgeGdlbWl1cy5qcwotICAgIGJsb2NrLmpzP2Jsb2NrPWZvbwotICAgIGdhLmpz
Ci0gICAgbGVudGEuYmFuP3BnPTQ4ODMmaWZyPTEKLSAgICBsZW50YS5iYW4/cGc9NTMwOSZpZnI9
MQotICAgIHRvcDEwMC5qY24/ODA2NzQKLUR1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVu
dCBzY3JpcHRzJyB0YWI6Ci0gIChubyBkb21haW4pCi0gICAgKkFub3RoZXIqTm9uKlVSTCpwYXRo
Ci0gIGV4dGVuc2lvbi1uYW1lCi0gICAgZm9sZGVyCi0gICAgICBiYXouanMKLSAgICBiYXIuanMK
LQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1z
b3J0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0
aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkYTRkYWNmYWY5MjY3MjQ4
YzIxZDM1Yjk1ZDAxYzJiNTJhMDhkYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29y
dGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwotICAg
IEluc3BlY3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKHRydWUpOwotICAgIHZhciBwYW5lbCA9IG5l
dyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSk7
Ci0gICAgdmFyIG5hdmlnYXRvciA9IHBhbmVsLl9uYXZpZ2F0b3I7Ci0KLSAgICB2YXIgdWlTb3Vy
Y2VDb2RlcyA9IFtdOwotICAgIGZ1bmN0aW9uIGFkZFVJU291cmNlQ29kZSh1cmwsIGlzQ29udGVu
dFNjcmlwdCkKLSAgICB7Ci0gICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlcihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
Y3JpcHQsICIiLCAidGV4dC9qYXZhc2NyaXB0Iik7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBJbnNwZWN0b3JUZXN0LnRlc3ROZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVS
TCh1cmwsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UsIGlzQ29udGVudFNjcmlwdCk7Ci0gICAgICAg
IHVpU291cmNlQ29kZXMucHVzaCh1aVNvdXJjZUNvZGUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGR1bXBTY3JpcHRzTGlzdCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdh
dG9yKTsKLSAgICAgICAgbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVz
WzBdKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihuYXZpZ2F0
b3IpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyAr
K2kpCi0gICAgICAgICAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29k
ZXNbaV0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKG5hdmln
YXRvcik7Ci0gICAgfQotCi0gICAgdmFyIHNjcmlwdHMgPSBbCi0gICAgICAgICJibG9jay5qcz9i
bG9jaz1mb28iLAotICAgICAgICAiZ2EuanMiLAotICAgICAgICAibGVudGEuYmFuP3BnPTQ4ODMm
aWZyPTEiLAotICAgICAgICAibGVudGEuYmFuP3BnPTUzMDkmaWZyPTEiLAotICAgICAgICAidG9w
MTAwLmpjbj84MDY3NCIsCi0gICAgICAgICJfanMvcHJvZHVjdGlvbi9tb3Rvci5qcz8xMzA4OTI3
NDMyIiwKLSAgICAgICAgImkveGdlbWl1cy5qcyIsCi0gICAgICAgICJpL2pzL2pxdWVyeS0xLjUu
MS5taW4uanMiLAotICAgICAgICAiaS9qcy9qcXVlcnkuY29va2llLmpzIiwKLSAgICAgICAgImZv
by9wYXRoL2Jhci5qcz9maWxlPWJhci96enouanMiLAotICAgICAgICAiZm9vL3BhdGgvZm9vLmpz
P2ZpbGU9YmFyL2FhYS5qcyIgXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVu
Z3RoOyArK2kpCi0gICAgICAgIGFkZFVJU291cmNlQ29kZSgiaHR0cDovL2Zvby5jb20vIiArIHNj
cmlwdHNbaV0pOwotCi0gICAgdmFyIHNjcmlwdHMyID0gWwotICAgICAgICAiZm9vL3BhdGgvYmFy
LmpzP2ZpbGU9YmFyL3p6ei5qcyIsCi0gICAgICAgICJmb28vcGF0aC9mb28uanM/ZmlsZT1iYXIv
YWFhLmpzIiBdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0czIubGVuZ3RoOyArK2kp
Ci0gICAgICAgIGFkZFVJU291cmNlQ29kZSgiaHR0cDovL2Jhci5jb20vIiArIHNjcmlwdHMyW2ld
KTsKLSAgICBhZGRVSVNvdXJjZUNvZGUoIipOb24qVVJMKnBhdGgiKTsKLQotICAgIHZhciBleHRl
bnNpb25zID0gWwotICAgICAgICAiZXh0ZW5zaW9uLXNjaGVtYTovL2V4dGVuc2lvbi1uYW1lL2Jh
ci5qcyIsCi0gICAgICAgICJleHRlbnNpb24tc2NoZW1hOi8vZXh0ZW5zaW9uLW5hbWUvZm9sZGVy
L2Jhei5qcyIgXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4dGVuc2lvbnMubGVuZ3RoOyAr
K2kpCi0gICAgICAgIGFkZFVJU291cmNlQ29kZShleHRlbnNpb25zW2ldLCB0cnVlKTsKLSAgICBh
ZGRVSVNvdXJjZUNvZGUoIipBbm90aGVyKk5vbipVUkwqcGF0aCIsIHRydWUpOwotICAgIGR1bXBT
Y3JpcHRzTGlzdCgpOwotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3Nj
cmlwdD4KLQotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBz
Y3JpcHRzIHNvcnRpbmcgaW4gdGhlIHNjcmlwdHMgcGFuZWwuCi08L3A+Ci08L2JvZHk+Ci0KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZWxlY3Rl
ZC1jYWxsLWZyYW1lLWFmdGVyLWZvcm1hdHRpbmctc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZWxlY3RlZC1jYWxsLWZyYW1lLWFmdGVyLWZvcm1h
dHRpbmctc291cmNlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTJkZDkyMjIwY2ViN2M0MjE2YjZlMGViZjU5YTA3N2U1YTE1MzcyOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2VsZWN0ZWQtY2FsbC1mcmFtZS1hZnRlci1mb3JtYXR0aW5nLXNvdXJjZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVRlc3RzIHNlbGVjdGVkIGNhbGwg
ZnJhbWUgZG9lcyBub3QgY2hhbmdlIHdoZW4gcHJldHR5LXByaW50IGlzIHRvZ2dsZWQuCi0KLUJ1
ZyA3MDkwNgotRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rp
b24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4K
LURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NlbGVjdGVkLWNhbGwtZnJhbWUtYWZ0ZXItZm9ybWF0dGluZy1zb3VyY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZWxlY3RlZC1jYWxsLWZyYW1l
LWFmdGVyLWZvcm1hdHRpbmctc291cmNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDJiMmZhMTM4ODk5YjI3ZTUwMjI5MDQxODE1YzhmYTZlMDQ1NTJlYWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NlbGVjdGVkLWNhbGwtZnJhbWUtYWZ0ZXItZm9ybWF0dGluZy1zb3VyY2UuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RGdW5j
dGlvbigpCi17Ci0gICAgcmV0dXJuIHRlc3RGdW5jdGlvbjIoKTsKLX0KLQotZnVuY3Rpb24gdGVz
dEZ1bmN0aW9uMigpCi17Ci0gICAgdmFyIHggPSBNYXRoLnNxcnQoMTApOwotICAgIGRlYnVnZ2Vy
OwotICAgIHJldHVybiB4OwotfQotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNw
ZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLSAgICB2YXIgcGFuZWwgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHM7Ci0gICAgdmFyIHNvdXJjZUZyYW1lOwotCi0gICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgdmFyIHRlc3ROYW1lID0gV2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFBhZ2VVUkw7Ci0gICAgICAgIHRlc3ROYW1lID0gdGVzdE5hbWUuc3Vic3RyaW5n
KHRlc3ROYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
aG93U2NyaXB0U291cmNlKHRlc3ROYW1lLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDIoZnJhbWUpCi0gICAgewotICAgICAgICBzb3VyY2VGcmFtZSA9IGZyYW1lOyAKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoc3RlcDMp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsgcmV0dXJuOwotICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5zZXRTZWxlY3RlZENhbGxGcmFtZShXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5kZWJ1Z2dlclBhdXNlZERldGFpbHMoKS5jYWxsRnJhbWVzWzFdKTsKLSAgICAgICAg
c291cmNlRnJhbWUuX3RvZ2dsZUZvcm1hdFNvdXJjZShzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
InRlc3RGdW5jdGlvbiIsIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNlbGVjdGVkQ2FsbEZy
YW1lKCkuZnVuY3Rpb25OYW1lKTsKLSAgICAgICAgc291cmNlRnJhbWUuX3RvZ2dsZUZvcm1hdFNv
dXJjZShzdGVwNSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBzZWxl
Y3RlZCBjYWxsIGZyYW1lIGRvZXMgbm90IGNoYW5nZSB3aGVuIHByZXR0eS1wcmludCBpcyB0b2dn
bGVkLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MDkwNiI+QnVnIDcwOTA2PC9hPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXQtYnJlYWtwb2ludC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZmRlYTAzMzJiYTNlOWNkMjQ4ZDdl
OWQ2ODY2NzQ2MzlkYzJjYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldC1icmVha3BvaW50LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVRlc3RzIHNldHRpbmcg
YnJlYWtwb2ludHMuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0U2V0
QnJlYWtwb2ludAotU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uCi1TZXQgdGltZXIgZm9yIHRlc3Qg
ZnVuY3Rpb24uCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkg
dGVzdEZ1bmN0aW9uIChzZXQtYnJlYWtwb2ludC5odG1sOjE3KQotCi1EdW1wIGJyZWFrcG9pbnQg
c2lkZWJhciBwYW5lOgotCi0gICAgc2V0LWJyZWFrcG9pbnQuaHRtbDoxNwotICAgIHZhciB4ID0g
TWF0aC5zcXJ0KDEwKTsKLQotRHVtcCBicmVha3BvaW50IHNpZGViYXIgcGFuZToKLQotU2NyaXB0
IGV4ZWN1dGlvbiByZXN1bWVkLgotCi1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlTGFz
dExpbmUKLUNhbGwgc3RhY2s6Ci0gICAgMCkgb25lTGluZVRlc3RGdW5jdGlvbiAoc2V0LWJyZWFr
cG9pbnQuaHRtbDo3KQotCi1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlTGFzdExpbmUy
Ci1DYWxsIHN0YWNrOgotICAgIDApIG9uZUxpbmVUZXN0RnVuY3Rpb24yIChzZXQtYnJlYWtwb2lu
dC5odG1sOjExKQotCi1SdW5uaW5nOiB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlU2FtZUxpbmUKLURl
YnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldC1icmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0LWJyZWFrcG9pbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzA2ODllZjE1OWQ1ZGY4YjE1ZWM4ZjRkZjdjYjA1Njc1OTY5MGEyNi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0LWJyZWFrcG9pbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1
bmN0aW9uIG9uZUxpbmVUZXN0RnVuY3Rpb24oKSB7IHJldHVybiAwOyB9Ci08L3NjcmlwdD4KLQot
PHNjcmlwdD4KLWZ1bmN0aW9uIG9uZUxpbmVUZXN0RnVuY3Rpb24yKCkgeyByZXR1cm4gMDsgfTwv
c2NyaXB0PgotCi08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQotewotICAgIHZh
ciB4ID0gTWF0aC5zcXJ0KDEwKTsKLSAgICByZXR1cm4geDsKLX0KLQotdmFyIHRlc3QgPSBmdW5j
dGlvbigpCi17Ci0gICAgdmFyIGN1cnJlbnRTb3VyY2VGcmFtZTsKLSAgICBJbnNwZWN0b3JUZXN0
LnNldFF1aWV0KHRydWUpOwotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUo
WwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QnJlYWtwb2ludChuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoInNldC1icmVha3BvaW50
Lmh0bWwiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlk
U2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBjdXJyZW50U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KGN1cnJlbnRTb3VyY2VGcmFt
ZSwgMTYsICIiLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RG
dW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZChkaWRQYXVzZSk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZFBhdXNlKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBleGVjdXRpb24g
cGF1c2VkLiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJh
Y2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTaWRlYmFyUGFu
ZSgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihjdXJyZW50U291
cmNlRnJhbWUsICJfcmVtb3ZlQnJlYWtwb2ludERlY29yYXRpb24iLCBicmVha3BvaW50UmVtb3Zl
ZCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZW1vdmVCcmVha3BvaW50KGN1cnJl
bnRTb3VyY2VGcmFtZSwgMTYpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBicmVha3BvaW50UmVtb3ZlZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24oZGlkUmVzdW1lKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVzdW1lKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBkdW1wQnJlYWtwb2ludFNpZGViYXJQYW5lKCkKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLiIpOwotICAgICAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlTGFzdExpbmUobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJzZXQtYnJlYWtwb2lu
dC5odG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRp
ZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgY3VycmVudFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KGN1cnJlbnRTb3VyY2VGcmFtZSwgNiwgIiIsIHRy
dWUpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKGRpZFBh
dXNlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRU
aW1lb3V0KG9uZUxpbmVUZXN0RnVuY3Rpb24sIDApIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZFBhdXNlKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoY3VycmVudFNv
dXJjZUZyYW1lLCA2KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1
dGlvbihuZXh0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biB0ZXN0U2V0QnJlYWtwb2ludE9uVGhlTGFzdExpbmUyKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic2V0LWJyZWFrcG9pbnQuaHRt
bCIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93
U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGN1cnJlbnRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2V0QnJlYWtwb2ludChjdXJyZW50U291cmNlRnJhbWUsIDEwLCAiIiwgdHJ1ZSk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQoZGlkUGF1c2Up
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVv
dXQob25lTGluZVRlc3RGdW5jdGlvbjIsIDApIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGRpZFBhdXNlKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVzKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoY3VycmVudFNvdXJj
ZUZyYW1lLCAxMCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRp
b24obmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdFNldEJyZWFrcG9pbnRPblRoZVNhbWVMaW5lKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIERlYnVnZ2VyQWdlbnQuc2V0QnJlYWtwb2ludEJ5VXJsKDEsICJmb28uanMiLCB1bmRlZmlu
ZWQsIDIsIHt9LCBkaWRTZXRCcmVha3BvaW50KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlk
U2V0QnJlYWtwb2ludChlcnJvciwgYnJlYWtwb2ludElkKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghZXJyb3IpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSghIWJyZWFrcG9pbnRJZCk7Ci0gICAgICAgICAg
ICAgICAgRGVidWdnZXJBZ2VudC5zZXRCcmVha3BvaW50QnlVcmwoMSwgImZvby5qcyIsIHVuZGVm
aW5lZCwgMiwge30sIGRpZFNldEJyZWFrcG9pbnRBZ2Fpbik7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZFNldEJyZWFrcG9pbnRBZ2FpbihlcnJvciwgYnJlYWtwb2lu
dElkKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
VHJ1ZSghIWVycm9yKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUo
IWJyZWFrcG9pbnRJZCk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wQnJlYWtwb2ludFNpZGViYXJQ
YW5lKCkKLSAgICB7Ci0gICAgICAgIHZhciBwYW5lRWxlbWVudCA9IFdlYkluc3BlY3Rvci5wYW5l
bHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50cy5saXN0RWxlbWVudAotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJEdW1wIGJyZWFrcG9pbnQgc2lkZWJhciBwYW5lOiIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdChJbnNwZWN0b3JUZXN0LnRleHRDb250ZW50V2l0aExpbmVCcmVha3Mo
cGFuZUVsZW1lbnQpKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHNldHRpbmcgYnJlYWtwb2ludHMuCi08L3A+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zb3VyY2UtZnJhbWUtY291bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMjdiZDdhOWI2YTJmYjc0NGUyNjJiMjNjOTZhZDlhMmNh
YmI4NzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVRlc3RzIHRoYXQgc2NyaXB0cyBwYW5l
bCBkb2VzIG5vdCBjcmVhdGUgdG9vIG1hbnkgc291cmNlIGZyYW1lcy4KLQotRGVidWdnZXIgd2Fz
IGVuYWJsZWQuCi0KLVJ1bm5pbmc6IHRlc3RTb3VyY2VGcmFtZXNDb3VudAotUGFnZSByZWxvYWRl
ZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkNTFlNGY4YjQxNTExMmY5YzY5NWI4OGZmY2FhYmNmYjc1YzVlZTRjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUtY291bnQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDkzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JpcHQxLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2NyaXB0Mi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NjcmlwdDMuanMiPjwvc2NyaXB0PgotCi08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFNvdXJjZUZyYW1lc0NvdW50KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0czsKLSAgICAgICAgICAgIHZh
ciBzZWxlY3QgPSBwYW5lbC5fbmF2aWdhdG9yLl9maWxlc1NlbGVjdEVsZW1lbnQ7Ci0gICAgICAg
ICAgICB2YXIgc291cmNlRnJhbWVDb3VudCA9IDA7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2hvd1NjcmlwdFNvdXJjZSgic291cmNlLWZyYW1lLWNvdW50Lmh0bWwiLCBzdGVwMik7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoInNjcmlwdDEuanMiLCBzdGVwMyk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoInNj
cmlwdDIuanMiLCBkaWRTaG93U2NyaXB0U291cmNlcyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VzKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB2YXIgYWxyZWFkeVNob3duVVJMcyA9IHt9OwotICAgICAgICAgICAgICAg
IGZ1bmN0aW9uIGRpZENyZWF0ZVNvdXJjZUZyYW1lKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeVNob3duVVJMc1t0aGlzLl91aVNvdXJjZUNvZGUu
b3JpZ2luVVJMKCldKQotICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlRnJhbWVDb3VudCAr
PSAxOwotICAgICAgICAgICAgICAgICAgICBhbHJlYWR5U2hvd25VUkxzW3RoaXMuX3VpU291cmNl
Q29kZS5vcmlnaW5VUkwoKV0gPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSwgIndhc1Nob3duIiwgZGlkQ3JlYXRlU291cmNlRnJhbWUsIHRydWUpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShkaWRSZWxvYWQpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRSZWxvYWQoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic2NyaXB0My5q
cyIsIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2Fpbik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2FpbigpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHBhbmVsLl9lZGl0b3JDb250
YWluZXIudmlzaWJsZVZpZXcuX3VpU291cmNlQ29kZS5vcmlnaW5VUkwoKS5pbmRleE9mKCJzY3Jp
cHQzLmpzIikgIT09IC0xKTsKLSAgICAgICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgbWF4
aW11bSAzIHNvdXJjZSBmcmFtZXMgc2hvd246Ci0gICAgICAgICAgICAgICAgLy8gIC0gZmlyc3Qg
b25lIGlzIHRoZSBmaXJzdCBzaG93biAoZmlyc3QgdGFiIGFkZGVkKQotICAgICAgICAgICAgICAg
IC8vICAtIHNlY29uZCBvbmUgaXMgdGhlIGxhc3Qgdmlld2VkICgic2NyaXB0Mi5qcyIpCi0gICAg
ICAgICAgICAgICAgLy8gIC0gdGhpcmQgb25lIGlzIGV4cGxpY2l0bHkgc2VsZWN0ZWQgc2NyaXB0
My5qcy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCBz
b3VyY2VGcmFtZUNvdW50IDw9IDMsICJ0b28gbWFueSBzb3VyY2UgZnJhbWVzIGNyZWF0ZWQgYWZ0
ZXIgcGFnZSByZWxvYWQiKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0PgotZnVuY3Rp
b24gc2Vjb25kSW5saW5lZFNjcmlwdEluUGFnZSgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIHRoaXJkSW5saW5lZFNjcmlwdEluUGFnZSgpCi17
Ci0gICAgcmV0dXJuIDA7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdD4KLWZ1bmN0aW9uIGZvdXJ0
aElubGluZWRTY3JpcHRJblBhZ2UoKQotewotICAgIHJldHVybiAwOwotfQotPC9zY3JpcHQ+Ci0K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCBzY3Jp
cHRzIHBhbmVsIGRvZXMgbm90IGNyZWF0ZSB0b28gbWFueSBzb3VyY2UgZnJhbWVzLjwvcD4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NvdXJjZS1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc291cmNlLWZyYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWEwYjIwZDNiZTNmNTAyYmE1MDU0ZGNkMWMxNzU1MjZmYjRiZGJjMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogdGVzdCBlcnJvciBtZXNzYWdl
Ci1UZXN0cyB0aGF0IGl0J3MgcG9zc2libGUgdG8gc2V0IGJyZWFrcG9pbnQgaW4gc291cmNlIGZy
YW1lLCBhbmQgdGhhdCBzb3VyY2UgZnJhbWUgZGlzcGxheXMgYnJlYWtwb2ludHMgYW5kIGNvbnNv
bGUgZXJyb3JzLgotCi1EZWJ1Z2dlciB3YXMgZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFNldEJy
ZWFrcG9pbnQKLVNjcmlwdCBzb3VyY2Ugd2FzIHNob3duLgotQnJlYWtwb2ludCBhZGRlZCB0byBz
b3VyY2UgZnJhbWUgYXQgbGluZSAxNAotCi1SdW5uaW5nOiB0ZXN0Q29uc29sZU1lc3NhZ2UKLVNj
cmlwdCBzb3VyY2Ugd2FzIHNob3duLgotTWVzc2FnZSBhZGRlZCB0byBzb3VyY2UgZnJhbWU6IHRl
c3QgZXJyb3IgbWVzc2FnZQotTWVzc2FnZXMgY2xlYXJlZCBpbiBzb3VyY2UgZnJhbWUuCi0KLVJ1
bm5pbmc6IHRlc3RTaG93UmVzb3VyY2UKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjdiNjY2NDMyNWIwNWRmZjI3ZjMzNjIwY2E2MmI2ZjEz
MjMxOTdjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3Nj
cmlwdD4KLQotPHNjcmlwdD4KLQotZnVuY3Rpb24gYWRkRXJyb3JUb0NvbnNvbGUoKQotewotICAg
IGNvbnNvbGUuZXJyb3IoInRlc3QgZXJyb3IgbWVzc2FnZSIpOwotfQotCi1mdW5jdGlvbiBtZXRo
b2RGb3JCcmVha3BvaW50KCkKLXsKLSAgICBhbGVydCgiSGVsbG8gd29ybGQiKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicmVzb3VyY2VzIik7
Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RTZXRCcmVha3BvaW50KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic291cmNlLWZyYW1lLmh0bWwiLCBkaWRTaG93U2Ny
aXB0U291cmNlKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShz
b3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlLCAiX2FkZEJyZWFrcG9pbnREZWNvcmF0aW9uIiwgZGlkQWRkQnJlYWtwb2lu
dCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZy
YW1lLCAxNCwgIiIsIHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBkaWRBZGRCcmVha3BvaW50KGxpbmVOdW1iZXIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJyZWFrcG9pbnQgYWRkZWQgdG8gc291cmNl
IGZyYW1lIGF0IGxpbmUgIiArIGxpbmVOdW1iZXIpOwotICAgICAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0Q29uc29s
ZU1lc3NhZ2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93
U2NyaXB0U291cmNlKCJzb3VyY2UtZnJhbWUuaHRtbCIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwot
Ci0gICAgICAgICAgICB2YXIgc2hvd25Tb3VyY2VGcmFtZTsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGRpZFNob3dTY3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmlwdCBzb3VyY2Ugd2FzIHNob3du
LiIpOwotICAgICAgICAgICAgICAgIHNob3duU291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLnByb3RvdHlwZSwgImFkZE1lc3NhZ2VUb1NvdXJjZSIsIGRpZEFkZE1lc3NhZ2UpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlLCAiY2xlYXJNZXNzYWdlcyIsIGNsZWFyTWVzc2FnZXMpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImFkZEVycm9yVG9Db25z
b2xlKCkiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkQWRkTWVz
c2FnZShsaW5lTnVtYmVyLCBtZXNzYWdlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGlmICh0aGlzICE9PSBzaG93blNvdXJjZUZyYW1lKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1lc3NhZ2UgYWRk
ZWQgdG8gc291cmNlIGZyYW1lOiAiICsgbWVzc2FnZS5tZXNzYWdlKTsKLSAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuY29uc29sZS5yZXF1ZXN0Q2xlYXJNZXNzYWdlcygpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBjbGVhck1lc3NhZ2VzKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBpZiAodGhpcyAhPT0gc2hvd25Tb3VyY2VGcmFtZSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJNZXNzYWdlcyBjbGVhcmVkIGluIHNvdXJjZSBmcmFtZS4iKTsKLSAgICAgICAgICAg
ICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gdGVzdFNob3dSZXNvdXJjZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2hvd1BhbmVsKCJuZXR3b3JrIik7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLCAic2hvdyIsIGRp
ZFNob3dTb3VyY2VGcmFtZSk7Ci0KLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRy
ZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXModmlzaXQpOwotICAgICAgICAgICAgZnVuY3Rpb24gdmlz
aXQocmVzb3VyY2UpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc291cmNl
LnVybC5pbmRleE9mKCJkZWJ1Z2dlci10ZXN0LmpzIikgIT09IC0xKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLnNob3dSZXNvdXJjZShyZXNvdXJj
ZSwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NvdXJjZUZy
YW1lKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX07Ci0KLTwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRoYXQgaXQncyBwb3NzaWJsZSB0byBz
ZXQgYnJlYWtwb2ludCBpbiBzb3VyY2UgZnJhbWUsIGFuZCB0aGF0Ci1zb3VyY2UgZnJhbWUgZGlz
cGxheXMgYnJlYWtwb2ludHMgYW5kIGNvbnNvbGUgZXJyb3JzLgotPC9wPgotCi08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcC10
aHJvdWdoLWV2ZW50LWxpc3RlbmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlMWVmMzFhNjdjNGFlMWM4MWVlZTNmODI4MzE1
ZDM2Y2I5OWM3MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3N0ZXAtdGhyb3VnaC1ldmVudC1saXN0
ZW5lcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotVGVzdCB0
aGF0IGRlYnVnZ2VyIHdpbGwgcGF1c2UgaW4gYWxsIGV2ZW50IGxpc3RlbmVycyB3aGVuIGNvcnJl
c3BvbmRpbmcgYnJlYWtwb2ludCBpcyBzZXQuIEJ1ZyA3NzMzMS4KLQotCi1EZWJ1Z2dlciB3YXMg
ZW5hYmxlZC4KLQotUnVubmluZzogdGVzdENsaWNrQnJlYWtwb2ludAotU2NyaXB0IGV4ZWN1dGlv
biBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDApIGxpc3RlbmVyMyAoc3RlcC10aHJvdWdoLWV2
ZW50LWxpc3RlbmVycy5odG1sOjE1KQotICAgIDEpIGFkZExpc3RlbmVyQW5kQ2xpY2sgKHN0ZXAt
dGhyb3VnaC1ldmVudC1saXN0ZW5lcnMuaHRtbDoyNikKLSAgICAyKSAgKDoxKQotU2NyaXB0IGV4
ZWN1dGlvbiByZXN1bWVkLgotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgot
ICAgIDApIGxpc3RlbmVyMSAoc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy5odG1sOjcpCi0g
ICAgMSkgYWRkTGlzdGVuZXJBbmRDbGljayAoc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy5o
dG1sOjI2KQotICAgIDIpICAoOjEpCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TY3JpcHQg
ZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwgc3RhY2s6Ci0gICAgMCkgbGlzdGVuZXIyIChzdGVwLXRo
cm91Z2gtZXZlbnQtbGlzdGVuZXJzLmh0bWw6MTEpCi0gICAgMSkgYWRkTGlzdGVuZXJBbmRDbGlj
ayAoc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy5odG1sOjI2KQotICAgIDIpICAoOjEpCi1T
Y3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLUNhbGwg
c3RhY2s6Ci0gICAgMCkgbGlzdGVuZXIzIChzdGVwLXRocm91Z2gtZXZlbnQtbGlzdGVuZXJzLmh0
bWw6MTUpCi0gICAgMSkgYWRkTGlzdGVuZXJBbmRDbGljayAoc3RlcC10aHJvdWdoLWV2ZW50LWxp
c3RlbmVycy5odG1sOjI2KQotICAgIDIpICAoOjEpCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQu
Ci1EZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zdGVwLXRocm91Z2gtZXZlbnQtbGlzdGVuZXJzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcC10aHJvdWdoLWV2ZW50LWxpc3RlbmVycy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDhiNWNkNDJmNjBiMTFlNTEyZWE1MmFl
ODRiMmMyODNjYjEzMWQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwLXRocm91Z2gtZXZlbnQt
bGlzdGVuZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGxpc3Rl
bmVyMSgpCi17Ci19Ci0KLWZ1bmN0aW9uIGxpc3RlbmVyMigpCi17Ci19Ci0KLWZ1bmN0aW9uIGxp
c3RlbmVyMygpCi17Ci19Ci0KLWZ1bmN0aW9uIGFkZExpc3RlbmVyQW5kQ2xpY2soKQotewotICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKLSAgICBlbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIxLCB0cnVlKTsKLSAgICBlbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIyLCB0cnVlKTsKLSAgICBkb2N1
bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIzLCB0cnVlKTsKLSAg
ICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIzLCBmYWxz
ZSk7Ci0gICAgZWxlbWVudC5jbGljaygpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2
YXIgcGFuZSA9IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKS5zaWRlYmFyUGFuZXMu
ZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzOwotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJU
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0Q2xpY2tCcmVha3BvaW50KG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHBhbmUuX3NldEJyZWFrcG9pbnQoImxpc3RlbmVyOmNsaWNr
Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChwYXVzZWQxKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgiYWRk
TGlzdGVuZXJBbmRDbGljaygpIik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZDEoY2Fs
bEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNh
cHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uKHJlc3VtZWQxKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnVuY3Rpb24gcmVzdW1lZDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHBhdXNlZDIpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBwYXVzZWQyKGNhbGxGcmFtZXMpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jYXB0dXJlU3RhY2tUcmFjZShjYWxsRnJhbWVz
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVk
Mik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHJlc3VtZWQyKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNl
ZChwYXVzZWQzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2Vk
MyhjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5yZXN1bWVFeGVjdXRpb24ocmVzdW1lZDMpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiByZXN1bWVkMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQocGF1c2VkNCk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZDQoY2FsbEZyYW1lcykKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxG
cmFtZXMpOwotICAgICAgICAgICAgICAgIHBhbmUuX3JlbW92ZUJyZWFrcG9pbnQoImxpc3RlbmVy
OmNsaWNrIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24o
bmV4dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCB0aGF0IGRl
YnVnZ2VyIHdpbGwgcGF1c2UgaW4gYWxsIGV2ZW50IGxpc3RlbmVycyB3aGVuIGNvcnJlc3BvbmRp
bmcgYnJlYWtwb2ludCBpcyBzZXQuCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzczMzEiPkJ1ZyA3NzMzMS48L2E+Ci08L3A+Ci0KLTxpbnB1dCB0eXBl
PWJ1dHRvbiBpZD0idGVzdCI+PC9pbnB1dD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWRpc3BsYXkt
bmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdWktc291
cmNlLWNvZGUtZGlzcGxheS1uYW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjY1NmFhOTBmOTlhMWU4YjQwMzYwMjYwMDUzZDM4NTg1YTA4YmUwMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvdWktc291cmNlLWNvZGUtZGlzcGxheS1uYW1lLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotVGVzdHMgVUlTb3VyY2VDb2RlIGRpc3BsYXkg
bmFtZS4KLQotVUlTb3VyY2VDb2RlIGRpc3BsYXkgbmFtZSBmb3IgdXJsICJodHRwOi8vbG9jYWxo
b3N0OjgwODAvZm9sZGVyL2ZpbGVuYW1lP3BhcmFtZXRlcj12YWx1ZSZubm49MSIgaXMgImZpbGVu
YW1lP3BhcmFtZXRlcj12YWx1ZSZubm49MSIuCi1VSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1lIGZv
ciB1cmwgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9mb2xkZXIvdmVyeS1sb25nLWZpbGVuYW1lLTEy
MzQ1Nj9ubj0xIiBpcyAidmVyeS1sb25nLWZpbGVuYW1lLTEyMzQ1Nj9ubj0xIi4KLVVJU291cmNl
Q29kZSBkaXNwbGF5IG5hbWUgZm9yIHVybCAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2ZvbGRlci90
b28tbG9uZy1maWxlbmFtZS0xMjM0NTY3ODkwP25uPTEiIGlzICJ0b28tbG9uZy1maWxlbmHigKYy
MzQ1Njc4OTA/bm49MSIuCi1VSVNvdXJjZUNvZGUgZGlzcGxheSBuYW1lIGZvciB1cmwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODA4MC9mb2xkZXIvbG9uZy1maWxlbmFtZT9wYXJhbWV0ZXI9dmFsdWUmbm5u
PTEiIGlzICJsb25nLWZpbGVuYW1lP3DigKZlcj12YWx1ZSZubm49MSIuCi1VSVNvdXJjZUNvZGUg
ZGlzcGxheSBuYW1lIGZvciB1cmwgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9mb2xkZXIvdG9vLWxv
bmctZmlsZW5hbWUtMTIzNDU2Nzg5MD9wYXJhbWV0ZXI9dmFsdWUmbm5uPTEiIGlzICJ0b28tbG9u
Zy1maWxlbmHigKZlcj12YWx1ZSZubm49MSIuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS1kaXNwbGF5LW5hbWUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS1kaXNwbGF5LW5hbWUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY1ZmJmMWVkZWJhZDlmMDQ3NGEzMTIw
YTQzM2VjZmRkNDNmYzA3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdWktc291cmNlLWNvZGUtZGlz
cGxheS1uYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVDb250
ZW50UHJvdmlkZXIodXJsKQotICAgIHsKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5l
dyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVR5cGVzLlNjcmlwdCwgIiIsICJ0ZXh0L2phdmFzY3JpcHQiKTsKLSAgICAgICAgY29udGVudFBy
b3ZpZGVyLnJlcXVlc3RDb250ZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTb3VyY2UgcmVxdWVzdGVkIGZvciAi
ICsgdXJsKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCIiKTsKLSAgICAgICAgfTsKLSAgICAgICAg
cmV0dXJuIGNvbnRlbnRQcm92aWRlcjsKLSAgICB9Ci0KLSAgICB2YXIgd29ya3NwYWNlID0gbmV3
IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2UoKTsKLSAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFj
ZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92aWRlcih3b3Jr
c3BhY2UsIFdlYkluc3BlY3Rvci5wcm9qZWN0VHlwZXMuTmV0d29yayk7Ci0KLSAgICBmdW5jdGlv
biBhZGROZXR3b3JrRmlsZSh1cmwpCi0gICAgewotICAgICAgICByZXR1cm4gd29ya3NwYWNlLm5l
dHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlRm9yVVJMKHVybCwgY3JlYXRlQ29udGVudFBy
b3ZpZGVyKHVybCksIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wVUlTb3VyY2VD
b2RlRGlzcGxheU5hbWUodXJsKQotICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGFk
ZE5ldHdvcmtGaWxlKHVybCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNv
dXJjZUNvZGUgZGlzcGxheSBuYW1lIGZvciB1cmwgXCIiICsgdXJsICsgIlwiIGlzIFwiIiArIFdl
Ykluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl90aXRsZUZvckZpbGUo
dWlTb3VyY2VDb2RlKSArICJcIi4iKTsKLSAgICB9Ci0KLSAgICBjb25zdCBiYXNlVVJMID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODA4MC9mb2xkZXIvIjsKLSAgICBkdW1wVUlTb3VyY2VDb2RlRGlzcGxh
eU5hbWUoYmFzZVVSTCArICJmaWxlbmFtZT9wYXJhbWV0ZXI9dmFsdWUmbm5uPTEiKTsKLSAgICBk
dW1wVUlTb3VyY2VDb2RlRGlzcGxheU5hbWUoYmFzZVVSTCArICJ2ZXJ5LWxvbmctZmlsZW5hbWUt
MTIzNDU2P25uPTEiKTsKLSAgICBkdW1wVUlTb3VyY2VDb2RlRGlzcGxheU5hbWUoYmFzZVVSTCAr
ICJ0b28tbG9uZy1maWxlbmFtZS0xMjM0NTY3ODkwP25uPTEiKTsKLSAgICBkdW1wVUlTb3VyY2VD
b2RlRGlzcGxheU5hbWUoYmFzZVVSTCArICJsb25nLWZpbGVuYW1lP3BhcmFtZXRlcj12YWx1ZSZu
bm49MSIpOwotICAgIGR1bXBVSVNvdXJjZUNvZGVEaXNwbGF5TmFtZShiYXNlVVJMICsgInRvby1s
b25nLWZpbGVuYW1lLTEyMzQ1Njc4OTA/cGFyYW1ldGVyPXZhbHVlJm5ubj0xIik7Ci0gICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX07Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIFVJU291cmNlQ29kZSBkaXNwbGF5IG5hbWUu
PC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNjMjhkZjgwMmMxNzgxMjIxNWFjMWZlZjRlOGMxYWUzODQ1YzY3YzUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMgVUlTb3VyY2VDb2RlIGNsYXNzLgotCi0KLVJ1
bm5pbmc6IHRlc3RVSVNvdXJjZUNvZGUKLUNvbnRlbnQgaXMgcmVxdWVzdGVkIGZyb20gU291cmNl
Q29kZVByb3ZpZGVyLgotQ2FsbGJhY2sgMSBpcyBpbnZva2VkLgotQ2FsbGJhY2sgMiBpcyBpbnZv
a2VkLgotQ2FsbGJhY2sgMyBpcyBpbnZva2VkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvdWktc291cmNlLWNvZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMTkxNzQxMTQyNmFiOTFjNzI2OTU5NTBhMzBiMDgxMWEzMjVkNWIzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIHZhciBNb2NrUHJvamVjdCA9IGZ1bmN0aW9uKCkge30KLSAgICBN
b2NrUHJvamVjdC5wcm90b3R5cGUucmVxdWVzdEZpbGVDb250ZW50ID0gZnVuY3Rpb24odXJpLCBj
YWxsYmFjaykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb250ZW50
IGlzIHJlcXVlc3RlZCBmcm9tIFNvdXJjZUNvZGVQcm92aWRlci4iKTsKLSAgICAgICAgc2V0VGlt
ZW91dChjYWxsYmFjay5iaW5kKG51bGwsICJ2YXIgeCA9IDA7IiwgZmFsc2UsICJ0ZXh0L2phdmFz
Y3JpcHQiKSwgMCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwot
ICAgICAgICBmdW5jdGlvbiB0ZXN0VUlTb3VyY2VDb2RlKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShu
ZXcgTW9ja1Byb2plY3QoKSwgInVyaSIsICJvcmlnaW5VUkwiLCAidXJsIiwgV2ViSW5zcGVjdG9y
LnJlc291cmNlVHlwZXMuU2NyaXB0LCB0cnVlKTsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJl
cXVlc3RDb250ZW50KGNhbGxOdW1iZXIsIGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlw
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiQ2FsbGJhY2sgIiArIGNhbGxOdW1iZXIgKyAiIGlzIGludm9rZWQuIik7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvamF2YXNjcmlwdCIsIG1pbWVU
eXBlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygidmFyIHgg
PSAwOyIsIGNvbnRlbnQpOwotCi0gICAgICAgICAgICAgICAgaWYgKGNhbGxOdW1iZXIgPT09IDMp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBzb3VyY2VDb2RlUHJvdmlkZXIu
cmVxdWVzdENvbnRlbnQgd29uJ3QgYmUgY2FsbGVkIGFueW1vcmUuCi0gICAgICAgICAgICAgICAg
ICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChmdW5jdGlvbihjb250ZW50LCBjb250ZW50
RW5jb2RlZCwgbWltZVR5cGUpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ0ZXh0L2phdmFzY3JpcHQiLCBt
aW1lVHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygidmFyIHggPSAwOyIsIGNvbnRlbnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgbmV4
dCgpOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAvLyBDaGVjayB0aGF0IGFsbCBjYWxsYmFja3Mgd2lsbCBiZSBp
bnZva2VkLgotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVl
c3RDb250ZW50LmJpbmQobnVsbCwgMSkpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVl
c3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50LmJpbmQobnVsbCwgMikpOwotICAgICAgICAgICAg
dWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50LmJpbmQobnVsbCwg
MykpOwotICAgICAgICB9Ci0gICAgXSk7Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBVSVNvdXJjZUNvZGUgY2xhc3MuPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXBhbmVsLXN3aXRjaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNo
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdhYmZiNjJmY2Rj
MGQyZTY1NGViMWFhYWIwZDE5ZjAzNzgxNjg3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gt
ZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEyICswLDAgQEAKLVRlc3RzIGRlYnVnZ2VyIGRvZXMgbm90IGZhaWwgd2hlbiBzdG9wcGVkIHdo
aWxlIGEgcGFuZWwgb3RoZXIgdGhhbiBzY3JpcHRzIHdhcyBvcGVuZWQuIEJvdGggdmFsaWQgYW5k
IGludmFsaWQgZXhwcmVzc2lvbnMgYXJlIGFkZGVkIHRvIHdhdGNoIGV4cHJlc3Npb25zLgotCi1C
dWcgNzA3MTgKLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24u
Ci1TZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCi1XYXRjaCBleHByZXNzaW9ucyB1cGRhdGVk
LgotW2V4cGFuZGVkXSAgCi0gICAgd2luZG93LmRvY3VtZW50OiAjZG9jdW1lbnQKLSAgICB3aW5k
b3dhLmRvY3VtZW50OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogd2luZG93
YQotRGVidWdnZXIgd2FzIGRpc2FibGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcGFuZWwtc3dpdGNo
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmZDVmZDJlZTA2MTBlOWVmYzY1
N2U5NzNkZDVkMTYwYzVmODNkZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Np
b25zLXBhbmVsLXN3aXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkKLXsKLSAgICB2YXIgeCA9IE1hdGguc3FydCgxMCk7
Ci0gICAgcmV0dXJuIHg7Ci19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIEluc3Bl
Y3RvclRlc3Quc2V0UXVpZXQodHJ1ZSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2Vy
VGVzdChzdGVwMSk7Ci0KLSAgICB2YXIgY3VycmVudFNvdXJjZUZyYW1lOwotICAgIHZhciB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbjsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAg
ICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBzY3JpcHRzIHBhbmVsIHNvIHRoYXQgd2F0Y2gg
ZXhwcmVzc2lvbnMgc2VjdGlvbiBpcyBjcmVhdGVkLgotICAgICAgICBXZWJJbnNwZWN0b3Iuc2hv
d1BhbmVsKCJzY3JpcHRzIik7Ci0KLSAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lvbnNQYW5lID0g
V2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25z
OwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zUGFuZS5leHBhbmQoKTsKLQotICAgICAgICB3YXRj
aEV4cHJlc3Npb25zU2VjdGlvbiA9IHdhdGNoRXhwcmVzc2lvbnNQYW5lLnNlY3Rpb247Ci0gICAg
ICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMgPSBbXTsKLSAgICAg
ICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNzaW9ucy5wdXNoKCJ3aW5kb3cu
ZG9jdW1lbnQiKTsKLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNz
aW9ucy5wdXNoKCJ3aW5kb3dhLmRvY3VtZW50Iik7Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNT
ZWN0aW9uLnVwZGF0ZSgpOwotCi0gICAgICAgIHZhciB0ZXN0TmFtZSA9IFdlYkluc3BlY3Rvci5p
bnNwZWN0ZWRQYWdlVVJMOwotICAgICAgICB0ZXN0TmFtZSA9IHRlc3ROYW1lLnN1YnN0cmluZyh0
ZXN0TmFtZS5sYXN0SW5kZXhPZignLycpICsgMSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1NjcmlwdFNvdXJjZSh0ZXN0TmFtZSwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKLSAgICB7Ci0gICAg
ICAgIGN1cnJlbnRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24uIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2V0QnJlYWtwb2ludChjdXJyZW50U291cmNlRnJhbWUsIDksICIiLCB0cnVlKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJl
c3Npb25zU2VjdGlvbi5wcm90b3R5cGUsICJ1cGRhdGUiLCB3YXRjaEV4cHJlc3Npb25zVXBkYXRl
ZCk7Ci0gICAgICAgIC8vIFN3aXRjaCB0byBhbm90aGVyIHBhbmVsIHRvIHRlc3QgaG93IHdhdGNo
IGV4cHJlc3Npb25zIGV2YWx1YXRpb24gdG9nZXRoZXIgd2l0aCBwYW5lbCBzd2l0Y2hpbmcuCi0g
ICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoIm5ldHdvcmsiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQoZGlkUGF1c2VkKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBkaWRQYXVzZWQoY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gd2F0Y2hFeHByZXNzaW9uc1VwZGF0ZWQoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldhdGNoIGV4cHJlc3Npb25zIHVwZGF0ZWQuIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcE9iamVjdFByb3BlcnR5U2VjdGlvbih3YXRjaEV4cHJl
c3Npb25zU2VjdGlvbiwge30pOwotCi0gICAgICAgIC8vIENsZWFyIHdhdGNoIGV4cHJlc3Npb25z
IGFmdGVyIGV4ZWN1dGlvbi4KLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hF
eHByZXNzaW9ucyA9IFtdOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUo
KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0KCk7Ci0gICAg
fQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PlRlc3RzIGRlYnVnZ2VyIGRvZXMgbm90IGZhaWwgd2hlbiBzdG9wcGVkIHdoaWxlIGEgcGFuZWwg
b3RoZXIgdGhhbiBzY3JpcHRzIHdhcyBvcGVuZWQuIEJvdGggdmFsaWQgYW5kIGludmFsaWQgZXhw
cmVzc2lvbnMgYXJlIGFkZGVkIHRvIHdhdGNoIGV4cHJlc3Npb25zLjwvcD4KLTxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcxOCI+QnVnIDcwNzE4PC9h
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2Vy
dmUtZXhwYW5zaW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjlmNjQ0NjJhZjczMzk0OThkZDM5MjZlMmE3MmNjMDk4NjUzYTEyOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvd2F0Y2gtZXhwcmVzc2lvbnMtcHJlc2VydmUtZXhwYW5zaW9uLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVRlc3QgdGhhdCB3YXRjaCBleHByZXNzaW9u
cyBleHBhbnNpb24gc3RhdGUgaXMgcmVzdG9yZWQgYWZ0ZXIgdXBkYXRlLgotCi1CdWcgOTkzMDQK
LURlYnVnZ2VyIHdhcyBlbmFibGVkLgotV2F0Y2ggZXhwcmVzc2lvbnMgYWRkZWQuCi1leHBhbmRl
ZCBnbG9iYWxPYmplY3QgW29iamVjdCBPYmplY3RdCi1leHBhbmRlZCBmb28gW29iamVjdCBPYmpl
Y3RdCi1leHBhbmRlZCBiYXIgW29iamVjdCBPYmplY3RdCi1XYXRjaCBleHByZXNzaW9ucyBleHBh
bmRlZC4KLSAgZ2xvYmFsT2JqZWN0OiBPYmplY3QKLSAgICBmb286IE9iamVjdAotICAgICAgYmFy
OiBPYmplY3QKLSAgICAgICAgYmF6OiAyMDEyCi0gICAgICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0g
ICAgICBfX3Byb3RvX186IE9iamVjdAotICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0gIHdpbmRvd0Fs
aWFzOiBXaW5kb3cKLWVycm9yOiBFeGVjdXRpb24gY29udGV4dCB3aXRoIGdpdmVuIGlkIG5vdCBm
b3VuZC4KLWVycm9yOiBFeGVjdXRpb24gY29udGV4dCB3aXRoIGdpdmVuIGlkIG5vdCBmb3VuZC4K
LVBhZ2UgcmVsb2FkZWQuCi1XYXRjaCBleHByZXNzaW9ucyBhZnRlciBwYWdlIHJlbG9hZDoKLSAg
Z2xvYmFsT2JqZWN0OiBPYmplY3QKLSAgICBmb286IE9iamVjdAotICAgICAgYmFyOiBPYmplY3QK
LSAgICAgICAgYmF6OiAyMDEyCi0gICAgICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0gICAgICBfX3By
b3RvX186IE9iamVjdAotICAgIF9fcHJvdG9fXzogT2JqZWN0Ci0gIHdpbmRvd0FsaWFzOiBXaW5k
b3cKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNlcnZlLWV4cGFuc2lvbi5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3dhdGNoLWV4cHJlc3Npb25zLXByZXNl
cnZlLWV4cGFuc2lvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjRiYmNj
YzczYjcwNTQxYWQzOWIzNTY1YjMwMGFhNDM0MzNiMjU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci93
YXRjaC1leHByZXNzaW9ucy1wcmVzZXJ2ZS1leHBhbnNpb24uaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDk3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFyIGdsb2JhbE9iamVjdCA9IHsKLSAgICBmb286IHsK
LSAgICAgICAgYmFyOiB7Ci0gICAgICAgICAgICBiYXo6IDIwMTIKLSAgICAgICAgfQotICAgIH0K
LX07Ci12YXIgd2luZG93QWxpYXMgPSB3aW5kb3c7Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQot
ewotICAgIHZhciB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbjsKLQotICAgIC8vIFdlIG5lZWQgdG8g
aW5pdGlhbGl6ZSBzY3JpcHRzIHBhbmVsIHNvIHRoYXQgd2F0Y2ggZXhwcmVzc2lvbnMgc2VjdGlv
biBpcyBjcmVhdGVkLgotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInNjcmlwdHMiKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIHZhciB3YXRjaEV4cHJlc3Npb25zUGFuZSA9IFdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9uczsKLSAg
ICAgICAgd2F0Y2hFeHByZXNzaW9uc1BhbmUuZXhwYW5kKCk7Ci0KLSAgICAgICAgd2F0Y2hFeHBy
ZXNzaW9uc1NlY3Rpb24gPSB3YXRjaEV4cHJlc3Npb25zUGFuZS5zZWN0aW9uOwotICAgICAgICB3
YXRjaEV4cHJlc3Npb25zU2VjdGlvbi53YXRjaEV4cHJlc3Npb25zID0gW107Ci0gICAgICAgIHdh
dGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVzaCgiZ2xvYmFsT2JqZWN0
Iik7Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLndhdGNoRXhwcmVzc2lvbnMucHVz
aCgid2luZG93QWxpYXMiKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3RvdHlwZSwgInVwZGF0ZVByb3Bl
cnRpZXMiLCBzdGVwMik7Ci0gICAgICAgIHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnVwZGF0ZSgp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGV4cGFuZFByb3BlcnR5KHBhcmVudCwgcGF0aCwgY2Fs
bGJhY2spCi0gICAgewotICAgICAgICBpZiAoIXBhdGgubGVuZ3RoKSByZXR1cm4gY2FsbGJhY2so
KTsKLSAgICAgICAgdmFyIGNoaWxkTmFtZSA9IHBhdGguc2hpZnQoKTsKLSAgICAgICAgdmFyIGNo
aWxkID0gSW5zcGVjdG9yVGVzdC5fZmluZENoaWxkUHJvcGVydHlUcmVlRWxlbWVudChwYXJlbnQs
IGNoaWxkTmFtZSk7Ci0gICAgICAgIGlmICghY2hpbGQpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJDaGlsZCBub3QgZm91bmQ6ICIgKyBjaGlsZE5hbWUpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJleHBhbmRlZCAiICsg
Y2hpbGROYW1lICsgIiAiICsgY2hpbGQucHJvcGVydHkudmFsdWUpOwotICAgICAgICBmdW5jdGlv
biBhZnRlckdldE93blByb3BlcnRpZXMoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1
bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZXhwYW5kUHJvcGVydHkuYmluZCh0aGlzLCBjaGlsZCwg
cGF0aCwgY2FsbGJhY2spKTsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNu
aWZmZXIoY2hpbGQucHJvcGVydHkudmFsdWUsICJnZXRPd25Qcm9wZXJ0aWVzIiwgYWZ0ZXJHZXRP
d25Qcm9wZXJ0aWVzLmJpbmQodGhpcykpOwotICAgICAgICBjaGlsZC5leHBhbmQoKTsKLQotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGR1bXBPYmplY3RQcm9wZXJ0aWVzVHJlZUVsZW1lbnQodHJlZUVs
ZW1lbnQsIGluZGVudCkKLSAgICB7Ci0gICAgICAgIGlmICh0cmVlRWxlbWVudC5wcm9wZXJ0eSkK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGluZGVudCArIHRyZWVFbGVtZW50
LnByb3BlcnR5Lm5hbWUgKyAiOiAiICsgdHJlZUVsZW1lbnQucHJvcGVydHkudmFsdWUuX2Rlc2Ny
aXB0aW9uKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlRWxlbWVudC5jaGlsZHJl
bi5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIGR1bXBPYmplY3RQcm9wZXJ0aWVzVHJlZUVsZW1l
bnQodHJlZUVsZW1lbnQuY2hpbGRyZW5baV0sICIgICIgKyBpbmRlbnQpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJXYXRjaCBleHByZXNzaW9ucyBhZGRlZC4iKTsKLSAgICAgICAgZXhwYW5kUHJvcGVydHkod2F0
Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCBbImdsb2JhbE9iamVj
dCIsICJmb28iLCAiYmFyIl0sIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2F0Y2ggZXhwcmVzc2lv
bnMgZXhwYW5kZWQuIik7Ci0gICAgICAgIGR1bXBPYmplY3RQcm9wZXJ0aWVzVHJlZUVsZW1lbnQo
d2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCAiIik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldhdGNo
IGV4cHJlc3Npb25zIGFmdGVyIHBhZ2UgcmVsb2FkOiIpOwotICAgICAgICBkdW1wT2JqZWN0UHJv
cGVydGllc1RyZWVFbGVtZW50KHdhdGNoRXhwcmVzc2lvbnNTZWN0aW9uLnByb3BlcnRpZXNUcmVl
T3V0bGluZSwgIiIpOwotCi0gICAgICAgIC8vIENsZWFyIHdhdGNoIGV4cHJlc3Npb25zIGFmdGVy
IGV4ZWN1dGlvbi4KLSAgICAgICAgd2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ud2F0Y2hFeHByZXNz
aW9ucyA9IFtdOwotICAgICAgICB3YXRjaEV4cHJlc3Npb25zU2VjdGlvbi51cGRhdGUoKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0KLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0IHRo
YXQgd2F0Y2ggZXhwcmVzc2lvbnMgZXhwYW5zaW9uIHN0YXRlIGlzIHJlc3RvcmVkIGFmdGVyIHVw
ZGF0ZS48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTkzMDQiPkJ1ZyA5OTMwNDwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci94aHItYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3hoci1icmVha3BvaW50cy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5Mzk1NTc1ODg4YTc1ZmE5NDJk
MDQ5NjZhYjM5NDNhYjMzNTA1YWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3hoci1icmVha3BvaW50
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UZXN0cyBYSFIg
YnJlYWtwb2ludHMuCi0KLURlYnVnZ2VyIHdhcyBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0WEhS
QnJlYWtwb2ludAotU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1DYWxsIHN0YWNrOgotICAgIDAp
IHNlbmRSZXF1ZXN0ICh4aHItYnJlYWtwb2ludHMuaHRtbDoxMSkKLSAgICAxKSAgKDoxKQotU2Ny
aXB0IGV4ZWN1dGlvbiByZXN1bWVkLgotCi1SdW5uaW5nOiB0ZXN0UGF1c2VPbkFueVhIUgotU2Ny
aXB0IGV4ZWN1dGlvbiBwYXVzZWQuCi1TY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCi1TY3JpcHQg
ZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KLQotUnVubmluZzog
dGVzdERpc2FibGVCcmVha3BvaW50Ci1TY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KLVNjcmlwdCBl
eGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3hoci1icmVha3BvaW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3hoci1icmVha3BvaW50cy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWEwZTY1M2JhYmYwODVmNjI5MjYxOWUyNmYwMTM0YTRl
ZTNjOWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci94aHItYnJlYWtwb2ludHMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDEwNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHNlbmRSZXF1ZXN0KHVybCkKLXsKLSAgICB2
YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcXVlc3Qub3BlbigiR0VU
IiwgdXJsLCB0cnVlKTsKLSAgICByZXF1ZXN0LnNlbmQoKQotfQotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7Ci0gICAgdmFyIHBhbmUg
PSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLnhockJyZWFrcG9pbnRz
OwotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWwotICAgICAgICBmdW5j
dGlvbiB0ZXN0WEhSQnJlYWtwb2ludChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBwYW5l
Ll9zZXRCcmVha3BvaW50KCJmb28iLCB0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
d2FpdFVudGlsUGF1c2VkKHN0ZXAxKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2VXaXRoVGltZW91dCgic2VuZFJlcXVlc3QoJy9mb28/YT1iJykiKTsKLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDEoY2FsbEZyYW1lcykKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlKGNhbGxGcmFtZXMpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHN0ZXAyKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNlbmRSZXF1ZXN0
KCcvYmFyP2E9YicpIiwgc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcGFuZS5fcmVtb3Zl
QnJlYWtwb2ludCgiZm9vIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgic2VuZFJlcXVlc3QoJy9mb28/YT1iJykiLCBuZXh0KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UGF1c2VPbkFueVhIUihuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBwYW5lLl9zZXRCcmVha3BvaW50KCIiLCB0cnVlKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHBhdXNlZEZvbyk7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoInNlbmRSZXF1
ZXN0KCcvZm9vP2E9YicpIik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZEZvbyhjYWxs
RnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHJlc3VtZWQo
KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53
YWl0VW50aWxQYXVzZWQocGF1c2VkQmFyKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgic2VuZFJlcXVlc3QoJy9iYXI/YT1iJykiKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24o
cmVzdW1lZCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNlZEJh
cihjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHJl
c3VtZWQoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcGFuZS5fcmVt
b3ZlQnJlYWtwb2ludCgiIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoInNlbmRSZXF1ZXN0KCcvYmF6P2E9YicpIiwgbmV4dCk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHJl
c3VtZWQpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3REaXNhYmxlQnJlYWtwb2ludChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBwYW5lLl9z
ZXRCcmVha3BvaW50KCIiLCB0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVu
dGlsUGF1c2VkKHBhdXNlZCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJzZW5kUmVxdWVzdCgnL2ZvbycpIik7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHBhdXNl
ZChjYWxsRnJhbWVzKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHJl
c3VtZWQoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcGFuZS5fYnJl
YWtwb2ludEVsZW1lbnRzWyIiXS5fY2hlY2tib3hFbGVtZW50LmNsaWNrKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHBhdXNlZEFnYWluKTsKLSAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2VuZFJlcXVl
c3QoJy9mb28nKSIsIG5leHQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVkKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkQWdhaW4oY2FsbEZyYW1lcykKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmFpbCwgcGF1c2Vk
IGFnYWluIGFmdGVyIGJyZWFrcG9pbnQgd2FzIHJlbW92ZWQuIik7Ci0gICAgICAgICAgICAgICAg
bmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIFhIUiBi
cmVha3BvaW50cy4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20tc3RhdGlzdGljcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA4NTgxNDExMmYzZGIwZjFhNDgyNGNmMTZmNjczNjExNzE2NDczOGQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDExOSArMCwwIEBACi0KLVRlc3RzIHRoYXQgcGVyIGRvY3VtZW50IE5vZGUgY291bnQgaXMgY29y
cmVjdGx5IGNhbGN1bGF0ZWQgYnkgdGhlIE1lbW9yeSBhZ2VudC4gQnVnIDc0MTAwLiBCdWcgNzQy
OTguCi0KLXJlc3VsdCA9IFsKLSAgICB7Ci0gICAgICAgICJ0aXRsZSI6ICJkaXYiLAotICAgICAg
ICAic2l6ZSI6IDEsCi0gICAgICAgICJub2RlQ291bnQiOiBbCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgIm5vZGVOYW1lIjogImRpdiIsCi0gICAgICAgICAgICAgICAgImNvdW50Ijog
MQotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAgICAgICAibGlzdGVuZXJDb3VudCI6IFsK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJtb3VzZW92ZXIiLAotICAg
ICAgICAgICAgICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgInR5cGUiOiAiY2xpY2siLAotICAgICAgICAgICAgICAgICJjb3VudCI6
IDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgXQotICAgIH0sCi0gICAgewotICAgICAgICAidGl0
bGUiOiAiZGl2IiwKLSAgICAgICAgInNpemUiOiAxLAotICAgICAgICAibm9kZUNvdW50IjogWwot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJub2RlTmFtZSI6ICJkaXYiLAotICAgICAg
ICAgICAgICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgXSwKLSAgICAgICAg
Imxpc3RlbmVyQ291bnQiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgInR5cGUi
OiAibW91c2VvdmVyIiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAxCi0gICAgICAgICAgICB9
LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJ0eXBlIjogImNsaWNrIiwKLSAgICAg
ICAgICAgICAgICAiY291bnQiOiAxCi0gICAgICAgICAgICB9Ci0gICAgICAgIF0KLSAgICB9LAot
ICAgIHsKLSAgICAgICAgInRpdGxlIjogIiNkb2N1bWVudCIsCi0gICAgICAgICJkb2N1bWVudFVS
SSI6ICIuLi5hYm91dDpibGFuayIsCi0gICAgICAgICJzaXplIjogMywKLSAgICAgICAgIm5vZGVD
b3VudCI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiAiYm9k
eSIsCi0gICAgICAgICAgICAgICAgImNvdW50IjogMQotICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiAiaGVhZCIsCi0gICAgICAgICAgICAg
ICAgImNvdW50IjogMQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAibm9kZU5hbWUiOiAiaHRtbCIsCi0gICAgICAgICAgICAgICAgImNvdW50IjogMQotICAg
ICAgICAgICAgfQotICAgICAgICBdLAotICAgICAgICAibGlzdGVuZXJDb3VudCI6IFtdCi0gICAg
fSwKLSAgICB7Ci0gICAgICAgICJ0aXRsZSI6ICIjZG9jdW1lbnQiLAotICAgICAgICAiZG9jdW1l
bnRVUkkiOiAiLi4uZG9tLXN0YXRpc3RpY3MuaHRtbCIsCi0gICAgICAgICJzaXplIjogMjMsCi0g
ICAgICAgICJub2RlQ291bnQiOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5v
ZGVOYW1lIjogIiN0ZXh0IiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAxMwotICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiAiYSIsCi0g
ICAgICAgICAgICAgICAgImNvdW50IjogMgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibm9kZU5hbWUiOiAiYm9keSIsCi0gICAgICAgICAgICAgICAgImNv
dW50IjogMQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAi
bm9kZU5hbWUiOiAiZGl2IiwKLSAgICAgICAgICAgICAgICAiY291bnQiOiAxCi0gICAgICAgICAg
ICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJub2RlTmFtZSI6ICJoZWFkIiwK
LSAgICAgICAgICAgICAgICAiY291bnQiOiAxCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICJub2RlTmFtZSI6ICJodG1sIiwKLSAgICAgICAgICAgICAgICAi
Y291bnQiOiAxCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICJub2RlTmFtZSI6ICJpZnJhbWUiLAotICAgICAgICAgICAgICAgICJjb3VudCI6IDEKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5vZGVOYW1lIjogInAi
LAotICAgICAgICAgICAgICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgIm5vZGVOYW1lIjogInNjcmlwdCIsCi0gICAgICAgICAgICAg
ICAgImNvdW50IjogMgotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAgICAgICAibGlzdGVu
ZXJDb3VudCI6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJjbGlj
ayIsCi0gICAgICAgICAgICAgICAgImNvdW50IjogMgotICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJtb3VzZW92ZXIiLAotICAgICAgICAgICAg
ICAgICJjb3VudCI6IDEKLSAgICAgICAgICAgIH0KLSAgICAgICAgXQotICAgIH0KLV0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1zdGF0aXN0aWNzLmh0bWwtZGlzYWJs
ZWQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLXN0YXRpc3RpY3MuaHRtbC1kaXNhYmxlZApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y1ZThlNjg5MzJmZDIwNDZjMWU1Mzc5Y2Y2
NmM2N2NlNzVjODVmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLXN0YXRpc3RpY3MuaHRtbC1kaXNhYmxlZAor
KysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2soZXJy
b3IsIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgdXJsID0gcmVzdWx0W2ldLmRvY3VtZW50VVJJ
OwotICAgICAgICAgICAgaWYgKCF1cmwpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICB2YXIgaW5kZXggPSB1cmwubGFzdEluZGV4T2YoIi8iKTsKLSAgICAgICAgICAgIGlm
IChpbmRleCAhPSAtMSkKLSAgICAgICAgICAgICAgICB1cmwgPSB1cmwuc3Vic3RyaW5nKGluZGV4
ICsgMSk7Ci0gICAgICAgICAgICByZXN1bHRbaV0uZG9jdW1lbnRVUkkgPSAiLi4uIiArIHVybDsK
LQotICAgICAgICAgICAgcmVzdWx0W2ldLm5vZGVDb3VudC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsK
LSAgICAgICAgICAgICAgICByZXR1cm4gYS5ub2RlTmFtZS5sb2NhbGVDb21wYXJlKGIubm9kZU5h
bWUpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXN1bHRbaV0ubGlzdGVuZXJDb3Vu
dC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gYS50eXBlLmxv
Y2FsZUNvbXBhcmUoYi50eXBlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAg
ICAgZnVuY3Rpb24gc3RyaW5nQ29tcGFyZShhLCBiKQotICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoYSAmJiBiKQotICAgICAgICAgICAgICAgIHJldHVybiBhLmxvY2FsZUNvbXBhcmUoYik7Ci0g
ICAgICAgICAgICBpZiAoIWEgJiYgIWIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAg
ICAgICAgICBpZiAoYSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIHJl
dHVybiAtMTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlc3VsdC5zb3J0KGZ1bmN0aW9uKGEsIGIp
IHsKLSAgICAgICAgICAgIHZhciByID0gc3RyaW5nQ29tcGFyZShhLmRvY3VtZW50VVJJLCBiLmRv
Y3VtZW50VVJJKTsKLSAgICAgICAgICAgIGlmIChyKQotICAgICAgICAgICAgICAgIHJldHVybiBy
OwotICAgICAgICAgICAgcmV0dXJuIHN0cmluZ0NvbXBhcmUoYS50aXRsZSwgYi50aXRsZSk7Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJyZXN1bHQgPSAi
ICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0LCBudWxsLCA0KSk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotICAgIE1lbW9yeUFnZW50LmdldERPTU5vZGVDb3Vu
dChjYWxsYmFjayk7Ci19Ci0KLXZhciBkZXRhY2hlZERpdnMgPSBbXTsKLWZ1bmN0aW9uIGNyZWF0
ZURldGFjaGVkTm9kZSgpCi17Ci0gICAgdmFyIGRldGFjaGVkRGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Ci0gICAgZGV0YWNoZWREaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBmdW5jdGlvbihlKSB7fSk7Ci0gICAgZGV0YWNoZWREaXYuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2VvdmVyIiwgZnVuY3Rpb24oZSkge30pOwotICAgIGRldGFjaGVkRGl2LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICByZXR1cm4gZGV0YWNoZWREaXY7Ci19
Ci0KLWZ1bmN0aW9uIHByZXBhcmVBbmRSdW5UZXN0KCkKLXsKLSAgICB2YXIgcCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJwYXJhZ3JhcGgiKTsKLSAgICBwLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgZnVuY3Rpb24oZSkge30pOwotICAgIHAuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVy
IiwgZnVuY3Rpb24oZSkge30pOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOwotICAgIGRldGFjaGVkRGl2cy5wdXNoKGNyZWF0ZURl
dGFjaGVkTm9kZSgpKTsKLSAgICBkZXRhY2hlZERpdnMucHVzaChjcmVhdGVEZXRhY2hlZE5vZGUo
KSk7Ci0KLSAgICBydW5UZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InByZXBhcmVBbmRSdW5UZXN0KCkiPgotPGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIj48
L2lmcmFtZT4KLTxwIGlkPSJwYXJhZ3JhcGgiIG9uY2xpY2s9ImFsZXJ0KDEpIj4KLVRlc3RzIHRo
YXQgcGVyIGRvY3VtZW50IE5vZGUgY291bnQgaXMgY29ycmVjdGx5IGNhbGN1bGF0ZWQgYnkgdGhl
IE1lbW9yeSBhZ2VudC4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NDEwMCI+QnVnIDc0MTAwLjwvYT4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI5OCI+QnVnIDc0Mjk4LjwvYT4KLTwvcD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvYnJh
Y2UtbWF0Y2hlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2Jy
YWNlLW1hdGNoZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
Y2I5OTMwYzA2MTdlYjJjMWZkMmJkNjRlN2VkMmFmNWYwZTFhYWVmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0
b3IvYnJhY2UtbWF0Y2hlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCww
IEBACi1UaGlzIHRlc3QgY2hlY2tzIGhpZ2hsaWdodGVyIGNvcnJlY3RuZXNzLgotCi1mdW5jdGlv
biBiYXIoKSB7Ci0gICAgLy8gY29tbWVudCBoZXJlCi0gICAgdmFyIGEsIGIsIGMsIGQ7Ci0gICAg
dmFyIGEgPSAoKDEgKyAyKSAqICgzICsgNCkpOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDA7
ICsraSkgewotICAgICAgICBpZiAoYSA8IGIgJiYgYyA+IGQpIHsKLSAgICAgICAgfQotICAgIH0K
LX0KLUN1cnNvciBhdCBsaW5lICMwID4+PmZ1bmN0aW9uIGJhcigpIHs8PDwgY29sdW1uIDAgKGNo
YXIgaXMgImYiKQotZW5jbG9zaW5nIGJyYWNlczogbnVsbAotCi1DdXJzb3IgYXQgbGluZSAjMCA+
Pj5mdW5jdGlvbiBiYXIoKSB7PDw8IGNvbHVtbiAxMiAoY2hhciBpcyAiKCIpCi1lbmNsb3Npbmcg
YnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjowLCJjb2x1bW4iOjEyLCJ0b2tlbiI6
ImJyYWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MCwiY29sdW1uIjoxMywi
dG9rZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzAgPj4+ZnVuY3Rpb24gYmFy
KCkgezw8PCBjb2x1bW4gMTMgKGNoYXIgaXMgIikiKQotZW5jbG9zaW5nIGJyYWNlczogeyJsZWZ0
QnJhY2UiOnsibGluZU51bWJlciI6MCwiY29sdW1uIjoxMiwidG9rZW4iOiJicmFjZS1zdGFydCJ9
LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNvbHVtbiI6MTMsInRva2VuIjoiYnJhY2Ut
ZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICMwID4+PmZ1bmN0aW9uIGJhcigpIHs8PDwgY29sdW1u
IDE0IChjaGFyIGlzICIgIikKLWVuY2xvc2luZyBicmFjZXM6IG51bGwKLQotQ3Vyc29yIGF0IGxp
bmUgIzAgPj4+ZnVuY3Rpb24gYmFyKCkgezw8PCBjb2x1bW4gMTUgKGNoYXIgaXMgInsiKQotZW5j
bG9zaW5nIGJyYWNlczogeyJsZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MCwiY29sdW1uIjoxNSwi
dG9rZW4iOiJibG9jay1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjgsImNvbHVt
biI6MCwidG9rZW4iOiJibG9jay1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzIgPj4+ICAgIHZh
ciBhLCBiLCBjLCBkOzw8PCBjb2x1bW4gNSAoY2hhciBpcyAiYSIpCi1lbmNsb3NpbmcgYnJhY2Vz
OiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjowLCJjb2x1bW4iOjE1LCJ0b2tlbiI6ImJsb2Nr
LXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6OCwiY29sdW1uIjowLCJ0b2tlbiI6
ImJsb2NrLWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjMyA+Pj4gICAgdmFyIGEgPSAoKDEgKyAy
KSAqICgzICsgNCkpOzw8PCBjb2x1bW4gMTIgKGNoYXIgaXMgIigiKQotZW5jbG9zaW5nIGJyYWNl
czogeyJsZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoxMiwidG9rZW4iOiJicmFj
ZS1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MzAsInRva2Vu
IjoiYnJhY2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICMzID4+PiAgICB2YXIgYSA9ICgoMSAr
IDIpICogKDMgKyA0KSk7PDw8IGNvbHVtbiAxMyAoY2hhciBpcyAiKCIpCi1lbmNsb3NpbmcgYnJh
Y2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjEzLCJ0b2tlbiI6ImJy
YWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoxOSwidG9r
ZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzMgPj4+ICAgIHZhciBhID0gKCgx
ICsgMikgKiAoMyArIDQpKTs8PDwgY29sdW1uIDE0IChjaGFyIGlzICIxIikKLWVuY2xvc2luZyBi
cmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MTMsInRva2VuIjoi
YnJhY2Utc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjE5LCJ0
b2tlbiI6ImJyYWNlLWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjMyA+Pj4gICAgdmFyIGEgPSAo
KDEgKyAyKSAqICgzICsgNCkpOzw8PCBjb2x1bW4gMTUgKGNoYXIgaXMgIiAiKQotZW5jbG9zaW5n
IGJyYWNlczogeyJsZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoxMywidG9rZW4i
OiJicmFjZS1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MTks
InRva2VuIjoiYnJhY2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICMzID4+PiAgICB2YXIgYSA9
ICgoMSArIDIpICogKDMgKyA0KSk7PDw8IGNvbHVtbiAyMiAoY2hhciBpcyAiICIpCi1lbmNsb3Np
bmcgYnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjEyLCJ0b2tl
biI6ImJyYWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoz
MCwidG9rZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzMgPj4+ICAgIHZhciBh
ID0gKCgxICsgMikgKiAoMyArIDQpKTs8PDwgY29sdW1uIDI0IChjaGFyIGlzICIzIikKLWVuY2xv
c2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVtbiI6MjMsInRv
a2VuIjoiYnJhY2Utc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4i
OjI5LCJ0b2tlbiI6ImJyYWNlLWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjMyA+Pj4gICAgdmFy
IGEgPSAoKDEgKyAyKSAqICgzICsgNCkpOzw8PCBjb2x1bW4gMjkgKGNoYXIgaXMgIikiKQotZW5j
bG9zaW5nIGJyYWNlczogeyJsZWZ0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29sdW1uIjoyMywi
dG9rZW4iOiJicmFjZS1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjMsImNvbHVt
biI6MjksInRva2VuIjoiYnJhY2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICMzID4+PiAgICB2
YXIgYSA9ICgoMSArIDIpICogKDMgKyA0KSk7PDw8IGNvbHVtbiAzMCAoY2hhciBpcyAiKSIpCi1l
bmNsb3NpbmcgYnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjozLCJjb2x1bW4iOjEy
LCJ0b2tlbiI6ImJyYWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6MywiY29s
dW1uIjozMCwidG9rZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUgIzMgPj4+ICAg
IHZhciBhID0gKCgxICsgMikgKiAoMyArIDQpKTs8PDwgY29sdW1uIDMxIChjaGFyIGlzICI7IikK
LWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNvbHVtbiI6
MTUsInRva2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjo4LCJj
b2x1bW4iOjAsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM0ID4+PiAg
ICBmb3IodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHs8PDwgY29sdW1uIDE5IChjaGFyIGlzICJp
IikKLWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjQsImNvbHVt
biI6NywidG9rZW4iOiJicmFjZS1zdGFydCJ9LCJyaWdodEJyYWNlIjp7ImxpbmVOdW1iZXIiOjQs
ImNvbHVtbiI6MzEsInRva2VuIjoiYnJhY2UtZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM0ID4+
PiAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHs8PDwgY29sdW1uIDMyIChjaGFyIGlz
ICIgIikKLWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNv
bHVtbiI6MTUsInRva2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVy
Ijo4LCJjb2x1bW4iOjAsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM0
ID4+PiAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHs8PDwgY29sdW1uIDMzIChjaGFy
IGlzICJ7IikKLWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjQs
ImNvbHVtbiI6MzMsInRva2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVt
YmVyIjo3LCJjb2x1bW4iOjQsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5l
ICM1ID4+PiAgICAgICAgaWYgKGEgPCBiICYmIGMgPiBkKSB7PDw8IGNvbHVtbiAyMCAoY2hhciBp
cyAiICIpCi1lbmNsb3NpbmcgYnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjo1LCJj
b2x1bW4iOjExLCJ0b2tlbiI6ImJyYWNlLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJl
ciI6NSwiY29sdW1uIjoyNiwidG9rZW4iOiJicmFjZS1lbmQifX0KLQotQ3Vyc29yIGF0IGxpbmUg
IzUgPj4+ICAgICAgICBpZiAoYSA8IGIgJiYgYyA+IGQpIHs8PDwgY29sdW1uIDI4IChjaGFyIGlz
ICJ7IikKLWVuY2xvc2luZyBicmFjZXM6IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjUsImNv
bHVtbiI6MjgsInRva2VuIjoiYmxvY2stc3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVy
Ijo2LCJjb2x1bW4iOjgsInRva2VuIjoiYmxvY2stZW5kIn19Ci0KLUN1cnNvciBhdCBsaW5lICM2
ID4+PiAgICAgICAgfTw8PCBjb2x1bW4gOCAoY2hhciBpcyAifSIpCi1lbmNsb3NpbmcgYnJhY2Vz
OiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVyIjo1LCJjb2x1bW4iOjI4LCJ0b2tlbiI6ImJsb2Nr
LXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGluZU51bWJlciI6NiwiY29sdW1uIjo4LCJ0b2tlbiI6
ImJsb2NrLWVuZCJ9fQotCi1DdXJzb3IgYXQgbGluZSAjNyA+Pj4gICAgfTw8PCBjb2x1bW4gNCAo
Y2hhciBpcyAifSIpCi1lbmNsb3NpbmcgYnJhY2VzOiB7ImxlZnRCcmFjZSI6eyJsaW5lTnVtYmVy
Ijo0LCJjb2x1bW4iOjMzLCJ0b2tlbiI6ImJsb2NrLXN0YXJ0In0sInJpZ2h0QnJhY2UiOnsibGlu
ZU51bWJlciI6NywiY29sdW1uIjo0LCJ0b2tlbiI6ImJsb2NrLWVuZCJ9fQotCi1DdXJzb3IgYXQg
bGluZSAjOCA+Pj59PDw8IGNvbHVtbiAwIChjaGFyIGlzICJ9IikKLWVuY2xvc2luZyBicmFjZXM6
IHsibGVmdEJyYWNlIjp7ImxpbmVOdW1iZXIiOjAsImNvbHVtbiI6MTUsInRva2VuIjoiYmxvY2st
c3RhcnQifSwicmlnaHRCcmFjZSI6eyJsaW5lTnVtYmVyIjo4LCJjb2x1bW4iOjAsInRva2VuIjoi
YmxvY2stZW5kIn19Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci9icmFjZS1tYXRjaGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2JyYWNl
LW1hdGNoZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg5NjkyNWEzZTBi
OTI1ODA5NzcxYWMyMzE3NTk5MWEwY2MxYWI0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2JyYWNlLW1h
dGNoZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotZnVuY3Rpb24gYmFyKCkgewotICAgIC8vIGNv
bW1lbnQgaGVyZQotICAgIHZhciBhLCBiLCBjLCBkOwotICAgIHZhciBhID0gKCgxICsgMikgKiAo
MyArIDQpKTsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKLSAgICAgICAgaWYg
KGEgPCBiICYmIGMgPiBkKSB7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLQotICAgIHZhciB0ZXh0
RWRpdG9yID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVUZXN0RWRpdG9yKCk7Ci0gICAgdGV4dEVkaXRv
ci5vdmVycmlkZVZpZXdwb3J0Rm9yVGVzdCgwLCB1bmRlZmluZWQsIDMpOwotICAgIHRleHRFZGl0
b3IubWltZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICB0ZXh0RWRpdG9yLnNldFJlYWRP
bmx5KGZhbHNlKTsKLSAgICB0ZXh0RWRpdG9yLnNldFRleHQoYmFyLnRvU3RyaW5nKCkpOwotICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IudGV4dCgpKTsKLQotICAgIHZhciBi
cmFjZUhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwuQnJhY2VN
YXRjaGVyKHRleHRFZGl0b3IuX3RleHRNb2RlbCk7Ci0gICAgZnVuY3Rpb24gdGVzdEFuZER1bXAo
bGluZU51bWJlciwgY29sdW1uKQotICAgIHsKLSAgICAgICAgdmFyIGxpbmUgPSB0ZXh0RWRpdG9y
Ll90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKLSAgICAgICAgdmFyIHRleHQgPSAiQ3Vyc29y
IGF0IGxpbmUgIyIgKyAobGluZU51bWJlcikgKyAiID4+PiIgKyBsaW5lICsgIjw8PCBjb2x1bW4g
IiArIGNvbHVtbiArICIgKGNoYXIgaXMgXCIiICsgbGluZS5jaGFyQXQoY29sdW1uKSArICJcIiki
OwotICAgICAgICB0ZXh0ICs9ICJcbmVuY2xvc2luZyBicmFjZXM6ICIgKyBKU09OLnN0cmluZ2lm
eShicmFjZUhpZ2hsaWdodGVyLmVuY2xvc2luZ0JyYWNlcyhsaW5lTnVtYmVyLCBjb2x1bW4pKTsK
LSAgICAgICAgdGV4dCArPSAiXG4iOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0
ZXh0KTsKLSAgICB9Ci0KLSAgICB0ZXN0QW5kRHVtcCgwLCAwKTsKLSAgICB0ZXN0QW5kRHVtcCgw
LCAxMik7Ci0gICAgdGVzdEFuZER1bXAoMCwgMTMpOwotICAgIHRlc3RBbmREdW1wKDAsIDE0KTsK
LSAgICB0ZXN0QW5kRHVtcCgwLCAxNSk7Ci0gICAgdGVzdEFuZER1bXAoMiwgNSk7Ci0gICAgdGVz
dEFuZER1bXAoMywgMTIpOwotICAgIHRlc3RBbmREdW1wKDMsIDEzKTsKLSAgICB0ZXN0QW5kRHVt
cCgzLCAxNCk7Ci0gICAgdGVzdEFuZER1bXAoMywgMTUpOwotICAgIHRlc3RBbmREdW1wKDMsIDIy
KTsKLSAgICB0ZXN0QW5kRHVtcCgzLCAyNCk7Ci0gICAgdGVzdEFuZER1bXAoMywgMjkpOwotICAg
IHRlc3RBbmREdW1wKDMsIDMwKTsKLSAgICB0ZXN0QW5kRHVtcCgzLCAzMSk7Ci0gICAgdGVzdEFu
ZER1bXAoNCwgMTkpOwotICAgIHRlc3RBbmREdW1wKDQsIDMyKTsKLSAgICB0ZXN0QW5kRHVtcCg0
LCAzMyk7Ci0gICAgdGVzdEFuZER1bXAoNSwgMjApOwotICAgIHRlc3RBbmREdW1wKDUsIDI4KTsK
LSAgICB0ZXN0QW5kRHVtcCg2LCA4KTsKLSAgICB0ZXN0QW5kRHVtcCg3LCA0KTsKLSAgICB0ZXN0
QW5kRHVtcCg4LCAwKTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRo
aXMgdGVzdCBjaGVja3MgaGlnaGxpZ2h0ZXIgY29ycmVjdG5lc3MuCi08L3A+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvZWRpdG9y
LXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2VkaXRvci10ZXN0LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTRlMWI1ZjkyNzlhMDJhMDlkZDk2YzJhMjYx
ZmNlZWY0MjIxOGE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvZWRpdG9yLXRlc3QuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwxMDUgKzAsMCBAQAotZnVuY3Rpb24gaW5pdGlhbGl6ZV9FZGl0b3JUZXN0cygp
Ci17Ci0KLUluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvciA9IGZ1bmN0aW9uKGNsaWVudEhl
aWdodCwgY2h1bmtTaXplLCB0ZXh0RWRpdG9yRGVsZWdhdGUpCi17Ci0gICAgV2ViSW5zcGVjdG9y
LmRlYnVnRGVmYXVsdFRleHRFZGl0b3IgPSB0cnVlOwotICAgIHZhciB0ZXh0RWRpdG9yID0gbmV3
IFdlYkluc3BlY3Rvci5EZWZhdWx0VGV4dEVkaXRvcigiIiwgdGV4dEVkaXRvckRlbGVnYXRlIHx8
IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckRlbGVnYXRlKCkpOwotICAgIHRleHRFZGl0b3Iu
b3ZlcnJpZGVWaWV3cG9ydEZvclRlc3QoMCwgY2xpZW50SGVpZ2h0IHx8IDEwMCwgY2h1bmtTaXpl
IHx8IDEwKTsKLSAgICB0ZXh0RWRpdG9yLnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcu
ZWxlbWVudCk7Ci0gICAgcmV0dXJuIHRleHRFZGl0b3I7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmZp
bGxFZGl0b3JXaXRoVGV4dCA9IGZ1bmN0aW9uKHRleHRFZGl0b3IsIGxpbmVDb3VudCkKLXsKLSAg
ICB2YXIgdGV4dE1vZGVsID0gdGV4dEVkaXRvci5fdGV4dE1vZGVsOwotICAgIHZhciBsaW5lcyA9
IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZUNvdW50OyArK2kpCi0gICAgICAgIGxp
bmVzLnB1c2goaSk7Ci0gICAgdGV4dE1vZGVsLnNldFRleHQobGluZXMuam9pbigiXG4iKSk7Ci19
Ci0KLUluc3BlY3RvclRlc3QudGV4dFdpdGhTZWxlY3Rpb24gPSBmdW5jdGlvbih0ZXh0LCBzZWxl
Y3Rpb24pCi17Ci0gICAgaWYgKCFzZWxlY3Rpb24pCi0gICAgICAgIHJldHVybiB0ZXh0OwotCi0g
ICAgZnVuY3Rpb24gbGluZVdpdGhDdXJzb3IobGluZSwgY29sdW1uLCBjdXJzb3JDaGFyKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGxpbmUuc3Vic3RyaW5nKDAsIGNvbHVtbikgKyBjdXJzb3JDaGFy
ICsgbGluZS5zdWJzdHJpbmcoY29sdW1uKTsKLSAgICB9Ci0KLSAgICB2YXIgbGluZXMgPSB0ZXh0
LnNwbGl0KCJcbiIpOwotICAgIHNlbGVjdGlvbiA9IHNlbGVjdGlvbi5ub3JtYWxpemUoKTsKLSAg
ICB2YXIgZW5kQ3Vyc29yQ2hhciA9IHNlbGVjdGlvbi5pc0VtcHR5KCkgPyAifCIgOiAiPCI7Ci0g
ICAgbGluZXNbc2VsZWN0aW9uLmVuZExpbmVdID0gbGluZVdpdGhDdXJzb3IobGluZXNbc2VsZWN0
aW9uLmVuZExpbmVdLCBzZWxlY3Rpb24uZW5kQ29sdW1uLCBlbmRDdXJzb3JDaGFyKTsKLSAgICBp
ZiAoIXNlbGVjdGlvbi5pc0VtcHR5KCkpIHsKLSAgICAgICAgbGluZXNbc2VsZWN0aW9uLnN0YXJ0
TGluZV0gPSBsaW5lV2l0aEN1cnNvcihsaW5lc1tzZWxlY3Rpb24uc3RhcnRMaW5lXSwgc2VsZWN0
aW9uLnN0YXJ0Q29sdW1uLCAiPiIpOwotICAgIH0KLSAgICByZXR1cm4gbGluZXMuam9pbigiXG4i
KTsKLX0KLQotSW5zcGVjdG9yVGVzdC5pbnNlcnRUZXh0TGluZSA9IGZ1bmN0aW9uKGxpbmUpCi17
Ci0gICAgZnVuY3Rpb24gZW50ZXIoKQotICAgIHsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93
bigiXG4iKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBpbm5lckluc2VydFRleHRMaW5lKCkKLSAg
ICB7Ci0gICAgICAgIHRleHRJbnB1dENvbnRyb2xsZXIuaW5zZXJ0VGV4dChsaW5lKTsKLSAgICB9
Ci0gICAgc2V0VGltZW91dChpbm5lckluc2VydFRleHRMaW5lKTsKLSAgICBzZXRUaW1lb3V0KGVu
dGVyKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9yQ2h1bmtzID0gZnVuY3Rpb24odGV4
dEVkaXRvcikKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ2h1bmsgbW9kZWwiKTsK
LSAgICB2YXIgY2h1bmtzID0gdGV4dEVkaXRvci5fbWFpblBhbmVsLl90ZXh0Q2h1bmtzOwotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgY2h1bmtzLmxlbmd0aDsgKytpKQotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiQ2h1bmsgWyIgKyBpICsgIl0gIiArIGNodW5rc1tpXS5zdGFydExp
bmUgKyAiOiIgKyBjaHVua3NbaV0uZW5kTGluZSArICIgKCIgKyAoY2h1bmtzW2ldLl9leHBhbmRl
ZCA/ICJleHBhbmRlZCIgOiAiY29sbGFwc2VkIikgKyAiKSIpOwotfTsKLQotSW5zcGVjdG9yVGVz
dC5kdW1wRWRpdG9yTW9kZWwgPSBmdW5jdGlvbih0ZXh0RWRpdG9yKQotewotICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJUZXh0IG1vZGVsIik7Ci0gICAgdmFyIHRleHRNb2RlbCA9IHRleHRF
ZGl0b3IuX3RleHRNb2RlbDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRNb2RlbC5saW5l
c0NvdW50OyArK2kpIHsKLSAgICAgICAgdmFyIHByZWZpeCA9ICJbIiArIGkgKyAiXSI7Ci0gICAg
ICAgIHdoaWxlIChwcmVmaXgubGVuZ3RoIDwgMTApCi0gICAgICAgICAgICBwcmVmaXggKz0gIiAi
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChwcmVmaXggKyB0ZXh0TW9kZWwubGlu
ZShpKSk7Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9yRE9NID0gZnVuY3Rp
b24odGV4dEVkaXRvcikKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdG9yIERP
TSIpOwotICAgIHZhciBlbGVtZW50ID0gdGV4dEVkaXRvci5fbWFpblBhbmVsLl9jb250YWluZXI7
Ci0gICAgZm9yICh2YXIgbm9kZSA9IGVsZW1lbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5v
ZGUubmV4dFNpYmxpbmcpIHsKLSAgICAgICAgaWYgKG5vZGUuX2NodW5rKQotICAgICAgICAgICAg
dmFyIHByZWZpeCA9ICJbIiArIG5vZGUuX2NodW5rLnN0YXJ0TGluZSArICI6IiArIG5vZGUuX2No
dW5rLmVuZExpbmUgKyAiXSI7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZhciBwcmVmaXgg
PSAiWyIgKyBub2RlLmxpbmVOdW1iZXIgKyAiXSI7Ci0gICAgICAgIHdoaWxlIChwcmVmaXgubGVu
Z3RoIDwgMTApCi0gICAgICAgICAgICBwcmVmaXggKz0gIiAiOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChwcmVmaXggKyBub2RlLm91dGVySFRNTCk7Ci0gICAgfQotfTsKLQotSW5z
cGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCA9IGZ1bmN0aW9uKHRleHRFZGl0b3IsIG1haW5QYW5l
bE9ubHkpCi17Ci0gICAgdmFyIGVsZW1lbnQgPSBtYWluUGFuZWxPbmx5ID8gdGV4dEVkaXRvci5f
bWFpblBhbmVsLmVsZW1lbnQgOiB0ZXh0RWRpdG9yLmVsZW1lbnQ7Ci0gICAgdmFyIGR1bXBlZEhU
TUwgPSBlbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKC88ZGl2L2csICJcbjxkaXYiKTsKLSAgICB2
YXIgZHVtcGVkSFRNTCA9IGR1bXBlZEhUTUwucmVwbGFjZSgvaGVpZ2h0OiBbMC05XSsvZywgImhl
aWdodDogPG51bWJlcj4iKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChkdW1wZWRIVE1M
KTsKLX07Ci0KLUluc3BlY3RvclRlc3QuZ2V0TGluZUVsZW1lbnQgPSBmdW5jdGlvbih0ZXh0RWRp
dG9yLCBsaW5lTnVtYmVyKQotewotICAgIHJldHVybiB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuY2h1
bmtGb3JMaW5lKGxpbmVOdW1iZXIpLmV4cGFuZGVkTGluZVJvdyhsaW5lTnVtYmVyKTsKLX07Ci0K
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXIt
YmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxp
Z2h0ZXItYmFzaWNzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGU2NzE5ZDZiMTQ2YjMwNzg5MTUwNzRhNzI1OTAyNmU3ZGViZWNlOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL2hpZ2hsaWdodGVyLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDEgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBoaWdobGlnaHRlciBjb3JyZWN0bmVzcy4KLQot
Ci1BZnRlciBoaWdobGlnaHRpbmcgNSBsaW5lcwotMSA6IC8qKiA6IGphdmFzY3JpcHQtY29tbWVu
dFswLTVdCi0yIDogICogbGluZSAjMSA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotMyA6ICAq
IGxpbmUgIzIgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTQgOiAgKiBsaW5lICMzIDogamF2
YXNjcmlwdC1jb21tZW50WzAtMTBdCi01IDogICogbGluZSAjNCA6IGphdmFzY3JpcHQtY29tbWVu
dFswLTEwXQotNiA6ICAqIGxpbmUgIzUgOiBudWxsCi03IDogICogbGluZSAjNiA6IG51bGwKLTgg
OiAgKiBsaW5lICM3IDogbnVsbAotOSA6ICAqIGxpbmUgIzggOiBudWxsCi0xMCA6ICAqIHZhciBh
ID0gbmV3IEEoKTsgLy8qLyA6IG51bGwKLTExIDogc29tZSB0ZXh0IDogbnVsbAotMTIgOiAgOiBu
dWxsCi0KLUFmdGVyIGhpZ2hsaWdodGluZyBhbGwgbGluZXMKLTEgOiAvKiogOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC01XQotMiA6ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0K
LTMgOiAgKiBsaW5lICMyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi00IDogICogbGluZSAj
MyA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotNSA6ICAqIGxpbmUgIzQgOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0xMF0KLTYgOiAgKiBsaW5lICM1IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBd
Ci03IDogICogbGluZSAjNiA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotOCA6ICAqIGxpbmUg
IzcgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTkgOiAgKiBsaW5lICM4IDogamF2YXNjcmlw
dC1jb21tZW50WzAtMTBdCi0xMCA6ICAqIHZhciBhID0gbmV3IEEoKTsgLy8qLyA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTI0XQotMTEgOiBzb21lIHRleHQgOiBqYXZhc2NyaXB0LWlkZW50WzAtNF0g
d2hpdGVzcGFjZVs0LTVdIGphdmFzY3JpcHQtaWRlbnRbNS05XQotMTIgOiAgOgotCi1BZnRlciBj
aGFuZ2luZyB0ZXh0IG1vZGVsLCBidXQgYmVmb3JlIHVwZGF0aW5nIGhpZ2hsaWdodHMKLTEgOiAv
KiogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC01XQotMiA6ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0xMF0KLTMgOiAgKiBsaW5lICMyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBd
Ci00IDogLyoqIDogbnVsbAotNSA6ICAqIGxpbmUgIzEgOiBudWxsCi02IDogICogbGluZSAjMiA6
IG51bGwKLTcgOiAgKiBsaW5lICMzIDogbnVsbAotOCA6ICAqIGxpbmUgIzQgOiBudWxsCi05IDog
ICogbGluZSAjNSA6IG51bGwKLTEwIDogICogbGluZSAjNiA6IG51bGwKLTExIDogICogbGluZSAj
NyA6IG51bGwKLTEyIDogICogbGluZSAjOCA6IG51bGwKLTEzIDogICogdmFyIGEgPSBuZXcgQSgp
OyAvLyovIDogbnVsbAotMTQgOiBzb21lIHRleHQgOiBudWxsCi0xNSA6ICAqIGxpbmUgIzYgOiBq
YXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTE2IDogICogbGluZSAjNyA6IGphdmFzY3JpcHQtY29t
bWVudFswLTEwXQotMTcgOiAgKiBsaW5lICM4IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi0x
OCA6ICAqIHZhciBhID0gbmV3IEEoKTsgLy8qLyA6IGphdmFzY3JpcHQtY29tbWVudFswLTI0XQot
MTkgOiBzb21lIHRleHQgOiBqYXZhc2NyaXB0LWlkZW50WzAtNF0gd2hpdGVzcGFjZVs0LTVdIGph
dmFzY3JpcHQtaWRlbnRbNS05XQotMjAgOiAgOgotCi1BZnRlciB1cGRhdGluZyBoaWdobGlnaHRz
Ci0xIDogLyoqIDogamF2YXNjcmlwdC1jb21tZW50WzAtNV0KLTIgOiAgKiBsaW5lICMxIDogamF2
YXNjcmlwdC1jb21tZW50WzAtMTBdCi0zIDogICogbGluZSAjMiA6IGphdmFzY3JpcHQtY29tbWVu
dFswLTEwXQotNCA6IC8qKiA6IGphdmFzY3JpcHQtY29tbWVudFswLTRdCi01IDogICogbGluZSAj
MSA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotNiA6ICAqIGxpbmUgIzIgOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0xMF0KLTcgOiAgKiBsaW5lICMzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBd
Ci04IDogICogbGluZSAjNCA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotOSA6ICAqIGxpbmUg
IzUgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTEwIDogICogbGluZSAjNiA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTEwXQotMTEgOiAgKiBsaW5lICM3IDogamF2YXNjcmlwdC1jb21tZW50WzAt
MTBdCi0xMiA6ICAqIGxpbmUgIzggOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTEzIDogICog
dmFyIGEgPSBuZXcgQSgpOyAvLyovIDogamF2YXNjcmlwdC1jb21tZW50WzAtMjRdCi0xNCA6IHNv
bWUgdGV4dCA6IGphdmFzY3JpcHQtaWRlbnRbMC00XSB3aGl0ZXNwYWNlWzQtNV0gamF2YXNjcmlw
dC1pZGVudFs1LTldCi0xNSA6ICAqIGxpbmUgIzYgOiB3aGl0ZXNwYWNlWzAtMV0gd2hpdGVzcGFj
ZVsyLTNdIGphdmFzY3JpcHQtaWRlbnRbMy03XSB3aGl0ZXNwYWNlWzctOF0gamF2YXNjcmlwdC1u
dW1iZXJbOS0xMF0KLTE2IDogICogbGluZSAjNyA6IG51bGwKLTE3IDogICogbGluZSAjOCA6IG51
bGwKLTE4IDogICogdmFyIGEgPSBuZXcgQSgpOyAvLyovIDogbnVsbAotMTkgOiBzb21lIHRleHQg
OiBudWxsCi0yMCA6ICA6IG51bGwKLQotQWZ0ZXIgaGlnaGxpZ2h0aW5nIHVwIHRvIHRoZSBlbmQK
LTEgOiAvKiogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC01XQotMiA6ICAqIGxpbmUgIzEgOiBqYXZh
c2NyaXB0LWNvbW1lbnRbMC0xMF0KLTMgOiAgKiBsaW5lICMyIDogamF2YXNjcmlwdC1jb21tZW50
WzAtMTBdCi00IDogLyoqIDogamF2YXNjcmlwdC1jb21tZW50WzAtNF0KLTUgOiAgKiBsaW5lICMx
IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi02IDogICogbGluZSAjMiA6IGphdmFzY3JpcHQt
Y29tbWVudFswLTEwXQotNyA6ICAqIGxpbmUgIzMgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0K
LTggOiAgKiBsaW5lICM0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi05IDogICogbGluZSAj
NSA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotMTAgOiAgKiBsaW5lICM2IDogamF2YXNjcmlw
dC1jb21tZW50WzAtMTBdCi0xMSA6ICAqIGxpbmUgIzcgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0x
MF0KLTEyIDogICogbGluZSAjOCA6IGphdmFzY3JpcHQtY29tbWVudFswLTEwXQotMTMgOiAgKiB2
YXIgYSA9IG5ldyBBKCk7IC8vKi8gOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0yNF0KLTE0IDogc29t
ZSB0ZXh0IDogamF2YXNjcmlwdC1pZGVudFswLTRdIHdoaXRlc3BhY2VbNC01XSBqYXZhc2NyaXB0
LWlkZW50WzUtOV0KLTE1IDogICogbGluZSAjNiA6IHdoaXRlc3BhY2VbMC0xXSB3aGl0ZXNwYWNl
WzItM10gamF2YXNjcmlwdC1pZGVudFszLTddIHdoaXRlc3BhY2VbNy04XSBqYXZhc2NyaXB0LW51
bWJlcls5LTEwXQotMTYgOiAgKiBsaW5lICM3IDogd2hpdGVzcGFjZVswLTFdIHdoaXRlc3BhY2Vb
Mi0zXSBqYXZhc2NyaXB0LWlkZW50WzMtN10gd2hpdGVzcGFjZVs3LThdIGphdmFzY3JpcHQtbnVt
YmVyWzktMTBdCi0xNyA6ICAqIGxpbmUgIzggOiB3aGl0ZXNwYWNlWzAtMV0gd2hpdGVzcGFjZVsy
LTNdIGphdmFzY3JpcHQtaWRlbnRbMy03XSB3aGl0ZXNwYWNlWzctOF0gamF2YXNjcmlwdC1udW1i
ZXJbOS0xMF0KLTE4IDogICogdmFyIGEgPSBuZXcgQSgpOyAvLyovIDogd2hpdGVzcGFjZVswLTFd
IHdoaXRlc3BhY2VbMi0zXSBqYXZhc2NyaXB0LWtleXdvcmRbMy02XSB3aGl0ZXNwYWNlWzYtN10g
amF2YXNjcmlwdC1pZGVudFs3LThdIHdoaXRlc3BhY2VbOC05XSB3aGl0ZXNwYWNlWzEwLTExXSBq
YXZhc2NyaXB0LWtleXdvcmRbMTEtMTRdIHdoaXRlc3BhY2VbMTQtMTVdIGphdmFzY3JpcHQtaWRl
bnRbMTUtMTZdIHdoaXRlc3BhY2VbMTktMjBdIGphdmFzY3JpcHQtY29tbWVudFsyMC0yNF0KLTE5
IDogc29tZSB0ZXh0IDogamF2YXNjcmlwdC1pZGVudFswLTRdIHdoaXRlc3BhY2VbNC01XSBqYXZh
c2NyaXB0LWlkZW50WzUtOV0KLTIwIDogIDoKLQotQWZ0ZXIgY2hhbmdpbmcgdGhlIGZpcnN0IGxp
bmUsIGFuZCB1cGRhdGluZyB0aGUgaGlnaGxpZ2h0cyBmb3IgdGhlIGZpcnN0IDUgbGluZXMKLTEg
OiBmb28gLyogY29tbWVudCAqLyA6IGphdmFzY3JpcHQtaWRlbnRbMC0zXSB3aGl0ZXNwYWNlWzMt
NF0gamF2YXNjcmlwdC1jb21tZW50WzQtMTddCi0yIDogICogbGluZSAjMSA6IHdoaXRlc3BhY2Vb
MC0xXSB3aGl0ZXNwYWNlWzItM10gamF2YXNjcmlwdC1pZGVudFszLTddIHdoaXRlc3BhY2VbNy04
XSBqYXZhc2NyaXB0LW51bWJlcls5LTEwXQotMyA6ICAqIGxpbmUgIzIgOiB3aGl0ZXNwYWNlWzAt
MV0gd2hpdGVzcGFjZVsyLTNdIGphdmFzY3JpcHQtaWRlbnRbMy03XSB3aGl0ZXNwYWNlWzctOF0g
amF2YXNjcmlwdC1udW1iZXJbOS0xMF0KLTQgOiAvKiogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC01
XQotNSA6ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTYgOiAgKiBsaW5l
ICMyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi03IDogICogbGluZSAjMyA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTEwXQotOCA6ICAqIGxpbmUgIzQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0x
MF0KLTkgOiAgKiBsaW5lICM1IDogamF2YXNjcmlwdC1jb21tZW50WzAtMTBdCi0xMCA6ICAqIGxp
bmUgIzYgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTExIDogICogbGluZSAjNyA6IGphdmFz
Y3JpcHQtY29tbWVudFswLTEwXQotMTIgOiAgKiBsaW5lICM4IDogamF2YXNjcmlwdC1jb21tZW50
WzAtMTBdCi0xMyA6ICAqIHZhciBhID0gbmV3IEEoKTsgLy8qLyA6IGphdmFzY3JpcHQtY29tbWVu
dFswLTI0XQotMTQgOiBzb21lIHRleHQgOiBqYXZhc2NyaXB0LWlkZW50WzAtNF0gd2hpdGVzcGFj
ZVs0LTVdIGphdmFzY3JpcHQtaWRlbnRbNS05XQotMTUgOiAgKiBsaW5lICM2IDogd2hpdGVzcGFj
ZVswLTFdIHdoaXRlc3BhY2VbMi0zXSBqYXZhc2NyaXB0LWlkZW50WzMtN10gd2hpdGVzcGFjZVs3
LThdIGphdmFzY3JpcHQtbnVtYmVyWzktMTBdCi0xNiA6ICAqIGxpbmUgIzcgOiB3aGl0ZXNwYWNl
WzAtMV0gd2hpdGVzcGFjZVsyLTNdIGphdmFzY3JpcHQtaWRlbnRbMy03XSB3aGl0ZXNwYWNlWzct
OF0gamF2YXNjcmlwdC1udW1iZXJbOS0xMF0KLTE3IDogICogbGluZSAjOCA6IHdoaXRlc3BhY2Vb
MC0xXSB3aGl0ZXNwYWNlWzItM10gamF2YXNjcmlwdC1pZGVudFszLTddIHdoaXRlc3BhY2VbNy04
XSBqYXZhc2NyaXB0LW51bWJlcls5LTEwXQotMTggOiAgKiB2YXIgYSA9IG5ldyBBKCk7IC8vKi8g
OiB3aGl0ZXNwYWNlWzAtMV0gd2hpdGVzcGFjZVsyLTNdIGphdmFzY3JpcHQta2V5d29yZFszLTZd
IHdoaXRlc3BhY2VbNi03XSBqYXZhc2NyaXB0LWlkZW50WzctOF0gd2hpdGVzcGFjZVs4LTldIHdo
aXRlc3BhY2VbMTAtMTFdIGphdmFzY3JpcHQta2V5d29yZFsxMS0xNF0gd2hpdGVzcGFjZVsxNC0x
NV0gamF2YXNjcmlwdC1pZGVudFsxNS0xNl0gd2hpdGVzcGFjZVsxOS0yMF0gamF2YXNjcmlwdC1j
b21tZW50WzIwLTI0XQotMTkgOiBzb21lIHRleHQgOiBqYXZhc2NyaXB0LWlkZW50WzAtNF0gd2hp
dGVzcGFjZVs0LTVdIGphdmFzY3JpcHQtaWRlbnRbNS05XQotMjAgOiAgOgotCi1BZ2FpbiBjaGFu
Z2UgdGhlIGZpcnN0IGxpbmUsIGJ1dCB1cGRhdGUgb25seSBmaXJzdCAyIGxpbmVzIChpbnZhbGlk
YXRlIHVwZGF0ZSBmb3IgdGhlIGxpbmVzIGJlbG93KQotMSA6IGZvbyAvKiBjb21tZW50ICovIC8q
IDogamF2YXNjcmlwdC1pZGVudFswLTNdIHdoaXRlc3BhY2VbMy00XSBqYXZhc2NyaXB0LWNvbW1l
bnRbNC0xN10gd2hpdGVzcGFjZVsxNy0xOF0gamF2YXNjcmlwdC1jb21tZW50WzE4LTIxXQotMiA6
ICAqIGxpbmUgIzEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xMF0KLTMgOiAgKiBsaW5lICMyIDog
bnVsbAotNCA6IC8qKiA6IG51bGwKLTUgOiAgKiBsaW5lICMxIDogbnVsbAotNiA6ICAqIGxpbmUg
IzIgOiBudWxsCi03IDogICogbGluZSAjMyA6IG51bGwKLTggOiAgKiBsaW5lICM0IDogbnVsbAot
OSA6ICAqIGxpbmUgIzUgOiBudWxsCi0xMCA6ICAqIGxpbmUgIzYgOiBudWxsCi0xMSA6ICAqIGxp
bmUgIzcgOiBudWxsCi0xMiA6ICAqIGxpbmUgIzggOiBudWxsCi0xMyA6ICAqIHZhciBhID0gbmV3
IEEoKTsgLy8qLyA6IG51bGwKLTE0IDogc29tZSB0ZXh0IDogbnVsbAotMTUgOiAgKiBsaW5lICM2
IDogbnVsbAotMTYgOiAgKiBsaW5lICM3IDogbnVsbAotMTcgOiAgKiBsaW5lICM4IDogbnVsbAot
MTggOiAgKiB2YXIgYSA9IG5ldyBBKCk7IC8vKi8gOiBudWxsCi0xOSA6IHNvbWUgdGV4dCA6IG51
bGwKLTIwIDogIDogbnVsbAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL2hpZ2hsaWdodGVyLWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci9oaWdobGlnaHRlci1iYXNpY3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjM0NDcyOGY2Zjk0NTQyNmYxZGFjM2RlMjJlZWVmNjJmZjQ0MmI2NC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL2hpZ2hsaWdodGVyLWJhc2ljcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iaGlnaGxpZ2h0ZXIt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2
YXIgc3JjID0gIi8qKlxuIjsKLSAgICBmb3IgKHZhciBpID0gMTsgaSA8IDk7ICsraSkgewotICAg
ICAgICBzcmMgKz0gIiAqIGxpbmUgIyIgKyBpICsgIlxuIjsKLSAgICB9Ci0gICAgc3JjICs9ICIg
KiB2YXIgYSA9IG5ldyBBKCk7IC8vKi9cbiI7Ci0gICAgc3JjICs9ICJzb21lIHRleHRcbiI7Ci0K
LSAgICB2YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsK
LSAgICB0ZXh0TW9kZWwuc2V0VGV4dChzcmMpOwotCi0gICAgdmFyIGhpZ2hsaWdodGVyID0gbmV3
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIodGV4dE1vZGVsLCBmdW5jdGlvbigp
IHt9KTsKLSAgICBoaWdobGlnaHRlci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAg
IGhpZ2hsaWdodGVyLmhpZ2hsaWdodENodW5rTGltaXQgPSBOdW1iZXIuTUFYX1ZBTFVFOyAvLyBT
eW5jaHJvbm91cy4KLQotICAgIGZ1bmN0aW9uIGR1bXBUZXh0TW9kZWwobXNnKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbiIgKyBtc2cpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBUZXh0TW9kZWwodGV4dE1vZGVsKTsKLSAgICB9Ci0KLSAgICBoaWdobGlnaHRlci5o
aWdobGlnaHQoNSk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIDUgbGlu
ZXMiKTsKLQotICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9kZWwubGluZXNDb3VudCk7
Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIGFsbCBsaW5lcyIpOwotCi0g
ICAgdmFyIHJhbmdlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMywgMCwgNiwgMCk7Ci0g
ICAgdmFyIG5ld1JhbmdlID0gdGV4dE1vZGVsLmVkaXRSYW5nZShyYW5nZSwgc3JjKTsKLSAgICBk
dW1wVGV4dE1vZGVsKCJBZnRlciBjaGFuZ2luZyB0ZXh0IG1vZGVsLCBidXQgYmVmb3JlIHVwZGF0
aW5nIGhpZ2hsaWdodHMiKTsKLQotICAgIGhpZ2hsaWdodGVyLnVwZGF0ZUhpZ2hsaWdodChuZXdS
YW5nZS5zdGFydExpbmUsIG5ld1JhbmdlLmVuZExpbmUgKyAxKTsKLSAgICBkdW1wVGV4dE1vZGVs
KCJBZnRlciB1cGRhdGluZyBoaWdobGlnaHRzIik7Ci0KLSAgICBoaWdobGlnaHRlci5oaWdobGln
aHQodGV4dE1vZGVsLmxpbmVzQ291bnQsIHRydWUpOwotICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVy
IGhpZ2hsaWdodGluZyB1cCB0byB0aGUgZW5kIik7Ci0KLSAgICB2YXIgcmFuZ2UgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRleHRSYW5nZSgwLCAwLCAwLCB0ZXh0TW9kZWwubGluZUxlbmd0aCgwKSk7Ci0g
ICAgdmFyIG5ld1JhbmdlID0gdGV4dE1vZGVsLmVkaXRSYW5nZShyYW5nZSwgImZvbyAvKiBjb21t
ZW50ICovIik7Ci0gICAgaGlnaGxpZ2h0ZXIudXBkYXRlSGlnaGxpZ2h0KDAsIDUpOwotICAgIGR1
bXBUZXh0TW9kZWwoIkFmdGVyIGNoYW5naW5nIHRoZSBmaXJzdCBsaW5lLCBhbmQgdXBkYXRpbmcg
dGhlIGhpZ2hsaWdodHMgZm9yIHRoZSBmaXJzdCA1IGxpbmVzIik7Ci0KLSAgICB2YXIgcmFuZ2Ug
PSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCB0ZXh0TW9kZWwubGluZUxlbmd0aCgwKSwg
MCwgdGV4dE1vZGVsLmxpbmVMZW5ndGgoMCkpOwotICAgIHZhciBuZXdSYW5nZSA9IHRleHRNb2Rl
bC5lZGl0UmFuZ2UocmFuZ2UsICIgLyoiKTsKLSAgICBoaWdobGlnaHRlci51cGRhdGVIaWdobGln
aHQoMCwgMik7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWdhaW4gY2hhbmdlIHRoZSBmaXJzdCBsaW5l
LCBidXQgdXBkYXRlIG9ubHkgZmlyc3QgMiBsaW5lcyAoaW52YWxpZGF0ZSB1cGRhdGUgZm9yIHRo
ZSBsaW5lcyBiZWxvdykiKTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRoaXMgdGVzdCBjaGVja3MgaGlnaGxpZ2h0ZXIgY29ycmVjdG5lc3MuCi08L3A+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGln
aGxpZ2h0ZXItY2h1bmstbGltaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci9oaWdobGlnaHRlci1jaHVuay1saW1pdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkxMmNkY2NjYTUyYmExMzBlNTNhZjZmZjhhZDEyMDYyMTdhYWFh
YWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1jaHVuay1saW1pdC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIGhpZ2hs
aWdodGluZyB3aXRoIHNwZWNpZmljIGhpZ2hsaWdodENodW5rTGltaXQuCi0KLUhpZ2hsaWdodGVy
IHJlc3VsdHMKLTEgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50
IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlw
dC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3
aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRl
bnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQt
c3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFd
IHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1p
ZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlw
dC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04
OF0KLTIgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUg
Ki8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3
b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNw
YWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgt
MjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5n
WzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRl
c3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1
Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1i
ZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTMg
OiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhp
cy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAt
NF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEy
LTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdo
aXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMx
XSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2Vb
NTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10g
d2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAt
NzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTQgOiB0aGlz
LmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhl
ckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2
YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBq
YXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3Bh
Y2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0
ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJd
IGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVz
cGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdo
aXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTUgOiB0aGlzLmZpZWxk
ID0gdGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxk
ID0gMTI7IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlw
dC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2Ny
aXB0LWtleXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMt
MjRdIHdoaXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNl
WzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFz
Y3JpcHQta2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2
Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3Bh
Y2VbNzMtNzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTYgOiB0aGlzLmZpZWxkID0gdGhp
cy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7
IC8vIGVuZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVu
dFs1LTEwXSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtl
eXdvcmRbMTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdo
aXRlc3BhY2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMz
XSBqYXZhc2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQt
a2V5d29yZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0g
d2hpdGVzcGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMt
NzRdIGphdmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTcgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVs
ZCA9ICJmb28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVu
ZCBvZiBsaW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEw
XSB3aGl0ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRb
MTMtMTddIGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3Bh
Y2VbMjUtMjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZh
c2NyaXB0LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29y
ZFs1Mi01Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVz
cGFjZVs2OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGph
dmFzY3JpcHQtY29tbWVudFs3NC04OF0KLTggOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJm
b28iOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBs
aW5lIDogamF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0
ZXNwYWNlWzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTdd
IGphdmFzY3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUt
MjZdIGphdmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0
LWNvbW1lbnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01
Nl0gamF2YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2
OS03MF0gamF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3Jp
cHQtY29tbWVudFs3NC04OF0KLTkgOiB0aGlzLmZpZWxkID0gdGhpcy5maWVsZCA9ICJmb28iOyAv
KiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVuZCBvZiBsaW5lIDog
amF2YXNjcmlwdC1rZXl3b3JkWzAtNF0gamF2YXNjcmlwdC1pZGVudFs1LTEwXSB3aGl0ZXNwYWNl
WzEwLTExXSB3aGl0ZXNwYWNlWzEyLTEzXSBqYXZhc2NyaXB0LWtleXdvcmRbMTMtMTddIGphdmFz
Y3JpcHQtaWRlbnRbMTgtMjNdIHdoaXRlc3BhY2VbMjMtMjRdIHdoaXRlc3BhY2VbMjUtMjZdIGph
dmFzY3JpcHQtc3RyaW5nWzI2LTMxXSB3aGl0ZXNwYWNlWzMyLTMzXSBqYXZhc2NyaXB0LWNvbW1l
bnRbMzMtNTFdIHdoaXRlc3BhY2VbNTEtNTJdIGphdmFzY3JpcHQta2V5d29yZFs1Mi01Nl0gamF2
YXNjcmlwdC1pZGVudFs1Ny02N10gd2hpdGVzcGFjZVs2Ny02OF0gd2hpdGVzcGFjZVs2OS03MF0g
amF2YXNjcmlwdC1udW1iZXJbNzAtNzJdIHdoaXRlc3BhY2VbNzMtNzRdIGphdmFzY3JpcHQtY29t
bWVudFs3NC04OF0KLTEwIDogdGhpcy5maWVsZCA9IHRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29t
bWVudCBoZXJlICovIHRoaXMub3RoZXJGaWVsZCA9IDEyOyAvLyBlbmQgb2YgbGluZSA6IGphdmFz
Y3JpcHQta2V5d29yZFswLTRdIGphdmFzY3JpcHQtaWRlbnRbNS0xMF0gd2hpdGVzcGFjZVsxMC0x
MV0gd2hpdGVzcGFjZVsxMi0xM10gamF2YXNjcmlwdC1rZXl3b3JkWzEzLTE3XSBqYXZhc2NyaXB0
LWlkZW50WzE4LTIzXSB3aGl0ZXNwYWNlWzIzLTI0XSB3aGl0ZXNwYWNlWzI1LTI2XSBqYXZhc2Ny
aXB0LXN0cmluZ1syNi0zMV0gd2hpdGVzcGFjZVszMi0zM10gamF2YXNjcmlwdC1jb21tZW50WzMz
LTUxXSB3aGl0ZXNwYWNlWzUxLTUyXSBqYXZhc2NyaXB0LWtleXdvcmRbNTItNTZdIGphdmFzY3Jp
cHQtaWRlbnRbNTctNjddIHdoaXRlc3BhY2VbNjctNjhdIHdoaXRlc3BhY2VbNjktNzBdIGphdmFz
Y3JpcHQtbnVtYmVyWzcwLTcyXSB3aGl0ZXNwYWNlWzczLTc0XSBqYXZhc2NyaXB0LWNvbW1lbnRb
NzQtODhdCi0xMSA6ICA6Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0
b3IvaGlnaGxpZ2h0ZXItY2h1bmstbGltaXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvaGlnaGxpZ2h0ZXItY2h1bmstbGltaXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYmRmMTdhMzc1MzgxZGM0NTQ0YTNmMWFlNjAwYmVkYWJhYWMxMDI5ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWNodW5rLWxpbWl0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJoaWdobGlnaHRlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotCi0gICAgdmFyIHNpbmdsZUxpbmUgPSAidGhpcy5maWVsZCA9IHRoaXMuZmllbGQg
PSBcImZvb1wiOyAvKiBjb21tZW50IGhlcmUgKi8gdGhpcy5vdGhlckZpZWxkID0gMTI7IC8vIGVu
ZCBvZiBsaW5lXG4iOwotICAgIHNyYyA9ICIiOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7
ICsraSkKLSAgICAgICAgc3JjICs9IHNpbmdsZUxpbmU7Ci0KLSAgICB2YXIgdGV4dE1vZGVsID0g
bmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKLSAgICB0ZXh0TW9kZWwuc2V0VGV4
dChzcmMpOwotCi0gICAgZnVuY3Rpb24gZGFtYWdlQ2FsbGJhY2soc3RhcnRMaW5lLCBlbmRMaW5l
KQotICAgIHsKLSAgICAgICAgaWYgKGVuZExpbmUgPT09IHRleHRNb2RlbC5saW5lc0NvdW50KSB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSGlnaGxpZ2h0ZXIgcmVzdWx0
cyIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVGV4dE1vZGVsKHRleHRNb2RlbCk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgdmFyIGhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
SGlnaGxpZ2h0ZXIodGV4dE1vZGVsLCBkYW1hZ2VDYWxsYmFjayk7Ci0gICAgaGlnaGxpZ2h0ZXIu
bWltZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICBoaWdobGlnaHRlci5oaWdobGlnaHRD
aHVua0xpbWl0ID0gMzsKLSAgICBoaWdobGlnaHRlci5oaWdobGlnaHQodGV4dE1vZGVsLmxpbmVz
Q291bnQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIGhpZ2hsaWdodGluZyB3aXRoIHNwZWNpZmljIGhp
Z2hsaWdodENodW5rTGltaXQuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1s
aW5lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg4MWFlZjlk
ZTBkNDdjYTU2YWQ4YWZmZDQ0ZDUxMzE3Y2EzNzMxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hs
aWdodGVyLWxvbmctbGluZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAg
QEAKLVRoaXMgdGVzdCBjaGVja3MgaGlnaGxpZ2h0ZXIgb24gYSBsb25nIGxpbmUuCi0KLUxpbmUg
bGVuZ3RoOiAxMTI2NCwgbnVtYmVyIG9mIGNvbW1lbnRzOiAxMDI0Ci1BbGwgY2hlY2tzIGNvbXBs
ZXRlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGln
aHRlci1sb25nLWxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxp
Z2h0ZXItbG9uZy1saW5lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjNWQ1
ODc2NTUxNjk4MzkxNGMyZTc3N2MxYTNhNDBiZDZiNGQ4NGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9o
aWdobGlnaHRlci1sb25nLWxpbmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImhpZ2hsaWdodGVyLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFy
IHRleHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7Ci0KLSAgICB2
YXIgaGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlcih0
ZXh0TW9kZWwsIGZ1bmN0aW9uKCkge30pOwotICAgIGhpZ2hsaWdodGVyLm1pbWVUeXBlID0gInRl
eHQvamF2YXNjcmlwdCI7Ci0gICAgaGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0Q2h1bmtMaW1pdCA9IE51
bWJlci5NQVhfVkFMVUU7IC8vIFN5bmNocm9ub3VzLgotICAgIGhpZ2hsaWdodGVyLnNldEhpZ2hs
aWdodExpbmVMaW1pdChOdW1iZXIuTUFYX1ZBTFVFKTsKLQotICAgIHZhciBzcmMgPSAiLyogYXNk
ZiAqLyAiOwotICAgIHZhciBjb21tZW50cyA9IDE7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDsgKytpKSB7Ci0gICAgICAgIHNyYyArPSBzcmM7Ci0gICAgICAgIGNvbW1lbnRzICo9IDI7Ci0g
ICAgfQotICAgIHRleHRNb2RlbC5zZXRUZXh0KHNyYyk7Ci0KLSAgICBmdW5jdGlvbiBjaGVja0hp
Z2hsaWdodHMoKQotICAgIHsKLSAgICAgICAgdmFyIGNvbW1lbnRzRm91bmQgPSAwOwotICAgICAg
ICBmb3IgKHZhciBsaW5lTnVtYmVyID0gMDsgbGluZU51bWJlciA8IHRleHRNb2RlbC5saW5lc0Nv
dW50OyArK2xpbmVOdW1iZXIpIHsKLSAgICAgICAgICAgIHZhciBoaWdobGlnaHQgPSB0ZXh0TW9k
ZWwuZ2V0QXR0cmlidXRlKGxpbmVOdW1iZXIsICJoaWdobGlnaHQiKTsKLSAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgaGlnaGxpZ2h0LnJhbmdlcy5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgICAgIHZhciByYW5nZSA9IGhpZ2hsaWdodC5yYW5nZXNbaV07Ci0gICAgICAgICAgICAg
ICAgaWYgKHJhbmdlLnRva2VuID09PSAid2hpdGVzcGFjZSIpCi0gICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHZhciByYW5nZUxlbmd0aCA9IHJhbmdlLmVuZENv
bHVtbiAtIHJhbmdlLnN0YXJ0Q29sdW1uICsgMTsKLSAgICAgICAgICAgICAgICBpZiAocmFuZ2VM
ZW5ndGggIT09IDEwIHx8IChyYW5nZS5zdGFydENvbHVtbiAlIDExKSkgewotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IHVuZXhwZWN0ZWQgaGlnaGxp
Z2h0IHJlc3VsdDogaT0iICsgcmFuZ2Uuc3RhcnRDb2x1bW4gKyAiLCBsZW5ndGg9IiArIHJhbmdl
TGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICsrY29tbWVudHNGb3VuZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICBpZiAoY29tbWVudHMgIT09IGNvbW1lbnRzRm91bmQpCi0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IHNvbWUgb2YgdGhlIGNvbW1lbnRzIHdlcmUg
bm90IGhpZ2hsaWdodGVkLCBmb3VuZDogIiArIGNvbW1lbnRzRm91bmQpOwotICAgIH0KLQotICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJMaW5lIGxlbmd0aDogIiArIHNyYy5sZW5ndGggKyAi
LCBudW1iZXIgb2YgY29tbWVudHM6ICIgKyBjb21tZW50cyk7Ci0KLSAgICBoaWdobGlnaHRlci5o
aWdobGlnaHQodGV4dE1vZGVsLmxpbmVzQ291bnQpOwotICAgIGNoZWNrSGlnaGxpZ2h0cygpOwot
Ci0gICAgLy8gSW5zZXJ0IGEgY2FyZXQgcmV0dXJuIGluIHRoZSBtaWRkbGUgb2YgdGhlIGxvbmcg
bGluZS4KLSAgICB2YXIgaGFsZkxlbmd0aCA9IE1hdGguZmxvb3Ioc3JjLmxlbmd0aCAvIDIpOwot
ICAgIHZhciByYW5nZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDAsIGhhbGZMZW5ndGgs
IDAsIGhhbGZMZW5ndGgpOwotICAgIHZhciBuZXdSYW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2Uo
cmFuZ2UsICJcbiIpOwotICAgIGhpZ2hsaWdodGVyLnVwZGF0ZUhpZ2hsaWdodChuZXdSYW5nZS5z
dGFydExpbmUsIG5ld1JhbmdlLmVuZExpbmUgKyAxKTsKLSAgICBjaGVja0hpZ2hsaWdodHMoKTsK
LQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBbGwgY2hlY2tzIGNvbXBsZXRlZC4iKTsK
LSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIGhp
Z2hsaWdodGVyIG9uIGEgbG9uZyBsaW5lLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWlu
LWNvbW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdo
bGlnaHRlci1wYXN0ZS1pbi1jb21tZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjVjMjFkMjgxNGJiZjQ3NjYwZmVlZGE2MGRjYTc0MjVhMGZmNDgzZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBhZ2FpbnN0
IGEgYnVnIGluIHRoZSBoaWdobGlnaHRlciB3aGVuIHBhc3RpbmcgdGV4dCBpbnNpZGUgYSBjb21t
ZW50LgotCi0KLUFmdGVyIGhpZ2hsaWdodGluZyBhbGwgbGluZXMKLTEgOiAvKiA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTNdCi0yIDogIDoKLTMgOiAxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0K
LTQgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTUgOiAzIDogamF2YXNjcmlwdC1jb21t
ZW50WzAtMV0KLTYgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTcgOiA1IDogamF2YXNj
cmlwdC1jb21tZW50WzAtMV0KLTggOiAgOgotOSA6ICovIDogamF2YXNjcmlwdC1jb21tZW50WzAt
Ml0KLQotQWZ0ZXIgdXBkYXRlIGhpZ2hsaWdodHMKLTEgOiAvKiA6IGphdmFzY3JpcHQtY29tbWVu
dFswLTNdCi0yIDogIDoKLTMgOiAxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTQgOiAyIDog
amF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTUgOiAzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0K
LTYgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTcgOiA1IDogamF2YXNjcmlwdC1jb21t
ZW50WzAtMV0KLTggOiAxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTkgOiAyIDogamF2YXNj
cmlwdC1jb21tZW50WzAtMV0KLTEwIDogMyA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi0xMSA6
IDQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotMTIgOiA1IDogamF2YXNjcmlwdC1jb21tZW50
WzAtMV0KLTEzIDogIDoKLTE0IDogKi8gOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0yXQotCi1BZnRl
ciBoaWdobGlnaHRpbmcgdXAgdG8gdGhlIGVuZAotMSA6IC8qIDogamF2YXNjcmlwdC1jb21tZW50
WzAtM10KLTIgOiAgOgotMyA6IDEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotNCA6IDIgOiBq
YXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotNSA6IDMgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQot
NiA6IDQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotNyA6IDUgOiBqYXZhc2NyaXB0LWNvbW1l
bnRbMC0xXQotOCA6IDEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotOSA6IDIgOiBqYXZhc2Ny
aXB0LWNvbW1lbnRbMC0xXQotMTAgOiAzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KLTExIDog
NCA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi0xMiA6IDUgOiBqYXZhc2NyaXB0LWNvbW1lbnRb
MC0xXQotMTMgOiAgOgotMTQgOiAqLyA6IGphdmFzY3JpcHQtY29tbWVudFswLTJdCi0KLUFmdGVy
IGluc2VydGluZyBhIG5ldyBsaW5lCi0xIDogLyogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0zXQot
MiA6ICA6Ci0zIDogMSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi00IDogMiA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTFdCi01IDogMyA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi02IDogNCA6
IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi03IDogNSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFd
Ci04IDogMSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi05IDogMiA6IGphdmFzY3JpcHQtY29t
bWVudFswLTFdCi0xMCA6IDMgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQotMTEgOiA0IDogamF2
YXNjcmlwdC1jb21tZW50WzAtMV0KLTEyIDogNSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCi0x
MyA6ICA6Ci0xNCA6ICA6Ci0xNSA6ICovIDogamF2YXNjcmlwdC1jb21tZW50WzAtMl0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1p
bi1jb21tZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVy
LXBhc3RlLWluLWNvbW1lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTI3
NmNjNzgyZTg2NWI4YmE1ZDY3NGFiZTc0YzY0YzFhMzE5NGQ3My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9y
L2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUz
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImhpZ2hs
aWdodGVyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgdmFyIHRleHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7
Ci0KLSAgICB2YXIgaGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdo
bGlnaHRlcih0ZXh0TW9kZWwsIGZ1bmN0aW9uKCkge30pOwotICAgIGhpZ2hsaWdodGVyLm1pbWVU
eXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0gICAgaGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0Q2h1bmtM
aW1pdCA9IE51bWJlci5NQVhfVkFMVUU7IC8vIFN5bmNocm9ub3VzLgotCi0gICAgZnVuY3Rpb24g
ZHVtcFRleHRNb2RlbChtc2cpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxu
IiArIG1zZyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFRleHRNb2RlbCh0ZXh0TW9kZWwp
OwotICAgIH0KLQotICAgIHZhciBzcmMgPSAiLypcblxuMVxuMlxuM1xuNFxuNVxuXG4qLyI7Ci0g
ICAgdGV4dE1vZGVsLnNldFRleHQoc3JjKTsKLQotICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0
ZXh0TW9kZWwubGluZXNDb3VudCk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0
aW5nIGFsbCBsaW5lcyIpOwotCi0gICAgdmFyIHJhbmdlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0
UmFuZ2UoNywgMCwgNywgMCk7Ci0gICAgdmFyIG5ld1JhbmdlID0gdGV4dE1vZGVsLmVkaXRSYW5n
ZShyYW5nZSwgIjFcbjJcbjNcbjRcbjVcbiIpOwotICAgIGhpZ2hsaWdodGVyLnVwZGF0ZUhpZ2hs
aWdodCg3LCB0ZXh0TW9kZWwubGluZXNDb3VudCk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIg
dXBkYXRlIGhpZ2hsaWdodHMiKTsKLQotICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9k
ZWwubGluZXNDb3VudCk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIHVw
IHRvIHRoZSBlbmQiKTsKLQotICAgIC8vIFRoZXJlIHdhcyBhbiBhY3R1YWwgYnVnIHdpdGggd3Jv
bmdseSByZXN0b3JlZCBwb3NpdGlvbiBhZnRlciB1cGRhdGluZyB0aGUgaGlnaGxpZ2h0cy4KLSAg
ICB2YXIgcmFuZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgxMiwgMCwgMTIsIDApOwot
ICAgIHZhciBuZXdSYW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsICJcbiIpOwotICAg
IGhpZ2hsaWdodGVyLnVwZGF0ZUhpZ2hsaWdodCgxMiwgdGV4dE1vZGVsLmxpbmVzQ291bnQpOwot
ICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9kZWwubGluZXNDb3VudCk7Ci0gICAgZHVt
cFRleHRNb2RlbCgiQWZ0ZXIgaW5zZXJ0aW5nIGEgbmV3IGxpbmUiKTsKLQotICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgYWdhaW5zdCA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4NzYiPmEgYnVnPC9h
PiBpbiB0aGUgaGlnaGxpZ2h0ZXIgd2hlbiBwYXN0aW5nIHRleHQgaW5zaWRlIGEgY29tbWVudC4K
LTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VkaXRvci9oaWdobGlnaHRlci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vk
aXRvci9oaWdobGlnaHRlci10ZXN0LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
ZWYyZGZiMWY5NjUzYTZlNTYxNjA1M2JlZWZkMTYwYzdkYzQ2ZmU5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0
b3IvaGlnaGxpZ2h0ZXItdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLWZ1
bmN0aW9uIGluaXRpYWxpemVfSGlnaGxpZ2h0ZXJUZXN0cygpCi17Ci0KLUluc3BlY3RvclRlc3Qu
ZHVtcFRleHRNb2RlbCA9IGZ1bmN0aW9uKHRleHRNb2RlbCkKLXsKLSAgICB2YXIgbGluZXMgPSBb
XTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRNb2RlbC5saW5lc0NvdW50OyArK2kpIHsK
LSAgICAgICAgdmFyIGxpbmUgPSB0ZXh0TW9kZWwubGluZShpKTsKLSAgICAgICAgdmFyIGhpZ2hs
aWdodCA9IHRleHRNb2RlbC5nZXRBdHRyaWJ1dGUoaSwgImhpZ2hsaWdodCIpOwotICAgICAgICB2
YXIgcmVzdWx0ID0gKGkgKyAxKSArICIgOiAiICsgbGluZSArICIgOiI7Ci0gICAgICAgIGlmICho
aWdobGlnaHQpIHsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgaGlnaGxpZ2h0LnJh
bmdlcy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgIHZhciByYW5nZSA9IGhpZ2hsaWdo
dC5yYW5nZXNbal07Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgIiArIHJhbmdlLnRva2Vu
ICsgIlsiICsgcmFuZ2Uuc3RhcnRDb2x1bW4gKyAiLSIgKyAocmFuZ2UuZW5kQ29sdW1uICsgMSkg
KyAiXSI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmVzdWx0
ICs9ICIgbnVsbCI7Ci0gICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KTsKLSAgICB9Ci0gICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQobGluZXMuam9pbigiXG4iKSk7Ci19OwotCi19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2luZGVudGF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjdkYzU5ZjU2N2IxYjZmMzI1NjdjNWJl
YjUyZDNlMTkyMmVmMzRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaW5kZW50YXRpb24tZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBjb2Rl
IGluZGVudGF0aW9uIGFuZCB1bmluZGVudGF0aW9uIG9mIHNldmVyYWwgbGluZXMgb2YgY29kZS4K
LQotQWZ0ZXIgaW5kZW50aW5nIGZpcnN0IGZ1bGx5IHNlbGVjdGVkIGxpbmUKLSAgICAvKgotICog
YSBjb21tZW50Ci0gKi8KLVNlbGVjdGlvbiAwLDAgMSwwCi0KLUFmdGVyIGluZGVudGluZyBmaXJz
dCBwYXJ0aWFsbHkgc2VsZWN0ZWQgbGluZQotICAgICAgICAvKgotICogYSBjb21tZW50Ci0gKi8K
LVNlbGVjdGlvbiAwLDkgMSwwCi0KLUFmdGVyIHVuaW5kZW50aW5nIHR3byBmdWxseSBzZWxlY3Rl
ZCBsaW5lcwotICAgIC8qCi0qIGEgY29tbWVudAotICovCi1TZWxlY3Rpb24gMCwwIDIsMAotCi1B
ZnRlciB1bmluZGVudGluZyB0d28gcGFydGlhbGx5IHNlbGVjdGVkIGxpbmVzIChidWcgOTc0NjIp
Ci0vKgotKiBhIGNvbW1lbnQKLSAqLwotU2VsZWN0aW9uIDAsMSAxLDYKLQotQWZ0ZXIgdW5pbmRl
bnRpbmcgdGhyZWUgcGFydGlhbGx5IHNlbGVjdGVkIGxpbmVzCi0vKgotKiBhIGNvbW1lbnQKLSov
Ci1TZWxlY3Rpb24gMCwwIDIsMgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvaW5kZW50YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3Iv
aW5kZW50YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNThiMTdjOTNi
M2ExY2E0YzM2OTU2ZTgyZGFjYjAyMDc0ODljZjI0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2luZGVu
dGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJoaWdobGlnaHRlci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgc3JjID0gIi8qXG4iICsK
LSAgICAgICAgIiAqIGEgY29tbWVudFxuIiArCi0gICAgICAgICIgKi8iOwotCi0gICAgdmFyIG1v
ZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKLSAgICBtb2RlbC5zZXRU
ZXh0KHNyYyk7Ci0KLSAgICB2YXIgc2VsZWN0aW9uOwotICAgIGZ1bmN0aW9uIGR1bXBUZXh0TW9k
ZWwobXNnKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobXNnKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQobW9kZWwudGV4dCgpKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoJ1NlbGVjdGlvbiAnICsgc2VsZWN0aW9uLnN0YXJ0TGluZSAr
ICcsJyArIHNlbGVjdGlvbi5zdGFydENvbHVtbiAgKyAnICcgKyBzZWxlY3Rpb24uZW5kTGluZSAr
ICcsJyArIHNlbGVjdGlvbi5lbmRDb2x1bW4gKyAnXG4nKTsKLSAgICB9Ci0KLSAgICBzZWxlY3Rp
b24gPSBtb2RlbC5pbmRlbnRMaW5lcyhuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCAwLCAx
LCAwKSk7Ci0gICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaW5kZW50aW5nIGZpcnN0IGZ1bGx5IHNl
bGVjdGVkIGxpbmUiKTsKLQotICAgIHNlbGVjdGlvbiA9IG1vZGVsLmluZGVudExpbmVzKG5ldyBX
ZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDAsIDUsIDEsIDApKTsKLSAgICBkdW1wVGV4dE1vZGVsKCJB
ZnRlciBpbmRlbnRpbmcgZmlyc3QgcGFydGlhbGx5IHNlbGVjdGVkIGxpbmUiKTsKLQotICAgIHNl
bGVjdGlvbiA9IG1vZGVsLnVuaW5kZW50TGluZXMobmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2Uo
MCwgMCwgMiwgMCkpOwotICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIHVuaW5kZW50aW5nIHR3byBm
dWxseSBzZWxlY3RlZCBsaW5lcyIpOwotCi0gICAgc2VsZWN0aW9uID0gbW9kZWwudW5pbmRlbnRM
aW5lcyhuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCA1LCAxLCA2KSk7Ci0gICAgZHVtcFRl
eHRNb2RlbCgiQWZ0ZXIgdW5pbmRlbnRpbmcgdHdvIHBhcnRpYWxseSBzZWxlY3RlZCBsaW5lcyAo
YnVnIDk3NDYyKSIpOwotCi0gICAgc2VsZWN0aW9uID0gbW9kZWwudW5pbmRlbnRMaW5lcyhuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCAwLCAyLCAzKSk7Ci0gICAgZHVtcFRleHRNb2RlbCgi
QWZ0ZXIgdW5pbmRlbnRpbmcgdGhyZWUgcGFydGlhbGx5IHNlbGVjdGVkIGxpbmVzIik7Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyBjb2RlIGlu
ZGVudGF0aW9uIGFuZCB1bmluZGVudGF0aW9uIG9mIHNldmVyYWwgbGluZXMgb2YgY29kZS4KLTwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3ItYnJhY2UtaGlnaGxpZ2h0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1icmFjZS1oaWdobGlnaHRlci1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViOTdjNTFhOGQ0NGFmZmZm
ZGNkNjQ5M2ZmOWNjZTFlMDRmZjQ1NDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1i
cmFjZS1oaWdobGlnaHRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCww
IEBACi1UaGlzIHRlc3QgY2hlY2tzIGhvdyB0ZXh0IGVkaXRvciBoaWdobGlnaHRzIGJyYWNlcy4K
LQotPT09PT09PT09PT09PT09PT09PT09PT0KLXwoeygpfSkoKCkpCi0KLTxkaXYgY2xhc3M9Imlu
bmVyLWNvbnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBj
bGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48c3BhbiBj
bGFzcz0idGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGln
aHQiIHN0eWxlPSJsZWZ0OiAwcHg7IHdpZHRoOiA3cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwv
c3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3Zl
cmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAzNXB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxu
dW1iZXI+cHg7Ij48L3NwYW4+PC9kaXY+PC9kaXY+Ci09PT09PT09PT09PT09PT09PT09PT09PQot
KHx7KCl9KSgoKSkKLQotPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIHRleHQtZWRpdG9yLWVk
aXRhYmxlIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48
c3Bhbj4oeygpfSkoKCkpPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRj
aCB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDdweDsgd2lkdGg6
IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRv
ci1icmFjZS1tYXRjaCB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6
IDI4cHg7IHdpZHRoOiA3cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj48L2Rp
dj4KLT09PT09PT09PT09PT09PT09PT09PT09Ci0oe3woKX0pKCgpKQotCi08ZGl2IGNsYXNzPSJp
bm5lci1jb250YWluZXIgdGV4dC1lZGl0b3ItZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxkaXYg
Y2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPih7KCl9KSgoKSk8L3NwYW4+PHNwYW4g
Y2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxp
Z2h0IiBzdHlsZT0ibGVmdDogMTRweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+
PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRjaCB0ZXh0LWVkaXRvci1v
dmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDIxcHg7IHdpZHRoOiA3cHg7IGhlaWdodDog
PG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09PT09PT09PT09PT09
Ci0oeyh8KX0pKCgpKQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0b3It
ZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQi
PjxzcGFuPih7KCl9KSgoKSk8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1h
dGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogMTRweDsgd2lk
dGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVk
aXRvci1icmFjZS1tYXRjaCB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9Imxl
ZnQ6IDIxcHg7IHdpZHRoOiA3cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj48
L2Rpdj4KLT09PT09PT09PT09PT09PT09PT09PT09Ci0oeygpfH0pKCgpKQotCi08ZGl2IGNsYXNz
PSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0b3ItZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxk
aXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPih7KCl9KSgoKSk8L3NwYW4+PHNw
YW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGln
aGxpZ2h0IiBzdHlsZT0ibGVmdDogMTRweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4
OyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci1icmFjZS1tYXRjaCB0ZXh0LWVkaXRv
ci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDIxcHg7IHdpZHRoOiA3cHg7IGhlaWdo
dDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09PT09PT09PT09
PT09Ci0oeygpfXwpKCgpKQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0
b3ItZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRl
bnQiPjxzcGFuPih7KCl9KSgoKSk8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNl
LW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogN3B4OyB3
aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQt
ZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0i
bGVmdDogMjhweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2
PjwvZGl2PgotPT09PT09PT09PT09PT09PT09PT09PT0KLSh7KCl9KXwoKCkpCi0KLTxkaXYgY2xh
c3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgot
PGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48
c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1o
aWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA0MnB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+
cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRp
dG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNjNweDsgd2lkdGg6IDdweDsgaGVp
Z2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09PT09PT09PT09PT09PT09
PT09PT0KLSh7KCl9KSh8KCkpCi0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVk
aXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29u
dGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItYnJh
Y2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA0OXB4
OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRl
eHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHls
ZT0ibGVmdDogNTZweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwv
ZGl2PjwvZGl2PgotPT09PT09PT09PT09PT09PT09PT09PT0KLSh7KCl9KSgofCkpCi0KLTxkaXYg
Y2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAi
PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bh
bj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3Zlcmxh
eS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA0OXB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1i
ZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQt
ZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNTZweDsgd2lkdGg6IDdweDsg
aGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09PT09PT09PT09PT09
PT09PT09PT0KLSh7KCl9KSgoKXwpCi0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0
LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3It
YnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA0
OXB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9
InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBz
dHlsZT0ibGVmdDogNTZweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFu
PjwvZGl2PjwvZGl2PgotPT09PT09PT09PT09PT09PT09PT09PT0KLSh7KCl9KSgoKSl8Ci0KLTxk
aXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVkaXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9
IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+KHsoKX0pKCgpKTwv
c3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItYnJhY2UtbWF0Y2ggdGV4dC1lZGl0b3Itb3Zl
cmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA0MnB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDxu
dW1iZXI+cHg7Ij48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLWJyYWNlLW1hdGNoIHRl
eHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNjNweDsgd2lkdGg6IDdw
eDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PjwvZGl2PgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWJyYWNlLWhpZ2hsaWdo
dGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWJyYWNl
LWhpZ2hsaWdodGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3ZjM0MDdj
OTQwY2FlZTZkZDRjZjMwMDRmZjU1YWVmNzE1ZTg1Y2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0
LWVkaXRvci1icmFjZS1oaWdobGlnaHRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFy
IGN1cnNvclBvc2l0aW9uID0gLTE7Ci0gICAgZnVuY3Rpb24gcnVuVGVzdFdpdGhDdXJzb3JQb3Np
dGlvbigpCi0gICAgewotICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gPiB0ZXh0RWRpdG9yLnRl
eHQoKS5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCI9PT09PT09PT09PT09PT09PT09PT09PSIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChJbnNwZWN0b3JUZXN0LnRleHRXaXRoU2VsZWN0aW9uKHRleHRFZGl0b3Iu
dGV4dCgpLCB0ZXh0RWRpdG9yLnNlbGVjdGlvbigpKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7Ci0KLSAgICAgICAgc2V0VGltZW91dChj
aGFuZ2VDdXJzb3JQb3NpdGlvbigpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGFuZ2VDdXJz
b3JQb3NpdGlvbigpCi0gICAgewotICAgICAgICArK2N1cnNvclBvc2l0aW9uOwotICAgICAgICBp
ZiAoY3Vyc29yUG9zaXRpb24gPiB0ZXh0RWRpdG9yLnRleHQoKS5sZW5ndGgpIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgdGV4dEVkaXRvci5zZXRTZWxlY3Rpb24oV2ViSW5zcGVjdG9yLlRl
eHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24oMCwgY3Vyc29yUG9zaXRpb24pKTsKLSAgICB9Ci0K
LSAgICB2YXIgdGV4dEVkaXRvckRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
RGVsZWdhdGUoKTsKLSAgICB0ZXh0RWRpdG9yRGVsZWdhdGUuc2VsZWN0aW9uQ2hhbmdlZCA9IHJ1
blRlc3RXaXRoQ3Vyc29yUG9zaXRpb247Ci0KLSAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlVGVzdEVkaXRvcih1bmRlZmluZWQsIHVuZGVmaW5lZCwgdGV4dEVkaXRvckRl
bGVnYXRlKTsKLSAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0g
ICAgdGV4dEVkaXRvci5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAgdGV4dEVkaXRvci5zZXRUZXh0
KCIoeygpfSkoKCkpIik7Ci0gICAgdGV4dEVkaXRvci5lbGVtZW50LmZvY3VzKCk7Ci0KLSAgICBj
aGFuZ2VDdXJzb3JQb3NpdGlvbigpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCk7Ij4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyBob3cgdGV4dCBlZGl0
b3IgaGlnaGxpZ2h0cyBicmFjZXMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItY2hhci10by1jb29y
ZGluYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQt
ZWRpdG9yLWNoYXItdG8tY29vcmRpbmF0ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjNmZmMTEzNzNmOWQ0NTgzMjQ0NjA5NTg2ZjM2MzcwMDc2MDNmYmM4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItY2hhci10by1jb29yZGluYXRlcy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UZXN0IGVkaXRvciBjdXJzb3JQ
b3NpdGlvblRvQ29vcmRpbmF0ZXMgYW5kIGNvb3JkaW5hdGVzVG9DdXJzb3JQb3NpdGlvbiBBUEkK
LQotCi1SdW5uaW5nOiB0ZXN0Q29vcmRpbmF0ZXNUb0N1cnNvclBvc2l0aW9uT3V0ZXIKLVJlcXVl
c3QgY2hhciBhdCAoLTEwMDAsIC0xMDAwKQotUmVzdWx0Om51bGwKLQotUnVubmluZzogdGVzdFRl
eHRUb0Nvb3JkaW5hdGVzQ29ybmVyQ2FzZXMKLVJlcXVlc3QgKC0xLCAwKTpudWxsCi1SZXF1ZXN0
ICgxMDAsIDApOm51bGwKLVJlcXVlc3QgKDAsIC0xKTpudWxsCi1SZXF1ZXN0ICgwLCAxMDApOm51
bGwKLVJlcXVlc3QgKC0xMDAsIC0xMTAwKTpudWxsCi0KLVJ1bm5pbmc6IHRlc3RJbnZlcnNlUmVs
YXRpb25UZXh0VG9Db29yZGluYXRlcwotVGVzdGluZyBsaW5lICdmdW5jdGlvbiBmb28oYSwgYikg
eycKLVRlc3RpbmcgbGluZSAnICAgIHZhciBmID0gLyouW2FdLy50ZXN0KGEpOycKLVRlc3Rpbmcg
bGluZSAnICAgIHJldHVybiBmOycKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci1jaGFyLXRvLWNvb3JkaW5hdGVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWNoYXItdG8tY29vcmRpbmF0ZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRlNDEwZTFkODZlMGE3ZmYyZGQxNjEzYzk3
M2Q5MDQxMWFjZGJjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWNoYXItdG8tY29v
cmRpbmF0ZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciB0ZXh0ID0gWwotICAgICAg
ICAiZnVuY3Rpb24gZm9vKGEsIGIpIHsiLAotICAgICAgICAiICAgIHZhciBmID0gLyouW2FdLy50
ZXN0KGEpOyIsCi0gICAgICAgICIgICAgcmV0dXJuIGY7IgotICAgIF07Ci0gICAgdmFyIHRleHRF
ZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICB0ZXh0RWRpdG9y
LnNldFRleHQodGV4dC5qb2luKCJcbiIpKTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1
aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdENvb3JkaW5hdGVzVG9DdXJzb3JQb3NpdGlvbk91
dGVyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJSZXF1ZXN0IGNoYXIgYXQgKC0xMDAwLCAtMTAwMCkiKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJSZXN1bHQ6IiArIEpTT04uc3RyaW5naWZ5KHRleHRFZGl0b3IuY29v
cmRpbmF0ZXNUb0N1cnNvclBvc2l0aW9uKC0xMDAwLCAtMTAwMCkpKTsKLSAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0VGV4dFRvQ29vcmRpbmF0
ZXNDb3JuZXJDYXNlcyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiUmVxdWVzdCAoLTEsIDApOiIgKyBKU09OLnN0cmluZ2lmeSh0ZXh0RWRpdG9y
LmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcygtMSwgMCkpKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJSZXF1ZXN0ICgxMDAsIDApOiIgKyBKU09OLnN0cmluZ2lmeSh0
ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcygxMDAsIDApKSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVxdWVzdCAoMCwgLTEpOiIgKyBKU09OLnN0
cmluZ2lmeSh0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcygwLCAtMSkpKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXF1ZXN0ICgwLCAxMDApOiIg
KyBKU09OLnN0cmluZ2lmeSh0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcygw
LCAxMDApKSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVxdWVzdCAo
LTEwMCwgLTExMDApOiIgKyBKU09OLnN0cmluZ2lmeSh0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9u
VG9Db29yZGluYXRlcygwLCAxMDApKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEludmVyc2VSZWxhdGlvblRleHRUb0Nvb3JkaW5hdGVz
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0ZXh0RWRp
dG9yLmxpbmVzQ291bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gdGV4dEVk
aXRvci5saW5lKGkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJU
ZXN0aW5nIGxpbmUgJyIgKyBsaW5lICsgIiciKTsKLSAgICAgICAgICAgICAgICBmb3IodmFyIGog
PSAwOyBqIDwgdGV4dEVkaXRvci5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgICAgICB2
YXIgeHkgPSB0ZXh0RWRpdG9yLmN1cnNvclBvc2l0aW9uVG9Db29yZGluYXRlcyhpLCBqKTsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKCF4eSkgewotICAgICAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZhaWxlZCBpbnZlcnNpb24gZm9yIGxpbmU9IiArIGkgKyAi
IGNvbHVtbj0iICsgaik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIHZhciByYW5nZSA9IHRleHRF
ZGl0b3IuY29vcmRpbmF0ZXNUb0N1cnNvclBvc2l0aW9uKHh5LngsIHh5LnkpOwotICAgICAgICAg
ICAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnRMaW5lICE9PSBpIHx8IHJhbmdlLnN0YXJ0Q29sdW1u
ICE9PSBqKQotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkZhaWxlZCBpbnZlcnNpb24gZm9yIGxpbmU9IiArIGkgKyAiIGNvbHVtbj0iICsgaik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV4dCgpOwotICAgICAg
ICB9LAotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+Ci1UZXN0IGVkaXRvciBjdXJzb3JQb3NpdGlvblRvQ29vcmRpbmF0ZXMg
YW5kIGNvb3JkaW5hdGVzVG9DdXJzb3JQb3NpdGlvbiBBUEkKLTwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3It
Zm9ybWF0dGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3ItZm9ybWF0dGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjdmYmZkYTUxZjU2MDU1OGM5NWQyNmVlZTk5YzliODhiMjIxOTI4ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL3RleHQtZWRpdG9yLWZvcm1hdHRlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw1NCArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRleHQgZWRpdG9yIGphdmFzY3Jp
cHQgZm9ybWF0dGluZy4KLQotLyoqCi0gKiBNdWx0aS1saW5lIGNvbW1lbnQKLSAqCi0gKi8KLWZ1
bmN0aW9uIGZvbyhuKSB7Ci0gICAgLy8gb25lLWxpbmUgY29tbWVudAotICAgIGZ1bmN0aW9uIGJh
cigpIHsKLSAgICAgICAgcmV0dXJuIDQyOwotICAgIH0KLQotICAgIHZhciBzdW0gPSAwOwotICAg
IGZvcih2YXIgaSA9IDA7IGkgPCBuOyArK2kpIHsKLSAgICAgICAgZm9yKHZhciBqID0gMDsgaiA8
IG47ICsraikgewotICAgICAgICAgICAgc3VtICs9IGkgKyBqOwotICAgICAgICB9Ci0gICAgfQot
Ci0KLSAgICBpZiAoc3VtID4gMTAwMCkgewotICAgICAgICB3aGlsZSAoc3VtID4gMCkgewotICAg
ICAgICAgICAgLS1zdW07Ci0gICAgICAgIH0KLSAgICB9Ci19Ci09PT09PT09PT09PT0gZWRpdG9y
IGNvbnRlbnRzIHN0YXJ0ID09PT09PT09PT09PQotLyoqCi0qLk11bHRpLWxpbmUuY29tbWVudAot
KgotKi8KLWZ1bmN0aW9uLmZvbyhuKS57Ci0uLi4uLy8ub25lLWxpbmUuY29tbWVudAotLi4uLmZ1
bmN0aW9uLmJhcigpLnsKLS4uLi4uLi4ucmV0dXJuLjQyOwotLi4uLn0KLS4uLi4KLS4uLi52YXIu
c3VtLj0uMDsKLS4uLi5mb3IodmFyLmkuPS4wOy5pLjwubjsuKytpKS57Ci0uLi4uLi4uLmZvcih2
YXIuai49LjA7LmouPC5uOy4rK2opLnsKLS4uLi4uLi4uLi4uLnN1bS4rPS5pLisuajsKLS4uLi4u
Li4ufQotLi4uLn0KLS4uLi4KLS4uLi4KLS4uLi5pZi4oc3VtLj4uMTAwMCkuewotLi4uLi4uLi53
aGlsZS4oc3VtLj4uMCkuewotLi4uLi4uLi4uLi4uLS1zdW07Ci0uLi4uLi4uLn0KLS4uLi59Ci19
Ci0KLT09PT09PT09PT09PSBlZGl0b3IgY29udGVudHMgZW5kID09PT09PT09PT09PQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWZvcm1hdHRl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1mb3JtYXR0
ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZjNzkyYmNmNGQ3MWQ1MjRh
NTZjZmViNmQwNDc4YWJmZWE0ODhmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWZv
cm1hdHRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIGNvZGVTbmlwcGV0KCkgewotICAgIHJldHVybiBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29kZVNuaXBwZXQiKS50ZXh0Q29udGVudDsKLX0KLQotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgdmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RF
ZGl0b3IoKTsKLSAgICB0ZXh0RWRpdG9yLm92ZXJyaWRlVmlld3BvcnRGb3JUZXN0KDAsIHVuZGVm
aW5lZCwgMyk7Ci0gICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwot
ICAgIHRleHRFZGl0b3Iuc2V0UmVhZE9ubHkoZmFsc2UpOwotICAgIHRleHRFZGl0b3IuZWxlbWVu
dC5mb2N1cygpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIocmVzdWx0KQotICAgIHsKLSAgICAgICAg
dmFyIGNvZGVMaW5lcyA9IHJlc3VsdC52YWx1ZS5zcGxpdCgiXG4iKTsKLSAgICAgICAgZm9yKHZh
ciBpID0gMDsgaSA8IGNvZGVMaW5lcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuaW5zZXJ0VGV4dExpbmUoY29kZUxpbmVzW2ldLnRyaW0oKSk7Ci0KLSAgICAgICAgc2V0
VGltZW91dChzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PT09PSBlZGl0b3IgY29udGVu
dHMgc3RhcnQgPT09PT09PT09PT09Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KHRleHRFZGl0b3IudGV4dCgpLnJlcGxhY2UoLyAvZywgIi4iKSk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09PT0gZWRpdG9yIGNvbnRlbnRzIGVuZCA9PT09PT09
PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjb2RlU25pcHBldCgpOyIsIHN0ZXAy
KTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+
Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgdGV4dCBlZGl0b3IgamF2YXNjcmlwdCBmb3JtYXR0aW5n
LgotPC9wPgotCi08cHJlIGlkPSJjb2RlU25pcHBldCI+Ci0vKioKLSAqIE11bHRpLWxpbmUgY29t
bWVudAotICoKLSAqLwotZnVuY3Rpb24gZm9vKG4pIHsKLSAgICAvLyBvbmUtbGluZSBjb21tZW50
Ci0gICAgZnVuY3Rpb24gYmFyKCkgewotICAgICAgICByZXR1cm4gNDI7Ci0gICAgfQotCi0gICAg
dmFyIHN1bSA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IG47ICsraSkgewotICAgICAgICBm
b3IodmFyIGogPSAwOyBqIDwgbjsgKytqKSB7Ci0gICAgICAgICAgICBzdW0gKz0gaSArIGo7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLQotICAgIGlmIChzdW0gPiAxMDAwKSB7Ci0gICAgICAgIHdoaWxl
IChzdW0gPiAwKSB7Ci0gICAgICAgICAgICAtLXN1bTsKLSAgICAgICAgfQotICAgIH0KLX08L3By
ZT4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci1oaWdobGlnaHQtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LWFwaS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkNWMxMjgwZmU2Y2E2YWY0MjQ2Yzdj
ZTkzMTY3MTEyYTFlNDUyMGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1oaWdobGln
aHQtYXBpLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLVRlc3Qg
ZWRpdG9yIGhpZ2hsaWdodCByZWdleHAgQVBJLgotCi0KLUJlZm9yZSBoaWdobGlnaHQKLQotPGRp
diBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJr
aXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+PC9kaXY+
Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fPC9zcGFuPjwvZGl2
PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Z2xvYmFsX2Zvbzwvc3Bh
bj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmdsb2JhbF9m
b28yPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+
c29tZV9vdGhlcl9mb29fWDwvc3Bhbj48L2Rpdj48L2Rpdj4KLQotUnVubmluZzogdGVzdEhpZ2hs
aWdodFJlZ2V4Ci0KLUFkZCBoaWdobGlnaHQgZm9yIHJlZ2V4cCAvZm9vXy4vCi1MaW5lcyByZXBh
aW50ZWQ6IDIKLQotPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08
ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+
Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9v
Xzs8L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtY3NzLWNsYXNzIHRleHQtZWRpdG9yLW92ZXJsYXkt
aGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogMHB4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVy
PnB4OyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzb21lLWNzcy1jbGFzcyB0ZXh0LWVkaXRvci1vdmVy
bGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDkxcHg7IHdpZHRoOiAzNXB4OyBoZWlnaHQ6IDxu
dW1iZXI+cHg7Ij48L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj5mb29fPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVu
dCI+PHNwYW4+Z2xvYmFsX2Zvbzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPmdsb2JhbF9mb28yPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Vi
a2l0LWxpbmUtY29udGVudCI+PHNwYW4+c29tZV9vdGhlcl9mb29fWDwvc3Bhbj48c3BhbiBjbGFz
cz0ic29tZS1jc3MtY2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJs
ZWZ0OiA3N3B4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2
PjwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0SGlnaGxpZ2h0UmFuZ2UKLQotSGlnaGxpZ2h0aW5nIHJh
bmdlIGZyb20gKDEsIDEzKSB0byAoMywgMTYpCi1MaW5lcyByZXBhaW50ZWQ6IDMKLQotPGRpdiBj
bGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJr
aXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+PHNwYW4gY2xh
c3M9InNvbWUtY3NzLWNsYXNzIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0i
bGVmdDogMHB4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjxzcGFu
IGNsYXNzPSJzb21lLWNzcy1jbGFzcyB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5
bGU9ImxlZnQ6IDkxcHg7IHdpZHRoOiAzNXB4OyBoZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+
PHNwYW4gY2xhc3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGln
aHQiIHN0eWxlPSJsZWZ0OiA5MXB4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+
PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Zm9v
Xzwvc3Bhbj48c3BhbiBjbGFzcz0ic29tZS1vdGhlci1jbGFzcyB0ZXh0LWVkaXRvci1vdmVybGF5
LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDBweDsgd2lkdGg6IDI4cHg7IGhlaWdodDogPG51bWJl
cj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxz
cGFuPmdsb2JhbF9mb288L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1l
ZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAwcHg7IHdpZHRoOiA3MHB4OyBo
ZWlnaHQ6IDxudW1iZXI+cHg7Ij48L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGlu
ZS1jb250ZW50Ij48c3Bhbj5nbG9iYWxfZm9vMjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9Indl
YmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPnNvbWVfb3RoZXJfZm9vX1g8L3NwYW4+PHNwYW4gY2xh
c3M9InNvbWUtY3NzLWNsYXNzIHRleHQtZWRpdG9yLW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0i
bGVmdDogNzdweDsgd2lkdGg6IDM1cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rp
dj48L2Rpdj4KLQotUnVubmluZzogdGVzdFJlbW92ZVJlZ2V4SGlnaGxpZ2h0Ci0KLVJlbW92ZSBo
aWdobGlnaHQgZm9yIHJlZ2V4cCAvZm9vXy4vCi1MaW5lcyByZXBhaW50ZWQ6IDIKLQotPGRpdiBj
bGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3Bhbj5mb28oKTs8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJr
aXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fMTsgZm9vcjsgZm9vXzs8L3NwYW4+PHNwYW4gY2xh
c3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxl
PSJsZWZ0OiA5MXB4OyB3aWR0aDogMzVweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwv
ZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Zm9vXzwvc3Bhbj48
c3BhbiBjbGFzcz0ic29tZS1vdGhlci1jbGFzcyB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdo
dCIgc3R5bGU9ImxlZnQ6IDBweDsgd2lkdGg6IDI4cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwv
c3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmdsb2Jh
bF9mb288L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3Itb3Zl
cmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAwcHg7IHdpZHRoOiA3MHB4OyBoZWlnaHQ6IDxu
dW1iZXI+cHg7Ij48L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj5nbG9iYWxfZm9vMjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPnNvbWVfb3RoZXJfZm9vX1g8L3NwYW4+PC9kaXY+PC9kaXY+Ci0KLVJ1
bm5pbmc6IHRlc3RSZW1vdmVSYW5nZUhpZ2hsaWdodAotCi1SZW1vdmUgaGlnaGxpZ2h0IGZvciBy
YW5nZSAoMSwgMTMpIHRvICgzLCAxNikKLUxpbmVzIHJlcGFpbnRlZDogMwotCi08ZGl2IGNsYXNz
PSJpbm5lci1jb250YWluZXIiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPmZvbygpOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1s
aW5lLWNvbnRlbnQiPjxzcGFuPmZvb18xOyBmb29yOyBmb29fOzwvc3Bhbj48L2Rpdj4KLTxkaXYg
Y2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmZvb188L3NwYW4+PC9kaXY+Ci08ZGl2
IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5nbG9iYWxfZm9vPC9zcGFuPjwvZGl2
PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Z2xvYmFsX2ZvbzI8L3Nw
YW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5zb21lX290
aGVyX2Zvb19YPC9zcGFuPjwvZGl2PjwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0SGlnaGxpZ2h0U21h
bGxSYW5nZQotCi1IaWdobGlnaHRpbmcgcmFuZ2UgZnJvbSAoMSwgMSkgdG8gKDEsIDEpCi1MaW5l
cyByZXBhaW50ZWQ6IDEKLQotPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIiB0YWJpbmRleD0i
MCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb28oKTs8L3NwYW4+
PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5mb29fMTsgZm9v
cjsgZm9vXzs8L3NwYW4+PHNwYW4gY2xhc3M9InNvbWUtb3RoZXItY2xhc3MgdGV4dC1lZGl0b3It
b3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiA3cHg7IHdpZHRoOiA3cHg7IGhlaWdodDog
PG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRl
bnQiPjxzcGFuPmZvb188L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250
ZW50Ij48c3Bhbj5nbG9iYWxfZm9vPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxp
bmUtY29udGVudCI+PHNwYW4+Z2xvYmFsX2ZvbzI8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3
ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5zb21lX290aGVyX2Zvb19YPC9zcGFuPjwvZGl2Pjwv
ZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRp
dG9yLWhpZ2hsaWdodC1hcGkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4
dC1lZGl0b3ItaGlnaGxpZ2h0LWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwOWNlNWZkMDAyMDFmODNkMzdkMjQzNTlhMzQ0OWJkNDkyZDI0NjRjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LWFwaS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
OTIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRp
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgdmFyIHRleHQgPSBbCi0gICAgICAgICJmb28oKTsiLAotICAgICAgICAiZm9vXzE7IGZvb3I7
IGZvb187IiwKLSAgICAgICAgImZvb18iLAotICAgICAgICAiZ2xvYmFsX2ZvbyIsCi0gICAgICAg
ICJnbG9iYWxfZm9vMiIsCi0gICAgICAgICJzb21lX290aGVyX2Zvb19YIgotICAgIF07Ci0gICAg
dmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICB0
ZXh0RWRpdG9yLnNldFRleHQodGV4dC5qb2luKCJcbiIpKTsKLSAgICB2YXIgcGFpbnRMaW5lQ2Fs
bHMgPSAwOwotICAgIGZ1bmN0aW9uIHBhaW50TGluZUNvdW50ZXIoKQotICAgIHsKLSAgICAgICAg
KytwYWludExpbmVDYWxsczsKLSAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHRl
eHRFZGl0b3IuX21haW5QYW5lbCwgIl9wYWludExpbmUiLCBwYWludExpbmVDb3VudGVyLCB0cnVl
KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5CZWZvcmUgaGlnaGxpZ2h0Iik7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLQotICAg
IHZhciByYW5nZUhpZ2hsaWdodERlc2NyaXB0b3I7Ci0gICAgdmFyIHJlZ2V4SGlnaGxpZ2h0RGVz
Y3JpcHRvcjsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVu
Y3Rpb24gdGVzdEhpZ2hsaWdodFJlZ2V4KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
Z2V4SGlnaGxpZ2h0RGVzY3JpcHRvciA9IHRleHRFZGl0b3IuaGlnaGxpZ2h0UmVnZXgoImZvb18u
IiwgInNvbWUtY3NzLWNsYXNzIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiXG5BZGQgaGlnaGxpZ2h0IGZvciByZWdleHAgL2Zvb18uLyIpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpbmVzIHJlcGFpbnRlZDogIiArIHBhaW50TGluZUNhbGxz
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwg
dHJ1ZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gdGVzdEhpZ2hsaWdodFJhbmdlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJcbkhpZ2hsaWdodGluZyByYW5nZSBmcm9tICgxLCAxMykgdG8g
KDMsIDE2KSIpOwotICAgICAgICAgICAgcGFpbnRMaW5lQ2FsbHMgPSAwOwotICAgICAgICAgICAg
cmFuZ2VIaWdobGlnaHREZXNjcmlwdG9yID0gdGV4dEVkaXRvci5oaWdobGlnaHRSYW5nZShuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZSgxLCAxMywgMywgMTYpLCAic29tZS1vdGhlci1jbGFzcyIp
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpbmVzIHJlcGFpbnRlZDog
IiArIHBhaW50TGluZUNhbGxzKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRv
ckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92ZVJlZ2V4SGlnaGxpZ2h0KG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcblJlbW92ZSBoaWdo
bGlnaHQgZm9yIHJlZ2V4cCAvZm9vXy4vIik7Ci0gICAgICAgICAgICBwYWludExpbmVDYWxscyA9
IDA7Ci0gICAgICAgICAgICB0ZXh0RWRpdG9yLnJlbW92ZUhpZ2hsaWdodChyZWdleEhpZ2hsaWdo
dERlc2NyaXB0b3IpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpbmVz
IHJlcGFpbnRlZDogIiArIHBhaW50TGluZUNhbGxzKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7Ci0gICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92ZVJhbmdlSGlnaGxpZ2h0
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJc
blJlbW92ZSBoaWdobGlnaHQgZm9yIHJhbmdlICgxLCAxMykgdG8gKDMsIDE2KSIpOwotICAgICAg
ICAgICAgcGFpbnRMaW5lQ2FsbHMgPSAwOwotICAgICAgICAgICAgdGV4dEVkaXRvci5yZW1vdmVI
aWdobGlnaHQocmFuZ2VIaWdobGlnaHREZXNjcmlwdG9yKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJMaW5lcyByZXBhaW50ZWQ6ICIgKyBwYWludExpbmVDYWxscyk7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFZGl0b3JIVE1MKHRleHRFZGl0b3IsIHRydWUp
OwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RIaWdobGlnaHRTbWFsbFJhbmdlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJcbkhpZ2hsaWdodGluZyByYW5nZSBmcm9tICgxLCAxKSB0byAo
MSwgMSkiKTsKLSAgICAgICAgICAgIHBhaW50TGluZUNhbGxzID0gMDsKLSAgICAgICAgICAgIHZh
ciBzbWFsbFJhbmdlSGlnaGxpZ2h0RGVzY3JpcHRvciA9IHRleHRFZGl0b3IuaGlnaGxpZ2h0UmFu
Z2UobmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMSwgMSwgMSwgMSksICJzb21lLW90aGVyLWNs
YXNzIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTGluZXMgcmVwYWlu
dGVkOiAiICsgcGFpbnRMaW5lQ2FsbHMpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
RWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgfSwKLQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0IGVkaXRvciBoaWdobGlnaHQgcmVnZXhwIEFQSS4KLTwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LXRva2VuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LXRva2VuLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThhNTczMzVhNzNkM2M4OGE4MDFi
Y2VmYzY0OWY1ZjM4ZjQyMmE1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hs
aWdodC10b2tlbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi1U
aGlzIHRlc3QgY2hlY2tzIHRleHQgZWRpdG9yIHRva2VuIGhpZ2hsaWdodCBmdW5jdGlvbmFsaXR5
LgotCi09PT09PT09PT09PSBUZXh0RWRpdG9yIHRleHQgPT09PT09PT09PQotZnVuY3Rpb24gZmlu
ZEVsZW1lbnQoY29sbGVjdGlvbiwgZWxlbSkgewotICAgICAgICAvLyBsZW5ndGgKLSAgICAgICAg
Zm9yKHZhciBpID0gMDsgaSA8IGNvbGxlY3Rpb24ubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBp
ZiAoY29sbGVjdGlvbltpXSA9PT0gZWxlbSkKLSAgICAgICAgICAgICAgICByZXR1cm4gaTsKLSAg
ICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotPT09PT09PT09PT0gQmVmb3JlIHNlbGVjdGluZyBl
bGVtZW50ID09PT09PT09PT09Ci0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciB0ZXh0LWVk
aXRvci1lZGl0YWJsZSIgdGFiaW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29u
dGVudCI+PHNwYW4+ZnVuY3Rpb24gZmluZEVsZW1lbnQoY29sbGVjdGlvbiwgZWxlbSkgezwvc3Bh
bj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAg
Ly8gbGVuZ3RoPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+
PHNwYW4+ICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0
LWh0bWwtdGFnIj4mbHQ7PC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1o
dG1sLXRhZyI+Y29sbGVjdGlvbi5sZW5ndGg7PC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj4rK2kpPC9zcGFuPjwvZGl2PgotPGRpdiBj
bGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgICAgICAgICAgPC9zcGFuPjxzcGFu
IGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+aWY8L3NwYW4+PHNwYW4+IDwvc3Bh
bj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiPihjb2xsZWN0aW9uPC9z
cGFuPjxzcGFuPls8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1l
Ij5pPC9zcGFuPjxzcGFuPl0gPT09IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0
cmlidXRlLXZhbHVlIj5lbGVtKTwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPiAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtp
dC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+cmV0dXJuPC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+aTs8L3NwYW4+PC9kaXY+Ci08ZGl2
IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4gICAgICAgIDwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5yZXR1cm48L3NwYW4+PHNwYW4+IDwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5udWxsOzwvc3Bh
bj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICA8L3Nw
YW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+fTwvc3Bhbj48L2Rp
dj48L2Rpdj4KLT09PT09PT09PT09IEFmdGVyIHNlbGVjdGluZyAnY29sbGVjdGlvbicgPT09PT09
PT09PT0KLQotPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIHRleHQtZWRpdG9yLWVkaXRhYmxl
IiB0YWJpbmRleD0iMCI+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj5m
dW5jdGlvbiBmaW5kRWxlbWVudChjb2xsZWN0aW9uLCBlbGVtKSB7PC9zcGFuPjxzcGFuIGNsYXNz
PSJ0ZXh0LWVkaXRvci10b2tlbi1oaWdobGlnaHQgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdobGln
aHQiIHN0eWxlPSJsZWZ0OiAxNDdweDsgd2lkdGg6IDcwcHg7IGhlaWdodDogPG51bWJlcj5weDsi
Pjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAg
ICAgICAgLy8gbGVuZ3RoPC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29u
dGVudCI+PHNwYW4+ICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LWh0bWwtdGFnIj4mbHQ7PC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xhc3M9Indl
YmtpdC1odG1sLXRhZyI+Y29sbGVjdGlvbi5sZW5ndGg7PC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNw
YW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lIj4rK2kpPC9zcGFuPjxzcGFuIGNs
YXNzPSJ0ZXh0LWVkaXRvci10b2tlbi1oaWdobGlnaHQgdGV4dC1lZGl0b3Itb3ZlcmxheS1oaWdo
bGlnaHQiIHN0eWxlPSJsZWZ0OiAxODlweDsgd2lkdGg6IDcwcHg7IGhlaWdodDogPG51bWJlcj5w
eDsiPjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFu
PiAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLW5h
bWUiPmlmPC9zcGFuPjxzcGFuPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJp
YnV0ZS1uYW1lIj4oY29sbGVjdGlvbjwvc3Bhbj48c3Bhbj5bPC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+aTwvc3Bhbj48c3Bhbj5dID09PSA8L3NwYW4+PHNw
YW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+ZWxlbSk8L3NwYW4+PHNwYW4g
Y2xhc3M9InRleHQtZWRpdG9yLXRva2VuLWhpZ2hsaWdodCB0ZXh0LWVkaXRvci1vdmVybGF5LWhp
Z2hsaWdodCIgc3R5bGU9ImxlZnQ6IDExMnB4OyB3aWR0aDogNzBweDsgaGVpZ2h0OiA8bnVtYmVy
PnB4OyI+PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNw
YW4+ICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmli
dXRlLXZhbHVlIj5yZXR1cm48L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0
LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5pOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtp
dC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
aHRtbC1hdHRyaWJ1dGUtdmFsdWUiPnJldHVybjwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxzcGFuIGNs
YXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiPm51bGw7PC9zcGFuPjwvZGl2PgotPGRp
diBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgIDwvc3Bhbj48c3BhbiBjbGFz
cz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj59PC9zcGFuPjwvZGl2PjwvZGl2PgotPT09
PT09PT09PT0gQWZ0ZXIgc2VsZWN0aW5nICdlbGVtJyA9PT09PT09PT09PQotCi08ZGl2IGNsYXNz
PSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0b3ItZWRpdGFibGUiIHRhYmluZGV4PSIwIj4KLTxk
aXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPmZ1bmN0aW9uIGZpbmRFbGVtZW50
KGNvbGxlY3Rpb24sIGVsZW0pIHs8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZWRpdG9yLXRva2Vu
LWhpZ2hsaWdodCB0ZXh0LWVkaXRvci1vdmVybGF5LWhpZ2hsaWdodCIgc3R5bGU9ImxlZnQ6IDIz
MXB4OyB3aWR0aDogMjhweDsgaGVpZ2h0OiA8bnVtYmVyPnB4OyI+PC9zcGFuPjwvZGl2PgotPGRp
diBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgICAgICAvLyBsZW5ndGg8L3Nw
YW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4gICAgICAg
IGZvcih2YXIgaSA9IDA7IGkgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC10YWciPiZs
dDs8L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtdGFnIj5jb2xs
ZWN0aW9uLmxlbmd0aDs8L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0
bWwtYXR0cmlidXRlLW5hbWUiPisraSk8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3Bhbj4gICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtp
dC1odG1sLWF0dHJpYnV0ZS1uYW1lIj5pZjwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxzcGFuIGNsYXNz
PSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+KGNvbGxlY3Rpb248L3NwYW4+PHNwYW4+Wzwv
c3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiPmk8L3NwYW4+PHNw
YW4+XSA9PT0gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUi
PmVsZW0pPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVkaXRvci10b2tlbi1oaWdobGlnaHQgdGV4
dC1lZGl0b3Itb3ZlcmxheS1oaWdobGlnaHQiIHN0eWxlPSJsZWZ0OiAyMzhweDsgd2lkdGg6IDI4
cHg7IGhlaWdodDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtp
dC1saW5lLWNvbnRlbnQiPjxzcGFuPiAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9
IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+cmV0dXJuPC9zcGFuPjxzcGFuPiA8L3NwYW4+
PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+aTs8L3NwYW4+PC9kaXY+
Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4gICAgICAgIDwvc3Bhbj48
c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5yZXR1cm48L3NwYW4+PHNw
YW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5udWxs
Ozwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPiAg
ICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSI+fTwvc3Bh
bj48L2Rpdj48L2Rpdj4KLT09PT09PT09PT09IEFmdGVyIHNlbGVjdGluZyAnbGVuZ3RoJyA9PT09
PT09PT09PQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250YWluZXIgdGV4dC1lZGl0b3ItZWRpdGFi
bGUiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFu
PmZ1bmN0aW9uIGZpbmRFbGVtZW50KGNvbGxlY3Rpb24sIGVsZW0pIHs8L3NwYW4+PC9kaXY+Ci08
ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4gICAgICAgIC8vIGxlbmd0aDwv
c3Bhbj48c3BhbiBjbGFzcz0idGV4dC1lZGl0b3ItdG9rZW4taGlnaGxpZ2h0IHRleHQtZWRpdG9y
LW92ZXJsYXktaGlnaGxpZ2h0IiBzdHlsZT0ibGVmdDogNzdweDsgd2lkdGg6IDQycHg7IGhlaWdo
dDogPG51bWJlcj5weDsiPjwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNv
bnRlbnQiPjxzcGFuPiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8L3NwYW4+PHNwYW4gY2xhc3M9
IndlYmtpdC1odG1sLXRhZyI+Jmx0Ozwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3
ZWJraXQtaHRtbC10YWciPmNvbGxlY3Rpb24ubGVuZ3RoOzwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSI+KytpKTwvc3Bhbj48c3BhbiBj
bGFzcz0idGV4dC1lZGl0b3ItdG9rZW4taGlnaGxpZ2h0IHRleHQtZWRpdG9yLW92ZXJsYXktaGln
aGxpZ2h0IiBzdHlsZT0ibGVmdDogMjY2cHg7IHdpZHRoOiA0MnB4OyBoZWlnaHQ6IDxudW1iZXI+
cHg7Ij48L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bh
bj4gICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1odG1sLWF0dHJpYnV0ZS1u
YW1lIj5pZjwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRy
aWJ1dGUtbmFtZSI+KGNvbGxlY3Rpb248L3NwYW4+PHNwYW4+Wzwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiPmk8L3NwYW4+PHNwYW4+XSA9PT0gPC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiPmVsZW0pPC9zcGFuPjwvZGl2
PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+ICAgICAgICAgICAgICAg
IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlIj5yZXR1cm48
L3NwYW4+PHNwYW4+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0cmlidXRlLXZh
bHVlIj5pOzwvc3Bhbj48L2Rpdj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxz
cGFuPiAgICAgICAgPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFs
dWUiPnJldHVybjwvc3Bhbj48c3Bhbj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtaHRtbC1h
dHRyaWJ1dGUtdmFsdWUiPm51bGw7PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Via2l0LWxp
bmUtY29udGVudCI+PHNwYW4+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWh0bWwtYXR0
cmlidXRlLXZhbHVlIj59PC9zcGFuPjwvZGl2PjwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hsaWdodC10b2tlbi5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1oaWdobGlnaHQtdG9rZW4u
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhhODY3OTg2YmIzOWZiMzQ4NWM2
MDQyZTJiZTRjZGQ1NzU0NWEyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWhpZ2hs
aWdodC10b2tlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9uIGZpbmRFbGVtZW50
KGNvbGxlY3Rpb24sIGVsZW0pIHsKLSAgICAgICAgLy8gbGVuZ3RoCi0gICAgICAgIGZvcih2YXIg
aSA9IDA7IGkgPCBjb2xsZWN0aW9uLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgaWYgKGNvbGxl
Y3Rpb25baV0gPT09IGVsZW0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgIHJl
dHVybiBudWxsOwotICAgIH0KLQotICAgIHZhciBzdGVwcyA9IFtzdGVwMywgc3RlcDIsIHN0ZXAx
XTsgLy8gcmV2ZXJzZWQgb3JkZXIKLSAgICBmdW5jdGlvbiBzZWxlY3Rpb25DaGFuZ2VMaXN0ZW5l
cigpCi0gICAgewotICAgICAgICBpZiAoc3RlcHMubGVuZ3RoKQotICAgICAgICAgICAgc3RlcHMu
cG9wKCkuY2FsbCgpOwotICAgIH0KLQotICAgIHZhciB0ZXh0RWRpdG9yRGVsZWdhdGUgPSBuZXcg
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JEZWxlZ2F0ZSgpOwotICAgIHRleHRFZGl0b3JEZWxlZ2F0
ZS5zZWxlY3Rpb25DaGFuZ2VkID0gc2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXI7Ci0KLSAgICB2YXIg
dGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvcih1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgdGV4dEVkaXRvckRlbGVnYXRlKTsKLSAgICB0ZXh0RWRpdG9yLnNldFJlYWRPbmx5
KGZhbHNlKTsKLSAgICB0ZXh0RWRpdG9yLnNldFRleHQoZmluZEVsZW1lbnQudG9TdHJpbmcoKSk7
Ci0gICAgdGV4dEVkaXRvci5lbGVtZW50LmZvY3VzKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiPT09PT09PT09PT0gVGV4dEVkaXRvciB0ZXh0ID09PT09PT09PT0iKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLnRleHQoKSk7Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT0gQmVmb3JlIHNlbGVjdGluZyBlbGVtZW50ID09
PT09PT09PT09Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9y
LCB0cnVlKTsKLQotICAgIHZhciByYW5nZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDAs
IDIxLCAwLCAzMSk7Ci0gICAgdGV4dEVkaXRvci5zZXRTZWxlY3Rpb24ocmFuZ2UpOwotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ij09PT09PT09PT09IEFmdGVyIHNlbGVjdGluZyAnIiArIHRleHRFZGl0b3IuX3RleHRNb2RlbC5j
b3B5UmFuZ2UocmFuZ2UpICsgIicgPT09PT09PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLSAgICAgICAgcmFuZ2UgPSBuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCAzMywgMCwgMzcpOwotICAgICAgICB0ZXh0RWRpdG9y
LnNldFNlbGVjdGlvbihyYW5nZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09PT09IEFmdGVyIHNl
bGVjdGluZyAnIiArIHRleHRFZGl0b3IuX3RleHRNb2RlbC5jb3B5UmFuZ2UocmFuZ2UpICsgIicg
PT09PT09PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0
RWRpdG9yLCB0cnVlKTsKLSAgICAgICAgcmFuZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5n
ZSgxLCAxMSwgMSwgMTcpOwotICAgICAgICB0ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihyYW5nZSk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PT09PT09PT09IEFmdGVyIHNlbGVjdGluZyAnIiArIHRleHRFZGl0
b3IuX3RleHRNb2RlbC5jb3B5UmFuZ2UocmFuZ2UpICsgIicgPT09PT09PT09PT0iKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08cD4KLVRoaXMgdGVzdCBj
aGVja3MgdGV4dCBlZGl0b3IgdG9rZW4gaGlnaGxpZ2h0IGZ1bmN0aW9uYWxpdHkuCi08L3A+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9y
L3RleHQtZWRpdG9yLWhvbWUtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0b24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2IzZTBkMmE0Mzc1MTNhYmRjODFmZjhhYmVjNjRlOTdl
MjkwM2JjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0b24tZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotVGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgaG9tZSBidXR0b24gdHJpZ2dlcnMgc2VsZWN0aW9uIGJldHdlZW4gZmlyc3Qgc3ltYm9s
IG9mIHRoZSBsaW5lIGFuZCBmaXJzdCBub24tYmxhbmsgc3ltYm9sIG9mIHRoZSBsaW5lLgotCi1m
dW5jdGlvbiBmb28oKQotewotICAgIHJldHVybiA0MjsKLX0KLQotUnVubmluZzogdGVzdEZpcnN0
Tm9uQmxhbmtDaGFyYWN0ZXIKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dXxybiA0MjsKLX0K
LWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgfHJldHVybiA0MjsKLX0KLQotUnVubmluZzogdGVzdEZp
cnN0Tm9uQmxhbmtDaGFyYWN0ZXJGcm9tV2hpdGVzcGFjZQotZnVuY3Rpb24gZm9vKCkKLXsKLSAg
fCAgcmV0dXJuIDQyOwotfQotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICB8cmV0dXJuIDQyOwotfQot
Ci1SdW5uaW5nOiB0ZXN0SG9tZUJ1dHRvblRvZ2dsaW5nCi1mdW5jdGlvbiBmb28oKQotewotICB8
ICByZXR1cm4gNDI7Ci19Ci1mdW5jdGlvbiBmb28oKQotewotICAgIHxyZXR1cm4gNDI7Ci19Ci1m
dW5jdGlvbiBmb28oKQotewotfCAgICByZXR1cm4gNDI7Ci19Ci1mdW5jdGlvbiBmb28oKQotewot
ICAgIHxyZXR1cm4gNDI7Ci19Ci0KLVJ1bm5pbmc6IHRlc3RIb21lQnV0dG9uRG9lc05vdENoYW5n
ZUN1cnNvcgotZnV8bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dXJuIDQyOwotfQotfGZ1bmN0aW9u
IGZvbygpCi17Ci0gICAgcmV0dXJuIDQyOwotfQotfGZ1bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0
dXJuIDQyOwotfQotCi1SdW5uaW5nOiB0ZXN0SG9tZUJ1dHRvbldpdGhTaGlmdAotPmZ1bmN0aW9u
IGZvbygpCi17Ci0gICAgcmV0dTxybiA0MjsKLX0KLT5mdW5jdGlvbiBmb28oKQotewotICAgIDxy
ZXR1cm4gNDI7Ci19Ci0+ZnVuY3Rpb24gZm9vKCkKLXsKLTwgICAgcmV0dXJuIDQyOwotfQotPmZ1
bmN0aW9uIGZvbygpCi17Ci0gICAgPHJldHVybiA0MjsKLX0KLQotUnVubmluZzogdGVzdEhvbWVC
dXR0b25XaXRoU2hpZnRJbnZlcnNlZAotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICByZXR1PnJuIDQy
OwotfTwKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgPnJldHVybiA0MjsKLX08Ci1mdW5jdGlvbiBm
b28oKQotewotPiAgICByZXR1cm4gNDI7Ci19PAotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICA+cmV0
dXJuIDQyOwotfTwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci1ob21lLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1ob21lLWJ1dHRvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiYjYxY2NiMGEyZjI5ZTY2N2JhNGRlMGJjMGIyOWE3Yzg2YWIwZmE2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvdGV4dC1lZGl0b3ItaG9tZS1idXR0b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEyNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJl
ZGl0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgcmV0dXJuIDQyOwotfQotICAgIHZhciB0ZXh0RWRpdG9y
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVUZXN0RWRpdG9yKCk7Ci0gICAgdGV4dEVkaXRvci5vdmVy
cmlkZVZpZXdwb3J0Rm9yVGVzdCgwLCB1bmRlZmluZWQsIDMpOwotICAgIHRleHRFZGl0b3IubWlt
ZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICB0ZXh0RWRpdG9yLnNldFJlYWRPbmx5KGZh
bHNlKTsKLSAgICB0ZXh0RWRpdG9yLmVsZW1lbnQuZm9jdXMoKTsKLQotICAgIHRleHRFZGl0b3Iu
c2V0VGV4dChmb28udG9TdHJpbmcoKSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0
ZXh0RWRpdG9yLnRleHQoKSk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wVGV4dEVkaXRvcldpdGhTZWxl
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSW5zcGVjdG9y
VGVzdC50ZXh0V2l0aFNlbGVjdGlvbih0ZXh0RWRpdG9yLnRleHQoKSwgdGV4dEVkaXRvci5zZWxl
Y3Rpb24oKSkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGhvbWVCdXR0b24oc2hpZnQpCi0gICAg
ewotICAgICAgICB2YXIga2V5ID0gV2ViSW5zcGVjdG9yLmlzTWFjKCkgPyAibGVmdEFycm93IiA6
ICJob21lIjsKLSAgICAgICAgdmFyIG1vZGlmaWVycyA9IFdlYkluc3BlY3Rvci5pc01hYygpID8g
WyJtZXRhS2V5Il0gOiBbXTsKLSAgICAgICAgaWYgKHNoaWZ0KQotICAgICAgICAgICAgbW9kaWZp
ZXJzLnB1c2goInNoaWZ0S2V5Iik7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oa2V5LCBt
b2RpZmllcnMpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAg
ICAgICAgZnVuY3Rpb24gdGVzdEZpcnN0Tm9uQmxhbmtDaGFyYWN0ZXIobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3Jl
YXRlRnJvbUxvY2F0aW9uKDIsIDgpOwotICAgICAgICAgICAgdGV4dEVkaXRvci5zZXRTZWxlY3Rp
b24oc2VsZWN0aW9uKTsKLSAgICAgICAgICAgIGR1bXBUZXh0RWRpdG9yV2l0aFNlbGVjdGlvbigp
OwotICAgICAgICAgICAgaG9tZUJ1dHRvbihmYWxzZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVk
aXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0Rmlyc3ROb25CbGFua0NoYXJhY3RlckZyb21XaGl0ZXNwYWNl
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBXZWJJbnNwZWN0
b3IuVGV4dFJhbmdlLmNyZWF0ZUZyb21Mb2NhdGlvbigyLCAyKTsKLSAgICAgICAgICAgIHRleHRF
ZGl0b3Iuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRv
cldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24oZmFsc2UpOwotICAgICAg
ICAgICAgZHVtcFRleHRFZGl0b3JXaXRoU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEhvbWVCdXR0b25Ub2dnbGluZyhu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gV2ViSW5zcGVjdG9y
LlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24oMiwgMik7Ci0gICAgICAgICAgICB0ZXh0RWRp
dG9yLnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOwotICAgICAgICAgICAgZHVtcFRleHRFZGl0b3JX
aXRoU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBob21lQnV0dG9uKGZhbHNlKTsKLSAgICAgICAg
ICAgIGR1bXBUZXh0RWRpdG9yV2l0aFNlbGVjdGlvbigpOwotICAgICAgICAgICAgaG9tZUJ1dHRv
bihmYWxzZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAg
ICAgICAgICAgIGhvbWVCdXR0b24oZmFsc2UpOwotICAgICAgICAgICAgZHVtcFRleHRFZGl0b3JX
aXRoU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEhvbWVCdXR0b25Eb2VzTm90Q2hhbmdlQ3Vyc29yKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBXZWJJbnNwZWN0b3IuVGV4dFJhbmdl
LmNyZWF0ZUZyb21Mb2NhdGlvbigwLCAyKTsKLSAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0U2Vs
ZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rp
b24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24oZmFsc2UpOwotICAgICAgICAgICAgZHVtcFRl
eHRFZGl0b3JXaXRoU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICBob21lQnV0dG9uKGZhbHNlKTsK
LSAgICAgICAgICAgIGR1bXBUZXh0RWRpdG9yV2l0aFNlbGVjdGlvbigpOwotICAgICAgICAgICAg
bmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RIb21lQnV0dG9uV2l0
aFNoaWZ0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZSgwLCAwLCAyLCA4KTsKLSAgICAgICAgICAgIHRleHRFZGl0
b3Iuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldp
dGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAg
ICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24o
dHJ1ZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAg
ICAgICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhT
ZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0SG9tZUJ1dHRvbldpdGhTaGlmdEludmVyc2VkKG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgz
LCAxLCAyLCA4KTsKLSAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0U2VsZWN0aW9uKHNlbGVjdGlv
bik7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAg
ICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxl
Y3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24odHJ1ZSk7Ci0gICAgICAgICAgICBkdW1w
VGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIGhvbWVCdXR0b24odHJ1ZSk7
Ci0gICAgICAgICAgICBkdW1wVGV4dEVkaXRvcldpdGhTZWxlY3Rpb24oKTsKLSAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLTxwPgotVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQg
aG9tZSBidXR0b24gdHJpZ2dlcnMgc2VsZWN0aW9uIGJldHdlZW4gZmlyc3Qgc3ltYm9sIG9mIHRo
ZSBsaW5lCi1hbmQgZmlyc3Qgbm9uLWJsYW5rIHN5bWJvbCBvZiB0aGUgbGluZS4KLTwvcD4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1saW5lLWJyZWFrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRjZGEyMzliOGE0YjQ5ZDY0NjRiZjc5MjUyZmYxOTQy
MTNmZTFjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxpbmUtYnJlYWtzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3Mg
dGhhdCBsaW5lIGVuZGluZ3MgYXJlIGluZmVycmVkIGZyb20gdGhlIGluaXRpYWwgdGV4dCBjb250
ZW50LCBub3QgaW5jcmVtZW50YWwgZWRpdGluZy4KLQotCi1SdW5uaW5nOiB0ZXN0Q1JJbml0aWFs
Ci0xJTBBMiUwQTMlMEEKLQotUnVubmluZzogdGVzdENSTEZJbml0aWFsCi0xJTBEJTBBMiUwRCUw
QTMlMEQlMEEKLQotUnVubmluZzogdGVzdENSRWRpdAotMSUwQWZvbyUwQWJhcjIlMEEzJTBBCi0K
LVJ1bm5pbmc6IHRlc3RDUkxGRWRpdAotMSUwRCUwQWZvbyUwRCUwQWJhcjIlMEQlMEEzJTBEJTBB
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3It
bGluZS1icmVha3MuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0
b3ItbGluZS1icmVha3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM3NDky
MTY4OTUzZGQ1YjJlZmNkNzdhZDAzMzFhYzBjMzg1YTI1Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3Rl
eHQtZWRpdG9yLWxpbmUtYnJlYWtzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24g
dGVzdENSSW5pdGlhbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4dE1vZGVs
ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKLSAgICAgICAgICAgIHRleHRN
b2RlbC5zZXRUZXh0KCIxXG4yXG4zXG4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KGVuY29kZVVSSSh0ZXh0TW9kZWwudGV4dCgpKSk7Ci0gICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdENSTEZJbml0aWFsKG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdGV4dE1vZGVsLnNldFRleHQoIjFcclxuMlxy
XG4zXHJcbiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZW5jb2RlVVJJ
KHRleHRNb2RlbC50ZXh0KCkpKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0Q1JFZGl0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAg
ICAgICAgICAgdGV4dE1vZGVsLnNldFRleHQoIjFcbjJcbjNcbiIpOwotICAgICAgICAgICAgdGV4
dE1vZGVsLmVkaXRSYW5nZShuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgxLCAwLCAxLCAwKSwg
ImZvb1xyXG5iYXIiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGVuY29k
ZVVSSSh0ZXh0TW9kZWwudGV4dCgpKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdENSTEZFZGl0KG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgp
OwotICAgICAgICAgICAgdGV4dE1vZGVsLnNldFRleHQoIjFcclxuMlxyXG4zXHJcbiIpOwotICAg
ICAgICAgICAgdGV4dE1vZGVsLmVkaXRSYW5nZShuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgx
LCAwLCAxLCAwKSwgImZvb1xyXG5iYXIiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KGVuY29kZVVSSSh0ZXh0TW9kZWwudGV4dCgpKSk7Ci0gICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGxpbmUgZW5kaW5n
cyBhcmUgaW5mZXJyZWQgZnJvbSB0aGUgaW5pdGlhbCB0ZXh0IGNvbnRlbnQsIG5vdCBpbmNyZW1l
bnRhbCBlZGl0aW5nLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxvbmctbGluZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxvbmctbGluZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmODliN2M0ODk3N2M2
YzFhMGFiZmJiYTUwMzI4ZmI3NmMyYzdiMjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRv
ci1sb25nLWxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1U
aGlzIHRlc3QgY2hlY2tzIHRoYXQgdGV4dCBlZGl0b3IgZG9lc24ndCBwYWludCBoaWdobGlnaHQg
Zm9yIHRvbyBsb25nIGxpbmVzLgotCi0KLTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciIgdGFi
aW5kZXg9IjAiPgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9
IndlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQiPi8qIFNUQVJUICovPC9zcGFuPjxzcGFuIGNsYXNz
PSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3Jp
cHQta2V5d29yZCI+dGhpczwvc3Bhbj48c3Bhbj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQt
amF2YXNjcmlwdC1pZGVudCI+ZmllbGQ8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNw
YWNlIj4gPC9zcGFuPjxzcGFuPj08L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNl
Ij4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmciPiJmb28iPC9z
cGFuPjxzcGFuPjs8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFu
PjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1jb21tZW50Ij4vKiBjb21tZW50ICovPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0i
d2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+ZnVuY3Rpb248L3NwYW4+PHNwYW4gY2xhc3M9Indl
YmtpdC13aGl0ZXNwYWNlIj4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1p
ZGVudCI+YmFyPC9zcGFuPjxzcGFuPigpPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVz
cGFjZSI+IDwvc3Bhbj48c3Bhbj57PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFj
ZSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+cmV0dXJu
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3BhbiBjbGFz
cz0id2Via2l0LWphdmFzY3JpcHQta2V5d29yZCI+bnVsbDwvc3Bhbj48c3Bhbj47PC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSI+IDwvc3Bhbj48c3Bhbj59PC9zcGFuPjxzcGFu
IGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkIj50aGlzPC9zcGFuPjxzcGFuPi48L3Nw
YW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5maWVsZDwvc3Bhbj48c3Bh
biBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4+PTwvc3Bhbj48c3BhbiBj
bGFzcz0id2Via2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZh
c2NyaXB0LXN0cmluZyI+ImZvbyI8L3NwYW4+PHNwYW4+Ozwvc3Bhbj48c3BhbiBjbGFzcz0id2Vi
a2l0LXdoaXRlc3BhY2UiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWNv
bW1lbnQiPi8qIGNvbW1lbnQgKi88L3NwYW4+PHNwYW4+IGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJu
IG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkg
eyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlv
biBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICov
IGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNv
bW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9v
IjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVs
ZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10
aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4g
bnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7
IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9u
IGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8g
ZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29t
bWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28i
OyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxk
ID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRo
aXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBu
dWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsg
cmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24g
YmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBm
dW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21t
ZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7
IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQg
PSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhp
cy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51
bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyBy
ZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBi
YXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1
bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlzLmZpZWxkID0gImZvbyI7IC8qIGNvbW1l
bnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVsbDsgfXRoaXMuZmllbGQgPSAiZm9vIjsg
LyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxsOyB9dGhpcy5maWVsZCA9
ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIG51bGw7IH10aGlz
LmZpZWxkID0gImZvbyI7IC8qIGNvbW1lbnQgKi8gZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gbnVs
bDsgfXRoaXMuZmllbGQgPSAiZm9vIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJl
dHVybiBudWxsOyB9dGhpcy5maWVsZCA9ICJmb28iOyAvKiBjb21tZW50ICovIGZ1bmN0aW9uIGJh
cigpIHsgcmV0dXJuIG51bGw7IH0vKiBGSU5JU0ggKi88L3NwYW4+PC9kaXY+PC9kaXY+Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItbG9uZy1s
aW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLWxvbmct
bGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGRlYjE4N2Y2MDczODUx
ODZmMDVkZmYzYzc0N2M1MjhmMTg3MGQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3It
bG9uZy1saW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgdGV4dEVkaXRvciA9IElu
c3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvcigpOwotICAgIHRleHRFZGl0b3IubWltZVR5cGUg
PSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuX2hpZ2hsaWdo
dGVyLnNldEhpZ2hsaWdodExpbmVMaW1pdCgxMDApOwotCi0gICAgdmFyIHNyYyA9ICJ0aGlzLmZp
ZWxkID0gXCJmb29cIjsgLyogY29tbWVudCAqLyBmdW5jdGlvbiBiYXIoKSB7IHJldHVybiBudWxs
OyB9IjsKLSAgICBmb3IodmFyIGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0gICAgICAgIHNyYyArPSBz
cmM7Ci0gICAgfQotICAgIHNyYyA9ICIvKiBTVEFSVCAqLyAiICsgc3JjICsgIi8qIEZJTklTSCAq
LyI7Ci0gICAgdGV4dEVkaXRvci5zZXRUZXh0KHNyYyk7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1w
RWRpdG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGV4dCBlZGl0b3IgZG9lc24ndCBwYWlu
dCBoaWdobGlnaHQgZm9yIHRvbyBsb25nIGxpbmVzLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLW1v
ZGVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0
b3ItbW9kZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGRl
NWYwZjllZWZmYzViZTAwMWRmNTdiNjMyNTBlYjNmNzdlMjg2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3Iv
dGV4dC1lZGl0b3ItbW9kZWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCww
IEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoZSB0ZXh0IGVkaXRvciBtb2RlbC4KLQotTGluZXM6NCwg
bGVuZ3RoOjUsIGlucHV0IGVxdWFscyBvdXRwdXQ6dHJ1ZQotTGluZXM6NCwgbGVuZ3RoOjgsIGlu
cHV0IGVxdWFscyBvdXRwdXQ6dHJ1ZQotTGluZXM6NCwgbGVuZ3RoOjgsIGlucHV0IGVxdWFscyBv
dXRwdXQ6ZmFsc2UKLUxpbmVzOjEsIGxlbmd0aDoxNCwgaW5wdXQgZXF1YWxzIG91dHB1dDp0cnVl
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3It
bW9kZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItbW9k
ZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVkYjhhMzQzMjg2NDEzZGU2
NGZhYmMyZDc0MjRiN2FkMjM1ZGE1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLW1v
ZGVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGZ1bmN0aW9u
IGNyZWF0ZUFuZER1bXBUZXh0TW9kZWwodGV4dCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0TW9k
ZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICB0ZXh0TW9k
ZWwuc2V0VGV4dCh0ZXh0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpbmVz
OiIgKyB0ZXh0TW9kZWwubGluZXNDb3VudCArICIsIGxlbmd0aDoiICsgdGV4dE1vZGVsLnRleHQo
KS5sZW5ndGggKyAiLCBpbnB1dCBlcXVhbHMgb3V0cHV0OiIgKyAodGV4dE1vZGVsLnRleHQoKSA9
PT0gdGV4dCkpOwotICAgIH0KLQotICAgIGNyZWF0ZUFuZER1bXBUZXh0TW9kZWwoIjFcbjJcblxu
Iik7Ci0gICAgY3JlYXRlQW5kRHVtcFRleHRNb2RlbCgiMVxyXG4yXHJcblxyXG4iKTsKLSAgICBj
cmVhdGVBbmREdW1wVGV4dE1vZGVsKCIxXG4yXG5cclxuIik7Ci0gICAgY3JlYXRlQW5kRHVtcFRl
eHRNb2RlbCgibm8gbGluZSBicmVha3MiKTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgdGhlIHRleHQgZWRpdG9yIG1vZGVsLgotPC9wPgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRp
dG9yL3RleHQtZWRpdG9yLXJlbW92ZS1jaHVua3MtZnJvbS1kb20tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1yZW1vdmUtY2h1bmtzLWZyb20t
ZG9tLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg2ZDM5MzBh
ZWYyYzE1Mzk0Y2QyYTc4NDUwYjc2N2YzZWYwMzhkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQt
ZWRpdG9yLXJlbW92ZS1jaHVua3MtZnJvbS1kb20tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzkgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBob3cgZGFtYWdlZCBjaHVua3MnIERP
TSBpcyByZW1vdmVkIGZyb20gdGhlIGNvbnRhaW5lci4KLQotCi1SdW5uaW5nOiB0ZXN0RGFtYWdl
TGFzdENodW5rCi0KLUJlZm9yZSBlZGl0aW5nCi1UZXh0IG1vZGVsCi1bMF0gICAgICAgMAotWzFd
ICAgICAgIDEKLVsyXSAgICAgICAyCi1bM10gICAgICAgMwotWzRdICAgICAgIDQKLVs1XSAgICAg
ICAKLUVkaXRvciBET00KLVswXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj4wPC9zcGFuPjwvZGl2PgotWzFdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5l
LWNvbnRlbnQiPjxzcGFuPjE8L3NwYW4+PC9kaXY+Ci1bMl0gICAgICAgPGRpdiBjbGFzcz0id2Vi
a2l0LWxpbmUtY29udGVudCI+PHNwYW4+Mjwvc3Bhbj48L2Rpdj4KLVszXSAgICAgICA8ZGl2IGNs
YXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4zPC9zcGFuPjwvZGl2PgotWzRdICAgICAg
IDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjQ8L3NwYW4+PC9kaXY+Ci1b
NV0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PGJyPjwvZGl2PgotCi1B
ZnRlciBlZGl0aW5nCi1UZXh0IG1vZGVsCi1bMF0gICAgICAgMAotWzFdICAgICAgIDEKLVsyXSAg
ICAgICAyCi1bM10gICAgICAgMwotWzRdICAgICAgIDQKLVs1XSAgICAgICBhZGRpdGlvbmFsIDUK
LVs2XSAgICAgICAKLUVkaXRvciBET00KLVswXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGlu
ZS1jb250ZW50Ij48c3Bhbj4wPC9zcGFuPjwvZGl2PgotWzFdICAgICAgIDxkaXYgY2xhc3M9Indl
YmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjE8L3NwYW4+PC9kaXY+Ci1bMl0gICAgICAgPGRpdiBj
bGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+Mjwvc3Bhbj48L2Rpdj4KLVszXSAgICAg
ICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4zPC9zcGFuPjwvZGl2Pgot
WzRdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjQ8L3NwYW4+
PC9kaXY+Ci1bNV0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+
YWRkaXRpb25hbCA1PC9zcGFuPjwvZGl2PgotWzZdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1s
aW5lLWNvbnRlbnQiPjxicj48L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VkaXRvci90ZXh0LWVkaXRvci1yZW1vdmUtY2h1bmtzLWZyb20tZG9tLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXJlbW92ZS1jaHVua3MtZnJvbS1k
b20uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmEzMjA5MDIyMTkxNjRiNjZj
MWEyNjg0MzI1OGNiOTQwZDg5NmMzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXJl
bW92ZS1jaHVua3MtZnJvbS1kb20uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3Rv
clRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdERhbWFnZUxhc3RDaHVu
ayhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlVGVzdEVkaXRvcigpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5maWxs
RWRpdG9yV2l0aFRleHQodGV4dEVkaXRvciwgNSk7Ci0gICAgICAgICAgICB0ZXh0RWRpdG9yLnNl
dFRleHQodGV4dEVkaXRvci50ZXh0KCkgKyAiXG4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJcbkJlZm9yZSBlZGl0aW5nIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBFZGl0b3JNb2RlbCh0ZXh0RWRpdG9yKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcEVkaXRvckRPTSh0ZXh0RWRpdG9yKTsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwg
PSB0ZXh0RWRpdG9yLl90ZXh0TW9kZWw7Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuZWRpdFJhbmdl
KG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDUsIDAsIDUsIDApLCAiYWRkaXRpb25hbCA1XG4i
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbkFmdGVyIGVkaXRpbmci
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvck1vZGVsKHRleHRFZGl0b3Ip
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9yRE9NKHRleHRFZGl0b3IpOwot
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotICAgIF0pOwotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hl
Y2tzIGhvdyBkYW1hZ2VkIGNodW5rcycgRE9NIGlzIHJlbW92ZWQgZnJvbSB0aGUgY29udGFpbmVy
LgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ZTY3YjI0NWRjYTJkMjdmMjhkOTlkNjBh
MzRiNzM0YzQzZDI3YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24t
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgdGV4dCBlZGl0b3Igc2VsZWN0aW9uIGNhbGN1bGF0aW9uLgotCi1DaHVuayBtb2Rl
bAotQ2h1bmsgWzBdIDA6OSAoZXhwYW5kZWQpCi1DaHVuayBbMV0gOToxOCAoZXhwYW5kZWQpCi1D
aHVuayBbMl0gMTg6MjcgKGNvbGxhcHNlZCkKLUNodW5rIFszXSAyNzozNCAoY29sbGFwc2VkKQot
Ci1SdW5uaW5nOiB0ZXN0U2VsZWN0aW9uQXRTdGFydE9mQ29sbGFwc2VkQ2h1bmsKLXsic3RhcnRM
aW5lIjoyNywic3RhcnRDb2x1bW4iOjAsImVuZExpbmUiOjI3LCJlbmRDb2x1bW4iOjB9Ci0KLVJ1
bm5pbmc6IHRlc3RTZWxlY3Rpb25BdEVuZE9mQ29sbGFwc2VkQ2h1bmsKLXsic3RhcnRMaW5lIjoz
Mywic3RhcnRDb2x1bW4iOjIsImVuZExpbmUiOjMzLCJlbmRDb2x1bW4iOjJ9Ci0KLVJ1bm5pbmc6
IHRlc3RTZWxlY3Rpb25BdE1pZGRsZU9mQ29sbGFwc2VkQ2h1bmsKLXsic3RhcnRMaW5lIjoyNywi
c3RhcnRDb2x1bW4iOjEsImVuZExpbmUiOjMwLCJlbmRDb2x1bW4iOjJ9Ci0KLVJ1bm5pbmc6IHRl
c3RTZWxlY3Rpb25BdFN0YXJ0QW5kRW5kT2ZFeHBhbmRlZFJvd3MKLXsic3RhcnRMaW5lIjozLCJz
dGFydENvbHVtbiI6MCwiZW5kTGluZSI6NCwiZW5kQ29sdW1uIjoxfQotCi1SdW5uaW5nOiB0ZXN0
U2VsZWN0aW9uQXRNaWRkbGVPZkV4cGFuZGVkUm93cwoteyJzdGFydExpbmUiOjMsInN0YXJ0Q29s
dW1uIjoxLCJlbmRMaW5lIjo0LCJlbmRDb2x1bW4iOjF9Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLXRvLXNlYXJjaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVj
dGlvbi10by1zZWFyY2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmNTJiN2E1ZjYzOTI5MTZiN2ExNTQzZjYxOTBkZjgwMzU3MWQ4YWMyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLXRvLXNlYXJjaC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3RzIHN5bmNocm9uaXppbmcgdGhlIHNlYXJjaCBp
bnB1dCBmaWVsZCB0byB0aGUgZWRpdG9yIHNlbGVjdGlvbi4KLQotCi1SdW5uaW5nOiB0ZXN0V29y
ZFNlbGVjdGlvblRvU2VhcmNoUXVlcnkKLXJldHVybgotcmV0dXJuCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLXRvLXNlYXJj
aC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rp
b24tdG8tc2VhcmNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3YTUyNDk5
ODIyY2M0ZDhhYTcxYzEwYmU2MjBkM2RjMzYyYTRjOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0
LWVkaXRvci1zZWxlY3Rpb24tdG8tc2VhcmNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvZWRpdC1tZS5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoInNjcmlwdHMiKTsgIAotCi0gICAgZnVuY3Rpb24gc2VsZWN0aW9uVG9TZWFyY2hJ
bnB1dFRlc3QoKSB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLnNob3dT
ZWFyY2hGaWVsZCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChXZWJJbnNwZWN0
b3Iuc2VhcmNoQ29udHJvbGxlci5fc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlKTsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLmFkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5zaG93KCk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KFdlYkluc3BlY3Rvci5hZHZhbmNlZFNlYXJjaENvbnRyb2xs
ZXIuX3NlYXJjaFZpZXcuX3NlYXJjaC52YWx1ZSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVz
dC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0K
LSAgICBmdW5jdGlvbiBnZXRMaW5lQ29sdW1uKHNvdXJjZUZyYW1lLCBzdHJpbmcpIHsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3VyY2VGcmFtZS5fdGV4dEVkaXRvci5saW5lc0NvdW50
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciBsaW5lID0gc291cmNlRnJhbWUuX3RleHRFZGl0b3Iu
bGluZShpKTsKLSAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsaW5lLmluZGV4T2Yoc3RyaW5nKTsK
LSAgICAgICAgICAgIGlmIChjb2x1bW4gPT09IC0xKQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgcmV0dXJuIHtsaW5lOiBpLCBjb2x1bW46IGNvbHVtbn07Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldFNlbGVjdGlv
bihzb3VyY2VGcmFtZSwgZnJvbSwgdG8pIHsKLSAgICAgICAgcmFuZ2UgPSBuZXcgV2ViSW5zcGVj
dG9yLlRleHRSYW5nZShmcm9tLmxpbmUsIGZyb20uY29sdW1uLCB0by5saW5lLCB0by5jb2x1bW4p
OwotICAgICAgICByZXR1cm4gc291cmNlRnJhbWUuX3RleHRFZGl0b3Iuc2V0U2VsZWN0aW9uKHJh
bmdlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZy
YW1lKQotICAgIHsKLSAgICAgICAgdmFyIHN0cmluZyA9ICdyZXR1cm4nOwotICAgICAgICB2YXIg
bGluZUNvbHVtbiA9IGdldExpbmVDb2x1bW4oc291cmNlRnJhbWUsIHN0cmluZyk7Ci0gICAgICAg
IAotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgICAgICBmdW5j
dGlvbiB0ZXN0V29yZFNlbGVjdGlvblRvU2VhcmNoUXVlcnkobmV4dCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBzZXRTZWxlY3Rpb24oc291cmNlRnJhbWUsIGxpbmVDb2x1bW4sIHts
aW5lOiBsaW5lQ29sdW1uLmxpbmUsIGNvbHVtbjogbGluZUNvbHVtbi5jb2x1bW4gKyBzdHJpbmcu
bGVuZ3RofSk7Ci0gICAgICAgICAgICAgICAgc2VsZWN0aW9uVG9TZWFyY2hJbnB1dFRlc3QoKTsK
LSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9LAotICAgICAgICBdKTsKLSAg
ICB9Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD5UZXN0cyBzeW5jaHJvbml6aW5nIHRoZSBzZWFyY2ggaW5wdXQgZmllbGQgdG8gdGhl
IGVkaXRvciBzZWxlY3Rpb24uPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zZWxlY3Rpb24uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E1NGFkNTEyMWViYzU4MWVmZDMxOWIzZGM0
YzY2ZDQwNTU5MWI1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRleHRFZGl0b3IgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmZpbGxFZGl0b3JXaXRoVGV4
dCh0ZXh0RWRpdG9yLCAzNCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9yQ2h1bmtzKHRl
eHRFZGl0b3IpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBm
dW5jdGlvbiB0ZXN0U2VsZWN0aW9uQXRTdGFydE9mQ29sbGFwc2VkQ2h1bmsobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgdmFyIGNodW5rcyA9IHRleHRFZGl0b3IuX21haW5QYW5lbC5fdGV4
dENodW5rczsKLSAgICAgICAgICAgIHZhciBsYXN0Q2h1bmsgPSBjaHVua3NbY2h1bmtzLmxlbmd0
aCAtIDFdOwotICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQobGFzdENodW5rLmVsZW1lbnQsIDAsIGxhc3RDaHVuay5lbGVtZW50LCAwKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5zZWxlY3Rp
b24oKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gdGVzdFNlbGVjdGlvbkF0RW5kT2ZDb2xsYXBzZWRDaHVuayhuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB2YXIgY2h1bmtzID0gdGV4dEVkaXRvci5fbWFpblBhbmVsLl90ZXh0Q2h1bmtz
OwotICAgICAgICAgICAgdmFyIGxhc3RDaHVuayA9IGNodW5rc1tjaHVua3MubGVuZ3RoIC0gMV07
Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChsYXN0
Q2h1bmsuZWxlbWVudCwgMSwgbGFzdENodW5rLmVsZW1lbnQsIDEpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRvci5fbWFpblBhbmVsLnNlbGVjdGlvbigpKTsK
LSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0
U2VsZWN0aW9uQXRNaWRkbGVPZkNvbGxhcHNlZENodW5rKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHZhciBjaHVua3MgPSB0ZXh0RWRpdG9yLl9tYWluUGFuZWwuX3RleHRDaHVua3M7Ci0g
ICAgICAgICAgICB2YXIgbGFzdENodW5rID0gY2h1bmtzW2NodW5rcy5sZW5ndGggLSAxXTsKLSAg
ICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGxhc3RDaHVu
ay5lbGVtZW50LmZpcnN0Q2hpbGQsIDEsIGxhc3RDaHVuay5lbGVtZW50LmZpcnN0Q2hpbGQsIDEx
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21haW5Q
YW5lbC5zZWxlY3Rpb24oKSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAg
ICAgICAgZnVuY3Rpb24gdGVzdFNlbGVjdGlvbkF0U3RhcnRBbmRFbmRPZkV4cGFuZGVkUm93cyhu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgY2h1bmtzID0gdGV4dEVkaXRvci5fbWFp
blBhbmVsLl90ZXh0Q2h1bmtzOwotICAgICAgICAgICAgdmFyIGZpcnN0Q2h1bmsgPSBjaHVua3Nb
MF07Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChm
aXJzdENodW5rLmV4cGFuZGVkTGluZVJvdygzKSwgMCwgZmlyc3RDaHVuay5leHBhbmRlZExpbmVS
b3coNCksIDEpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodGV4dEVkaXRv
ci5fbWFpblBhbmVsLnNlbGVjdGlvbigpKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2VsZWN0aW9uQXRNaWRkbGVPZkV4cGFuZGVkUm93
cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgY2h1bmtzID0gdGV4dEVkaXRvci5f
bWFpblBhbmVsLl90ZXh0Q2h1bmtzOwotICAgICAgICAgICAgdmFyIGZpcnN0Q2h1bmsgPSBjaHVu
a3NbMF07Ci0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dChmaXJzdENodW5rLmV4cGFuZGVkTGluZVJvdygzKS5maXJzdENoaWxkLCAzLCBmaXJzdENodW5r
LmV4cGFuZGVkTGluZVJvdyg0KS5maXJzdENoaWxkLCA0KTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KHRleHRFZGl0b3IuX21haW5QYW5lbC5zZWxlY3Rpb24oKSk7Ci0gICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3Mg
dGhlIHRleHQgZWRpdG9yIHNlbGVjdGlvbiBjYWxjdWxhdGlvbi4KLTwvcD4KLQotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVk
aXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3BhY2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzViOTE5NGE5MGI5MzZmYWExMDFmNjc2ZDg3YjUzNWU1
ZGQ1NzBiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13aGl0ZXNwYWNlLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVj
a3MgaG93IHRleHQgZWRpdG9yIHNwbGl0cyB3aGl0ZXNwYWNlIHNlcXVlbmNlcyB0byBoaWdobGln
aHQgdGhlbSBpZiB0aGUgYXBwcm9wcmlhdGUgZXhwZXJpbWVudCBpcyBzd2l0Y2hlZCBvbi4KLQot
QWN0dWFsIHRleHQ6Ci1mdW5jdGlvbiBmb28oYSwgYikgewotICAgIC8vIHNwYWNlcyBpbiBjb21t
ZW50Ci0gICAgYSA9ICJzdHJpbmcgd2l0aCBzcGFjZXMiOwotICAgIGEgPSAyOyAgICAgICAgICAg
ICAgIGEgPSAzOwotfQotPT09PT09PT09PSBFZGl0b3IgSFRNTCBhZnRlciBzZXR0aW5nIHNob3dX
aGl0ZXNwYWNlSW5FZGl0b3IgT04gPT09PT09PT09PQotCi08ZGl2IGNsYXNzPSJpbm5lci1jb250
YWluZXIiIHRhYmluZGV4PSIwIj4KLTxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkIj5mdW5jdGlvbjwvc3Bhbj48c3Bh
biBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48
c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQiPmZvbzwvc3Bhbj48c3Bhbj4oPC9z
cGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+YTwvc3Bhbj48c3Bhbj4s
PC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0x
Ij4gPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCI+Yjwvc3Bhbj48
c3Bhbj4pPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVz
cGFjZS0xIj4gPC9zcGFuPjxzcGFuPns8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRl
c3BhY2UtNCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtY29tbWVu
dCI+Ly8gc3BhY2VzIGluIGNvbW1lbnQ8L3NwYW4+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRl
c3BhY2UtNCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3JpcHQtaWRlbnQi
PmE8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNl
LTEiPiA8L3NwYW4+PHNwYW4+PTwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ug
d2Via2l0LXdoaXRlc3BhY2UtMSI+IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LWphdmFzY3Jp
cHQtc3RyaW5nIj4ic3RyaW5nIHdpdGggc3BhY2VzIjwvc3Bhbj48c3Bhbj47PC9zcGFuPjwvZGl2
PgotPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4gY2xhc3M9IndlYmtpdC13
aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTQiPiAgICA8L3NwYW4+PHNwYW4gY2xhc3M9Indl
YmtpdC1qYXZhc2NyaXB0LWlkZW50Ij5hPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVz
cGFjZSB3ZWJraXQtd2hpdGVzcGFjZS0xIj4gPC9zcGFuPjxzcGFuPj08L3NwYW4+PHNwYW4gY2xh
c3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4g
Y2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LW51bWJlciI+Mjwvc3Bhbj48c3Bhbj47PC9zcGFuPjxz
cGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFjZS04Ij4gICAgICAg
IDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRlc3BhY2Ut
NCI+ICAgIDwvc3Bhbj48c3BhbiBjbGFzcz0id2Via2l0LXdoaXRlc3BhY2Ugd2Via2l0LXdoaXRl
c3BhY2UtMiI+ICA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNlIHdlYmtpdC13
aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2NyaXB0LWlkZW50
Ij5hPC9zcGFuPjxzcGFuIGNsYXNzPSJ3ZWJraXQtd2hpdGVzcGFjZSB3ZWJraXQtd2hpdGVzcGFj
ZS0xIj4gPC9zcGFuPjxzcGFuPj08L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC13aGl0ZXNwYWNl
IHdlYmtpdC13aGl0ZXNwYWNlLTEiPiA8L3NwYW4+PHNwYW4gY2xhc3M9IndlYmtpdC1qYXZhc2Ny
aXB0LW51bWJlciI+Mzwvc3Bhbj48c3Bhbj47PC9zcGFuPjwvZGl2PgotPGRpdiBjbGFzcz0id2Vi
a2l0LWxpbmUtY29udGVudCI+PHNwYW4+fTwvc3Bhbj48L2Rpdj48L2Rpdj4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zaG93LXdoaXRlc3Bh
Y2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc2hvdy13
aGl0ZXNwYWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxM2M1NzQyNzJk
NGM5ODliZWMzMWIxZTI4OTFmMTkwOWVhMzg3ZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVk
aXRvci1zaG93LXdoaXRlc3BhY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLWZ1bmN0aW9uIGZvbyhh
LCBiKSB7Ci0gICAgLy8gc3BhY2VzIGluIGNvbW1lbnQKLSAgICBhID0gInN0cmluZyB3aXRoIHNw
YWNlcyI7Ci0gICAgYSA9IDI7ICAgICAgICAgICAgICAgYSA9IDM7Ci19Ci0KLSAgICBXZWJJbnNw
ZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5ncy5zaG93V2hpdGVzcGFjZUluRWRpdG9yLmVuYWJsZUZv
clRlc3QoKTsKLSAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVk
aXRvcigpOwotICAgIHRleHRFZGl0b3Iub3ZlcnJpZGVWaWV3cG9ydEZvclRlc3QoMCwgdW5kZWZp
bmVkLCAzKTsKLSAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlwdCI7Ci0g
ICAgdGV4dEVkaXRvci5zZXRUZXh0KGZvby50b1N0cmluZygpKTsKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQWN0dWFsIHRleHQ6Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
dGV4dEVkaXRvci50ZXh0KCkpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09
PT09IEVkaXRvciBIVE1MIGFmdGVyIHNldHRpbmcgc2hvd1doaXRlc3BhY2VJbkVkaXRvciBPTiA9
PT09PT09PT09Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRpdG9y
LCB0cnVlKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLTxwPgotVGhpcyB0ZXN0
IGNoZWNrcyBob3cgdGV4dCBlZGl0b3Igc3BsaXRzIHdoaXRlc3BhY2Ugc2VxdWVuY2VzIHRvIGhp
Z2hsaWdodCB0aGVtIGlmIHRoZSBhcHByb3ByaWF0ZQotZXhwZXJpbWVudCBpcyBzd2l0Y2hlZCBv
bi4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc21hcnQtYnJhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc21hcnQtYnJhY2VzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjYzM3ZTg3MTg0NGYyMDk0NDlj
NWE2NWE2N2QzZDJmMzljNjlmOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXNtYXJ0
LWJyYWNlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi1UaGlz
IHRlc3QgY2hlY2tzIHRleHQgZWRpdG9yIHNtYXJ0IGJyYWNlcyBmdW5jdGlvbmFsaXR5LgotCi0K
LVJ1bm5pbmc6IHR5cGVGdW5jdGlvbk5hbWUKLWZ1bmN0aW9uIG15TWF4fAotCi1SdW5uaW5nOiB0
eXBlT3BlbmluZ1JvdW5kQnJhY2UKLWZ1bmN0aW9uIG15TWF4KHwpCi0KLVJ1bm5pbmc6IHR5cGVG
dW5jdGlvbkFyZ3VtZW50cwotZnVuY3Rpb24gbXlNYXgoYSwgYnwpCi0KLVJ1bm5pbmc6IHR5cGVD
bG9zaW5nQnJhY2UKLWZ1bmN0aW9uIG15TWF4KGEsIGIpfAotCi1SdW5uaW5nOiB0eXBlT3Blbmlu
Z0N1cmx5QnJhY2UKLWZ1bmN0aW9uIG15TWF4KGEsIGIpe3x9Ci0KLVJ1bm5pbmc6IHR5cGVFbnRl
cgotZnVuY3Rpb24gbXlNYXgoYSwgYil7Ci0gICAgfAotfQotCi1SdW5uaW5nOiB0eXBlUmV0dXJu
U3RhdGVtZW50Ci1mdW5jdGlvbiBteU1heChhLCBiKXsKLSAgICByZXR1cm4gfAotfQotCi1SdW5u
aW5nOiB0eXBlTmVzdGVkQnJhY2VzCi1mdW5jdGlvbiBteU1heChhLCBiKXsKLSAgICByZXR1cm4g
KHsofCl9KQotfQotCi1SdW5uaW5nOiBoaXRCYWNrc3BhY2VUcmlwcGxlVGltZXMKLWZ1bmN0aW9u
IG15TWF4KGEsIGIpewotICAgIHJldHVybiB8Ci19Ci0KLVJ1bm5pbmc6IHR5cGVNYXRoTWF4Ci1m
dW5jdGlvbiBteU1heChhLCBiKXsKLSAgICByZXR1cm4gTWF0aC5tYXgoYSwgYik7fAotfQotCi1S
dW5uaW5nOiBzZXRDdXJzb3JCZWZvcmVDbG9zaW5nQ3VybHlCcmFjZQotZnVuY3Rpb24gbXlNYXgo
YSwgYil7Ci0gICAgcmV0dXJuIE1hdGgubWF4KGEsIGIpOwotfH0KLQotUnVubmluZzogdHlwZUlu
Q2xvc2luZ0N1cmx5QnJhY2UKLWZ1bmN0aW9uIG15TWF4KGEsIGIpewotICAgIHJldHVybiBNYXRo
Lm1heChhLCBiKTsKLX18Ci0KLVJ1bm5pbmc6IGdvdG9WZXJ5QmVnaW5uaW5nCi18ZnVuY3Rpb24g
bXlNYXgoYSwgYil7Ci0gICAgcmV0dXJuIE1hdGgubWF4KGEsIGIpOwotfQotCi1SdW5uaW5nOiB0
eXBlT3BlbmluZ1JvdW5kQW5kQ3VybHlCcmFjZXMKLSh7fGZ1bmN0aW9uIG15TWF4KGEsIGIpewot
ICAgIHJldHVybiBNYXRoLm1heChhLCBiKTsKLX0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zbWFydC1icmFjZXMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itc21hcnQtYnJhY2VzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1YTUwMWQyMWY4NjRjNjcwMDI0YmRhMWViYWEyOWQw
MDc2NTg5ZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1zbWFydC1icmFjZXMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNTZXR0aW5n
cy50ZXh0RWRpdG9yU21hcnRCcmFjZXMuZW5hYmxlRm9yVGVzdCgpOwotCi0gICAgdmFyIHRleHRF
ZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICB0ZXh0RWRpdG9y
Lm92ZXJyaWRlVmlld3BvcnRGb3JUZXN0KDAsIHVuZGVmaW5lZCwgMyk7Ci0gICAgdGV4dEVkaXRv
ci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgIHRleHRFZGl0b3Iuc2V0UmVhZE9u
bHkoZmFsc2UpOwotICAgIHRleHRFZGl0b3IuZWxlbWVudC5mb2N1cygpOwotCi0gICAgdGV4dEVk
aXRvci5zZXRUZXh0KCIiKTsKLSAgICB0ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihXZWJJbnNwZWN0
b3IuVGV4dFJhbmdlLmNyZWF0ZUZyb21Mb2NhdGlvbigwLCAwKSk7Ci0KLSAgICBmdW5jdGlvbiBk
dW1wKG5leHQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChJbnNwZWN0
b3JUZXN0LnRleHRXaXRoU2VsZWN0aW9uKHRleHRFZGl0b3IudGV4dCgpLCB0ZXh0RWRpdG9yLnNl
bGVjdGlvbigpKSk7Ci0gICAgICAgIG5leHQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB3YWl0
QW5kRHVtcChuZXh0KQotICAgIHsKLSAgICAgICAgc2V0VGltZW91dChkdW1wLmJpbmQodGhpcywg
bmV4dCkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGtleURvd24oY2hhcmFjdGVyKQotICAgIHsK
LSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bihjaGFyYWN0ZXIsIFtdKTsKLSAgICB9Ci0KLSAg
ICB2YXIgaW5zZXJ0VGV4dCA9IHRleHRJbnB1dENvbnRyb2xsZXIuaW5zZXJ0VGV4dC5iaW5kKHRl
eHRJbnB1dENvbnRyb2xsZXIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwot
ICAgICAgICBmdW5jdGlvbiB0eXBlRnVuY3Rpb25OYW1lKG5leHQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGluc2VydFRleHQoImZ1bmN0aW9uIG15TWF4Iik7Ci0gICAgICAgICAgICB3YWl0QW5k
RHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0eXBlT3BlbmluZ1Jv
dW5kQnJhY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93bigiKCIpOwotICAg
ICAgICAgICAgZHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0eXBl
RnVuY3Rpb25Bcmd1bWVudHMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgaW5zZXJ0VGV4
dCgiYSwgYiIpOwotICAgICAgICAgICAgd2FpdEFuZER1bXAobmV4dCk7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdHlwZUNsb3NpbmdCcmFjZShuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBrZXlEb3duKCIpIik7Ci0gICAgICAgICAgICBkdW1wKG5leHQpOwotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHR5cGVPcGVuaW5nQ3VybHlCcmFjZShuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBrZXlEb3duKCJ7Iik7Ci0gICAgICAgICAgICBkdW1wKG5leHQpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHR5cGVFbnRlcihuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBrZXlEb3duKCJcbiIpOwotICAgICAgICAgICAgZHVtcChuZXh0KTsKLSAg
ICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0eXBlUmV0dXJuU3RhdGVtZW50KG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGluc2VydFRleHQoInJldHVybiAiKTsKLSAgICAgICAgICAg
IHdhaXRBbmREdW1wKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHR5cGVO
ZXN0ZWRCcmFjZXMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93bigiKCIpOwot
ICAgICAgICAgICAga2V5RG93bigieyIpOwotICAgICAgICAgICAga2V5RG93bigiKCIpOwotICAg
ICAgICAgICAgZHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoaXRC
YWNrc3BhY2VUcmlwcGxlVGltZXMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93
bigiXGIiKTsKLSAgICAgICAgICAgIGtleURvd24oIlxiIik7Ci0gICAgICAgICAgICBrZXlEb3du
KCJcYiIpOwotICAgICAgICAgICAgZHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0eXBlTWF0aE1heChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnNlcnRU
ZXh0KCJNYXRoLm1heChhLCBiKTsiKTsKLSAgICAgICAgICAgIHdhaXRBbmREdW1wKG5leHQpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHNldEN1cnNvckJlZm9yZUNsb3NpbmdDdXJs
eUJyYWNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0U2VsZWN0
aW9uKFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3JlYXRlRnJvbUxvY2F0aW9uKDIsIDApKTsKLSAg
ICAgICAgICAgIGR1bXAobmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdHlw
ZUluQ2xvc2luZ0N1cmx5QnJhY2UobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAga2V5RG93
bigifSIpOwotICAgICAgICAgICAgZHVtcChuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiBnb3RvVmVyeUJlZ2lubmluZyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB0
ZXh0RWRpdG9yLnNldFNlbGVjdGlvbihXZWJJbnNwZWN0b3IuVGV4dFJhbmdlLmNyZWF0ZUZyb21M
b2NhdGlvbigwLCAwKSk7Ci0gICAgICAgICAgICBkdW1wKG5leHQpOwotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIHR5cGVPcGVuaW5nUm91bmRBbmRDdXJseUJyYWNlcyhuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBrZXlEb3duKCIoIik7Ci0gICAgICAgICAgICBrZXlEb3duKCJ7
Iik7Ci0gICAgICAgICAgICB3YWl0QW5kRHVtcChuZXh0KTsKLSAgICAgICAgfQotICAgIF0pOwot
fQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLTxw
PgotVGhpcyB0ZXN0IGNoZWNrcyB0ZXh0IGVkaXRvciBzbWFydCBicmFjZXMgZnVuY3Rpb25hbGl0
eS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10b2tlbi1hdC1wb3NpdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXRva2VuLWF0LXBvc2l0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZmODA4OTQ1
MzY3MjU3YjY1Njc5ZjQ0NWYxZjg0MjBiMjhlNmM0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQt
ZWRpdG9yLXRva2VuLWF0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDM1ICswLDAgQEAKLVRlc3QgZWRpdG9yIHRva2VuQXRUZXh0UG9zaXRpb24gbWV0aG9kLgotCi0K
LVJ1bm5pbmc6IHRlc3RIaWdobGlnaHRlZFRleHQKLUxpbmU6IGZ1bmN0aW9uIGZvbyhhLCBiKSB7
Ci1Db2x1bW4gIzAgKGNoYXIgJ2YnKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1uIjowLCJlbmRDb2x1
bW4iOjcsInR5cGUiOiJqYXZhc2NyaXB0LWtleXdvcmQifQotQ29sdW1uICMxMCAoY2hhciAnbycp
IC0gdG9rZW46IHsic3RhcnRDb2x1bW4iOjksImVuZENvbHVtbiI6MTEsInR5cGUiOiJqYXZhc2Ny
aXB0LWlkZW50In0KLUNvbHVtbiAjMTMgKGNoYXIgJ2EnKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1u
IjoxMywiZW5kQ29sdW1uIjoxMywidHlwZSI6ImphdmFzY3JpcHQtaWRlbnQifQotTGluZTogICAg
IHZhciBmID0gLy5hLy50ZXN0KGEpOyAvKgotQ29sdW1uICM4IChjaGFyICdmJykgLSB0b2tlbjog
eyJzdGFydENvbHVtbiI6OCwiZW5kQ29sdW1uIjo4LCJ0eXBlIjoiamF2YXNjcmlwdC1pZGVudCJ9
Ci1Db2x1bW4gIzE0IChjaGFyICdhJykgLSB0b2tlbjogeyJzdGFydENvbHVtbiI6MTIsImVuZENv
bHVtbiI6MTUsInR5cGUiOiJqYXZhc2NyaXB0LXJlZ2V4cCJ9Ci1Db2x1bW4gIzE5IChjaGFyICdz
JykgLSB0b2tlbjogeyJzdGFydENvbHVtbiI6MTcsImVuZENvbHVtbiI6MjAsInR5cGUiOiJqYXZh
c2NyaXB0LWlkZW50In0KLUxpbmU6IHRoaXMgaXMgYSBjb21tZW50ICovCi1Db2x1bW4gIzAgKGNo
YXIgJ3QnKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1uIjowLCJlbmRDb2x1bW4iOjE5LCJ0eXBlIjoi
amF2YXNjcmlwdC1jb21tZW50In0KLUNvbHVtbiAjNSAoY2hhciAnaScpIC0gdG9rZW46IHsic3Rh
cnRDb2x1bW4iOjAsImVuZENvbHVtbiI6MTksInR5cGUiOiJqYXZhc2NyaXB0LWNvbW1lbnQifQot
TGluZTogICAgIHJldHVybiBmICsgImxvb29uZ3dvcmQiOwotQ29sdW1uICM1IChjaGFyICdlJykg
LSB0b2tlbjogeyJzdGFydENvbHVtbiI6NCwiZW5kQ29sdW1uIjo5LCJ0eXBlIjoiamF2YXNjcmlw
dC1rZXl3b3JkIn0KLUNvbHVtbiAjMjAgKGNoYXIgJ24nKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1u
IjoxNSwiZW5kQ29sdW1uIjoyNiwidHlwZSI6ImphdmFzY3JpcHQtc3RyaW5nIn0KLQotUnVubmlu
ZzogdGVzdFVuaGlnaGxpZ2h0ZWRUZXh0Ci1MaW5lOiBmdW5jdGlvbiBmb28oYSwgYikgewotQ29s
dW1uICMwIChjaGFyICdmJykgLSB0b2tlbjogeyJzdGFydENvbHVtbiI6MCwiZW5kQ29sdW1uIjo3
LCJ0eXBlIjoiamF2YXNjcmlwdC1rZXl3b3JkIn0KLUNvbHVtbiAjMTAgKGNoYXIgJ28nKSAtIHRv
a2VuOiB7InN0YXJ0Q29sdW1uIjo5LCJlbmRDb2x1bW4iOjExLCJ0eXBlIjoiamF2YXNjcmlwdC1p
ZGVudCJ9Ci1Db2x1bW4gIzEzIChjaGFyICdhJykgLSB0b2tlbjogeyJzdGFydENvbHVtbiI6MTMs
ImVuZENvbHVtbiI6MTMsInR5cGUiOiJqYXZhc2NyaXB0LWlkZW50In0KLUxpbmU6ICAgICB2YXIg
ZiA9IC8uYS8udGVzdChhKTsgLyoKLUNvbHVtbiAjOCAoY2hhciAnZicpIC0gdG9rZW46IHsic3Rh
cnRDb2x1bW4iOjgsImVuZENvbHVtbiI6OCwidHlwZSI6ImphdmFzY3JpcHQtaWRlbnQifQotQ29s
dW1uICMxNCAoY2hhciAnYScpIC0gdG9rZW46IHsic3RhcnRDb2x1bW4iOjEyLCJlbmRDb2x1bW4i
OjE1LCJ0eXBlIjoiamF2YXNjcmlwdC1yZWdleHAifQotQ29sdW1uICMxOSAoY2hhciAncycpIC0g
dG9rZW46IHsic3RhcnRDb2x1bW4iOjE3LCJlbmRDb2x1bW4iOjIwLCJ0eXBlIjoiamF2YXNjcmlw
dC1pZGVudCJ9Ci1MaW5lOiB0aGlzIGlzIGEgY29tbWVudCAqLwotQ29sdW1uICMwIChjaGFyICd0
JykgLSB0b2tlbjogeyJzdGFydENvbHVtbiI6MCwiZW5kQ29sdW1uIjozLCJ0eXBlIjoiamF2YXNj
cmlwdC1rZXl3b3JkIn0KLUNvbHVtbiAjNSAoY2hhciAnaScpIC0gdG9rZW46IHsic3RhcnRDb2x1
bW4iOjUsImVuZENvbHVtbiI6NiwidHlwZSI6ImphdmFzY3JpcHQtaWRlbnQifQotTGluZTogICAg
IHJldHVybiBmICsgImxvb29uZ3dvcmQiOwotQ29sdW1uICM1IChjaGFyICdlJykgLSB0b2tlbjog
eyJzdGFydENvbHVtbiI6NCwiZW5kQ29sdW1uIjo5LCJ0eXBlIjoiamF2YXNjcmlwdC1rZXl3b3Jk
In0KLUNvbHVtbiAjMjAgKGNoYXIgJ24nKSAtIHRva2VuOiB7InN0YXJ0Q29sdW1uIjoxNSwiZW5k
Q29sdW1uIjoyNiwidHlwZSI6ImphdmFzY3JpcHQtc3RyaW5nIn0KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10b2tlbi1hdC1wb3NpdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10b2tlbi1hdC1w
b3NpdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MmEzZTU5MmE4YWMw
ZTYzY2MxZDczYmE3MTc4MmEyZTc2NDJjZTZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0
b3ItdG9rZW4tYXQtcG9zaXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImVkaXRvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciB0ZXh0
ID0gWwotICAgICAgICAiZnVuY3Rpb24gZm9vKGEsIGIpIHsiLAotICAgICAgICAiICAgIHZhciBm
ID0gLy5hLy50ZXN0KGEpOyAvKiIsCi0gICAgICAgICJ0aGlzIGlzIGEgY29tbWVudCAqLyIsCi0g
ICAgICAgICIgICAgcmV0dXJuIGYgKyBcImxvb29uZ3dvcmRcIjsiCi0gICAgXTsKLQotICAgIHZh
ciBwb3NpdGlvbnMgPSBbCi0gICAgICAgIFswLCAxMCwgMTNdLAotICAgICAgICBbOCwgMTQsIDE5
XSwKLSAgICAgICAgWzAsIDVdLAotICAgICAgICBbNSwgMjBdCi0gICAgXTsKLSAgICBmdW5jdGlv
biB0ZXN0VG9rZW5BdFBvc2l0aW9uKHRleHRFZGl0b3IpCi0gICAgewotICAgICAgICBmb3IodmFy
IGkgPSAwOyBpIDwgcG9zaXRpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgY29s
dW1ucyA9IHBvc2l0aW9uc1tpXTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJMaW5lOiAiICsgdGV4dFtpXSk7Ci0gICAgICAgICAgICBmb3IodmFyIGogPSAwOyBqIDwgY29s
dW1ucy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBjb2x1bW5z
W2pdOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb2x1bW4gIyIg
KyBjb2x1bW4gKyAiIChjaGFyICciICsgdGV4dFtpXS5jaGFyQXQoY29sdW1uKSArICInKSAtIHRv
a2VuOiAiICsgSlNPTi5zdHJpbmdpZnkodGV4dEVkaXRvci50b2tlbkF0VGV4dFBvc2l0aW9uKGks
IGNvbHVtbikpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdEhpZ2hsaWdodGVk
VGV4dChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ckhpZ2hsaWdodGVyLl9NYXhMaW5lQ291bnQgPSAxMDAwOwotICAgICAgICAgICAgdmFyIHRleHRF
ZGl0b3IgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVRlc3RFZGl0b3IoKTsKLSAgICAgICAgICAgIHRl
eHRFZGl0b3IubWltZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKLSAgICAgICAgICAgIHRleHRF
ZGl0b3Iuc2V0VGV4dCh0ZXh0LmpvaW4oIlxuIikpOwotICAgICAgICAgICAgdGVzdFRva2VuQXRQ
b3NpdGlvbih0ZXh0RWRpdG9yKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0VW5oaWdobGlnaHRlZFRleHQobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgLy8gc3dpdGNoIGhpZ2hsaWdodCBvZmYKLSAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuX01heExpbmVDb3VudCA9IDA7Ci0gICAgICAgICAg
ICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvcigpOwotICAg
ICAgICAgICAgdGV4dEVkaXRvci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwotICAgICAg
ICAgICAgdGV4dEVkaXRvci5zZXRUZXh0KHRleHQuam9pbigiXG4iKSk7Ci0gICAgICAgICAgICB0
ZXN0VG9rZW5BdFBvc2l0aW9uKHRleHRFZGl0b3IpOwotICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICB9LAotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0IGVkaXRvciB0b2tlbkF0VGV4dFBvc2l0aW9uIG1ldGhv
ZC4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdHlwZS1vdmVyLWRlY29yYXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10eXBlLW92ZXItZGVj
b3JhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhODc1
YjYxYTYwNGVmMTFkZWFjMzgwNDA0YWI5MGU2NzE2MmI3NGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci10eXBlLW92ZXItZGVjb3JhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyNiArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdHlwaW5nIG92ZXIgdGhl
IGRlY29yYXRpb24gZG9lcyBub3QgY29sbGVjdCBkZWNvcmF0aW9uIHRleHQgYXMgYSBwYXJ0IG9m
IGRhbWFnZWQgRE9NLgotCi1DaHVuayBtb2RlbAotQ2h1bmsgWzBdIDA6MTAgKGV4cGFuZGVkKQot
RWRpdG9yIERPTQotWzBdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxz
cGFuPjA8L3NwYW4+PC9kaXY+Ci1bMV0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29u
dGVudCI+PHNwYW4+MTwvc3Bhbj48L2Rpdj4KLVsyXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3Bhbj4yPC9zcGFuPjwvZGl2PgotWzNdICAgICAgIDxkaXYgY2xhc3M9
IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjM8L3NwYW4+PC9kaXY+Ci1bNF0gICAgICAgPGRp
diBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+NDwvc3Bhbj48L2Rpdj4KLVs1OjZd
ICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj41PC9zcGFuPjxkaXYg
Y2xhc3M9IndlYmtpdC1saW5lLWRlY29yYXRpb25zIj48c3Bhbj5EZWNvcmF0aW9uIGNvbnRlbnQ8
L3NwYW4+PC9kaXY+PC9kaXY+Ci1bNl0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29u
dGVudCI+PHNwYW4+Njwvc3Bhbj48L2Rpdj4KLVs3XSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQt
bGluZS1jb250ZW50Ij48c3Bhbj43PC9zcGFuPjwvZGl2PgotWzhdICAgICAgIDxkaXYgY2xhc3M9
IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjg8L3NwYW4+PC9kaXY+Ci1bOV0gICAgICAgPGRp
diBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+OTwvc3Bhbj48L2Rpdj4KLUVkaXRv
ciBET00KLVswXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj4w
PC9zcGFuPjwvZGl2PgotWzFdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQi
PjxzcGFuPjE8L3NwYW4+PC9kaXY+Ci1bMl0gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUt
Y29udGVudCI+PHNwYW4+Mjwvc3Bhbj48L2Rpdj4KLVszXSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJr
aXQtbGluZS1jb250ZW50Ij48c3Bhbj4zPC9zcGFuPjwvZGl2PgotWzRdICAgICAgIDxkaXYgY2xh
c3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjRhNTwvc3Bhbj48L2Rpdj4KLVs1XSAgICAg
ICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50Ij48c3Bhbj42PC9zcGFuPjwvZGl2Pgot
WzZdICAgICAgIDxkaXYgY2xhc3M9IndlYmtpdC1saW5lLWNvbnRlbnQiPjxzcGFuPjc8L3NwYW4+
PC9kaXY+Ci1bN10gICAgICAgPGRpdiBjbGFzcz0id2Via2l0LWxpbmUtY29udGVudCI+PHNwYW4+
ODwvc3Bhbj48L2Rpdj4KLVs4XSAgICAgICA8ZGl2IGNsYXNzPSJ3ZWJraXQtbGluZS1jb250ZW50
Ij48c3Bhbj45PC9zcGFuPjwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL3RleHQtZWRpdG9yLXR5cGUtb3Zlci1kZWNvcmF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXR5cGUtb3Zlci1kZWNvcmF0aW9uLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhZWZlNmFjYjJmYzhlNGQxOGM4MzMz
ZDJmYjM4YjA1ZmMxZGIwOGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci10eXBlLW92
ZXItZGVjb3JhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZWRpdG9yLXRlc3QuanM/Zm9vPTE0
MyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgdGV4
dEVkaXRvciA9IEluc3BlY3RvclRlc3QuY3JlYXRlVGVzdEVkaXRvcigpOwotICAgIEluc3BlY3Rv
clRlc3QuZmlsbEVkaXRvcldpdGhUZXh0KHRleHRFZGl0b3IsIDEwKTsKLSAgICB2YXIgdGV4dE1v
ZGVsID0gdGV4dEVkaXRvci5fdGV4dE1vZGVsOwotCi0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRp
dG9yQ2h1bmtzKHRleHRFZGl0b3IpOwotICAgIHZhciBkZWNvcmF0aW9uRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICBkZWNvcmF0aW9uRWxlbWVudC50ZXh0Q29u
dGVudCA9ICJEZWNvcmF0aW9uIGNvbnRlbnQiOwotICAgIHRleHRFZGl0b3IuYWRkRGVjb3JhdGlv
big1LCBkZWNvcmF0aW9uRWxlbWVudCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9yRE9N
KHRleHRFZGl0b3IpOwotCi0gICAgLy8gSW5zZXJ0IEVudGVyIGJlZm9yZSB0aGUgZGVjb3JhdGlv
bgotICAgIHZhciBsaW5lUm93RWxlbWVudCA9IEluc3BlY3RvclRlc3QuZ2V0TGluZUVsZW1lbnQo
dGV4dEVkaXRvciwgNSk7Ci0gICAgbGluZVJvd0VsZW1lbnQucGFyZW50RWxlbWVudC5pbnNlcnRC
ZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImEiKSwgbGluZVJvd0VsZW1lbnQpOwotICAg
IHRleHRFZGl0b3IuX21haW5QYW5lbC5fYXBwbHlEb21VcGRhdGVzKHtzdGFydDo0LCBlbmQ6NX0p
OwotICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckRPTSh0ZXh0RWRpdG9yKTsKLSAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdHlwaW5n
IG92ZXIgdGhlIGRlY29yYXRpb24gZG9lcyBub3QgY29sbGVjdCBkZWNvcmF0aW9uIHRleHQgYXMg
YSBwYXJ0IG9mIGRhbWFnZWQgRE9NLgotPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXVuZG8tcmVkby1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXVu
ZG8tcmVkby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyYjA4
NzIyNTMzMGJkYmI4MjBlMTU1OWE0NTNjZWQ5YWIwNmMxYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci11bmRvLXJlZG8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDQ4
ICswLDAgQEAKLVRlc3RzIHVuZG8vcmVkbyBvcGVyYXRpb25zIGluIHRoZSBlZGl0b3IgbW9kZWwu
Ci0KLQotUnVubmluZzogdGVzdFVuZG9SZWRvVGFiCi1UZXh0IGJlZm9yZSBlZGl0OgotMQotMgot
MwotCi1UZXh0IGFmdGVyIGVkaXQ6Ci0xCi0JfDIKLTMKLQotVGV4dCBhZnRlciB1bmRvOgotMQot
fDIKLTMKLQotVGV4dCBhZnRlciByZWRvOgotMQotCXwyCi0zCi0KLQotUnVubmluZzogdGVzdENv
bnNlY3V0aXZlQ2hhcmFjdGVyc0FuZE5ld0xpbmVzCi1UZXh0IGJlZm9yZSBlZGl0OgotZnVuY3Rp
b24gZm9vKCkKLXsKLQotfQotCi1UZXh0IGFmdGVyIGVkaXQ6Ci1mdW5jdGlvbiBmb28oKQotewot
ICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRlciBmaXJz
dCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTt8Ci19Ci0K
LVRleHQgYWZ0ZXIgc2Vjb25kIHVuZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpO3wK
LX0KLQotVGV4dCBhZnRlciB0aGlyZCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLXwKLX0KLQot
VGV4dCBhZnRlciBmaXJzdCByZWRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTt8Ci19
Ci0KLVRleHQgYWZ0ZXIgc2Vjb25kIHJlZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigp
OwotICAgIGJheigpO3wKLX0KLQotVGV4dCBhZnRlciB0aGlyZCByZWRvOgotZnVuY3Rpb24gZm9v
KCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKTt8Ci19Ci0KLQotUnVubmlu
ZzogdGVzdEVkaXRSYW5nZVdpdGhUaGVTYW1lVGV4dEFzT3JpZ2luYWwKLVRleHQgYmVmb3JlIGVk
aXQ6Ci1mdW5jdGlvbiBmb28oKQotewotCi19Ci0KLVRleHQgYWZ0ZXIgZWRpdDoKLWZ1bmN0aW9u
IGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi1UZXh0
IGFmdGVyIHBhc3RlIG9mIHRoZSBzYW1lIHRleHQ6Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJh
cigpOwotICAgIGJheigpOwotICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRlciBmaXJzdCB1bmRv
OgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLT4gICAgYmF6KCk7Ci08ICAgIGZvbygp
OwotfQotCi1UZXh0IGFmdGVyIHNlY29uZCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBi
YXIoKTsKLSAgICBiYXooKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgcmVkbzoKLWZ1bmN0aW9u
IGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi1UZXh0
IGFmdGVyIHNlY29uZCByZWRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBi
YXooKTsKLXwgICAgZm9vKCk7Ci19Ci0KLQotUnVubmluZzogdGVzdERlbGV0ZQotVGV4dCBiZWZv
cmUgZWRpdDoKLWZ1bmN0aW9uIGZvbygpCi17Ci0KLX0KLQotVGV4dCBhZnRlciBlZGl0OgotZnVu
Y3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKTt8Ci19Ci0K
LVRleHQgYWZ0ZXIgZGVsZXRlczoKLWZ1bmN0aW9uIGZvbygpCi17Ci18Ci19Ci0KLVRleHQgYWZ0
ZXIgZmlyc3QgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci18ICAgIGJhcigpOwotICAgIGJheigp
OwotICAgIGZvbygpOwotfQotCi1UZXh0IGFmdGVyIHNlY29uZCB1bmRvOgotZnVuY3Rpb24gZm9v
KCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgcmVk
bzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7
fAotfQotCi1UZXh0IGFmdGVyIHNlY29uZCByZWRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLXwKLX0K
LQotCi1SdW5uaW5nOiB0ZXN0QmFja3NwYWNlCi1UZXh0IGJlZm9yZSBlZGl0OgotZnVuY3Rpb24g
Zm9vKCkKLXsKLQotfQotCi1UZXh0IGFmdGVyIGVkaXQ6Ci1mdW5jdGlvbiBmb28oKQotewotICAg
IGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRlciBiYWNrc3Bh
Y2VzOgotZnVuY3Rpb24gZm9vKCkKLXsKLXwKLX0KLQotVGV4dCBhZnRlciBmaXJzdCB1bmRvOgot
ZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKTt8Ci19
Ci0KLVRleHQgYWZ0ZXIgc2Vjb25kIHVuZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigp
OwotICAgIGJheigpO3wKLX0KLQotVGV4dCBhZnRlciBmaXJzdCByZWRvOgotZnVuY3Rpb24gZm9v
KCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0
ZXIgc2Vjb25kIHJlZG86Ci1mdW5jdGlvbiBmb28oKQotewotfAotfQotCi0KLVJ1bm5pbmc6IHRl
c3RCYWNrc3BhY2VBbmREZWxldGVJbkRpZmZlcmVudExpbmVzCi1UZXh0IGJlZm9yZSBlZGl0Ogot
ZnVuY3Rpb24gZm9vKCkKLXsKLQotfQotCi1UZXh0IGFmdGVyIGVkaXQ6Ci1mdW5jdGlvbiBmb28o
KQotewotICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpO3wKLX0KLQotVGV4dCBhZnRl
ciBiYWNrc3BhY2U6Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpOwot
ICAgIGZvbygpfAotfQotCi1UZXh0IGFmdGVyIGRlbGV0ZToKLWZ1bmN0aW9uIGZvbygpCi17Ci18
ICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCkKLX0KLQotVGV4dCBhZnRlciBmaXJzdCB1
bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLXwgICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9v
KCkKLX0KLQotVGV4dCBhZnRlciBzZWNvbmQgdW5kbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAg
YmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7fAotfQotCi1UZXh0IGFmdGVyIHRoaXJkIHVu
ZG86Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpO3wKLX0KLQotVGV4
dCBhZnRlciBmaXJzdCByZWRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBi
YXooKTsKLSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgc2Vjb25kIHJlZG86Ci1mdW5jdGlv
biBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpfAotfQotCi1UZXh0
IGFmdGVyIHRoaXJkIHJlZG86Ci1mdW5jdGlvbiBmb28oKQotewotfCAgIGJhcigpOwotICAgIGJh
eigpOwotICAgIGZvbygpCi19Ci0KLQotUnVubmluZzogdGVzdFBhc3RlU2V2ZXJhbFRpbWVzCi1U
ZXh0IGJlZm9yZSBlZGl0OgotZnVuY3Rpb24gZm9vKCkKLXsKLQotfQotCi1UZXh0IGFmdGVyIGVk
aXQ6Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygp
O3wKLX0KLQotVGV4dCBhZnRlciBmaXJzdCBwYXN0ZToKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAg
YmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7NDJ8Ci19Ci0KLVRleHQgYWZ0ZXIgc2Vjb25k
IHBhc3RlOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsKLSAgICBm
b28oKTs0MjQyfAotfQotCi1UZXh0IGFmdGVyIGZpcnN0IHVuZG86Ci1mdW5jdGlvbiBmb28oKQot
ewotICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpOzQyfAotfQotCi1UZXh0IGFmdGVy
IHNlY29uZCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXsKLSAgICBiYXIoKTsKLSAgICBiYXooKTsK
LSAgICBmb28oKTt8Ci19Ci0KLVRleHQgYWZ0ZXIgdGhpcmQgdW5kbzoKLWZ1bmN0aW9uIGZvbygp
Ci17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7fAotfQotCi1UZXh0IGFmdGVyIGZpcnN0IHJlZG86
Ci1mdW5jdGlvbiBmb28oKQotewotICAgIGJhcigpOwotICAgIGJheigpOwotICAgIGZvbygpO3wK
LX0KLQotVGV4dCBhZnRlciBzZWNvbmQgcmVkbzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFy
KCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7NDJ8Ci19Ci0KLVRleHQgYWZ0ZXIgdGhpcmQgcmVk
bzoKLWZ1bmN0aW9uIGZvbygpCi17Ci0gICAgYmFyKCk7Ci0gICAgYmF6KCk7Ci0gICAgZm9vKCk7
NDI0MnwKLX0KLQotCi1SdW5uaW5nOiB0ZXN0U2VsZWN0aW9uQWZ0ZXJVbmRvUmVkbwotVGV4dCBi
ZWZvcmUgZWRpdDoKLWZ1bmN0aW9uIGZvbygpCi17Ci0KLX0KLQotVGV4dCBhZnRlciBiYWNrc3Bh
Y2U6Ci1mdW5jdGlvbiBmb28oKQote3wKLX0KLQotVGV4dCBhZnRlciBmaXJzdCB1bmRvOgotZnVu
Y3Rpb24gZm9vKCkKLXsKLXwKLX0KLQotVGV4dCBhZnRlciBmaXJzdCByZWRvOgotZnVuY3Rpb24g
Zm9vKCkKLXt8Ci19Ci0KLVRleHQgYWZ0ZXIgc2Vjb25kIHVuZG86Ci1mdW5jdGlvbiBmb28oKQot
ez4KLTwKLX0KLQotVGV4dCBhZnRlciBkZWxldGluZyBzZWxlY3Rpb246Ci1mdW5jdGlvbiBmb28o
KQote3wKLX0KLQotVGV4dCBhZnRlciBmaXJzdCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXs+Ci08
Ci19Ci0KLVRleHQgYWZ0ZXIgZmlyc3QgcmVkbzoKLWZ1bmN0aW9uIGZvbygpCi17fAotfQotCi1U
ZXh0IGFmdGVyIHNlY29uZCB1bmRvOgotZnVuY3Rpb24gZm9vKCkKLXs+Ci08Ci19Ci0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci11bmRvLXJl
ZG8uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItdW5kby1y
ZWRvLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5MjkxYTExMzA5ODFiZmM3
MDAyZTViMjczYTJlZWQ2ZTU5ZTBhZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci11
bmRvLXJlZG8uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyOSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gZHVtcFRleHRNb2Rl
bChwcmVmaXgsIHRleHRNb2RlbCwgcmFuZ2UpCi0gICAgewotICAgICAgICB2YXIgdGV4dCA9IElu
c3BlY3RvclRlc3QudGV4dFdpdGhTZWxlY3Rpb24odGV4dE1vZGVsLnRleHQoKSwgcmFuZ2UpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChwcmVmaXggKyB0ZXh0KTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiB0eXBlVGV4dCh0ZXh0TW9kZWwsIHN0YXJ0UmFuZ2UsIHRleHQpCi0gICAg
ewotICAgICAgICB2YXIgcmFuZ2UgPSBzdGFydFJhbmdlOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRleHQubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5l
ZGl0UmFuZ2UocmFuZ2UsIHRleHRbaV0pLmNvbGxhcHNlVG9FbmQoKTsKLSAgICAgICAgcmV0dXJu
IHJhbmdlOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHR5cGVEZWxldGUodGV4dE1vZGVsLCBzdGFy
dFJhbmdlLCBjb3VudCkKLSAgICB7Ci0gICAgICAgIHZhciBjb3VudCA9IGNvdW50IHx8IDE7Ci0g
ICAgICAgIHZhciByYW5nZSA9IHN0YXJ0UmFuZ2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgY291bnQ7ICsraSkgewotICAgICAgICAgICAgdmFyIGRlbGV0ZVJhbmdlID0gcmFuZ2UuaXNF
bXB0eSgpID8gdGV4dE1vZGVsLmdyb3dSYW5nZVJpZ2h0KHJhbmdlKSA6IHJhbmdlOwotICAgICAg
ICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwuZWRpdFJhbmdlKGRlbGV0ZVJhbmdlLCAiIiwgcmFuZ2Up
LmNvbGxhcHNlVG9FbmQoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmFuZ2U7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gdHlwZUJhY2tzcGFjZSh0ZXh0TW9kZWwsIHN0YXJ0UmFuZ2UsIGNv
dW50KQotICAgIHsKLSAgICAgICAgdmFyIGNvdW50ID0gY291bnQgfHwgMTsKLSAgICAgICAgdmFy
IHJhbmdlID0gc3RhcnRSYW5nZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsg
KytpKSB7Ci0gICAgICAgICAgICB2YXIgYmFja3NwYWNlUmFuZ2UgPSByYW5nZS5pc0VtcHR5KCkg
PyB0ZXh0TW9kZWwuZ3Jvd1JhbmdlTGVmdChyYW5nZSkgOiByYW5nZTsKLSAgICAgICAgICAgIHJh
bmdlID0gdGV4dE1vZGVsLmVkaXRSYW5nZShiYWNrc3BhY2VSYW5nZSwgIiIsIHJhbmdlKS5jb2xs
YXBzZVRvRW5kKCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJhbmdlOwotICAgIH0KLQot
ICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFVu
ZG9SZWRvVGFiKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwgPSBu
ZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdGV4dE1vZGVs
LnNldFRleHQoIjFcbjJcbjNcbiIpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBi
ZWZvcmUgZWRpdDpcbiIsIHRleHRNb2RlbCk7Ci0gICAgICAgICAgICB2YXIgcmFuZ2UgPSB0eXBl
VGV4dCh0ZXh0TW9kZWwsIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDEsIDAsIDEsIDApLCAi
XHQiKQotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBlZGl0OlxuIiwgdGV4
dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7Ci0g
ICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHVuZG86XG4iLCB0ZXh0TW9kZWws
IHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAg
ICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2Up
OwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RDb25zZWN1dGl2ZUNoYXJhY3RlcnNBbmROZXdMaW5lcyhuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwo
KTsKLSAgICAgICAgICAgIHRleHRNb2RlbC5zZXRUZXh0KCJmdW5jdGlvbiBmb28oKVxue1xuXG59
XG4iKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYmVmb3JlIGVkaXQ6XG4iLCB0
ZXh0TW9kZWwpOwotICAgICAgICAgICAgdmFyIHJhbmdlID0gdHlwZVRleHQodGV4dE1vZGVsLCBu
ZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgyLCAwLCAyLCAwKSwgIiAgICBiYXIoKTtcbiAgICBi
YXooKTtcbiAgICBmb28oKTsiKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0
ZXIgZWRpdDpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0
TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBmaXJz
dCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRN
b2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHNlY29u
ZCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRN
b2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHRoaXJk
IHVuZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1v
ZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZmlyc3Qg
cmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9k
ZWwucmVkbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBzZWNvbmQg
cmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9k
ZWwucmVkbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciB0aGlyZCBy
ZWRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEVkaXRSYW5nZVdpdGhUaGVTYW1lVGV4dEFzT3Jp
Z2luYWwobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHRleHRNb2RlbCA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7Ci0gICAgICAgICAgICB2YXIgZnVuY3Rpb25U
ZXh0ID0gIiAgICBiYXIoKTtcbiAgICBiYXooKTtcbiAgICBmb28oKTsiOwotICAgICAgICAgICAg
dGV4dE1vZGVsLnNldFRleHQoImZ1bmN0aW9uIGZvbygpXG57XG5cbn1cbiIpOwotICAgICAgICAg
ICAgZHVtcFRleHRNb2RlbCgiVGV4dCBiZWZvcmUgZWRpdDpcbiIsIHRleHRNb2RlbCk7Ci0gICAg
ICAgICAgICB2YXIgcmFuZ2UgPSB0eXBlVGV4dCh0ZXh0TW9kZWwsIG5ldyBXZWJJbnNwZWN0b3Iu
VGV4dFJhbmdlKDIsIDAsIDIsIDApLCAiICAgIGJhcigpO1xuICAgIGJheigpO1xuICAgIGZvbygp
OyIpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBlZGl0OlxuIiwgdGV4
dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuZWRpdFJhbmdlKG5ldyBXZWJJ
bnNwZWN0b3IuVGV4dFJhbmdlKDMsIDAsIDQsIDApLCAiICAgIGJheigpO1xuIik7Ci0gICAgICAg
ICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHBhc3RlIG9mIHRoZSBzYW1lIHRleHQ6XG4i
LCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8o
KTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZmlyc3QgdW5kbzpcbiIs
IHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygp
OwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBzZWNvbmQgdW5kbzpcbiIs
IHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygp
OwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBmaXJzdCByZWRvOlxuIiwg
dGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7
Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHNlY29uZCByZWRvOlxuIiwg
dGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAg
ICAgICAgZnVuY3Rpb24gdGVzdERlbGV0ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgdGV4dE1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKLSAgICAg
ICAgICAgIHZhciBmdW5jdGlvblRleHQgPSAiICAgIGJhcigpO1xuICAgIGJheigpO1xuICAgIGZv
bygpOyI7Ci0gICAgICAgICAgICB0ZXh0TW9kZWwuc2V0VGV4dCgiZnVuY3Rpb24gZm9vKClcbntc
blxufVxuIik7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGJlZm9yZSBlZGl0Olxu
IiwgdGV4dE1vZGVsKTsKLSAgICAgICAgICAgIHZhciByYW5nZSA9IHR5cGVUZXh0KHRleHRNb2Rl
bCwgbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMiwgMCwgMiwgMCksICIgICAgYmFyKCk7XG4g
ICAgYmF6KCk7XG4gICAgZm9vKCk7Iik7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0
IGFmdGVyIGVkaXQ6XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0g
dHlwZURlbGV0ZSh0ZXh0TW9kZWwsIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDIsIDAsIDIs
IDApLCBmdW5jdGlvblRleHQubGVuZ3RoKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRl
eHQgYWZ0ZXIgZGVsZXRlczpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFu
Z2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBh
ZnRlciBmaXJzdCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5n
ZSA9IHRleHRNb2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFm
dGVyIHNlY29uZCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5n
ZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFm
dGVyIGZpcnN0IHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdl
ID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0
ZXIgc2Vjb25kIHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0QmFja3NwYWNlKG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdmFyIGZ1bmN0aW9uVGV4dCA9ICIgICAgYmFy
KCk7XG4gICAgYmF6KCk7XG4gICAgZm9vKCk7IjsKLSAgICAgICAgICAgIHRleHRNb2RlbC5zZXRU
ZXh0KCJmdW5jdGlvbiBmb28oKVxue1xuXG59XG4iKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9k
ZWwoIlRleHQgYmVmb3JlIGVkaXQ6XG4iLCB0ZXh0TW9kZWwpOwotICAgICAgICAgICAgdmFyIHJh
bmdlID0gdHlwZVRleHQodGV4dE1vZGVsLCBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgyLCAw
LCAyLCAwKSwgIiAgICBiYXIoKTtcbiAgICBiYXooKTtcbiAgICBmb28oKTsiKTsKLSAgICAgICAg
ICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZWRpdDpcbiIsIHRleHRNb2RlbCwgcmFuZ2Up
OwotICAgICAgICAgICAgcmFuZ2UgPSB0eXBlQmFja3NwYWNlKHRleHRNb2RlbCwgcmFuZ2UsIGZ1
bmN0aW9uVGV4dC5sZW5ndGgpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRl
ciBiYWNrc3BhY2VzOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9
IHRleHRNb2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVy
IGZpcnN0IHVuZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0g
dGV4dE1vZGVsLnVuZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIg
c2Vjb25kIHVuZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0g
dGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIg
Zmlyc3QgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0
ZXh0TW9kZWwucmVkbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBz
ZWNvbmQgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RCYWNrc3BhY2VBbmREZWxldGVJbkRp
ZmZlcmVudExpbmVzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdmFyIGZ1
bmN0aW9uVGV4dCA9ICIgICAgYmFyKCk7XG4gICAgYmF6KCk7XG4gICAgZm9vKCk7IjsKLSAgICAg
ICAgICAgIHRleHRNb2RlbC5zZXRUZXh0KCJmdW5jdGlvbiBmb28oKVxue1xuXG59XG4iKTsKLSAg
ICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYmVmb3JlIGVkaXQ6XG4iLCB0ZXh0TW9kZWwp
OwotICAgICAgICAgICAgdmFyIHJhbmdlID0gdHlwZVRleHQodGV4dE1vZGVsLCBuZXcgV2ViSW5z
cGVjdG9yLlRleHRSYW5nZSgyLCAwLCAyLCAwKSwgIiAgICBiYXIoKTtcbiAgICBiYXooKTtcbiAg
ICBmb28oKTsiKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZWRpdDpc
biIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0eXBlQmFja3NwYWNl
KHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRl
ciBiYWNrc3BhY2U6XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0g
dHlwZURlbGV0ZSh0ZXh0TW9kZWwsIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDIsIDAsIDIs
IDApKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZGVsZXRlOlxuIiwg
dGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7
Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIGZpcnN0IHVuZG86XG4iLCB0
ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsK
LSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgc2Vjb25kIHVuZG86XG4iLCB0
ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsK
LSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgdGhpcmQgdW5kbzpcbiIsIHRl
eHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygpOwot
ICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBhZnRlciBmaXJzdCByZWRvOlxuIiwgdGV4
dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0g
ICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHNlY29uZCByZWRvOlxuIiwgdGV4
dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0g
ICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0IGFmdGVyIHRoaXJkIHJlZG86XG4iLCB0ZXh0
TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAg
ICBmdW5jdGlvbiB0ZXN0UGFzdGVTZXZlcmFsVGltZXMobmV4dCkKLSAgICAgICAgewotICAgICAg
ICAgICAgdmFyIHRleHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7
Ci0gICAgICAgICAgICB2YXIgZnVuY3Rpb25UZXh0ID0gIiAgICBiYXIoKTtcbiAgICBiYXooKTtc
biAgICBmb28oKTsiOwotICAgICAgICAgICAgdGV4dE1vZGVsLnNldFRleHQoImZ1bmN0aW9uIGZv
bygpXG57XG5cbn1cbiIpOwotICAgICAgICAgICAgZHVtcFRleHRNb2RlbCgiVGV4dCBiZWZvcmUg
ZWRpdDpcbiIsIHRleHRNb2RlbCk7Ci0gICAgICAgICAgICB2YXIgcmFuZ2UgPSB0eXBlVGV4dCh0
ZXh0TW9kZWwsIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDIsIDAsIDIsIDApLCAiICAgIGJh
cigpO1xuICAgIGJheigpO1xuICAgIGZvbygpOyIpOwotICAgICAgICAgICAgZHVtcFRleHRNb2Rl
bCgiVGV4dCBhZnRlciBlZGl0OlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAgICAgICBy
YW5nZSA9IHRleHRNb2RlbC5lZGl0UmFuZ2UocmFuZ2UsICI0MiIpLmNvbGxhcHNlVG9FbmQoKTsK
LSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYWZ0ZXIgZmlyc3QgcGFzdGU6XG4iLCB0
ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLmVkaXRSYW5n
ZShyYW5nZSwgIjQyIikuY29sbGFwc2VUb0VuZCgpOwotICAgICAgICAgICAgZHVtcFRleHRNb2Rl
bCgiVGV4dCBhZnRlciBzZWNvbmQgcGFzdGU6XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAg
ICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9k
ZWwoIlRleHQgYWZ0ZXIgZmlyc3QgdW5kbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAg
ICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2Rl
bCgiVGV4dCBhZnRlciBzZWNvbmQgdW5kbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAg
ICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2Rl
bCgiVGV4dCBhZnRlciB0aGlyZCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAg
ICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVs
KCJUZXh0IGFmdGVyIGZpcnN0IHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAg
ICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwo
IlRleHQgYWZ0ZXIgc2Vjb25kIHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAg
ICAgIHJhbmdlID0gdGV4dE1vZGVsLnJlZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwo
IlRleHQgYWZ0ZXIgdGhpcmQgcmVkbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAgICAg
ICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZWxlY3Rpb25B
ZnRlclVuZG9SZWRvKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXh0TW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwotICAgICAgICAgICAgdmFyIGZ1
bmN0aW9uVGV4dCA9ICIgICAgYmFyKCk7XG4gICAgYmF6KCk7XG4gICAgZm9vKCk7IjsKLSAgICAg
ICAgICAgIHRleHRNb2RlbC5zZXRUZXh0KCJmdW5jdGlvbiBmb28oKVxue1xuXG59XG4iKTsKLSAg
ICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIlRleHQgYmVmb3JlIGVkaXQ6XG4iLCB0ZXh0TW9kZWwp
OwotICAgICAgICAgICAgcmFuZ2UgPSB0eXBlQmFja3NwYWNlKHRleHRNb2RlbCwgbmV3IFdlYklu
c3BlY3Rvci5UZXh0UmFuZ2UoMiwgMCwgMiwgMCksIDEpOwotICAgICAgICAgICAgZHVtcFRleHRN
b2RlbCgiVGV4dCBhZnRlciBiYWNrc3BhY2U6XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAg
ICAgICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9k
ZWwoIlRleHQgYWZ0ZXIgZmlyc3QgdW5kbzpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAg
ICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwucmVkbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2Rl
bCgiVGV4dCBhZnRlciBmaXJzdCByZWRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAg
ICAgICByYW5nZSA9IHRleHRNb2RlbC51bmRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVs
KCJUZXh0IGFmdGVyIHNlY29uZCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAg
ICAgICByYW5nZSA9IHR5cGVCYWNrc3BhY2UodGV4dE1vZGVsLCBuZXcgV2ViSW5zcGVjdG9yLlRl
eHRSYW5nZSgxLCAxLCAyLCAwKSwgMSk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVsKCJUZXh0
IGFmdGVyIGRlbGV0aW5nIHNlbGVjdGlvbjpcbiIsIHRleHRNb2RlbCwgcmFuZ2UpOwotICAgICAg
ICAgICAgcmFuZ2UgPSB0ZXh0TW9kZWwudW5kbygpOwotICAgICAgICAgICAgZHVtcFRleHRNb2Rl
bCgiVGV4dCBhZnRlciBmaXJzdCB1bmRvOlxuIiwgdGV4dE1vZGVsLCByYW5nZSk7Ci0gICAgICAg
ICAgICByYW5nZSA9IHRleHRNb2RlbC5yZWRvKCk7Ci0gICAgICAgICAgICBkdW1wVGV4dE1vZGVs
KCJUZXh0IGFmdGVyIGZpcnN0IHJlZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAg
ICAgIHJhbmdlID0gdGV4dE1vZGVsLnVuZG8oKTsKLSAgICAgICAgICAgIGR1bXBUZXh0TW9kZWwo
IlRleHQgYWZ0ZXIgc2Vjb25kIHVuZG86XG4iLCB0ZXh0TW9kZWwsIHJhbmdlKTsKLSAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB1bmRvL3JlZG8gb3BlcmF0aW9ucyBp
biB0aGUgZWRpdG9yIG1vZGVsLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3Itd29yZC1qdW1wcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXdvcmQtanVt
cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTdmOWNiNmVi
ZTA5ZmU5N2NkMTZmNjZlODhmY2Y2MTdhYTg0YjRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1l
ZGl0b3Itd29yZC1qdW1wcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1MDMgKzAs
MCBAQAotVGhpcyB0ZXN0IGNoZWNrcyBob3cgdGV4dCBlZGl0b3IgaGFuZGxlcyBkaWZmZXJlbnQg
Y3RybC1iYXNlZCBtb3ZlbWVudHMsIGkuZS4gY3RybC1sZWZ0LCBjdHJsLXJpZ2h0LCBjdHJsLXNo
aWZ0LWxlZnQsIGN0cmwtYmFja3NwYWNlLgotCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBi
YXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAg
cmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19Ci0KLVJ1bm5pbmc6IHRlc3RDdHJsUmln
aHRBcnJvdwotfGZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLWZ1bmN0aW9ufCB0ZXN0
RnVuY3Rpb24oZm9vLCBiYXIpCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb258KGZvbywgYmFyKQotZnVu
Y3Rpb24gdGVzdEZ1bmN0aW9uKHxmb28sIGJhcikKLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb298
LCBiYXIpCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLHwgYmFyKQotZnVuY3Rpb24gdGVzdEZ1
bmN0aW9uKGZvbywgYmFyfCkKLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcil8Ci18ewot
e3wKLXwgICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHNvbWVGdW5jdGlvbkNhbGx8KGJh
cik7Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbCh8YmFyKTsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJh
cnwpOwotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTt8Ci18ICAgIHZhciBiID0gNDI7Ci0gICAg
dmFyfCBiID0gNDI7Ci0gICAgdmFyIGJ8ID0gNDI7Ci0gICAgdmFyIGIgPXwgNDI7Ci0gICAgdmFy
IGIgPSA0Mnw7Ci0gICAgdmFyIGIgPSA0Mjt8Ci18ICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6
IGZhbHNlOwotICAgIHJldHVybnwgYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLSAgICByZXR1cm4g
YXwgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci0gICAgcmV0dXJuIGEgPT09fCAxID8gdHJ1ZSA6IGZh
bHNlOwotICAgIHJldHVybiBhID09PSAxfCA/IHRydWUgOiBmYWxzZTsKLSAgICByZXR1cm4gYSA9
PT0gMSA/fCB0cnVlIDogZmFsc2U7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlfCA6IGZhbHNl
OwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6fCBmYWxzZTsKLSAgICByZXR1cm4gYSA9PT0g
MSA/IHRydWUgOiBmYWxzZXw7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7fAot
fH0KLX18Ci19fAotCi1SdW5uaW5nOiB0ZXN0Q3RybExlZnRBcnJvdwotfXwKLXx9Ci0gICAgcmV0
dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7fAotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6
IGZhbHNlfDsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiB8ZmFsc2U7Ci0gICAgcmV0dXJu
IGEgPT09IDEgPyB0cnVlIHw6IGZhbHNlOwotICAgIHJldHVybiBhID09PSAxID8gfHRydWUgOiBm
YWxzZTsKLSAgICByZXR1cm4gYSA9PT0gMSB8PyB0cnVlIDogZmFsc2U7Ci0gICAgcmV0dXJuIGEg
PT09IHwxID8gdHJ1ZSA6IGZhbHNlOwotICAgIHJldHVybiBhIHw9PT0gMSA/IHRydWUgOiBmYWxz
ZTsKLSAgICByZXR1cm4gfGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci0gICAgfHJldHVybiBhID09
PSAxID8gdHJ1ZSA6IGZhbHNlOwotfCAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsK
LSAgICB2YXIgYiA9IDQyO3wKLSAgICB2YXIgYiA9IDQyfDsKLSAgICB2YXIgYiA9IHw0MjsKLSAg
ICB2YXIgYiB8PSA0MjsKLSAgICB2YXIgfGIgPSA0MjsKLSAgICB8dmFyIGIgPSA0MjsKLXwgICAg
dmFyIGIgPSA0MjsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7fAotICAgIHNvbWVGdW5jdGlv
bkNhbGwoYmFyfCk7Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbCh8YmFyKTsKLSAgICBzb21lRnVuY3Rp
b25DYWxsfChiYXIpOwotICAgIHxzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci18ICAgIHNvbWVGdW5j
dGlvbkNhbGwoYmFyKTsKLXt8Ci18ewotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKXwK
LWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcnwpCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24o
Zm9vLCB8YmFyKQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvb3wsIGJhcikKLWZ1bmN0aW9uIHRl
c3RGdW5jdGlvbih8Zm9vLCBiYXIpCi1mdW5jdGlvbiB0ZXN0RnVuY3Rpb258KGZvbywgYmFyKQot
ZnVuY3Rpb24gfHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXxmdW5jdGlvbiB0ZXN0RnVuY3Rpb24o
Zm9vLCBiYXIpCi18ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotCi1SdW5uaW5nOiB0
ZXN0Q3RybFNoaWZ0UmlnaHRBcnJvdwotfGZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikK
LT4+ZnVuY3Rpb248PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb248PAotPj5mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oPDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbzw8Ci0+PmZ1bmN0aW9uIHRl
c3RGdW5jdGlvbihmb28sPDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyPDwKLT4+
ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlv
bihmb28sIGJhcikKLTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXs8PAot
Pj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci08PAotPj5mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbDw8Ci0+PmZ1bmN0aW9u
IHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKDw8Ci0+PmZ1
bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJh
cjw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rp
b25DYWxsKGJhcik7PDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAg
IHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28s
IGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyPDwKLT4+ZnVuY3Rp
b24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsK
LSAgICB2YXIgYjw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBz
b21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5j
dGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIg
PSA0Mjw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVu
Y3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0Mjs8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rp
b24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0g
NDI7Ci08PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1
bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuPDwKLT4+ZnVuY3Rp
b24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsK
LSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhPDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9u
KGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQy
OwotICAgIHJldHVybiBhID09PTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikK
LXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1
cm4gYSA9PT0gMTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBz
b21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0g
MSA/PDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5j
dGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1
ZTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rp
b25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUg
Ojw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rp
b25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUg
OiBmYWxzZTw8Ci0+PmZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21l
RnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/
IHRydWUgOiBmYWxzZTs8PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0g
ICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEg
PT09IDEgPyB0cnVlIDogZmFsc2U7Ci08PAotPj5mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBi
YXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAg
cmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+ZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9
IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0KLVJ1bm5pbmc6
IHRlc3RDdHJsU2hpZnRMZWZ0QXJyb3cKLX18Ci0+Pn08PAotPj4KLX08PAotPj47Ci19PDwKLT4+
ZmFsc2U7Ci19PDwKLT4+OiBmYWxzZTsKLX08PAotPj50cnVlIDogZmFsc2U7Ci19PDwKLT4+PyB0
cnVlIDogZmFsc2U7Ci19PDwKLT4+MSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj49PT0gMSA/IHRy
dWUgOiBmYWxzZTsKLX08PAotPj5hID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PnJldHVy
biBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PiAgICByZXR1cm4gYSA9PT0gMSA/IHRy
dWUgOiBmYWxzZTsKLX08PAotPj4KLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsK
LX08PAotPj47Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+NDI7
Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+PSA0MjsKLSAgICBy
ZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj5iID0gNDI7Ci0gICAgcmV0dXJu
IGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+dmFyIGIgPSA0MjsKLSAgICByZXR1cm4g
YSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj4gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1
cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj4KLSAgICB2YXIgYiA9IDQyOwotICAg
IHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+Pik7Ci0gICAgdmFyIGIgPSA0
MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj5iYXIpOwotICAg
IHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+
KGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxz
ZTsKLX08PAotPj5zb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICBy
ZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj4gICAgc29tZUZ1bmN0aW9uQ2Fs
bChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFs
c2U7Ci19PDwKLT4+Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7
Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+ewotICAgIHNvbWVG
dW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8g
dHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PgotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAg
ICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+
PikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICBy
ZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj5iYXIpCi17Ci0gICAgc29tZUZ1
bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0
cnVlIDogZmFsc2U7Ci19PDwKLT4+LCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIp
OwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19
PDwKLT4+Zm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBi
ID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+KGZvbywg
YmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAg
IHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8Ci0+PnRlc3RGdW5jdGlvbihmb28s
IGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAg
ICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX08PAotPj5mdW5jdGlvbiB0ZXN0RnVu
Y3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBi
ID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDogZmFsc2U7Ci19PDwKLT4+ZnVuY3Rp
b24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsK
LSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOwotfTw8
Ci0KLVJ1bm5pbmc6IHRlc3RDdHJsQmFja3NwYWNlCi09PT09PT09PT09PT09PT0KLWZ1bmN0aW9u
IHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0g
ICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBmYWxzZTsKLX0KLT09
PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNv
bWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDQyOwotICAgIHJldHVybiBhID09PSAx
ID8gdHJ1ZSA6IGZhbHNlOwotPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9
IDQyOwotICAgIHJldHVybiBhID09PSAxID8gdHJ1ZSA6IGZhbHNlOzw8Ci09PT09PT09PT09PT09
PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25D
YWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IHRydWUgOiBm
YWxzZTw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikK
LXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1
cm4gYSA9PT0gMSA/IHRydWUgOiA8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVu
Y3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBi
ID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDEgPyB0cnVlIDw8Ci09PT09PT09PT09PT09PT0KLWZ1
bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rpb25DYWxsKGJh
cik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA/IDw8Ci09PT09PT09PT09
PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVuY3Rp
b25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA9PT0gMSA8PAotPT09
PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29t
ZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEgPT09IDw8
Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAg
ICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICByZXR1cm4gYSA8
PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0g
ICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIDw8
Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAg
ICBzb21lRnVuY3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPSA0MjsKLSAgICA8PAotPT09PT09
PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1
bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci08PAotPT09PT09PT09PT09PT09Ci1m
dW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChi
YXIpOwotICAgIHZhciBiID0gNDI7PDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1
bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIg
YiA9IDQyPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFy
KQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICB2YXIgYiA9IDw8Ci09PT09PT09
PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICBzb21lRnVu
Y3Rpb25DYWxsKGJhcik7Ci0gICAgdmFyIGIgPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24g
dGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAg
ICB2YXIgPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFy
KQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTsKLSAgICA8PAotPT09PT09PT09PT09PT09
Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2Fs
bChiYXIpOwotPDwKLT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywg
YmFyKQotewotICAgIHNvbWVGdW5jdGlvbkNhbGwoYmFyKTs8PAotPT09PT09PT09PT09PT09Ci1m
dW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbChi
YXI8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17
Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbCg8PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0gICAgc29tZUZ1bmN0aW9uQ2FsbDw8Ci09PT09PT09PT09
PT09PT0KLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcikKLXsKLSAgICA8PAotPT09PT09
PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci08PAotPT09PT09
PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17PDwKLT09PT09PT09
PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKQotPDwKLT09PT09PT09PT09
PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKGZvbywgYmFyKTw8Ci09PT09PT09PT09PT09PT0K
LWZ1bmN0aW9uIHRlc3RGdW5jdGlvbihmb28sIGJhcjw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0
aW9uIHRlc3RGdW5jdGlvbihmb28sIDw8Ci09PT09PT09PT09PT09PT0KLWZ1bmN0aW9uIHRlc3RG
dW5jdGlvbihmb288PAotPT09PT09PT09PT09PT09Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oPDwK
LT09PT09PT09PT09PT09PQotZnVuY3Rpb24gdGVzdEZ1bmN0aW9uPDwKLT09PT09PT09PT09PT09
PQotZnVuY3Rpb24gPDwKLT09PT09PT09PT09PT09PQotPDwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci13b3JkLWp1bXBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXdvcmQtanVtcHMuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzJjNzQ2Y2I1NjY4NTZmMWYyMzM4YmY4YTlhNDJk
ZjY1ZjE2NDE4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL3RleHQtZWRpdG9yLXdvcmQtanVtcHMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJlZGl0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
ZnVuY3Rpb24gdGVzdCgpCi17Ci1mdW5jdGlvbiB0ZXN0RnVuY3Rpb24oZm9vLCBiYXIpCi17Ci0g
ICAgc29tZUZ1bmN0aW9uQ2FsbChiYXIpOwotICAgIHZhciBiID0gNDI7Ci0gICAgcmV0dXJuIGEg
PT09IDEgPyB0cnVlIDogZmFsc2U7Ci19Ci0KLSAgICB2YXIgdGV4dEVkaXRvciA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlVGVzdEVkaXRvcigpOwotICAgIHRleHRFZGl0b3Iub3ZlcnJpZGVWaWV3cG9y
dEZvclRlc3QoMCwgdW5kZWZpbmVkLCAzKTsKLSAgICB0ZXh0RWRpdG9yLm1pbWVUeXBlID0gInRl
eHQvamF2YXNjcmlwdCI7Ci0gICAgdGV4dEVkaXRvci5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAg
dGV4dEVkaXRvci5zZXRUZXh0KHRlc3RGdW5jdGlvbi50b1N0cmluZygpKTsKLSAgICB0ZXh0RWRp
dG9yLmVsZW1lbnQuZm9jdXMoKTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRleHRF
ZGl0b3IudGV4dCgpKTsKLSAgICBjb25zdCB3b3JkSnVtcE1vZGlmaWVyID0gV2ViSW5zcGVjdG9y
LmlzTWFjKCkgPyAiYWx0S2V5IiA6ICJjdHJsS2V5IjsKLQotICAgIGZ1bmN0aW9uIGR1bXBFZGl0
b3JTZWxlY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHRleHRFZGl0b3Iu
c2VsZWN0aW9uKCk7Ci0gICAgICAgIGlmIChzZWxlY3Rpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICB2YXIgbGluZSA9IHRleHRFZGl0b3IubGluZShzZWxlY3Rpb24uc3RhcnRMaW5lKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGxpbmUuc3Vic3RyaW5nKDAsIHNlbGVj
dGlvbi5zdGFydENvbHVtbikgKyAifCIgKyBsaW5lLnN1YnN0cmluZyhzZWxlY3Rpb24uc3RhcnRD
b2x1bW4pKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCI+PiIgKyB0ZXh0RWRpdG9yLl90ZXh0TW9kZWwuY29weVJhbmdlKHNlbGVjdGlvbi5u
b3JtYWxpemUoKSkgKyAiPDwiKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc2VsZWN0aW9u
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNldEN1cnNvckF0QmVnaW5uaW5nKCkKLSAgICB7Ci0g
ICAgICAgIHRleHRFZGl0b3Iuc2V0U2VsZWN0aW9uKFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3Jl
YXRlRnJvbUxvY2F0aW9uKDAsIDApKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzZXRDdXJzb3JB
dEVuZCgpCi0gICAgewotICAgICAgICB2YXIgbGFzdExpbmUgPSB0ZXh0RWRpdG9yLl90ZXh0TW9k
ZWwubGluZXNDb3VudCAtIDE7Ci0gICAgICAgIHZhciBsYXN0Q29sdW1uID0gdGV4dEVkaXRvci5f
dGV4dE1vZGVsLmxpbmUobGFzdExpbmUpLmxlbmd0aDsKLSAgICAgICAgdGV4dEVkaXRvci5zZXRT
ZWxlY3Rpb24oV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24obGFzdExp
bmUsIGxhc3RDb2x1bW4pKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0
ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RDdHJsUmlnaHRBcnJvdyhuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBzZXRDdXJzb3JBdEJlZ2lubmluZygpOwotICAgICAgICAgICAgdmFyIHNl
bGVjdGlvbiA9IGR1bXBFZGl0b3JTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIHZhciBvbGRTZWxl
Y3Rpb247Ci0gICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgb2xkU2VsZWN0aW9uID0g
c2VsZWN0aW9uOwotICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJy
b3ciLCBbd29yZEp1bXBNb2RpZmllcl0pOwotICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IGR1
bXBFZGl0b3JTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIH0gd2hpbGUgKHNlbGVjdGlvbi5jb21w
YXJlVG8ob2xkU2VsZWN0aW9uKSAhPT0gMCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEN0cmxMZWZ0QXJyb3cobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgc2V0Q3Vyc29yQXRFbmQoKTsKLSAgICAgICAgICAgIHZhciBzZWxlY3Rp
b24gPSBkdW1wRWRpdG9yU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB2YXIgb2xkU2VsZWN0aW9u
OwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIG9sZFNlbGVjdGlvbiA9IHNlbGVj
dGlvbjsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJyb3ciLCBb
d29yZEp1bXBNb2RpZmllcl0pOwotICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IGR1bXBFZGl0
b3JTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIH0gd2hpbGUgKHNlbGVjdGlvbi5jb21wYXJlVG8o
b2xkU2VsZWN0aW9uKSAhPT0gMCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdGVzdEN0cmxTaGlmdFJpZ2h0QXJyb3cobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgc2V0Q3Vyc29yQXRCZWdpbm5pbmcoKTsKLSAgICAgICAgICAgIHZhciBz
ZWxlY3Rpb24gPSBkdW1wRWRpdG9yU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB2YXIgb2xkU2Vs
ZWN0aW9uOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIG9sZFNlbGVjdGlvbiA9
IHNlbGVjdGlvbjsKLSAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJyaWdodEFy
cm93IiwgW3dvcmRKdW1wTW9kaWZpZXIsICJzaGlmdEtleSJdKTsKLSAgICAgICAgICAgICAgICBz
ZWxlY3Rpb24gPSBkdW1wRWRpdG9yU2VsZWN0aW9uKCk7Ci0gICAgICAgICAgICB9IHdoaWxlIChz
ZWxlY3Rpb24uY29sbGFwc2VUb0VuZCgpLmNvbXBhcmVUbyhvbGRTZWxlY3Rpb24uY29sbGFwc2VU
b0VuZCgpKSAhPT0gMCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdEN0cmxTaGlmdExlZnRBcnJvdyhuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBzZXRDdXJzb3JBdEVuZCgpOwotICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IGR1
bXBFZGl0b3JTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIHZhciBvbGRTZWxlY3Rpb247Ci0gICAg
ICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgb2xkU2VsZWN0aW9uID0gc2VsZWN0aW9uOwot
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIsIFt3b3JkSnVt
cE1vZGlmaWVyLCAic2hpZnRLZXkiXSk7Ci0gICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gZHVt
cEVkaXRvclNlbGVjdGlvbigpOwotICAgICAgICAgICAgfSB3aGlsZSAoc2VsZWN0aW9uLmNvbGxh
cHNlVG9FbmQoKS5jb21wYXJlVG8ob2xkU2VsZWN0aW9uLmNvbGxhcHNlVG9FbmQoKSkgIT09IDAp
OwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RDdHJsQmFja3NwYWNlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNldEN1cnNvckF0
RW5kKCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT09
PT09Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLnRl
eHQoKSk7Ci0gICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigiXGIiLCBbd29yZEp1bXBNb2RpZmllcl0pOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09PT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCh0ZXh0RWRpdG9yLnRleHQoKSArICI8PCIpOwotICAgICAgICAg
ICAgfSB3aGlsZSAodGV4dEVkaXRvci50ZXh0KCkgIT09ICIiKTsKLSAgICAgICAgICAgIHRleHRF
ZGl0b3Iuc2V0VGV4dCh0ZXN0RnVuY3Rpb24udG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgIH0KLSAgICBdKTsKLQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyBob3cgdGV4dCBl
ZGl0b3IgaGFuZGxlcyBkaWZmZXJlbnQgY3RybC1iYXNlZCBtb3ZlbWVudHMsIGkuZS4gY3RybC1s
ZWZ0LCBjdHJsLXJpZ2h0LCBjdHJsLXNoaWZ0LWxlZnQsIGN0cmwtYmFja3NwYWNlLgotPC9wPgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvYnJlYWRjcnVtYi11cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9icmVhZGNydW1iLXVwZGF0ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1OTVkNjg0ODA3NTA1NWZhNmIxM2ZiZWExNjg2YTk1ODMyNTQ1
MDMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9icmVhZGNydW1iLXVwZGF0ZXMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1UZXN0cyB0aGF0IGJyZWFkY3J1bWJzIGFy
ZSB1cGRhdGVkIHVwb24gaW52b2x2ZWQgZWxlbWVudCdzIGF0dHJpYnV0ZSBjaGFuZ2VzIGluIHRo
ZSBFbGVtZW50cyBwYW5lbC4KLQotT3JpZ2luYWwgYnJlYWRjcnVtYjoKLWh0bWwgPiBib2R5ID4g
ZGl2LmZpcnN0Q2xhc3MgPiBkaXYjdGFyZ2V0Ci1BZnRlciBjbGFzcyBjaGFuZ2U6Ci1odG1sID4g
Ym9keSA+IGRpdi5hbm90aGVyQ2xhc3MgPiBkaXYjdGFyZ2V0Ci1BZnRlciBjbGFzcyByZW1vdmFs
OgotaHRtbCA+IGJvZHkgPiBkaXYgPiBkaXYjdGFyZ2V0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9icmVhZGNydW1iLXVwZGF0ZXMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9icmVhZGNydW1iLXVwZGF0ZXMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNGI5ZDM3OTA0ZmI1YmUwNjUyNThhNmUyYzg1NmIwMGRlNDU0
MGRkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvYnJlYWRjcnVtYi11cGRhdGVzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8v
RFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gY2hhbmdlQ2xhc3MoKQotewotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoImZpcnN0Q2xhc3MiKVswXS5jbGFzc05hbWUgPSAiYW5vdGhlckNs
YXNzIjsKLX0KLQotZnVuY3Rpb24gZGVsZXRlQ2xhc3MoKQotewotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoImFub3RoZXJDbGFzcyIpWzBdLmNsYXNzTmFtZSA9ICIiOwotfQot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50
cyIpOwotICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0ZXAwKTsKLQotICAg
IGZ1bmN0aW9uIHN0ZXAwKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9k
ZVdpdGhJZCgidGFyZ2V0Iiwgc3RlcDEpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
LSAgICB7Ci0gICAgICAgIGR1bXBCcmVhZGNydW1iKCJPcmlnaW5hbCBicmVhZGNydW1iIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImNoYW5nZUNsYXNzKCkiLCBzdGVw
Mik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgZHVtcEJy
ZWFkY3J1bWIoIkFmdGVyIGNsYXNzIGNoYW5nZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJkZWxldGVDbGFzcygpIiwgc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIGR1bXBCcmVhZGNydW1iKCJBZnRlciBjbGFzcyBy
ZW1vdmFsIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gZHVtcEJyZWFkY3J1bWIobWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KG1lc3NhZ2UgKyAiOiIpOwotICAgICAgICB2YXIgcmVzdWx0
ID0gW107Ci0gICAgICAgIHZhciBjcnVtYnMgPSBXZWJJbnNwZWN0b3IucGFuZWwoImVsZW1lbnRz
IikuY3J1bWJzRWxlbWVudDsKLSAgICAgICAgdmFyIGNydW1iID0gY3J1bWJzLmZpcnN0Q2hpbGQ7
Ci0gICAgICAgIHdoaWxlIChjcnVtYikgewotICAgICAgICAgICAgcmVzdWx0LnVuc2hpZnQoY3J1
bWIudGV4dENvbnRlbnQpOwotICAgICAgICAgICAgY3J1bWIgPSBjcnVtYi5uZXh0U2libGluZzsK
LSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZXN1bHQuam9pbigi
ID4gIikpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBicmVhZGNydW1icyBhcmUgdXBkYXRlZCB1cG9u
IGludm9sdmVkIGVsZW1lbnQncyBhdHRyaWJ1dGUgY2hhbmdlcyBpbiB0aGUgRWxlbWVudHMgcGFu
ZWwuCi08L3A+Ci0KLTxkaXYgY2xhc3M9ImZpcnN0Q2xhc3MiPgotICAgIDxkaXYgaWQ9InRhcmdl
dCI+PC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RlbGV0ZS1mcm9tLWRvY3VtZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9kZWxldGUtZnJvbS1kb2N1bWVudC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkZDA0YWYyNWQ3NWYw
ODBlZjM5MDUxNTgyYzA4M2ViNTlhY2NhMGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RlbGV0ZS1m
cm9tLWRvY3VtZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAK
LVRlc3RzIHRoYXQgcmVtb3ZpbmcgY2hpbGQgZnJvbSB0aGUgZG9jdW1lbnQgaXMgaGFuZGxlZCBw
cm9wZXJseSBpbiB0aGUgZWxlbWVudHMgcGFuZWwuCi0KLSAgICAgIDwhRE9DVFlQRSBodG1sIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotLSA8aHRtbD4KLSAgICAtIDxoZWFkPgotICAg
ICAgPC9oZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgICAgPC9ib2R5
PgotICA8L2h0bWw+Ci0tIDxodG1sPgotICAgIC0gPGhlYWQ+Ci0gICAgICA8L2hlYWQ+Ci0gICAg
LSA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RlbGV0ZS1mcm9tLWRv
Y3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZGVsZXRlLWZyb20t
ZG9jdW1lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE3YjZmZDFlYzgw
ZjkzYmNhZGVkOTU4ZTc5NzNjNDU0YmNlZmYxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZGVsZXRl
LWZyb20tZG9jdW1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4i
ICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiByZW1vdmVEb2N0
eXBlKCkKLXsKLSAgICBkb2N1bWVudC5yZW1vdmVDaGlsZChkb2N1bWVudC5maXJzdENoaWxkKTsK
LX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50
c1RyZWUoc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKG51bGwsIDEpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJyZW1vdmVEb2N0eXBlKCkiLCBzdGVwMik7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxl
bWVudHNUcmVlKG51bGwsIDEpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgdGhhdCByZW1vdmluZyBjaGlsZCBmcm9tIHRoZSBkb2N1bWVudCBp
cyBoYW5kbGVkIHByb3Blcmx5IGluIHRoZSBlbGVtZW50cyBwYW5lbC4KLTwvcD4KLQotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2Vk
aXQtZG9tLWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2VkaXQtZG9tLWFjdGlvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNjdmYjJhZTJmOTMyZWRjZjFkZGFhMDZmZTdkNThkOTBlNTdlMDA4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDEzMCArMCwwIEBACi1UZXN0cyB0aGF0IHVzZXIgY2FuIG11dGF0ZSBET00gYnkgbWVh
bnMgb2YgZWxlbWVudHMgcGFuZWwuCi0KLSAKLUVkaXRlZCBUZXh0Ci1TcGFuIGNvbnRlbnRzCi1B
I25ic3A7QiNlbnNwO0MjZW1zcDtEI3RoaW5zcDtFI3p3bmo7RiN6d2o7RyNybG07SCNscm07SQot
RWxlbWVudAotCi1SdW5uaW5nOiB0ZXN0U2V0VXAKLQotUnVubmluZzogdGVzdFJlbW92ZQotPT09
PSBiZWZvcmUgPT09PQotLSA8ZGl2IGlkPSJ0ZXN0UmVtb3ZlIj4KLSAgICAgIDxkaXYgaWQ9Im5v
ZGUtdG8tcmVtb3ZlIj48L2Rpdj4KLSAgPC9kaXY+Ci09PT09IGFmdGVyID09PT0KLS0gPGRpdiBp
ZD0idGVzdFJlbW92ZSI+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0Tm9kZU5hbWUKLT09
PT0gYmVmb3JlID09PT0KLS0gPGRpdiBpZD0idGVzdFNldE5vZGVOYW1lIj4KLSAgICAgIDxkaXYg
aWQ9Im5vZGUtdG8tc2V0LW5hbWUiPjwvZGl2PgotICA8L2Rpdj4KLT09PT0gYWZ0ZXIgPT09PQot
LSA8ZGl2IGlkPSJ0ZXN0U2V0Tm9kZU5hbWUiPgotICAgICAgPHNwYW4gaWQ9Im5vZGUtdG8tc2V0
LW5hbWUiID48L3NwYW4+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0U2V0Tm9kZU5hbWVJbnB1
dAotPT09PSBiZWZvcmUgPT09PQotLSA8ZGl2IGlkPSJ0ZXN0U2V0Tm9kZU5hbWVJbnB1dCI+Ci0g
ICAgICA8ZGl2IGlkPSJub2RlLXRvLXNldC1uYW1lLWlucHV0Ij48L2Rpdj4KLSAgPC9kaXY+Ci09
PT09IGFmdGVyID09PT0KLS0gPGRpdiBpZD0idGVzdFNldE5vZGVOYW1lSW5wdXQiPgotICAgICAg
PGlucHV0IGlkPSJub2RlLXRvLXNldC1uYW1lLWlucHV0IiA+Ci0gIDwvZGl2PgotCi1SdW5uaW5n
OiB0ZXN0U2V0Tm9kZVZhbHVlCi09PT09IGJlZm9yZSA9PT09Ci0tIDxkaXYgaWQ9InRlc3RTZXRO
b2RlVmFsdWUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUiPlxuICAgICAgICAg
IFRleHRcbiAgICAgICAgPC9kaXY+Ci0gIDwvZGl2PgotPT09PSBhZnRlciA9PT09Ci0tIDxkaXYg
aWQ9InRlc3RTZXROb2RlVmFsdWUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUi
PiAgXG4gIEVkaXRlZCBUZXh0ICBcbiAgPC9kaXY+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0
U2V0QXR0cmlidXRlCi09PT09IGJlZm9yZSA9PT09Ci0tIDxkaXYgaWQ9InRlc3RTZXRBdHRyaWJ1
dGUiPgotICAgICAgPGRpdiBmb289ImF0dHJpYnV0ZSB2YWx1ZSIgaWQ9Im5vZGUtdG8tc2V0LWF0
dHJpYnV0ZSI+PC9kaXY+Ci0gIDwvZGl2PgotPT09PSBhZnRlciA9PT09Ci0tIDxkaXYgaWQ9InRl
c3RTZXRBdHRyaWJ1dGUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtYXR0cmlidXRlIiBi
YXI9ImVkaXRlZCBhdHRyaWJ1dGUiPjwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdFJl
bW92ZUF0dHJpYnV0ZQotPT09PSBiZWZvcmUgPT09PQotLSA8ZGl2IGlkPSJ0ZXN0UmVtb3ZlQXR0
cmlidXRlIj4KLSAgICAgIDxkaXYgZm9vPSJhdHRyaWJ1dGUgdmFsdWUiIGlkPSJub2RlLXRvLXJl
bW92ZS1hdHRyaWJ1dGUiPjwvZGl2PgotICA8L2Rpdj4KLT09PT0gYWZ0ZXIgPT09PQotLSA8ZGl2
IGlkPSJ0ZXN0UmVtb3ZlQXR0cmlidXRlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tcmVtb3Zl
LWF0dHJpYnV0ZSI+PC9kaXY+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0QWRkQXR0cmlidXRl
Ci09PT09IGJlZm9yZSA9PT09Ci0tIDxkaXYgaWQ9InRlc3RBZGRBdHRyaWJ1dGUiPgotICAgICAg
PGRpdiBpZD0ibm9kZS10by1hZGQtYXR0cmlidXRlIj48L2Rpdj4KLSAgPC9kaXY+Ci09PT09IGFm
dGVyID09PT0KLS0gPGRpdiBpZD0idGVzdEFkZEF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJu
b2RlLXRvLWFkZC1hdHRyaWJ1dGUiIG5ld2F0dHI9Im5ldy12YWx1ZSI+PC9kaXY+Ci0gIDwvZGl2
PgotCi1SdW5uaW5nOiB0ZXN0RWRpdENvbW1lbnRBc0hUTUwKLT09PT0gYmVmb3JlID09PT0KLS0g
PGRpdiBpZD0idGVzdEVkaXRDb21tZW50QXNIVE1MIj4KLSAgICAgIDwhLS0gQ29tbWVudCAtLT4K
LSAgPC9kaXY+Ci08IS0tIENvbW1lbnQgLS0+Ci09PT09IGFmdGVyID09PT0KLS0gPGRpdiBpZD0i
dGVzdEVkaXRDb21tZW50QXNIVE1MIj4KLSAgICAgIDxkaXYgZm9vPSJiYXItY29tbWVudCI+RWxl
bWVudDwvZGl2PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdEVkaXRBc0hUTUwKLT09PT0gYmVm
b3JlID09PT0KLS0gPGRpdiBpZD0idGVzdEVkaXRBc0hUTUwiPgotICAgIC0gPGRpdiBpZD0ibm9k
ZS10by1lZGl0LWFzLWh0bWwiPgotICAgICAgICAgIDxzcGFuIGlkPSJzcGFuIj5UZXh0PC9zcGFu
PgotICAgICAgPC9kaXY+Ci0gIDwvZGl2PgotPGRpdiBpZD0ibm9kZS10by1lZGl0LWFzLWh0bWwi
PjxzcGFuIGlkPSJzcGFuIj5UZXh0PC9zcGFuPjwvZGl2PgotPT09PSBhZnRlciA9PT09Ci0tIDxk
aXYgaWQ9InRlc3RFZGl0QXNIVE1MIj4KLSAgICAtIDxzcGFuIGZvbz0iYmFyIj4KLSAgICAgICAg
ICA8c3BhbiBpZD0iaW5uZXItc3BhbiI+U3BhbiBjb250ZW50czwvc3Bhbj4KLSAgICAgIDwvc3Bh
bj4KLSAgPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RFZGl0SW52aXNpYmxlQ2hhcnNBc0hUTUwKLT09
PT0gYmVmb3JlID09PT0KLS0gPGRpdiBpZD0idGVzdEVkaXRJbnZpc2libGVDaGFyc0FzSFRNTCI+
Ci0gICAgICA8ZGl2IGlkPSJub2RlLXdpdGgtaW52aXNpYmxlLWNoYXJzIj5BJm5ic3A7QiZlbnNw
O0MmZW1zcDtEJnRoaW5zcDtFJnp3bmo7RiZ6d2o7RyZybG07SCZscm07STwvZGl2PgotICA8L2Rp
dj4KLTxkaXYgaWQ9Im5vZGUtd2l0aC1pbnZpc2libGUtY2hhcnMiPkEmbmJzcDtCJmVuc3A7QyZl
bXNwO0QmdGhpbnNwO0UmenduajtGJnp3ajtHJnJsbTtIJmxybTtJPC9kaXY+Ci09PT09IGFmdGVy
ID09PT0KLS0gPGRpdiBpZD0idGVzdEVkaXRJbnZpc2libGVDaGFyc0FzSFRNTCI+Ci0gICAgICA8
ZGl2IGlkPSJub2RlLXdpdGgtaW52aXNpYmxlLWNoYXJzIj5BI25ic3A7QiNlbnNwO0MjZW1zcDtE
I3RoaW5zcDtFI3p3bmo7RiN6d2o7RyNybG07SCNscm07STwvZGl2PgotICA8L2Rpdj4KLQotUnVu
bmluZzogdGVzdEVkaXRTY3JpcHQKLT09PT0gYmVmb3JlID09PT0KLS0gPGRpdiBpZD0idGVzdEVk
aXRTY3JpcHQiPgotICAgIC0gPHNjcmlwdCBpZD0ibm9kZS10by1lZGl0LXNjcmlwdCI+Ci0gICAg
ICAgICAgXG4gICAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICAgIHZhciBqID0gNTtcbiAgICAg
ICAgICBmb3IgKDsgaSA8IGo7ICsraSkge1xuICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nLlxu
ICAgICAgICAgIH1cblxuCi0gICAgICA8L3NjcmlwdD4KLSAgPC9kaXY+Ci09PT09IGFmdGVyID09
PT0KLS0gPGRpdiBpZD0idGVzdEVkaXRTY3JpcHQiPgotICAgIC0gPHNjcmlwdCBpZD0ibm9kZS10
by1lZGl0LXNjcmlwdCI+Ci0gICAgICAgICAgdmFyIGkgPSAwO1xuICAgIHZhciBqID0gMDtcbgot
ICAgICAgPC9zY3JpcHQ+Ci0gIDwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTRhNTcyYWY5ODRkYmE3NmRmZjliYjkyMTFkZjdkM2JlOGM1OTcyYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzE2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gU2F2ZSB0aW1lIG9uIHN0eWxlIHVw
ZGF0ZXMuCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBXZWJJ
bnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKCkg
e307Ci0gICAgV2ViSW5zcGVjdG9yLk1ldHJpY3NTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRl
ID0gZnVuY3Rpb24oKSB7fTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAg
ICAgICAgZnVuY3Rpb24gdGVzdFNldFVwKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKG5leHQpOwotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9t
QWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdFJlbW92ZSIsICJub2RlLXRvLXJlbW92ZSIsIHRlc3RC
b2R5LCBuZXh0KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsK
LSAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZG9uZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldE5vZGVOYW1lKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3RGb3JOb2RlSWQoInRlc3RTZXRO
b2RlTmFtZSIsICJub2RlLXRvLXNldC1uYW1lIiwgdGVzdEJvZHksIG5leHQpOwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiB0ZXN0Qm9keShub2RlLCBkb25lKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGVkaXROb2RlUGFydEFuZFJ1bihub2RlLCAid2Via2l0LWh0bWwtdGFnLW5hbWUi
LCAic3BhbiIsIGRvbmUpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RTZXROb2RlTmFtZUlucHV0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGRvbUFjdGlvblRlc3RGb3JOb2RlSWQoInRlc3RTZXROb2RlTmFtZUlucHV0IiwgIm5vZGUtdG8t
c2V0LW5hbWUtaW5wdXQiLCB0ZXN0Qm9keSwgbmV4dCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHRlc3RCb2R5KG5vZGUsIGRvbmUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZWRp
dE5vZGVQYXJ0QW5kUnVuKG5vZGUsICJ3ZWJraXQtaHRtbC10YWctbmFtZSIsICJpbnB1dCIsIGRv
bmUpOwotICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RT
ZXROb2RlVmFsdWUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZv
ck5vZGVJZCgidGVzdFNldE5vZGVWYWx1ZSIsICJub2RlLXRvLXNldC12YWx1ZSIsIHRlc3RCb2R5
LCBuZXh0KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBlZGl0Tm9kZVBhcnRBbmRSdW4obm9kZSwgIndl
YmtpdC1odG1sLXRleHQtbm9kZSIsICIgIFxuICBFZGl0ZWQgVGV4dCAgXG4gICIsIGRvbmUpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRBdHRy
aWJ1dGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJ
ZCgidGVzdFNldEF0dHJpYnV0ZSIsICJub2RlLXRvLXNldC1hdHRyaWJ1dGUiLCB0ZXN0Qm9keSwg
bmV4dCk7Ci0gICAgICAgICAKLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRv
bmUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZWRpdE5vZGVQYXJ0QW5kUnVuKG5v
ZGUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUiLCAiYmFyPVwiZWRpdGVkIGF0dHJpYnV0ZVwiIiwg
ZG9uZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gdGVzdFJlbW92ZUF0dHJpYnV0ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBkb21B
Y3Rpb25UZXN0Rm9yTm9kZUlkKCJ0ZXN0UmVtb3ZlQXR0cmlidXRlIiwgIm5vZGUtdG8tcmVtb3Zl
LWF0dHJpYnV0ZSIsIHRlc3RCb2R5LCBuZXh0KTsKLSAgICAgICAgIAotICAgICAgICAgICAgZnVu
Y3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBlZGl0Tm9kZVBhcnRBbmRSdW4obm9kZSwgIndlYmtpdC1odG1sLWF0dHJpYnV0ZSIsICIiLCBk
b25lLCB0cnVlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biB0ZXN0QWRkQXR0cmlidXRlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlv
blRlc3RGb3JOb2RlSWQoInRlc3RBZGRBdHRyaWJ1dGUiLCAibm9kZS10by1hZGQtYXR0cmlidXRl
IiwgdGVzdEJvZHksIG5leHQpOwotICAgICAgICAgCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0
Qm9keShub2RlLCBkb25lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBlZGl0
b3JFbGVtZW50ID0gZWRpdE5vZGVQYXJ0KG5vZGUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUiKTsK
LSAgICAgICAgICAgICAgICBlZGl0b3JFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVz
dC5jcmVhdGVLZXlFdmVudCgiVSswMDA5IikpOyAvLyBUYWIKLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXModGVz
dENvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gdGVzdENvbnRpbnVhdGlvbigpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB2YXIgZWRpdG9yRWxlbWVudCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hbmNob3JOb2Rl
LnBhcmVudEVsZW1lbnQ7Ci0gICAgICAgICAgICAgICAgICAgIGVkaXRvckVsZW1lbnQudGV4dENv
bnRlbnQgPSAibmV3YXR0cj1cIm5ldy12YWx1ZVwiIjsKLSAgICAgICAgICAgICAgICAgICAgZWRp
dG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVu
dGVyIikpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZVVwZGF0ZXIucHJvdG90eXBlLCAiX3VwZGF0ZU1vZGlmaWVk
Tm9kZXMiLCBkb25lKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEVkaXRDb21tZW50QXNIVE1MKG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNvbW1lbnROb2RlU2VsZWN0aW9uQ2FsbGJhY2so
dGVzdE5vZGUsIGNhbGxiYWNrKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBj
aGlsZE5vZGVzID0gdGVzdE5vZGUuY2hpbGRyZW47Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjaGlsZE5vZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChjaGlsZE5vZGVzW2ldLm5vZGVUeXBlKCkgPT09IDgpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5fdXBkYXRlRm9jdXNlZE5vZGUoY2hpbGROb2Rlc1tpXS5pZCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhjaGlsZE5vZGVzW2ldKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29t
bWVudCBub2RlIG5vdCBmb3VuZCIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkb21BY3Rpb25UZXN0KCJ0
ZXN0RWRpdENvbW1lbnRBc0hUTUwiLCBjb21tZW50Tm9kZVNlbGVjdGlvbkNhbGxiYWNrLCB0ZXN0
Qm9keSwgbmV4dCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gV2ViSW5z
cGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7
Ci0gICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuX2VkaXRBc0hUTUwoKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDIpOwotCi0g
ICAgICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodHJlZUVsZW1lbnQuX2VkaXRp
bmcuY29kZU1pcnJvci5nZXRWYWx1ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1l
bnQuX2VkaXRpbmcuY29kZU1pcnJvci5zZXRWYWx1ZSgiPGRpdiBmb289XCJiYXItY29tbWVudFwi
PkVsZW1lbnQ8L2Rpdj4iKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKTsKLSAgICAgICAgICAgICAgICAgICAgZXZl
bnQuaXNNZXRhT3JDdHJsRm9yVGVzdCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHRyZWVF
bGVtZW50Ll9odG1sRWRpdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhkb25lKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEVkaXRBc0hUTUwobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9t
QWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdEVkaXRBc0hUTUwiLCAibm9kZS10by1lZGl0LWFzLWh0
bWwiLCB0ZXN0Qm9keSwgbmV4dCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5v
ZGUsIGRvbmUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1l
bnQobm9kZSk7Ci0gICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuX2VkaXRBc0hUTUwoKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3Rl
cDIpOwotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodHJlZUVsZW1l
bnQuX2VkaXRpbmcuY29kZU1pcnJvci5nZXRWYWx1ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAg
dHJlZUVsZW1lbnQuX2VkaXRpbmcuY29kZU1pcnJvci5zZXRWYWx1ZSgiPHNwYW4gZm9vPVwiYmFy
XCI+PHNwYW4gaWQ9XCJpbm5lci1zcGFuXCI+U3BhbiBjb250ZW50czwvc3Bhbj48L3NwYW4+Iik7
Ci0gICAgICAgICAgICAgICAgICAgIHZhciBldmVudCA9IEluc3BlY3RvclRlc3QuY3JlYXRlS2V5
RXZlbnQoIkVudGVyIik7Ci0gICAgICAgICAgICAgICAgICAgIGV2ZW50LmlzTWV0YU9yQ3RybEZv
clRlc3QgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5faHRtbEVkaXRF
bGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVt
ZW50c1RyZWUuYmluZChJbnNwZWN0b3JUZXN0LCBkb25lKSk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0SW52
aXNpYmxlQ2hhcnNBc0hUTUwobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9u
VGVzdEZvck5vZGVJZCgidGVzdEVkaXRJbnZpc2libGVDaGFyc0FzSFRNTCIsICJub2RlLXdpdGgt
aW52aXNpYmxlLWNoYXJzIiwgdGVzdEJvZHksIG5leHQpOwotCi0gICAgICAgICAgICBmdW5jdGlv
biB0ZXN0Qm9keShub2RlLCBkb25lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZh
ciB0cmVlRWxlbWVudCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUu
ZmluZFRyZWVFbGVtZW50KG5vZGUpOwotICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50Ll9lZGl0
QXNIVE1MKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdE
aXNwYXRjaGVzKHN0ZXAyKTsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjb2RlTWlycm9yID0gdHJl
ZUVsZW1lbnQuX2VkaXRpbmcuY29kZU1pcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoY29kZU1pcnJvci5nZXRWYWx1ZSgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgY29kZU1pcnJvci5zZXRWYWx1ZShjb2RlTWlycm9yLmdldFZhbHVlKCkucmVwbGFjZSgv
Ji9nLCAnIycpKTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKTsKLSAgICAgICAgICAgICAgICAgICAgZXZlbnQuaXNN
ZXRhT3JDdHJsRm9yVGVzdCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50
Ll9odG1sRWRpdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhJbnNwZWN0b3JUZXN0
LmV4cGFuZEVsZW1lbnRzVHJlZS5iaW5kKEluc3BlY3RvclRlc3QsIGRvbmUpKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdEVkaXRTY3JpcHQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVz
dEZvck5vZGVJZCgidGVzdEVkaXRTY3JpcHQiLCAibm9kZS10by1lZGl0LXNjcmlwdCIsIHRlc3RC
b2R5LCBuZXh0KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBlZGl0Tm9kZVBhcnRBbmRSdW4obm9kZSwg
IndlYmtpdC1odG1sLXRleHQtbm9kZSIsICJcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGogPSAw
O1xuIiwgZG9uZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLQotICAgIGZ1
bmN0aW9uIGRvbUFjdGlvblRlc3RGb3JOb2RlSWQodGVzdE5hbWUsIGRhdGFOb2RlSWQsIHRlc3RC
b2R5LCBuZXh0KQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodGVzdE5vZGUsIGNv
bnRpbnVhdGlvbikKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlV2l0aElkKGRhdGFOb2RlSWQsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIH0KLSAgICAgICAg
ZG9tQWN0aW9uVGVzdCh0ZXN0TmFtZSwgY2FsbGJhY2ssIHRlc3RCb2R5LCBuZXh0KTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBkb21BY3Rpb25UZXN0KHRlc3ROYW1lLCBkYXRhTm9kZVNlbGVjdGlv
bkNhbGxiYWNrLCB0ZXN0Qm9keSwgbmV4dCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXN0Tm9kZSA9
IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKHRlc3ROYW1lKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT0gYmVmb3JlID09PT0iKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRlc3ROb2RlKTsKLQotICAgICAgICBkYXRhTm9kZVNl
bGVjdGlvbkNhbGxiYWNrKHRlc3ROb2RlLCBzdGVwMCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gc3Rl
cDAobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBl
bmRpbmdEaXNwYXRjaGVzKHN0ZXAxLmJpbmQobnVsbCwgbm9kZSkpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gc3RlcDEobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdGVzdEJv
ZHkobm9kZSwgc3RlcDIpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PSBhZnRl
ciA9PT09Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUodGVz
dE5vZGUpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gZWRpdE5vZGVQYXJ0KG5vZGUsIGNsYXNzTmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciB0
cmVlRWxlbWVudCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuZmlu
ZFRyZWVFbGVtZW50KG5vZGUpOwotICAgICAgICB2YXIgdGV4dEVsZW1lbnQgPSB0cmVlRWxlbWVu
dC5saXN0SXRlbUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjbGFzc05hbWUpWzBdOwot
ICAgICAgICBpZiAoIXRleHRFbGVtZW50ICYmIHRyZWVFbGVtZW50LmNoaWxkcmVuTGlzdEVsZW1l
bnQpCi0gICAgICAgICAgICB0ZXh0RWxlbWVudCA9IHRyZWVFbGVtZW50LmNoaWxkcmVuTGlzdEVs
ZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjbGFzc05hbWUpWzBdOwotICAgICAgICB0cmVl
RWxlbWVudC5fc3RhcnRFZGl0aW5nVGFyZ2V0KHRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJu
IHRleHRFbGVtZW50OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGVkaXROb2RlUGFydEFuZFJ1bihu
b2RlLCBjbGFzc05hbWUsIG5ld1ZhbHVlLCBzdGVwMiwgdXNlU25pZmZlcikKLSAgICB7Ci0gICAg
ICAgIHZhciBlZGl0b3JFbGVtZW50ID0gZWRpdE5vZGVQYXJ0KG5vZGUsIGNsYXNzTmFtZSk7Ci0g
ICAgICAgIGVkaXRvckVsZW1lbnQudGV4dENvbnRlbnQgPSBuZXdWYWx1ZTsKLSAgICAgICAgZWRp
dG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVu
dGVyIikpOwotICAgICAgICBpZiAodXNlU25pZmZlcikKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlVXBkYXRlci5wcm90b3R5cGUs
ICJfdXBkYXRlTW9kaWZpZWROb2RlcyIsIHN0ZXAyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9
Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD4KLVRlc3RzIHRoYXQgdXNlciBjYW4gbXV0YXRlIERPTSBieSBtZWFucyBvZiBlbGVtZW50cyBw
YW5lbC4KLTwvcD4KLQotPGRpdj4KLSAgICA8ZGl2IGlkPSJ0ZXN0UmVtb3ZlIj4KLSAgICAgICAg
PGRpdiBpZD0ibm9kZS10by1yZW1vdmUiPjwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBp
ZD0idGVzdFNldE5vZGVOYW1lIj4KLSAgICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtbmFtZSI+
PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJ0ZXN0U2V0Tm9kZU5hbWVJbnB1dCI+
Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LW5hbWUtaW5wdXQiPjwvZGl2PgotICAgIDwv
ZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdFNldE5vZGVWYWx1ZSI+Ci0gICAgICAgIDxkaXYgaWQ9
Im5vZGUtdG8tc2V0LXZhbHVlIj4KLSAgICAgICAgICBUZXh0Ci0gICAgICAgIDwvZGl2PgotICAg
IDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdFNldEF0dHJpYnV0ZSI+Ci0gICAgICAgIDxkaXYg
Zm9vPSJhdHRyaWJ1dGUgdmFsdWUiIGlkPSJub2RlLXRvLXNldC1hdHRyaWJ1dGUiPjwvZGl2Pgot
ICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdFJlbW92ZUF0dHJpYnV0ZSI+Ci0gICAgICAg
IDxkaXYgZm9vPSJhdHRyaWJ1dGUgdmFsdWUiIGlkPSJub2RlLXRvLXJlbW92ZS1hdHRyaWJ1dGUi
PjwvZGl2PgotICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdEFkZEF0dHJpYnV0ZSI+Ci0g
ICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tYWRkLWF0dHJpYnV0ZSI+PC9kaXY+Ci0gICAgPC9kaXY+
Ci0KLSAgICA8ZGl2IGlkPSJ0ZXN0RWRpdEFzSFRNTCI+Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUt
dG8tZWRpdC1hcy1odG1sIj48c3BhbiBpZD0ic3BhbiI+VGV4dDwvc3Bhbj48L2Rpdj4KLSAgICA8
L2Rpdj4KLQotICAgIDxkaXYgaWQ9InRlc3RFZGl0SW52aXNpYmxlQ2hhcnNBc0hUTUwiPgotICAg
ICAgICA8ZGl2IGlkPSJub2RlLXdpdGgtaW52aXNpYmxlLWNoYXJzIj5BJm5ic3A7QiZlbnNwO0Mm
ZW1zcDtEJnRoaW5zcDtFJnp3bmo7RiZ6d2o7RyZybG07SCZscm07STwvZGl2PgotICAgIDwvZGl2
PgotCi0gICAgPGRpdiBpZD0idGVzdEVkaXRTY3JpcHQiPgotICAgICAgICA8c2NyaXB0IGlkPSJu
b2RlLXRvLWVkaXQtc2NyaXB0Ij4KLQotICAgICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgICB2
YXIgaiA9IDU7Ci0gICAgICAgICAgZm9yICg7IGkgPCBqOyArK2kpIHsKLSAgICAgICAgICAgICAg
Ly8gRG8gbm90aGluZy4KLSAgICAgICAgICB9Ci0KLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9k
aXY+Ci0KLSAgICA8ZGl2IGlkPSJ0ZXN0RWRpdENvbW1lbnRBc0hUTUwiPgotICAgICAgICA8IS0t
IENvbW1lbnQgLS0+Ci0gICAgPC9kaXY+Ci0KLTwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWRlbGV0ZS1p
bmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzYWUwOTlkZDNkNjBhZTIxZDY1NGY5MWMyNzM4NjA4NDIwNWNlMTIz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1kZWxldGUtaW5saW5lLXN0eWxlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRlc3RzIHRoYXQgdGhlICJz
dHlsZSIgYXR0cmlidXRlIHJlbW92YWwgcmVzdWx0cyBpbiB0aGUgU3R5bGVzIHNpZGViYXIgcGFu
ZSB1cGRhdGUgKG5vdCBhIGNyYXNoKS4gQnVnIDUxNDc4Ci0KLUJlZm9yZSBzdHlsZSBwcm9wZXJ0
eSByZW1vdmFsOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLWNvbG9yOiByZWQ7
Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2
ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBz
dHlsZSBwcm9wZXJ0eSByZW1vdmFsOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkK
LQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1kaXYg
IHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWRlbGV0ZS1pbmxp
bmUtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1k
ZWxldGUtaW5saW5lLXN0eWxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0
NmYwZWIzOGE4ZjA1MmFjMjBmMmFlNmJkZGRhNGUzMjU1NzIxMzkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5bGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
ZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVz
KCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShub2RlKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJlZm9yZSBzdHlsZSBwcm9wZXJ0eSBy
ZW1vdmFsOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHls
ZXModHJ1ZSk7Ci0gICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXAyKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiQWZ0ZXIgc3R5bGUgcHJvcGVydHkgcmVtb3ZhbDoiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgdGhlICJzdHlsZSIgYXR0
cmlidXRlIHJlbW92YWwgcmVzdWx0cyBpbiB0aGUgU3R5bGVzIHNpZGViYXIgcGFuZSB1cGRhdGUg
KG5vdCBhIGNyYXNoKS4gPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE0NzgiPkJ1ZyA1MTQ3ODwvYT4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIiBz
dHlsZT0iY29sb3I6IHJlZCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW1nLXRvb2x0aXAtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWltZy10b29s
dGlwLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlkODlkZGE0
MjQ4Mjc4ZDZiZjY2OTAxODdjNzI4OTc3ZTM2NDNkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtaW1nLXRvb2x0aXAtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi1UZXN0cyB0aGUgdG9vbHRpcCBmb3IgdGhlIGltYWdlIG9uIGhvdmVyLgotCi0KLVBBU1NF
RCwgaW1hZ2UgZGltZW5zaW9ucyBmb3IgdG9vbHRpcDogMjE1eDE3NC4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWltZy10b29sdGlwLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW1nLXRvb2x0aXAuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIwYTEyMTI2MGM0YmM3OTU3N2NlNzBi
ZWM4YWRjNzQwZDllZjI4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW1nLXRvb2x0
aXAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIgdGVzdCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotCi0gICAgdmFy
IHRyZWVFbGVtZW50OwotICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgiaW1hZ2UiLCBzdGVw
MSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShub2RlKQotICAgIHsKLSAgICAgICAgdHJlZUVsZW1l
bnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxl
bWVudChub2RlKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5fbG9hZERp
bWVuc2lvbnNGb3JOb2RlKHRyZWVFbGVtZW50LCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDIoZGltZW5zaW9ucykKLSAgICB7Ci0gICAgICAgIGNvbnN0IEVYUEVDVEVEX1dJRFRI
ID0gMjE1OwotICAgICAgICBjb25zdCBFWFBFQ1RFRF9IRUlHSFQgPSAxNzQ7Ci0KLSAgICAgICAg
aWYgKCFkaW1lbnNpb25zKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZB
SUxFRCwgbm8gZGltZW5zaW9ucyBvbiB0cmVlRWxlbWVudC4iKTsKLSAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBpZiAoZGltZW5zaW9ucy5vZmZzZXRXaWR0aCA9PT0gZGltZW5zaW9ucy5uYXR1
cmFsV2lkdGggJiYgZGltZW5zaW9ucy5vZmZzZXRIZWlnaHQgPT0gZGltZW5zaW9ucy5uYXR1cmFs
SGVpZ2h0Ci0gICAgICAgICAgICAgICAgJiYgZGltZW5zaW9ucy5vZmZzZXRXaWR0aCA9PT0gRVhQ
RUNURURfV0lEVEggJiYgZGltZW5zaW9ucy5vZmZzZXRIZWlnaHQgPT09IEVYUEVDVEVEX0hFSUdI
VCkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUEFTU0VELCBpbWFn
ZSBkaW1lbnNpb25zIGZvciB0b29sdGlwOiAiICsgRVhQRUNURURfV0lEVEggKyAieCIgKyBFWFBF
Q1RFRF9IRUlHSFQgKyAiLiIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMRUQsIGltYWdlIGRpbWVuc2lvbnMgZm9yIHRvb2x0
aXA6ICIgKyBmb3JtYXREaW1lbnNpb25zKGRpbWVuc2lvbnMpICsgIiAoc2hvdWxkIGJlICIgKyBF
WFBFQ1RFRF9XSURUSCArICJ4IiArIEVYUEVDVEVEX0hFSUdIVCArICIpLiIpOwotICAgICAgICB9
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gZm9ybWF0RGltZW5zaW9ucyhkaW1lbnNpb25zKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGRpbWVuc2lvbnMub2Zmc2V0V2lkdGggKyAieCIgKyBkaW1lbnNpb25zLm9mZnNldEhlaWdodCAr
ICIgKG5hdHVyYWw6ICIgKyBkaW1lbnNpb25zLm5hdHVyYWxXaWR0aCArICJ4IiArIGRpbWVuc2lv
bnMubmF0dXJhbEhlaWdodCArICIpIjsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoZSB0b29sdGlwIGZvciB0
aGUgaW1hZ2Ugb24gaG92ZXIuCi08L3A+Ci0KLTxpbWcgaWQ9ImltYWdlIiBzcmM9ImRhdGE6aW1h
Z2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTmNBQUFDdUNBSUFBQUFxTWcv
ckFBQUFBWE5TUjBJQXJzNGM2UUFBQVU5SlJFRlVlTnJ0MGpFUkFBQUl4RERBditkSEF4TkxJcUhY
VGxMd2FpVEFoZUJDWEFndXhJWGdRbHdJTHNTRjRFSmNDQzdFaGVCQ1hBZ3V4SVhnUWx3SUxzU0Y0
RUpjQ0M3RWhlQkNYQWd1eElYZ1Fsd0lMc1NGNEVKY0NDN0VoZUJDWEFndXhJWGdRbHdJTHNTRjRF
SmNDQzdFaGVCQ1hBZ3V4SVhnUWx3SUxzU0Y0RUpjQ0M3RWhlQkNYQWd1eElYZ1Fsd0lMc1NGNEVK
Y0NDN0VoZUJDWEFndXhJWGdRbHdJTHNTRjRFSmNDQzdFaGVCQ1hBZ3V4SVhnUWx3SUxzU0Y0RUpj
Q0M3RWhlQkNYQWd1eElYZ1Fsd0lMc1NGNEVKY0NDN0VoZUJDWEFndXhJWGdRbHdJTHNTRjRFSmND
QzdFaGVCQ1hBZ3V4SVhnUWx3SUxzU0ZFdUJDY0NFdUJCZmlRbkFoTGdRWDRrSndJUzRFRitKQ2ND
RXVCQmZpUW5BaExnUVg0a0p3SVM0RUYrSkNjQ0V1QkJmaVFuQWhMZ1FYNGtKd0lTNEVGK0pDY0NF
dUJCZmlRbkFoTG9TREJaWHFCRm5rUnllcUFBQUFBRWxGVGtTdVFtQ0MiLz4KLQotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1l
bnRzLWluc3BlY3QtaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtaW5zcGVjdC1pZnJhbWUtZnJv
bS1kaWZmZXJlbnQtZG9tYWluLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjJkNmVjODIyNWQxOTQyM2RlODE3NjU4NTZiYzE4YWNlZjg3ZTI3ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZWxlbWVudHMtaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWlu
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdCB0aGF0IHdl
YiBpbnNwZWN0b3IgY2FuIHNlbGVjdCBlbGVtZW50IGluIGFuIGlmcmFtZSBldmVuIGlmIHRoZSBl
bGVtZW50IHdhcyBjcmVhdGVkIHZpYSBjcmVhdGVFbGVtZW50IG9mIGRvY3VtZW50IG90aGVyIHRo
YW4gaWZyYW1lJ3MgZG9jdW1lbnQuIEJ1ZyA2MDAzMQotCi0KLVBBU1M6IHNlbGVjdGVkIG5vZGUg
IHdpdGggaWQgJ21haW4tZnJhbWUtZGl2JwotUEFTUzogc2VsZWN0ZWQgbm9kZSAgd2l0aCBpZCAn
aWZyYW1lLWRpdicKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLWluc3BlY3QtaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWluc3BlY3QtaWZyYW1lLWZyb20t
ZGlmZmVyZW50LWRvbWFpbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmEz
Y2Q5ZDU5YjBjMjZlYzFjZTNjNDY5YmExMWU1MTE4MDI5YWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy9lbGVtZW50cy1pbnNwZWN0LWlmcmFtZS1mcm9tLWRpZmZlcmVudC1kb21haW4uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBlbDE7Ci12YXIgZWwyOwotZnVuY3Rpb24gY3JlYXRl
RHluYW1pY0VsZW1lbnRzKCkKLXsKLSAgICB2YXIgbWFpbkRvYyA9IGRvY3VtZW50OwotICAgIHZh
ciBmcmFtZURvYyA9IHdpbmRvdy5mcmFtZXNbMF0uZG9jdW1lbnQ7Ci0KLSAgICBlbDEgPSBtYWlu
RG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIGVsMS5pZCA9ICJtYWluLWZyYW1lLWRpdiI7
Ci0gICAgZWwyID0gZnJhbWVEb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZWwyLmlkID0g
ImlmcmFtZS1kaXYiOwotCi0gICAgZWwxLmlubmVySFRNTCA9ICdFbGVtZW50IGNyZWF0ZWQgdmlh
ICZsdDttYWluIGRvY3VtZW50Pi5jcmVhdGVFbGVtZW50JzsKLSAgICBlbDIuaW5uZXJIVE1MID0g
J0VsZW1lbnQgY3JlYXRlZCB2aWEgJmx0O2ZyYW1lIGRvY3VtZW50Pi5jcmVhdGVFbGVtZW50JzsK
LQotICAgIGZyYW1lRG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwxKTsKLSAgICBmcmFtZURvYy5ib2R5
LmFwcGVuZENoaWxkKGVsMik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIC8vSW5zcGVj
dG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKCJtYWluLWZyYW1lLWRpdiIsIHN0ZXAxKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJjcmVhdGVEeW5hbWljRWxlbWVudHMoKSIsIHN0
ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHNlbGVjdGVkTm9kZUlkKCkKLSAgICB7Ci0gICAgICAgIHZh
ciBzZWxlY3RlZEVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRs
aW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQot
ICAgICAgICAgICAgcmV0dXJuICI8bm8gc2VsZWN0ZWQgbm9kZT4iOwotICAgICAgICByZXR1cm4g
c2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LmdldEF0dHJpYnV0ZSgiaWQiKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5Db25zb2xlKCJpbnNwZWN0KGVsMSkiLCBzdGVwMik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBl
bmRpbmdEaXNwYXRjaGVzKHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0g
ICAgewotICAgICAgICB2YXIgaWQgPSBzZWxlY3RlZE5vZGVJZCgpOwotICAgICAgICBpZiAoaWQg
PT09ICJtYWluLWZyYW1lLWRpdiIpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiUEFTUzogc2VsZWN0ZWQgbm9kZSAgd2l0aCBpZCAnIiArIGlkICsgIiciKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUw6IHVuZXhwZWN0
ZWQgc2VsZWN0aW9uICIgKyBpZCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNv
bnNvbGUoImluc3BlY3QoZWwyKSIsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
NCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNo
ZXMoc3RlcDUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAg
IHZhciBpZCA9IHNlbGVjdGVkTm9kZUlkKCk7Ci0gICAgICAgIGlmIChpZCA9PT0gImlmcmFtZS1k
aXYiKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlBBU1M6IHNlbGVjdGVk
IG5vZGUgIHdpdGggaWQgJyIgKyBpZCArICInIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMOiB1bmV4cGVjdGVkIHNlbGVjdGlvbiAiICsg
aWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3Qg
dGhhdCB3ZWIgaW5zcGVjdG9yIGNhbiBzZWxlY3QgZWxlbWVudCBpbiBhbiBpZnJhbWUgZXZlbiBp
ZiB0aGUgZWxlbWVudCB3YXMgY3JlYXRlZAotdmlhIDxjb2RlPmNyZWF0ZUVsZW1lbnQ8L2NvZGU+
IG9mIDxjb2RlPmRvY3VtZW50PC9jb2RlPiBvdGhlciB0aGFuIGlmcmFtZSdzIDxjb2RlPmRvY3Vt
ZW50PC9jb2RlPi4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDAzMSI+QnVnIDYwMDMxPC9hPgotPC9wPgotPGlmcmFtZSBzdHlsZT0id2lkdGg6NDAw
cHgiPjwvaWZyYW1lPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxp
bWl0ZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwZTE4N2E1MDc0ZTBmNTVkOTVhOTE2YmQxZjAwM2NjMDY5OTRkOTdlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTEKLTMKLTQKLTUKLTYKLTcKLTgKLTkKLTEwCi1U
ZXN0cyB0aGF0IHNyYyBhbmQgaHJlZiBlbGVtZW50IHRhcmdldHMgYXJlIHJld3JpdHRlbiBwcm9w
ZXJseS4KLQotPT09PT09PT09PT0gTG9hZGVkIDUgY2hpbGRyZW4gPT09PT09PT09PT0KLS0gPGh0
bWw+Ci0gICAgKyA8aGVhZD7igKY8L2hlYWQ+Ci0gICAgLSA8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci0gICAgICAgIC0gPGRpdiBpZD0iZGF0YSI+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9Imlk
MSI+MTwvZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDIiPjI8L2Rpdj4KLSAgICAgICAg
ICAgICAgPGRpdiBpZD0iaWQzIj4zPC9kaXY+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImlkNCI+
NDwvZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDUiPjU8L2Rpdj4KLSAgICAgICAgICAg
ICAgU2hvdyBBbGwgTm9kZXMgKDUgTW9yZSkKLSAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICA8
cD5cblRlc3RzIHRoYXQgc3JjIGFuZCBocmVmIGVsZW1lbnQgdGFyZ2V0cyBhcmUgcmV3cml0dGVu
IHByb3Blcmx5LlxuPC9wPgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci09PT09PT09PT09PSBN
b2RpZmllZCBjaGlsZHJlbiA9PT09PT09PT09PQotLSA8aHRtbD4KLSAgICArIDxoZWFkPuKApjwv
aGVhZD4KLSAgICAtIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICAgICAgLSA8ZGl2IGlk
PSJkYXRhIj4KLSAgICAgICAgICAgICAgPGE+PC9hPgotICAgICAgICAgICAgICA8ZGl2IGlkPSJp
ZDEiPjE8L2Rpdj4KLSAgICAgICAgICAgICAgPGRpdiBpZD0iaWQzIj4zPC9kaXY+Ci0gICAgICAg
ICAgICAgIDxkaXYgaWQ9ImlkNCI+NDwvZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlkPSJpZDUi
PjU8L2Rpdj4KLSAgICAgICAgICAgICAgU2hvdyBBbGwgTm9kZXMgKDYgTW9yZSkKLSAgICAgICAg
ICA8L2Rpdj4KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgc3JjIGFuZCBocmVmIGVsZW1lbnQg
dGFyZ2V0cyBhcmUgcmV3cml0dGVuIHByb3Blcmx5LlxuPC9wPgotICAgICAgICArIDxkaXY+4oCm
PC9kaXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLT09PT09PT09PT09IExvYWRlZCBhbGwg
Y2hpbGRyZW4gPT09PT09PT09PT0KLS0gPGh0bWw+Ci0gICAgKyA8aGVhZD7igKY8L2hlYWQ+Ci0g
ICAgLSA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgICAgIC0gPGRpdiBpZD0iZGF0YSI+
Ci0gICAgICAgICAgICAgIDxhPjwvYT4KLSAgICAgICAgICAgICAgPGRpdiBpZD0iaWQxIj4xPC9k
aXY+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImlkMyI+MzwvZGl2PgotICAgICAgICAgICAgICA8
ZGl2IGlkPSJpZDQiPjQ8L2Rpdj4KLSAgICAgICAgICAgICAgPGRpdiBpZD0iaWQ1Ij41PC9kaXY+
Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImlkNiI+NjwvZGl2PgotICAgICAgICAgICAgICA8ZGl2
IGlkPSJpZDciPjc8L2Rpdj4KLSAgICAgICAgICAgICAgPGRpdiBpZD0iaWQ4Ij44PC9kaXY+Ci0g
ICAgICAgICAgICAgIDxkaXYgaWQ9ImlkOSI+OTwvZGl2PgotICAgICAgICAgICAgICA8ZGl2IGlk
PSJpZDEwIj4xMDwvZGl2PgotICAgICAgICAgICAgICA8YT48L2E+Ci0gICAgICAgICAgPC9kaXY+
Ci0gICAgICAgICAgPHA+XG5UZXN0cyB0aGF0IHNyYyBhbmQgaHJlZiBlbGVtZW50IHRhcmdldHMg
YXJlIHJld3JpdHRlbiBwcm9wZXJseS5cbjwvcD4KLSAgICAgICAgKyA8ZGl2PuKApjwvZGl2Pgot
ICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtbGltaXRlZC1jaGlsZHJl
bi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGYxYmJkMTY4NGQxNzViMTNk
NTI5NTY3MmY1NzNjMmQ4YjJlM2MxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5l
bC1saW1pdGVkLWNoaWxkcmVuLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIGluc2VydE5vZGUoKQotewotICAgIHZhciBkYXRhRWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkYXRhIik7Ci0gICAgZGF0YUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiYSIpKTsKLSAgICBkYXRhRWxlbWVudC5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaWQyIikpOwotICAgIHZhciBhRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImEiKTsKLSAgICBkYXRhRWxlbWVudC5pbnNlcnRCZWZvcmUoYUVsZW1lbnQs
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZDEiKSk7Ci0gICAgZGF0YUVsZW1lbnQuYXBwZW5k
Q2hpbGQoYUVsZW1lbnQpOwotICAgIGRhdGFFbGVtZW50Lmluc2VydEJlZm9yZShhRWxlbWVudCwg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkMSIpKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgdmFyIGRhdGFUcmVlRWxlbWVudDsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJl
bGVtZW50cyIpOwotICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgiZGF0YSIsIHN0ZXAxKTsK
LQotICAgIGZ1bmN0aW9uIHN0ZXAxKG5vZGUpCi0gICAgewotICAgICAgICBkYXRhVHJlZUVsZW1l
bnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxl
bWVudChub2RlKTsKLSAgICAgICAgZGF0YVRyZWVFbGVtZW50Ll9leHBhbmRlZENoaWxkcmVuTGlt
aXQgPSA1OwotICAgICAgICBkYXRhVHJlZUVsZW1lbnQucmV2ZWFsKCk7Ci0gICAgICAgIGRhdGFU
cmVlRWxlbWVudC5leHBhbmQoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRp
bmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT09PT0gTG9hZGVkIDUg
Y2hpbGRyZW4gPT09PT09PT09PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVu
dHNUcmVlKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImluc2VydE5v
ZGUoKSIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDQpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkKLSAgICB7ICAgCi0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCI9PT09PT09PT09PSBNb2RpZmllZCBjaGlsZHJlbiA9PT09PT09PT09PSIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoKTsKLSAgICAgICAgZGF0
YVRyZWVFbGVtZW50LmhhbmRsZUxvYWRBbGxDaGlsZHJlbigpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDUpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09
PT09PT09PSBMb2FkZWQgYWxsIGNoaWxkcmVuID09PT09PT09PT09Iik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08ZGl2IGlkPSJkYXRhIj4KLTxkaXYgaWQ9ImlkMSI+MTwvZGl2PgotPGRp
diBpZD0iaWQyIj4yPC9kaXY+Ci08ZGl2IGlkPSJpZDMiPjM8L2Rpdj4KLTxkaXYgaWQ9ImlkNCI+
NDwvZGl2PgotPGRpdiBpZD0iaWQ1Ij41PC9kaXY+Ci08ZGl2IGlkPSJpZDYiPjY8L2Rpdj4KLTxk
aXYgaWQ9ImlkNyI+NzwvZGl2PgotPGRpdiBpZD0iaWQ4Ij44PC9kaXY+Ci08ZGl2IGlkPSJpZDki
Pjk8L2Rpdj4KLTxkaXYgaWQ9ImlkMTAiPjEwPC9kaXY+Ci08L2Rpdj4KLTxwPgotVGVzdHMgdGhh
dCBzcmMgYW5kIGhyZWYgZWxlbWVudCB0YXJnZXRzIGFyZSByZXdyaXR0ZW4gcHJvcGVybHkuCi08
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtcmV3cml0ZS1ocmVmLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1yZXdyaXRlLWhyZWYtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjY3ZWFhNjFlYTk3ZWNi
NDM1MWUyMTFiYWViN2EzYWE4YTliNjRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1w
YW5lbC1yZXdyaXRlLWhyZWYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs
MCBAQAotVGVzdHMgdGhhdCBzcmMgYW5kIGhyZWYgZWxlbWVudCB0YXJnZXRzIGFyZSByZXdyaXR0
ZW4gcHJvcGVybHkuCi0KLQotIGphdmFzY3JpcHQ6YWxlcnQoJ2ZvbycpIAotLGJvZ3VzU2hlZXQx
LmNzcwotaW5zcGVjdG9yLGVsZW1lbnRzLGJvZ3VzU2hlZXQyLmNzcwotdGVzdHMsaW5zcGVjdG9y
LGluc3BlY3Rvci10ZXN0LmpzCi10ZXN0cyxpbnNwZWN0b3IsZWxlbWVudHMtdGVzdC5qcwotaHR0
cDovLzEyNy4wLjAuMS9zdHlsZXNoZWV0LmNzcwotaHR0cDovLzEyNy4wLjAuMS9zY3JpcHQuanMK
LWh0dHA6Ly8xMjcuMC4wLjEvdGFyZ2V0Lmh0bWwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmQ1ZDM2Y2ZhZWM3Y2I2MDRlNzVm
M2U4ZTEyYWZkYzlmMjdlNDAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1y
ZXdyaXRlLWhyZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLTwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotPGh0bWw+Ci08aGVhZD4KLTxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgc3JjPSIvYm9ndXNTaGVldDEuY3NzIj4KLTxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgc3JjPSJib2d1c1NoZWV0Mi5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kRWxlbWVudHNUcmVlKHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0g
ICAgICAgIHZhciBpbm5lck1hcHBpbmcgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuX2lkVG9ET01O
b2RlOwotCi0gICAgICAgIGZvciAodmFyIG5vZGVJZCBpbiBpbm5lck1hcHBpbmcpIHsKLSAgICAg
ICAgICAgIHZhciBub2RlID0gaW5uZXJNYXBwaW5nW25vZGVJZF07Ci0gICAgICAgICAgICBpZiAo
bm9kZS5ub2RlTmFtZSgpID09PSAiTElOSyIgfHwgbm9kZS5ub2RlTmFtZSgpID09PSAiU0NSSVBU
IikgewotICAgICAgICAgICAgICAgIHZhciBzZWdtZW50cyA9IFtdOwotICAgICAgICAgICAgICAg
IHZhciBocmVmID0gbm9kZS5yZXNvbHZlVVJMKG5vZGUuZ2V0QXR0cmlidXRlKCJzcmMiKSB8fCBu
b2RlLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKLSAgICAgICAgICAgICAgICBpZiAoIWhyZWYpIHsK
LSAgICAgICAgICAgICAgICAgICAgc2VnbWVudHMucHVzaCgiPGVtcHR5PiIpOwotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
aWYgKGhyZWYuc3RhcnRzV2l0aCgiaHR0cDoiKSkgewotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChocmVmKTsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHZhciBwYXJzZWRVUkwgPSBocmVm
LmFzUGFyc2VkVVJMKCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXJzZWRVUkwpCi0gICAgICAg
ICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoIkZBSUw6IG5vIFVSTCBtYXRj
aCBmb3IgPCIgKyBocmVmICsgIj4iKTsKLSAgICAgICAgICAgICAgICB2YXIgc3BsaXQgPSBwYXJz
ZWRVUkwucGF0aC5zcGxpdCgiLyIpOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSBzcGxp
dC5sZW5ndGggLSAxLCBqID0gMDsgaiA8IDMgJiYgaSA+PSAwOyAtLWksICsraikKLSAgICAgICAg
ICAgICAgICAgICAgc2VnbWVudHMucHVzaChzcGxpdFtpXSk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoc2VnbWVudHMucmV2ZXJzZSgpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lKCkgPT09ICJBIikKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChub2RlLnJlc29sdmVVUkwobm9kZS5nZXRBdHRyaWJ1
dGUoImhyZWYiKSkpOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHk+Ci08cD4KLVRl
c3RzIHRoYXQgc3JjIGFuZCBocmVmIGVsZW1lbnQgdGFyZ2V0cyBhcmUgcmV3cml0dGVuIHByb3Bl
cmx5LgotPC9wPgotCi08YSBzdHlsZT0iZGlzcGxheTpub25lIiBocmVmPSIgamF2YXNjcmlwdDph
bGVydCgnZm9vJykgIj48L2E+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL2VsZW1lbnRzLXBhbmVs
LXJld3JpdGUtaHJlZi1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2VsZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24tb24t
cmVmcmVzaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NzU2
YjFmNGMyMWQ2ZTg1YjhlZWYxZWY5N2FhZWJmYzE3MDRjNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBwcmVzZXJ2
ZXMgc2VsZWN0ZWQgbm9kZSBvbiBwYWdlIHJlZnJlc2guCi0KLVBhZ2UgcmVsb2FkZWQuCi1TZWxl
Y3RlZCBlbGVtZW50IHNob3VsZCBiZSAnUCcsIHdhczogJ1AnCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24tb24tcmVm
cmVzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVs
LXNlbGVjdGlvbi1vbi1yZWZyZXNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDkzZjI5ZjVlNDk1OTNlMzI0YWFiNDBkYzU1OGNjN2VkMWM2ZjQwOGYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZyZXNoLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Qu
c2VsZWN0Tm9kZVdpdGhJZCgidGVzdC10b3BpYyIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShzdGVwMik7Ci0g
ICAgfQotIAotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgInRlc3QtdG9waWMi
IGVsZW1lbnQgc2VsZWN0ZWQgYWZ0ZXIgcmVmcmVzaC4KLSAgICAgICAgdmFyIHNlbGVjdGVkRWxl
bWVudCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUuc2VsZWN0ZWRU
cmVlRWxlbWVudDsKLSAgICAgICAgdmFyIG5vZGVOYW1lID0gc2VsZWN0ZWRFbGVtZW50ID8gc2Vs
ZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVOYW1lKCkgOiAibnVsbCI7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWxlY3RlZCBlbGVtZW50IHNob3VsZCBiZSAn
UCcsIHdhczogJyIgKyBub2RlTmFtZSArICInIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHAgaWQ9InRlc3QtdG9waWMiPgotVGVzdHMgdGhhdCBlbGVtZW50
cyBwYW5lbCBwcmVzZXJ2ZXMgc2VsZWN0ZWQgbm9kZSBvbiBwYWdlIHJlZnJlc2guCi08L3A+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVjdHVyZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1NGIxODE4NDY1MjFiNDJmMGJhMmU2NGM0
Mjc3NmI5OGE2OWVhZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXN0cnVj
dHVyZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UZXN0cyB0
aGF0IGVsZW1lbnRzIHBhbmVsIHNob3dzIERPTSB0cmVlIHN0cnVjdHVyZS4KLQotIlF1b3RlZCBU
ZXh0Ii4gU3BlY2lhbMKgY2hhcmFjdGVyczogPjwiJ8Kg4oCC4oCD4oCJ4oCL4oCM4oCN4oCO4oCP
IOKAquKAq+KArOKAreKArgotICAgICAgPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0
L2xvb3NlLmR0ZCI+Ci0tIDxodG1sPgotICAgIC0gPGhlYWQ+Ci0gICAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIC0gPHNjcmlwdD4KLSAgICAgICAgICAg
ICAgXG5mdW5jdGlvbiB0ZXN0KClcbntcbiAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRz
VHJlZShzdGVwMSk7XG5cbiAgICBmdW5jdGlvbiBzdGVwMSgpXG4gICAge1xuICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoKTtcbiAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTtcbiAgICB9XG59XG5cbgotICAgICAgICAgIDwvc2NyaXB0PgotICAgICAgPC9o
ZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgICAgICAgIDxwPlxuVGVz
dHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBET00gdHJlZSBzdHJ1Y3R1cmUuXG48L3A+Ci0g
ICAgICAgIC0gPGRpdiBpZD0ibGV2ZWwxIj4KLSAgICAgICAgICAgIC0gPGRpdiBpZD0ibGV2ZWwy
Ij4KLSAgICAgICAgICAgICAgICAgICIiUXVvdGVkIFRleHQiLiBTcGVjaWFsJm5ic3A7Y2hhcmFj
dGVyczogPjwiJyZuYnNwOyZlbnNwOyZlbXNwOyZ0aGluc3A7JiM4MjAzOyZ6d25qOyZ6d2o7Jmxy
bTsmcmxtOyAmIzgyMzQ7JiM4MjM1OyYjODIzNjsmIzgyMzc7JiM4MjM4OyIKLSAgICAgICAgICAg
ICAgICAgIDxkaXYgaWQ9ImxldmVsMyI+PC9kaXY+Ci0gICAgICAgICAgICAgIDwvZGl2PgotICAg
ICAgICAgIDwvZGl2PgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1cmUuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zdHJ1Y3R1
cmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZiMjlhYzdlNGViZWFmM2Ez
OGY0NjI0NWI0NzhlZWU4OTU3N2UwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFu
ZWwtc3RydWN0dXJlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAi
aHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoc3RlcDEpOwotCi0gICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVl
KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0
cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHNob3dzIERPTSB0cmVlIHN0cnVjdHVyZS4KLTwvcD4KLQot
PGRpdiBpZD0ibGV2ZWwxIj4KLSAgICA8ZGl2IGlkPSJsZXZlbDIiPiJRdW90ZWQgVGV4dCIuIFNw
ZWNpYWwmbmJzcDtjaGFyYWN0ZXJzOiAmZ3Q7Jmx0OyZxdW90OyZhcG9zOyZuYnNwOyZlbnNwOyZl
bXNwOyZ0aGluc3A7JiM4MjAzOyZ6d25qOyZ6d2o7JmxybTsmcmxtOyAmIzgyMzQ7JiM4MjM1OyYj
ODIzNjsmIzgyMzc7JiM4MjM4OzxkaXYgaWQ9ImxldmVsMyI+PC9kaXY+Ci0gICAgPC9kaXY+Ci08
L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwteGh0bWwtc3Ry
dWN0dXJlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ViMmJj
ZmNiY2M1NWIzODk5ZDEzN2Q1OTcwMTBiMTZiOGYzZjZlNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
ZWxlbWVudHMtcGFuZWwteGh0bWwtc3RydWN0dXJlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDI5ICswLDAgQEAKLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgc2hvd3MgWE1MIGRv
bSB0cmVlIHN0cnVjdHVyZSB3aXRoIGNsb3NpbmcgdGFncyBmb3IgYWxsIGVsZW1lbnRzLgotCi1Q
YXJhZ3JhcGggQlIgdGVzdAotTmV4dCBsaW5lCi0KLSAKLS0gPEhUTUwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgotICAgIC0gPEhlYWQ+Ci0gICAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIC0gPHNjcmlwdD4KLSAgICAgICAgICAg
ICAgPCFbQ0RBVEFbZnVuY3Rpb24gdGVzdCgpeyAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1l
bnRzVHJlZShzdGVwMSk7ICAgIGZ1bmN0aW9uIHN0ZXAxKCkgICAgeyAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wRWxlbWVudHNUcmVlKCk7ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOyAgICB9fV1dPgotICAgICAgICAgIDwvc2NyaXB0PgotICAgICAgPC9IZWFkPgotICAgIC0g
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgICAgICAtIDxwPgotICAgICAgICAgICAgICAi
VGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBYTUwgZG9tIHRyZWUgc3RydWN0dXJlIHdp
dGggY2xvc2luZyB0YWdzIGZvciBhbGwgZWxlbWVudHMuIgotICAgICAgICAgIDwvcD4KLSAgICAg
ICAgICA8aHI+PC9ocj4KLSAgICAgICAgLSA8cD4KLSAgICAgICAgICAgICAgIlBhcmFncmFwaCBC
UiB0ZXN0IgotICAgICAgICAgICAgICA8YnI+PC9icj4KLSAgICAgICAgICAgICAgIk5leHQgbGlu
ZSIKLSAgICAgICAgICA8L3A+Ci0gICAgICAgICAgPCFbQ0RBVEFbIENEYXRhIENvbnRlbnQgXV0+
Ci0gICAgICAgICAgPGltZyBhbHQ9IlJhbmRvbSBJbWFnZSI+PC9pbWc+Ci0gICAgICA8L2JvZHk+
Ci0gIDwvSFRNTD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLXBhbmVsLXhodG1sLXN0cnVjdHVyZS54aHRtbC1kaXNhYmxlZCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC14aHRtbC1zdHJ1Y3R1cmUueGh0
bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZjlhODhhNGVhZGI2
MmM3Nzg3MGVjZTg2ZmM2ZDRkODQyYzg2OGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRz
LXBhbmVsLXhodG1sLXN0cnVjdHVyZS54aHRtbC1kaXNhYmxlZAorKysgL2Rldi9udWxsCkBAIC0x
LDM0ICswLDAgQEAKLTxIVE1MIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
LTxIZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci08IVtDREFUQVsKLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0
ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcEVsZW1lbnRzVHJlZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLX0KLV1dPgotPC9zY3JpcHQ+Ci08L0hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCBzaG93cyBYTUwgZG9t
IHRyZWUgc3RydWN0dXJlIHdpdGggY2xvc2luZyB0YWdzIGZvciBhbGwgZWxlbWVudHMuCi08L3A+
Ci0KLTxocj48L2hyPgotPHA+UGFyYWdyYXBoIEJSIHRlc3Q8YnIvPk5leHQgbGluZQotPC9wPgot
PCFbQ0RBVEFbIENEYXRhIENvbnRlbnQgXV0+Ci0KLTxpbWcgYWx0PSJSYW5kb20gSW1hZ2UiPjwv
aW1nPgotCi08L2JvZHk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMjhjY2IzMDY4ZjZjNzI5NjBmZTU2
MTM0NGNhYjZlNWFkMWIxY2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNp
ZGViYXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLVRlc3Rz
IGV2ZW50IGxpc3RlbmVycyBvdXRwdXQgaW4gdGhlIEVsZW1lbnRzIHNpZGViYXIgcGFuZWwuCi0K
LUluc3BlY3QgTWUKLQotPT09PT09PT0gY2xpY2sgPT09PT09PT0KLVtleHBhbmRlZF0gZG9jdW1l
bnQgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjE5Ci0gICAgaGFuZGxlcjogZnVuY3Rpb24g
KGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gY2FwdHVyaW5nIik7IH0K
LSAgICBpc0F0dHJpYnV0ZTogZmFsc2UKLSAgICBsaW5lTnVtYmVyOiAxOQotICAgIGxpc3RlbmVy
Qm9keTogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0g
Y2FwdHVyaW5nIik7IH0KLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICBzb3VyY2VOYW1lOiBbY2xp
cHBlZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3Rl
bmVyLXNpZGViYXIuaHRtbAotICAgIHR5cGU6IGNsaWNrCi0gICAgdXNlQ2FwdHVyZTogdHJ1ZQot
W2V4cGFuZGVkXSBkb2N1bWVudCAoYW5vbnltb3VzIGZ1bmN0aW9uKQotICAgIGhhbmRsZXI6IE9i
amVjdEhhbmRsZXIKLSAgICBpc0F0dHJpYnV0ZTogZmFsc2UKLSAgICBsaXN0ZW5lckJvZHk6IE9i
amVjdEhhbmRsZXIKLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICB0eXBlOiBjbGljawotICAgIHVz
ZUNhcHR1cmU6IHRydWUKLVtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lk
ZWJhci5odG1sOjE1Ci0gICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9n
KCJjbGljayAtIGJ1dHRvbiAtIGNhcHR1cmluZyIpOyB9Ci0gICAgaXNBdHRyaWJ1dGU6IGZhbHNl
Ci0gICAgbGluZU51bWJlcjogMTUKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIChldmVudCkg
eyBjb25zb2xlLmxvZygiY2xpY2sgLSBidXR0b24gLSBjYXB0dXJpbmciKTsgfQotICAgIG5vZGU6
IGJ1dHRvbiNub2RlCi0gICAgc291cmNlTmFtZTogW2NsaXBwZWQtZm9yLXRlc3RdL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWwKLSAgICB0
eXBlOiBjbGljawotICAgIHVzZUNhcHR1cmU6IHRydWUKLVtleHBhbmRlZF0gYnV0dG9uI25vZGUg
ZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjEyCi0gICAgaGFuZGxlcjogZnVuY3Rpb24gY2xp
Y2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5n
IChyZWdpc3RlcmVkIGJlZm9yZSBhdHRyaWJ1dGUpIik7IH0KLSAgICBpc0F0dHJpYnV0ZTogZmFs
c2UKLSAgICBsaW5lTnVtYmVyOiAxMgotICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gY2xpY2tI
YW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChy
ZWdpc3RlcmVkIGJlZm9yZSBhdHRyaWJ1dGUpIik7IH0KLSAgICBub2RlOiBidXR0b24jbm9kZQot
ICAgIHNvdXJjZU5hbWU6IFtjbGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sCi0gICAgdHlwZTogY2xpY2sKLSAg
ICB1c2VDYXB0dXJlOiBmYWxzZQotW2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVudC1saXN0ZW5l
ci1zaWRlYmFyLmh0bWw6MTYKLSAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29s
ZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0KLSAgICBpc0F0dHJpYnV0ZTog
dHJ1ZQotICAgIGxpbmVOdW1iZXI6IDE2Ci0gICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZl
bnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0KLSAgICBu
b2RlOiBidXR0b24jbm9kZQotICAgIHNvdXJjZU5hbWU6IFtjbGlwcGVkLWZvci10ZXN0XS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sCi0g
ICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0dXJlOiBmYWxzZQotW2V4cGFuZGVkXSBidXR0b24j
bm9kZSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTcKLSAgICBoYW5kbGVyOiBmdW5jdGlv
biAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYnViYmxpbmcgKHJlZ2lz
dGVyZWQgYWZ0ZXIgYXR0cmlidXRlKSIpOyB9Ci0gICAgaXNBdHRyaWJ1dGU6IGZhbHNlCi0gICAg
bGluZU51bWJlcjogMTcKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIChldmVudCkgeyBjb25z
b2xlLmxvZygiY2xpY2sgLSBidXR0b24gLSBidWJibGluZyAocmVnaXN0ZXJlZCBhZnRlciBhdHRy
aWJ1dGUpIik7IH0KLSAgICBub2RlOiBidXR0b24jbm9kZQotICAgIHNvdXJjZU5hbWU6IFtjbGlw
cGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVu
ZXItc2lkZWJhci5odG1sCi0gICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0dXJlOiBmYWxzZQot
W2V4cGFuZGVkXSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6NgotICAgIGhh
bmRsZXI6IGZ1bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9n
KCJjbGljayAtIGRvY3VtZW50IC0gYXR0cmlidXRlIik7IH0KLSAgICBpc0F0dHJpYnV0ZTogdHJ1
ZQotICAgIGxpbmVOdW1iZXI6IDYKLSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIGRvY3VtZW50
Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gYXR0
cmlidXRlIik7IH0KLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICBzb3VyY2VOYW1lOiBbY2xpcHBl
ZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVy
LXNpZGViYXIuaHRtbAotICAgIHR5cGU6IGNsaWNrCi0gICAgdXNlQ2FwdHVyZTogZmFsc2UKLQot
PT09PT09PT0gY3VzdG9tIGV2ZW50ID09PT09PT09Ci1bZXhwYW5kZWRdIGJvZHkgZXZlbnQtbGlz
dGVuZXItc2lkZWJhci5odG1sOjEwCi0gICAgaGFuZGxlcjogZnVuY3Rpb24gZigpIHt9Ci0gICAg
aXNBdHRyaWJ1dGU6IGZhbHNlCi0gICAgbGluZU51bWJlcjogMTAKLSAgICBsaXN0ZW5lckJvZHk6
IGZ1bmN0aW9uIGYoKSB7fQotICAgIG5vZGU6IGJvZHkKLSAgICBzb3VyY2VOYW1lOiBbY2xpcHBl
ZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVy
LXNpZGViYXIuaHRtbAotICAgIHR5cGU6IGN1c3RvbSBldmVudAotICAgIHVzZUNhcHR1cmU6IHRy
dWUKLQotPT09PT09PT0gaG92ZXIgPT09PT09PT0KLVtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZl
bnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjE0Ci0gICAgaGFuZGxlcjogZnVuY3Rpb24gaG92ZXJI
YW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJob3ZlciAtIGJ1dHRvbiAtIGJ1YmJsaW5nIik7
IH0KLSAgICBpc0F0dHJpYnV0ZTogZmFsc2UKLSAgICBsaW5lTnVtYmVyOiAxNAotICAgIGxpc3Rl
bmVyQm9keTogZnVuY3Rpb24gaG92ZXJIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJob3Zl
ciAtIGJ1dHRvbiAtIGJ1YmJsaW5nIik7IH0KLSAgICBub2RlOiBidXR0b24jbm9kZQotICAgIHNv
dXJjZU5hbWU6IFtjbGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sCi0gICAgdHlwZTogaG92ZXIKLSAgICB1c2VD
YXB0dXJlOiBmYWxzZQotCi09PT09PT09PSBjbGljayA9PT09PT09PQotW2V4cGFuZGVkXSBkb2N1
bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTkKLSAgICBoYW5kbGVyOiBmdW5jdGlv
biAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBjYXB0dXJpbmciKTsg
fQotICAgIGlzQXR0cmlidXRlOiBmYWxzZQotICAgIGxpbmVOdW1iZXI6IDE5Ci0gICAgbGlzdGVu
ZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQg
LSBjYXB0dXJpbmciKTsgfQotICAgIG5vZGU6ICNkb2N1bWVudAotICAgIHNvdXJjZU5hbWU6IFtj
bGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlz
dGVuZXItc2lkZWJhci5odG1sCi0gICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0dXJlOiB0cnVl
Ci1bZXhwYW5kZWRdIGRvY3VtZW50IChhbm9ueW1vdXMgZnVuY3Rpb24pCi0gICAgaGFuZGxlcjog
T2JqZWN0SGFuZGxlcgotICAgIGlzQXR0cmlidXRlOiBmYWxzZQotICAgIGxpc3RlbmVyQm9keTog
T2JqZWN0SGFuZGxlcgotICAgIG5vZGU6ICNkb2N1bWVudAotICAgIHR5cGU6IGNsaWNrCi0gICAg
dXNlQ2FwdHVyZTogdHJ1ZQotW2V4cGFuZGVkXSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRl
YmFyLmh0bWw6NgotICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2
ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gYXR0cmlidXRlIik7IH0KLSAg
ICBpc0F0dHJpYnV0ZTogdHJ1ZQotICAgIGxpbmVOdW1iZXI6IDYKLSAgICBsaXN0ZW5lckJvZHk6
IGZ1bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGlj
ayAtIGRvY3VtZW50IC0gYXR0cmlidXRlIik7IH0KLSAgICBub2RlOiAjZG9jdW1lbnQKLSAgICBz
b3VyY2VOYW1lOiBbY2xpcHBlZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbAotICAgIHR5cGU6IGNsaWNrCi0gICAgdXNl
Q2FwdHVyZTogZmFsc2UKLQotPT09PT09PT0gY3VzdG9tIGV2ZW50ID09PT09PT09Ci1bZXhwYW5k
ZWRdIGJvZHkgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjEwCi0gICAgaGFuZGxlcjogZnVu
Y3Rpb24gZigpIHt9Ci0gICAgaXNBdHRyaWJ1dGU6IGZhbHNlCi0gICAgbGluZU51bWJlcjogMTAK
LSAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIGYoKSB7fQotICAgIG5vZGU6IGJvZHkKLSAgICBz
b3VyY2VOYW1lOiBbY2xpcHBlZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbAotICAgIHR5cGU6IGN1c3RvbSBldmVudAot
ICAgIHVzZUNhcHR1cmU6IHRydWUKLUxpc3RlbmVycyBmb3Igc2VsZWN0ZWQgbm9kZSBvbmx5KHNo
b3VsZCBiZSBubyBsaXN0ZW5lcnMpOgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2RiZDQ2YTAyNWYyNTQ3MDBkYzU1ZjM4MzBjNTEzZDUwODY2OGNl
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gZG9jdW1lbnRDbGlja0hhbmRsZXIoZXZlbnQp
IHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBhdHRyaWJ1dGUiKTsgfQotCi1mdW5j
dGlvbiBzZXR1cEV2ZW50TGlzdGVuZXJzKCkKLXsKLSAgICBmdW5jdGlvbiBmKCkge30KLSAgICB2
YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vZGUiKTsKLSAgICBmdW5jdGlv
biBjbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYnVi
YmxpbmcgKHJlZ2lzdGVyZWQgYmVmb3JlIGF0dHJpYnV0ZSkiKTsgfQotICAgIGJ1dHRvbi5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIGNsaWNrSGFuZGxlciwgZmFsc2UpOwotICAgIGJ1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCJob3ZlciIsIGZ1bmN0aW9uIGhvdmVySGFuZGxlcihldmVudCkgeyBj
b25zb2xlLmxvZygiaG92ZXIgLSBidXR0b24gLSBidWJibGluZyIpOyB9LCBmYWxzZSk7Ci0gICAg
YnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oZXZlbnQpIHsgY29uc29s
ZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gY2FwdHVyaW5nIik7IH0sIHRydWUpOwotICAgIGJ1dHRv
bi5vbmNsaWNrID0gZnVuY3Rpb24oZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9u
IC0gYXR0cmlidXRlIik7IH0KLSAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBm
dW5jdGlvbihldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBidXR0b24gLSBidWJibGluZyAo
cmVnaXN0ZXJlZCBhZnRlciBhdHRyaWJ1dGUpIik7IH0sIGZhbHNlKTsKLSAgICBkb2N1bWVudC5v
bmNsaWNrID0gZG9jdW1lbnRDbGlja0hhbmRsZXI7Ci0gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBkb2N1
bWVudCAtIGNhcHR1cmluZyIpOyB9LCB0cnVlKTsKLSAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZWRvd24iLCBmLCBmYWxzZSk7Ci0gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0
ZW5lcigibW91c2Vkb3duIiwgZiwgZmFsc2UpOwotCi0gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVu
dExpc3RlbmVyKCJjdXN0b20gZXZlbnQiLCBmLCB0cnVlKTsKLQotICAgIGZ1bmN0aW9uIE9iamVj
dEhhbmRsZXIoKSB7IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcywgdHJ1
ZSk7IH0KLSAgICBPYmplY3RIYW5kbGVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkg
eyByZXR1cm4gIk9iamVjdEhhbmRsZXIiOyB9Ci0gICAgbmV3IE9iamVjdEhhbmRsZXIoKTsKLX0K
LQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmV2ZW50TGlz
dGVuZXJzRmlsdGVyLnNldCgiYWxsIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0
aElkKCJub2RlIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBhbmRBbmREdW1wU2VsZWN0ZWRFbGVtZW50RXZlbnRMaXN0ZW5l
cnMoc3RlcDIpOwotICAgIH0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm5vZGUtd2l0aG91dC1saXN0ZW5lcnMiLCBz
dGVwMyk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwYW5kQW5kRHVtcFNlbGVjdGVkRWxlbWVudEV2ZW50TGlzdGVuZXJzKHN0ZXA0
KTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgdmFyIGV2ZW50
TGlzdGVuZXJzUGFuZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVz
LmV2ZW50TGlzdGVuZXJzOwotICAgICAgICBldmVudExpc3RlbmVyc1BhbmUuc2V0dGluZ3NTZWxl
Y3RFbGVtZW50LnNlbGVjdGVkSW5kZXggPSAxOwotICAgICAgICBldmVudExpc3RlbmVyc1BhbmUu
X2NoYW5nZVNldHRpbmcoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpc3Rl
bmVycyBmb3Igc2VsZWN0ZWQgbm9kZSBvbmx5KHNob3VsZCBiZSBubyBsaXN0ZW5lcnMpOiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEFuZER1bXBTZWxlY3RlZEVsZW1lbnRFdmVudExp
c3RlbmVycyhzdGVwNSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwYW5kQW5kRHVtcFNlbGVjdGVkRWxlbWVudEV2ZW50TGlzdGVu
ZXJzKEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIG9u
bG9hZEhhbmRsZXIoKQotewotICAgIHNldHVwRXZlbnRMaXN0ZW5lcnMoKTsKLSAgICBydW5UZXN0
KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJvbmxvYWRIYW5kbGVy
KCkiPgotPHA+Ci1UZXN0cyBldmVudCBsaXN0ZW5lcnMgb3V0cHV0IGluIHRoZSBFbGVtZW50cyBz
aWRlYmFyIHBhbmVsLgotPC9wPgotCi08YnV0dG9uIGlkPSJub2RlIj5JbnNwZWN0IE1lPC9idXR0
b24+Ci0KLTxkaXYgaWQ9Im5vZGUtd2l0aG91dC1saXN0ZW5lcnMiPjwvZGl2PgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZl
bnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lcnMtYWJvdXQtYmxhbmstZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYWE2Nzc0YzY5OGJmNzk5MGJjMWY3YmNjMzEy
ZWJiYWVkMWFmYzM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lcnMtYWJvdXQt
YmxhbmstZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGVzdHMg
ZXZlbnQgbGlzdGVuZXJzIG91dHB1dCBpbiB0aGUgRWxlbWVudHMgc2lkZWJhciBwYW5lbCB3aGVu
IHRoZSBsaXN0ZW5lcnMgYXJlIGFkZGVkIG9uIGFuIGVsZW1lbnQgaW4gYWJvdXQ6YmxhbmsgcGFn
ZS4KLQotCi0KLT09PT09PT09IGNsaWNrID09PT09PT09Ci1bZXhwYW5kZWRdIGJvZHkgZXZlbnQt
bGlzdGVuZXJzLWFib3V0LWJsYW5rLmh0bWw6OQotICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGYoKSB7
fQotICAgIGlzQXR0cmlidXRlOiBmYWxzZQotICAgIGxpbmVOdW1iZXI6IDkKLSAgICBsaXN0ZW5l
ckJvZHk6IGZ1bmN0aW9uIGYoKSB7fQotICAgIG5vZGU6IGJvZHkKLSAgICBzb3VyY2VOYW1lOiBb
Y2xpcHBlZC1mb3ItdGVzdF0vTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxp
c3RlbmVycy1hYm91dC1ibGFuay5odG1sCi0gICAgdHlwZTogY2xpY2sKLSAgICB1c2VDYXB0dXJl
OiB0cnVlCi0KLT09PT09PT09IGhvdmVyID09PT09PT09Ci1bZXhwYW5kZWRdIGRpdiNkaXYtaW4t
aWZyYW1lIGV2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFuay5odG1sOjkKLSAgICBoYW5kbGVyOiBm
dW5jdGlvbiBmKCkge30KLSAgICBpc0F0dHJpYnV0ZTogZmFsc2UKLSAgICBsaW5lTnVtYmVyOiA5
Ci0gICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiBmKCkge30KLSAgICBub2RlOiBkaXYjZGl2LWlu
LWlmcmFtZQotICAgIHNvdXJjZU5hbWU6IFtjbGlwcGVkLWZvci10ZXN0XS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLmh0bWwKLSAgICB0
eXBlOiBob3ZlcgotICAgIHVzZUNhcHR1cmU6IHRydWUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFuay5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFu
ay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2U4MDYzNDAwNWYzZjZiMGRk
OTY5NmQ2NmZkMmQzZTM1ZTY0ZWIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5l
cnMtYWJvdXQtYmxhbmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24g
c2V0dXBFdmVudExpc3RlbmVycygpCi17Ci0gICAgZnVuY3Rpb24gZigpIHt9Ci0gICAgdmFyIGZy
YW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15ZnJhbWUiKTsKLSAgICB2YXIgYm9keSA9
IGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5OwotICAgIGJvZHkuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBmLCB0cnVlKTsKLSAgICB2YXIgZGl2ID0gZnJhbWUuY29udGVudERvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRpdi5pZCA9ICJkaXYtaW4taWZyYW1lIjsKLSAgICBk
aXYuYWRkRXZlbnRMaXN0ZW5lcigiaG92ZXIiLCBmLCB0cnVlKTsKLSAgICBib2R5LmFwcGVuZENo
aWxkKGRpdik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5ldmVudExpc3RlbmVyc0ZpbHRlci5zZXQoImFsbCIpOwotICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoInNldHVwRXZlbnRMaXN0ZW5lcnMoKSIsIHN0ZXAxKTsKLQotICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdp
dGhJZCgiZGl2LWluLWlmcmFtZSIsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEFuZER1bXBTZWxlY3RlZEVs
ZW1lbnRFdmVudExpc3RlbmVycyhJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCk7Ci0gICAgfQot
fQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+
Ci1UZXN0cyBldmVudCBsaXN0ZW5lcnMgb3V0cHV0IGluIHRoZSBFbGVtZW50cyBzaWRlYmFyIHBh
bmVsIHdoZW4gdGhlIGxpc3RlbmVycyBhcmUgYWRkZWQgb24gYW4gZWxlbWVudCBpbiBhYm91dDpi
bGFuayBwYWdlLgotPC9wPgotCi08aWZyYW1lIGlkPSJteWZyYW1lIj48L2lmcmFtZT4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2V4cGFuZC1yZWN1cnNpdmVseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvZXhwYW5kLXJlY3Vyc2l2ZWx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzUxNWI5MmU0MmE0NTc5NjI3MDdmZTE5Y2U4NGRiYzZiNjYyYmQzMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvZXhwYW5kLXJlY3Vyc2l2ZWx5LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLVRlc3RzIHRoYXQgZXhwYW5kaW5nIGVsZW1lbnRz
IHJlY3Vyc2l2ZWx5IHdvcmtzLgotCi09PT09PSBJbml0aWFsIHN0YXRlIG9mIHRyZWUgb3V0bGlu
ZSA9PT09PQotCi0rIDxkaXYgaWQ9ImRlcHRoLTEiPuKApjwvZGl2PgotCi09PT09PSBTdGF0ZSBv
ZiB0cmVlIG91dGxpbmUgYWZ0ZXIgY2FsbGluZyAuZXhwYW5kUmVjdXJzaXZlbHkoKSA9PT09PQot
Ci0tIDxkaXYgaWQ9ImRlcHRoLTEiPgotICAgIC0gPGRpdiBpZD0iZGVwdGgtMiI+Ci0gICAgICAg
IC0gPGRpdiBpZD0iZGVwdGgtMyI+Ci0gICAgICAgICAgICAtIDxkaXYgaWQ9ImRlcHRoLTQiPgot
ICAgICAgICAgICAgICAgIC0gPGRpdiBpZD0iZGVwdGgtNSI+Ci0gICAgICAgICAgICAgICAgICAg
IC0gPGRpdiBpZD0iZGVwdGgtNiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAtIDxkaXYgaWQ9
ImRlcHRoLTciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gPGRpdiBpZD0iZGVwdGgt
OCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gPGRpdiBpZD0iZGVwdGgtOSI+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoLTEw
Ij48L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAg
IDwvZGl2PgotICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICA8L2Rpdj4KLSAgICAgIDwv
ZGl2PgotICA8L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2V4cGFuZC1yZWN1cnNpdmVseS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2V4cGFuZC1yZWN1cnNpdmVseS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhMGZjOGI4ZDdmMjYzNTgxOWFmZTAwMDcwM2ZmZDJlOTI0YzI2MDcwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy9leHBhbmQtcmVjdXJzaXZlbHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVu
dHMiKTsKLSAgICB2YXIgdHJlZU91dGxpbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRz
LnRyZWVPdXRsaW5lOwotICAgIEluc3BlY3RvclRlc3QuZmluZE5vZGUoZnVuY3Rpb24oKSB7IHJl
dHVybiBmYWxzZTsgfSwgZmlyc3RTdGVwKTsKLSAgICAgICAgCi0gICAgZnVuY3Rpb24gZmlyc3RT
dGVwKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBJbml0
aWFsIHN0YXRlIG9mIHRyZWUgb3V0bGluZSA9PT09PVxuIik7Ci0gICAgICAgIGR1bXAoKTsKLQot
ICAgICAgICB2YXIgdG9wTm9kZSA9IHRyZWVPdXRsaW5lLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFd
LmNoaWxkcmVuWzFdOwotICAgICAgICB0b3BOb2RlLmV4cGFuZFJlY3Vyc2l2ZWx5KCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhzZWNvbmRTdGVwKTsK
LSAgICB9OwotICAgICAgICAKLSAgICBmdW5jdGlvbiBzZWNvbmRTdGVwKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcbj09PT09IFN0YXRlIG9mIHRyZWUgb3V0bGlu
ZSBhZnRlciBjYWxsaW5nIC5leHBhbmRSZWN1cnNpdmVseSgpID09PT09XG4iKTsKLSAgICAgICAg
ZHVtcCgpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfTsK
LQotICAgIGZ1bmN0aW9uIGR1bXAoKQotICAgIHsKLSAgICAgICAgdmFyIG5vZGUgPSBJbnNwZWN0
b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgiZGVwdGgtMSIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmR1bXBFbGVtZW50c1RyZWUobm9kZSk7Ci0gICAgfTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBleHBhbmRp
bmcgZWxlbWVudHMgcmVjdXJzaXZlbHkgd29ya3MuCi08L3A+Ci0KLTxkaXYgaWQ9ImRlcHRoLTEi
PgotICAgIDxkaXYgaWQ9ImRlcHRoLTIiPgotICAgICAgICA8ZGl2IGlkPSJkZXB0aC0zIj4KLSAg
ICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoLTQiPgotICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRl
cHRoLTUiPgotICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkZXB0aC02Ij4KLSAgICAgICAg
ICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoLTciPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxkaXYgaWQ9ImRlcHRoLTgiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGlkPSJkZXB0aC05Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxkaXYgaWQ9ImRlcHRoLTEwIj48L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAg
ICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAgPC9kaXY+Ci0gICAg
PC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZGUtc2hvcnRjdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2hpZGUtc2hvcnRjdXQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjdjODhjMWYxNjU1NmU2ZjQ4ZTAxMGUyYTdhZjI0
ODViZTc1MjM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9oaWRlLXNob3J0Y3V0LWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRlc3RzIHRoZSBoaWRlIHNob3J0Y3V0
LCB3aGljaCB0b2dnbGVzIHZpc2liaWxpdHk6aGlkZGVuIG9uIHRoZSBub2RlIGFuZCBpdCdzIGFu
Y2VzdG9ycy4gQnVnIDExMDY0MQotCi1wYXJlbnQKLWNoaWxkCi0KLQotUnVubmluZzogdGVzdFNl
dFVwCi0KLVJ1bm5pbmc6IHRlc3RUb2dnbGVIaWRlU2hvcnRjdXRPbgotPT09IEFkZGVkIGhpZGUg
c2hvcnRjdXQgPT09Ci09PT0gUGFyZW50IG5vZGUgaXMgaGlkZGVuID09PQotdmlzaWJpbGl0eTog
aGlkZGVuOwotPT09IENoaWxkIG5vZGUgaXMgaGlkZGVuID09PQotdmlzaWJpbGl0eTogaGlkZGVu
OwotCi1SdW5uaW5nOiB0ZXN0VG9nZ2xlSGlkZVNob3J0Y3V0T2ZmCi09PT0gUmVtb3ZlZCBoaWRl
IHNob3J0Y3V0ID09PQotPT09IFBhcmVudCBub2RlIGlzIHZpc2libGUgPT09Ci12aXNpYmlsaXR5
OiB2aXNpYmxlOwotPT09IENoaWxkIG5vZGUgaXMgdmlzaWJsZSA9PT0KLXZpc2liaWxpdHk6IHZp
c2libGU7Ci0KLVJ1bm5pbmc6IHRlc3RUb2dnbGVIaWRlU2hvcnRjdXRPbkluRnJhbWUKLT09PSBB
ZGRlZCBoaWRlIHNob3J0Y3V0IGluIGZyYW1lID09PQotPT09IEZyYW1lIG5vZGUgaXMgaGlkZGVu
ID09PQotdmlzaWJpbGl0eTogaGlkZGVuOwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvaGlkZS1zaG9ydGN1dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzL2hpZGUtc2hvcnRjdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMGY5ZTY0YTBjM2M5MGY4NmY5NzFiNDZiZjU0ZGY1ZGE1YjgwOTEzNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvaGlkZS1zaG9ydGN1dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRyZWVPdXRsaW5lOwotICAgIHZhciBwYXJlbnRO
b2RlOwotICAgIHZhciBjaGlsZE5vZGU7Ci0gICAgdmFyIGZyYW1lTm9kZTsKLQotICAgIFdlYklu
c3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdHJlZU91dGxpbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVP
dXRsaW5lOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInBhcmVudC1u
b2RlIiwgY2FsbGJhY2spOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSBub2RlCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJjaGlsZC1ub2RlIiwgY2FsbGJhY2sy
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2syKG5vZGUp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2hpbGROb2RlID0gbm9kZTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoImZyYW1lLW5vZGUiLCBjYWxsYmFj
azMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjazMobm9k
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBub2RlOwotICAg
ICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAg
ICBmdW5jdGlvbiB0ZXN0VG9nZ2xlSGlkZVNob3J0Y3V0T24obmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdHJlZU91dGxpbmUuX3RvZ2dsZUhpZGVTaG9ydGN1dChwYXJlbnROb2RlLCBjYWxs
YmFjayk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFkZGVkIGhpZGUg
c2hvcnRjdXQgPT09Iik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdl
dENvbXB1dGVkU3R5bGVBc3luYyhwYXJlbnROb2RlLmlkLCBjYWxsYmFjazIpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjazIoc3R5bGUpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBQYXJlbnQg
bm9kZSBpcyBoaWRkZW4gPT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoc3R5bGUuZ2V0TGl2ZVByb3BlcnR5KCJ2aXNpYmlsaXR5IikucHJvcGVydHlUZXh0KTsK
LSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Q29tcHV0ZWRTdHlsZUFz
eW5jKGNoaWxkTm9kZS5pZCwgY2FsbGJhY2szKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2szKHN0eWxlKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQ2hpbGQgbm9kZSBpcyBoaWRkZW4gPT09
Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc3R5bGUuZ2V0TGl2
ZVByb3BlcnR5KCJ2aXNpYmlsaXR5IikucHJvcGVydHlUZXh0KTsKLSAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dFRvZ2dsZUhpZGVTaG9ydGN1dE9mZihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB0cmVl
T3V0bGluZS5fdG9nZ2xlSGlkZVNob3J0Y3V0KHBhcmVudE5vZGUsIGNhbGxiYWNrKTsKLQotICAg
ICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gUmVtb3ZlZCBoaWRlIHNob3J0Y3V0ID09
PSIpOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRDb21wdXRlZFN0
eWxlQXN5bmMocGFyZW50Tm9kZS5pZCwgY2FsbGJhY2syKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2syKHN0eWxlKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gUGFyZW50IG5vZGUgaXMgdmlz
aWJsZSA9PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChzdHls
ZS5nZXRMaXZlUHJvcGVydHkoInZpc2liaWxpdHkiKS5wcm9wZXJ0eVRleHQpOwotICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRDb21wdXRlZFN0eWxlQXN5bmMoY2hpbGRO
b2RlLmlkLCBjYWxsYmFjazMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBjYWxsYmFjazMoc3R5bGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIj09PSBDaGlsZCBub2RlIGlzIHZpc2libGUgPT09Iik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoc3R5bGUuZ2V0TGl2ZVByb3BlcnR5
KCJ2aXNpYmlsaXR5IikucHJvcGVydHlUZXh0KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFRvZ2dsZUhp
ZGVTaG9ydGN1dE9uSW5GcmFtZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB0cmVlT3V0
bGluZS5fdG9nZ2xlSGlkZVNob3J0Y3V0KGZyYW1lTm9kZSwgY2FsbGJhY2spOwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZGRlZCBoaWRlIHNob3J0Y3V0IGluIGZyYW1l
ID09PSIpOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRDb21wdXRl
ZFN0eWxlQXN5bmMoZnJhbWVOb2RlLmlkLCBjYWxsYmFjazIpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjazIoc3R5bGUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBGcmFtZSBub2RlIGlzIGhp
ZGRlbiA9PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChzdHls
ZS5nZXRMaXZlUHJvcGVydHkoInZpc2liaWxpdHkiKS5wcm9wZXJ0eVRleHQpOwotICAgICAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPHA+Ci1UZXN0cyB0aGUgaGlkZSBzaG9ydGN1dCwg
d2hpY2ggdG9nZ2xlcyB2aXNpYmlsaXR5OmhpZGRlbiBvbiB0aGUgbm9kZSBhbmQgaXQncyBhbmNl
c3RvcnMuCi08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEwNjQxIj5CdWcgMTEwNjQxPC9hPgotPC9wPgotCi08ZGl2IGlkPSJwYXJlbnQtbm9kZSI+cGFy
ZW50Ci0gICAgPGRpdiBzdHlsZT0idmlzaWJpbGl0eTpoaWRkZW4iPmhpZGRlbgotICAgICAgICA8
ZGl2IGlkPSJjaGlsZC1ub2RlIiBzdHlsZT0idmlzaWJpbGl0eTp2aXNpYmxlIj5jaGlsZDwvZGl2
PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaGlkZS1zaG9y
dGN1dC1pZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaWZyYW1lLWxvYWQt
ZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2lmcmFt
ZS1sb2FkLWV2ZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YzM5YjQ2MTA1MWM1YzgxNDg5MWVlM2NjNDgyMjgwNzBmZjNkNTM0YS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaWZyYW1lLWxvYWQtZXZlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MzAgKzAsMCBAQAotVGVzdHMgdGhhdCBpZnJhbWUgY29udGVudCBpcyBhdmFpbGFibGUgYWZ0ZXIg
aWZyYW1lJ3MgbG9hZCBldmVudCBmaXJlZC4gU2VlIGJ1ZyA3NjU1Mi4KLQotCi0KLQotQWZ0ZXIg
ZnJhbWUgbmF2aWdhdGUKLS0gPGh0bWw+Ci0gICAgLSA8aGVhZD4KLSAgICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS5qcyI+PC9zY3JpcHQ+Ci0gICAgICA8L2hlYWQ+
Ci0gICAgLSA8Ym9keT4KLSAgICAgICAgLSA8cD4KLSAgICAgICAgICAgICAgIlxuVGVzdHMgdGhh
dCBpZnJhbWUgY29udGVudCBpcyBhdmFpbGFibGUgYWZ0ZXIgaWZyYW1lJ3MgbG9hZCBldmVudCBm
aXJlZC4gU2VlICIKLSAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi83
NjU1MiI+YnVnIDc2NTUyPC9hPgotICAgICAgICAgICAgICAiLlxuIgotICAgICAgICAgIDwvcD4K
LSAgICAgICAgLSA8aWZyYW1lIGlkPSJteWZyYW1lIiBzcmM9InJlc291cmNlcy9pZnJhbWUtbG9h
ZC1ldmVudC1pZnJhbWUtMi5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgICAgICAgICAt
ICNkb2N1bWVudAotICAgICAgICAgICAgLSA8aHRtbD4KLSAgICAgICAgICAgICAgICAgIDxoZWFk
PjwvaGVhZD4KLSAgICAgICAgICAgICAgICAtIDxib2R5PgotICAgICAgICAgICAgICAgICAgICAg
IDxkaXYgaWQ9ImlmcmFtZS0yLWVsZW1lbnQiPjwvZGl2PgotICAgICAgICAgICAgICAgICAgPC9i
b2R5PgotICAgICAgICAgICAgICA8L2h0bWw+Ci0gICAgICAgICAgPC9pZnJhbWU+Ci0gICAgICA8
L2JvZHk+Ci0gIDwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2lmcmFtZS1sb2FkLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvaWZyYW1lLWxvYWQtZXZlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjQwYzI3OGNiMzcwZTBkNGQ0ZjU0ODUzOWFjYmI1ZTg2M2ZhMWRiZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvaWZyYW1lLWxvYWQtZXZlbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9pZnJhbWUtbG9hZC1ldmVudC1pZnJhbWUuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08cD4KLVRlc3RzIHRoYXQgaWZyYW1lIGNvbnRlbnQgaXMgYXZhaWxhYmxl
IGFmdGVyIGlmcmFtZSdzIGxvYWQgZXZlbnQgZmlyZWQuIFNlZSA8YSBocmVmPSJodHRwOi8vd2Vi
a2l0Lm9yZy9iLzc2NTUyIj5idWcgNzY1NTI8L2E+LgotPC9wPgotPGlmcmFtZSBpZD0ibXlmcmFt
ZSIgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZyYW1lLTEuaHRtbCIgb25sb2Fk
PSJydW5UZXN0KCkiPjwvaWZyYW1lPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWNvbGxhcHNlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUtY29sbGFw
c2VkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjkxNjhlMjUx
ODFjYjYxOGI4NDFiZTM1MWYzNmNmOTIyNjY2ZWIwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvaW5z
ZXJ0LW5vZGUtY29sbGFwc2VkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICsw
LDAgQEAKLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBoYXNDaGlsZHJlbiBmbGFn
IHVwb24gYWRkaW5nIGNoaWxkcmVuIHRvIGNvbGxhcHNlZCBub2Rlcy4KLQotCi1SdW5uaW5nOiB0
ZXN0RHVtcEluaXRpYWwKLT09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PQotICA8ZGl2IGlkPSJj
b250YWluZXIiPjwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0QXBwZW5kCi09PT09PT09PSBBcHBlbmRl
ZCA9PT09PT09PT0KLSsgPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWNvbGxhcHNlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWNvbGxhcHNlZC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGI0YjYyZDM0YWY2YjgxNTJhY2Fl
ZjcwNzk0ZGY2YzQ4NTVjOTg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1jb2xs
YXBzZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBhcHBlbmRDaGlsZCgpCi17Ci0g
ICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsK
LSAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBjaGls
ZC5zZXRBdHRyaWJ1dGUoImlkIiwgImFwcGVuZGVkIik7Ci0gICAgY29udGFpbmVyLmFwcGVuZENo
aWxkKGNoaWxkKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGNvbnRhaW5lck5v
ZGU7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3REdW1wSW5pdGlhbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBj
YWxsYmFjayhub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnRhaW5lck5v
ZGUgPSBub2RlOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09
PT09PT0gT3JpZ2luYWwgPT09PT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0
aElkKCJjb250YWluZXIiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rp
b24gdGVzdEFwcGVuZChuZXh0KSB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09
PT09PT09IEFwcGVuZGVkID09PT09PT09PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAgICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJhcHBlbmRDaGlsZCgpIiwgY2FsbGJhY2spOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBoYXNDaGlsZHJlbiBmbGFnIHVwb24gYWRk
aW5nIGNoaWxkcmVuIHRvIGNvbGxhcHNlZCBub2Rlcy4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFp
bmVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9pbnNlcnQtbm9kZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFmMGRlYjFmMDdhZjc0MDA1Y2QzYzJmMjc2ZDFkOTMzNmQ0ZWI4
OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDcwICswLDAgQEAKLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRl
cyBkb20gdHJlZSBzdHJ1Y3R1cmUgdXBvbiBub2RlIGluc2VydGlvbi4KLQotRmlyc3QgdGV4dAot
Ci1SdW5uaW5nOiB0ZXN0RHVtcEluaXRpYWwKLT09PT09PT09PSBPcmlnaW5hbCA9PT09PT09PQot
LSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KLSAg
ICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2
PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdEluc2VydEJlZm9yZQotPT09PT0gSW5zZXJ0ZWQg
YmVmb3JlID09PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGls
ZC1iZWZvcmUiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KLSAgICAgIDxk
aXYgaWQ9ImNoaWxkMiI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PgotICA8
L2Rpdj4KLQotUnVubmluZzogdGVzdEluc2VydE1pZGRsZQotPT09PT0gSW5zZXJ0ZWQgbWlkZGxl
ID09PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZC1iZWZv
cmUiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9
ImNoaWxkLW1pZGRsZSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PgotICAg
ICAgPGRpdiBpZD0iY2hpbGQzIj48L2Rpdj4KLSAgPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RBcHBl
bmQKLT09PT09PT09IEFwcGVuZGVkID09PT09PT09PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgot
ICAgICAgPGRpdiBpZD0iY2hpbGQtYmVmb3JlIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxk
MSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZC1taWRkbGUiPjwvZGl2PgotICAgICAgPGRp
diBpZD0iY2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMyI+PC9kaXY+Ci0gICAg
ICA8ZGl2IGlkPSJjaGlsZC1hZnRlciI+PC9kaXY+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0
QXBwZW5kV2l0aFRleHQKLT09PT09PT09IEFwcGVuZGVkIHdpdGggdGV4dD09PT09PT09PQotLSA8
ZGl2IGlkPSJjb250YWluZXIiPgotICAgICAgPGRpdiBpZD0iY2hpbGQtYmVmb3JlIj48L2Rpdj4K
LSAgICAgIDxkaXYgaWQ9ImNoaWxkMSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZC1taWRk
bGUiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9
ImNoaWxkMyI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZC1hZnRlciI+PC9kaXY+Ci0gICAg
ICA8ZGl2IGlkPSJjaGlsZC13aXRoLXRleHQiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+VGV4dDwv
ZGl2PgotICA8L2Rpdj4KLVN1Y2Nlc3M6IGNoaWxkIHRleHQgaXMgYm91bmQKLQotUnVubmluZzog
dGVzdEluc2VydEZpcnN0VGV4dE5vZGUKLT09PT09PT09IEluc2VydGVkIGZpcnN0IHRleHQgbm9k
ZSA9PT09PT09PT0KLS0gPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxk
LWJlZm9yZSI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgPGRp
diBpZD0iY2hpbGQtbWlkZGxlIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+
Ci0gICAgLSA8ZGl2IGlkPSJjaGlsZDMiPgotICAgICAgICAgICJGaXJzdCB0ZXh0IgotICAgICAg
PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZC1hZnRlciI+PC9kaXY+Ci0gICAgICA8ZGl2IGlk
PSJjaGlsZC13aXRoLXRleHQiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+VGV4dDwvZGl2PgotICA8
L2Rpdj4KLVN1Y2Nlc3M6IGNoaWxkIHRleHQgaXMgYm91bmQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2luc2VydC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjUyNjE3NWMzNGZiZDEzNTBhOGQ4MGE0ZmY3MWFlNzY5MGE5ZjJmNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvaW5zZXJ0LW5vZGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE0OSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0KLWZ1bmN0aW9uIGluc2VydEJlZm9yZUZpcnN0KCkKLXsKLSAgICB2YXIgY29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwotICAgIHZhciBjaGlsZCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgiaWQi
LCAiY2hpbGQtYmVmb3JlIik7Ci0gICAgY29udGFpbmVyLmluc2VydEJlZm9yZShjaGlsZCwgY29u
dGFpbmVyLmZpcnN0Q2hpbGQpOwotfQotCi1mdW5jdGlvbiBpbnNlcnROb2RlKCkKLXsKLSAgICB2
YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwotICAg
IHZhciBjaGlsZDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hpbGQyIik7Ci0gICAgdmFy
IGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgY2hpbGQuc2V0QXR0
cmlidXRlKCJpZCIsICJjaGlsZC1taWRkbGUiKTsKLSAgICBjb250YWluZXIuaW5zZXJ0QmVmb3Jl
KGNoaWxkLCBjaGlsZDIpOwotfQotCi1mdW5jdGlvbiBhcHBlbmRDaGlsZCgpCi17Ci0gICAgdmFy
IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKLSAgICB2
YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBjaGlsZC5zZXRB
dHRyaWJ1dGUoImlkIiwgImNoaWxkLWFmdGVyIik7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxk
KGNoaWxkKTsKLX0KLQotZnVuY3Rpb24gYXBwZW5kQ2hpbGRXaXRoVGV4dCgpCi17Ci0gICAgdmFy
IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKLSAgICB2
YXIgY2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBjaGlsZC5zZXRB
dHRyaWJ1dGUoImlkIiwgImNoaWxkLXdpdGgtdGV4dCIpOwotICAgIGNoaWxkLnNldEF0dHJpYnV0
ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKLSAgICBjaGlsZC5pbm5lclRleHQgPSAiVGV4
dCI7Ci0gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNoaWxkKTsKLX0KLQotZnVuY3Rpb24gaW5z
ZXJ0Rmlyc3RUZXh0Tm9kZSgpCi17Ci0gICAgdmFyIGNoaWxkMyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjaGlsZDMiKTsKLSAgICBjaGlsZDMuaW5uZXJUZXh0ID0gIkZpcnN0IHRleHQiOwot
fQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgY29udGFpbmVyTm9kZTsKLQotICAgIElu
c3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdER1bXBJbml0
aWFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGUp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29udGFpbmVyTm9kZSA9IEluc3BlY3Rv
clRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJjb250YWluZXIiKTsKLQotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT0gT3JpZ2luYWwgPT09PT09PT0iKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVy
Tm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoY2FsbGJhY2spOwotICAgICAgICB9
LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJbnNlcnRCZWZvcmUobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBJbnNlcnRlZCBiZWZvcmUgPT09
PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29u
dGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiaW5zZXJ0QmVmb3JlRmlyc3Qo
KSIsIGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0
TWlkZGxlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
PT09PT0gSW5zZXJ0ZWQgbWlkZGxlID09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoImluc2VydE5vZGUoKSIsIGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0QXBwZW5kKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiPT09PT09PT0gQXBwZW5kZWQgPT09PT09PT09Iik7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAg
ICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImFwcGVuZENoaWxkKCkiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEFwcGVuZFdpdGhUZXh0KG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09PT0gQXBwZW5kZWQgd2l0aCB0
ZXh0PT09PT09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVu
dHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAgIHZhciBuZXdOb2RlID0gSW5z
cGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoImNoaWxkLXdpdGgtdGV4dCIpOwotICAgICAg
ICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5ld05vZGUuZmly
c3RDaGlsZC5pZCkpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTdWNjZXNzOiBjaGlsZCB0ZXh0IGlzIGJvdW5kIik7Ci0gICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmFpbGVkOiBjaGls
ZCB0ZXh0IGlzIG5vdCBib3VuZCIpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImFwcGVuZENo
aWxkV2l0aFRleHQoKSIsIGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biB0ZXN0SW5zZXJ0Rmlyc3RUZXh0Tm9kZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBm
dW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09IEluc2VydGVkIGZpcnN0IHRleHQgbm9kZSA9PT09
PT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJl
ZShjYWxsYmFjazIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjazIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAgICAgICAgICAgICB2YXIgbmV3Tm9k
ZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJjaGlsZDMiKTsKLSAgICAgICAg
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVGb3JJZChuZXdOb2RlLmZpcnN0
Q2hpbGQuaWQpKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
U3VjY2VzczogY2hpbGQgdGV4dCBpcyBib3VuZCIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZhaWxlZDogY2hpbGQg
dGV4dCBpcyBub3QgYm91bmQiKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJpbnNlcnRGaXJz
dFRleHROb2RlKCkiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhh
dCBlbGVtZW50cyBwYW5lbCB1cGRhdGVzIGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIG5vZGUgaW5z
ZXJ0aW9uLgotPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiPjxkaXYgaWQ9ImNoaWxkMSI+PC9k
aXY+PGRpdiBpZD0iY2hpbGQyIj48L2Rpdj48ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PjwvZGl2Pgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvbW9kaWZ5LWNoYXJkYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9tb2RpZnktY2hhcmRhdGEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3YWVkNDY5YjQ4M2E5NzBiZDA4MmFhNTllYTg5YzNiMGE1ZjEzODFiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9tb2RpZnktY2hhcmRhdGEtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGVzdHMgdGhhdCBlbGVtZW50cyBwYW5lbCB1cGRhdGVz
IGRvbSB0cmVlIHN0cnVjdHVyZSB1cG9uIGNoYW5nZXMgdG8gY2hhcmFjdGVycy4KLQotQmFyCi1M
b3JlbSBpcHN0ZXN0bG9yIHNpdCBhbWV0Ci0KLVJ1bm5pbmc6IHRlc3REdW1wSW5pdGlhbAotPT09
PT09PT09IE9yaWdpbmFsIGZvciBub3JtYWwgbXV0YXRpb24gPT09PT09PT0KLSAgPGRpdiBpZD0i
bm9kZSI+Rm9vPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3RTZXRBdHRyaWJ1dGUKLT09PT09IE11dGF0
ZWQgdGV4dCBub2RlID09PT09Ci0gIDxkaXYgaWQ9Im5vZGUiPkJhcjwvZGl2PgotCi1SdW5uaW5n
OiB0ZXN0TW9kaWZ5VmlhUmFuZ2UKLT09PT09PT09PSBPcmlnaW5hbCBmb3IgUmFuZ2UgbXV0YXRp
b24gPT09PT09PT0KLSAgPGRpdiBpZD0icmFuZ2Vub2RlIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldDwvZGl2PgotPT09PT0gQ29udGVudHMgbW9kaWZpZWQgdmlhIFJhbmdlID09PT09Ci0tIDxk
aXYgaWQ9InJhbmdlbm9kZSI+Ci0gICAgICAiTG9yZW0gaXBzIgotICAgICAgPHNwYW4+dGVzdDwv
c3Bhbj4KLSAgICAgICJsb3Igc2l0IGFtZXQiCi0gIDwvZGl2PgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbW9kaWZ5LWNoYXJkYXRhLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbW9kaWZ5LWNoYXJkYXRhLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA4YWIwYTZkNDU3NjQ0Y2E2NWFlODU1NjRhYzJiYjUxNDE5YmVj
YTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL21vZGlmeS1jaGFyZGF0YS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsOTAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBtb2RpZnlDaGFycygpCi17Ci0gICAgdmFyIG5vZGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9kZSIpOwotICAgIG5vZGUuZmlyc3RDaGlsZC50
ZXh0Q29udGVudCA9ICJCYXIiOwotfQotCi1mdW5jdGlvbiBtb2RpZnlWaWFSYW5nZSgpCi17Ci0g
ICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKLSAgICB2YXIgcmVmZXJlbmNl
Tm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyYW5nZW5vZGUiKS5maXJzdENoaWxkOwot
ICAgIHJhbmdlLnNlbGVjdE5vZGUocmVmZXJlbmNlTm9kZSk7Ci0gICAgcmFuZ2Uuc2V0U3RhcnQo
cmVmZXJlbmNlTm9kZSwgOSk7Ci0gICAgcmFuZ2Uuc2V0RW5kKHJlZmVyZW5jZU5vZGUsIDkgKyA1
KTsKLSAgICByYW5nZS5kZWxldGVDb250ZW50cygpOwotICAgIHZhciBzcGFuID0gcmFuZ2Uuc3Rh
cnRDb250YWluZXIub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgc3Bh
bi5pbm5lckhUTUwgPSAidGVzdCI7Ci0gICAgcmFuZ2UuaW5zZXJ0Tm9kZShzcGFuKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRhcmdldE5vZGU7Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3REdW1wSW5pdGlhbChuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhub2RlKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBub2RlOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT0gT3JpZ2luYWwgZm9yIG5vcm1h
bCBtdXRhdGlvbiA9PT09PT09PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cEVsZW1lbnRzVHJlZSh0YXJnZXROb2RlKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoIm5v
ZGUiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldEF0
dHJpYnV0ZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ij09PT09IE11dGF0ZWQgdGV4dCBub2RlID09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRhcmdldE5vZGUpOwotICAgICAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoIm1vZGlmeUNoYXJzKCkiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdE1vZGlmeVZpYVJhbmdlKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gQ29udGVudHMgbW9kaWZpZWQgdmlhIFJhbmdlID09
PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRh
cmdldE5vZGUpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGV4cGFuZENhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShjYWxsYmFjayk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBmdW5jdGlvbiBzZWxlY3RDYWxsYmFjayhub2RlKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBub2RlOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT0gT3JpZ2luYWwgZm9yIFJh
bmdlIG11dGF0aW9uID09PT09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wRWxlbWVudHNUcmVlKHRhcmdldE5vZGUpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlmeVZpYVJhbmdlKCkiLCBleHBhbmRDYWxsYmFjayk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQo
InJhbmdlbm9kZSIsIHNlbGVjdENhbGxiYWNrKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0
cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgZG9tIHRyZWUgc3RydWN0dXJlIHVwb24gY2hh
bmdlcyB0byBjaGFyYWN0ZXJzLgotPC9wPgotCi08ZGl2IGlkPSJub2RlIj5Gb288L2Rpdj4KLTxk
aXYgaWQ9InJhbmdlbm9kZSI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2Rpdj4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L21vdmUtbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
bW92ZS1ub2RlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFm
MDA3NzVjN2FkMjFjMDlhN2RlYjExYTFjMTM0N2Q3ZDViM2E3Ny4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvbW92ZS1ub2RlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAK
LVRlc3RzIGVsZW1lbnRzIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uIGludGVybmFscywgdmVyaWZp
ZXMgcG9zdC1tb3ZlIHNlbGVjdGlvbi4KLQotCi1SdW5uaW5nOiB0ZXN0RHVtcEluaXRpYWwKLT09
PT09PT09PSBPcmlnaW5hbCA9PT09PT09PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgICAg
PGRpdiBpZD0iY2hpbGQxIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkMiI+PC9kaXY+Ci0g
ICAgICA8ZGl2IGlkPSJjaGlsZDMiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQ0Ij48L2Rp
dj4KLSAgPC9kaXY+Ci0KLVJ1bm5pbmc6IHRlc3REcmFnQW5kRHJvcAotPT09PT0gTW92ZWQgY2hp
bGQyID09PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDEi
PjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQzIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNo
aWxkMiI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDQiPjwvZGl2PgotICA8L2Rpdj4KLVNl
bGVjdGlvbjogZGl2I2NoaWxkMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvbW92ZS1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
bW92ZS1ub2RlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkMzVlZTA3MTUz
YTViNWVhOGM1OTc3M2I1MWM3MjM5NWQ2MjA3MWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL21vdmUt
bm9kZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgY29udGFpbmVyTm9kZTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRl
KFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdER1bXBJbml0aWFsKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgY29udGFpbmVyTm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElk
KCJjb250YWluZXIiKTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCI9PT09PT09PT0gT3JpZ2luYWwgPT09PT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAg
bmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRF
bGVtZW50c1RyZWUoY2FsbGJhY2spOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3REcmFnQW5kRHJvcChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdHJlZU91dGxp
bmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lOwotICAgICAgICAg
ICAgdHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
T3V0bGluZS5FdmVudHMuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgc2VsZWN0aW9uQ2hhbmdlZCk7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHNlbGVjdGlvbkNoYW5nZWQoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PSBNb3ZlZCBjaGls
ZDIgPT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1Ry
ZWUoY29udGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlNlbGVjdGlvbjogIiArIHRyZWVPdXRsaW5lLnNlbGVjdGVkRE9NTm9kZSgpLmFwcHJvcHJp
YXRlU2VsZWN0b3JGb3IoKSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICB0cmVlT3V0bGluZS5fdHJlZUVsZW1lbnRCZWluZ0RyYWdnZWQgPSB0
cmVlT3V0bGluZS5nZXRDYWNoZWRUcmVlRWxlbWVudChJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9k
ZVdpdGhJZCgiY2hpbGQyIikpOwotICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50VG9Ecm9wT24g
PSB0cmVlT3V0bGluZS5nZXRDYWNoZWRUcmVlRWxlbWVudChJbnNwZWN0b3JUZXN0LmV4cGFuZGVk
Tm9kZVdpdGhJZCgiY2hpbGQ0IikpOwotICAgICAgICAgICAgdHJlZU91dGxpbmUuX2RvTW92ZSh0
cmVlRWxlbWVudFRvRHJvcE9uKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBlbGVtZW50
cyBkcmFnIGFuZCBkcm9wIG9wZXJhdGlvbiBpbnRlcm5hbHMsIHZlcmlmaWVzIHBvc3QtbW92ZSBz
ZWxlY3Rpb24uCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iY2hp
bGQxIj48L2Rpdj4KLSAgICA8ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PgotICAgIDxkaXYgaWQ9ImNo
aWxkMyI+PC9kaXY+Ci0gICAgPGRpdiBpZD0iY2hpbGQ0Ij48L2Rpdj4KLTwvZGl2PgotCi08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
bm9kZS14cGF0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
bm9kZS14cGF0aC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNk
NjI3ZDczOTYyZTA4MzA1ZjljMGZjZWI0MmVmMDQxZWM0OWQ2NzkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL25vZGUteHBhdGgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotVGVzdHMgRE9NTm9kZS54UGF0aCgpCi0KLTMgUHJlZml4ICBTdWZmaXgKLTQKLTUKLTYKLScj
ZG9jdW1lbnQnOicnIC0gJy8nCi0gICcnOicgUHJlLWNvbW1lbnQgJyAtICcvY29tbWVudCgpWzFd
JwotICAnaHRtbCc6JycgLSAnL2h0bWwnCi0gICAgJ2hlYWQnOicnIC0gJy9odG1sL2hlYWQnCi0g
ICAgICAnc2NyaXB0JzonJyAtICcvLypbQGlkPSJzY3JpcHQtaWQiXScKLSAgICAgICdzY3JpcHQn
OicnIC0gJy9odG1sL2hlYWQvc2NyaXB0WzJdJwotICAgICAgJ3NjcmlwdCc6JycgLSAnL2h0bWwv
aGVhZC9zY3JpcHRbNF0nCi0gICAgICAgICcnOidcbi8vIENvbW1lbnRcbi8vJyAtICcvaHRtbC9o
ZWFkL3NjcmlwdFs0XS90ZXh0KClbMV0nCi0gICAgICAgICcnOidcbmZ1bmN0aW9uIGYoKVxue1xu
ICAgIGRvY3VtZW50LndyaXRlKCI8Iik7XG59XG4vLycgLSAnL2h0bWwvaGVhZC9zY3JpcHRbNF0v
dGV4dCgpWzJdJwotICAgICdib2R5JzonJyAtICcvaHRtbC9ib2R5JwotICAgICAgJ3AnOicnIC0g
Jy9odG1sL2JvZHkvcCcKLSAgICAgICAgJyc6J1Rlc3RzIERPTU5vZGUueFBhdGgoKScgLSAnL2h0
bWwvYm9keS9wL3RleHQoKScKLSAgICAgICdkaXYnOicnIC0gJy8vKltAaWQ9ImlkMSJdJwotICAg
ICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQyIl0nCi0gICAgICAnZGl2JzonJyAtICcvLypbQGlk
PSJjb250YWluZXIiXScKLSAgICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQzIl0nCi0gICAg
ICAgICAgJyc6JzMgUHJlZml4ICcgLSAnLy8qW0BpZD0iaWQzIl0vdGV4dCgpWzFdJwotICAgICAg
ICAgICcnOic8Z3JlZXRpbmc+SGVsbG8sIHdvcmxkITwvZ3JlZXRpbmc+JyAtICcvLypbQGlkPSJp
ZDMiXS90ZXh0KClbMl0nCi0gICAgICAgICAgJyc6JyBTdWZmaXgnIC0gJy8vKltAaWQ9ImlkMyJd
L3RleHQoKVszXScKLSAgICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQ0Il0nCi0gICAgICAg
ICAgJyc6JzQnIC0gJy8vKltAaWQ9ImlkNCJdL3RleHQoKScKLSAgICAgICAgJ2Rpdic6JycgLSAn
Ly8qW0BpZD0iaWQ1Il0nCi0gICAgICAgICAgJyc6JzUnIC0gJy8vKltAaWQ9ImlkNSJdL3RleHQo
KScKLSAgICAgICAgJ2Rpdic6JycgLSAnLy8qW0BpZD0iaWQ2Il0nCi0gICAgICAgICAgJyc6JzYn
IC0gJy8vKltAaWQ9ImlkNiJdL3RleHQoKScKLSAgJyc6JyBQb3N0LWNvbW1lbnQgJyAtICcvY29t
bWVudCgpWzJdJwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
bm9kZS14cGF0aC54aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ub2RlLXhw
YXRoLnhodG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzllZTI5ZDUzMzBkNWFl
MDk1YjlmYWVkZjk2ZDIwOGNlMTVmNzQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ub2RlLXhwYXRo
LnhodG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPCEtLSBQcmUtY29tbWVudCAt
LT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
IiBpZD0ic2NyaXB0LWlkIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgaWQ9InRlc3Qt
c2NyaXB0Ij4KLS8vPCFbQ0RBVEFbCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShkdW1wTm9kZXMuYmluZChudWxsLCAiIikpOwotICAgIHZh
ciBkb2M7Ci0KLSAgICBmdW5jdGlvbiBkdW1wTm9kZXMocHJlZml4LCBub2RlKQotICAgIHsKLSAg
ICAgICAgaWYgKCFkb2MpIHsKLSAgICAgICAgICAgIGRvYyA9IGdldERvY3VtZW50RWxlbWVudCgp
OwotICAgICAgICAgICAgbm9kZSA9IGRvYzsKLSAgICAgICAgfQotICAgICAgICBpZiAobm9kZS5n
ZXRBdHRyaWJ1dGUoImlkIikgPT09ICJ0ZXN0LXNjcmlwdCIpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGR1bXBOb2RlRGF0YShub2RlLCBwcmVmaXgpOwotICAgICAgICB2YXIgY2hpbGRy
ZW4gPSBub2RlLmNoaWxkcmVuOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgY2hpbGRyZW4gJiYg
aSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgZHVtcE5vZGVzKHByZWZpeCAr
ICIgICIsIGNoaWxkcmVuW2ldKTsKLSAgICAgICAgaWYgKG5vZGUgPT09IGRvYykKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
Z2V0RG9jdW1lbnRFbGVtZW50KCkKLSAgICB7Ci0gICAgICAgIHZhciBtYXAgPSBXZWJJbnNwZWN0
b3IuZG9tQWdlbnQuX2lkVG9ET01Ob2RlOwotICAgICAgICBmb3IgKHZhciBpZCBpbiBtYXApIHsK
LSAgICAgICAgICAgIGlmIChtYXBbaWRdLm5vZGVOYW1lKCkgPT09ICIjZG9jdW1lbnQiKQotICAg
ICAgICAgICAgICAgIHJldHVybiBtYXBbaWRdOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJu
IG51bGw7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcE5vZGVEYXRhKG5vZGUsIHByZWZpeCkK
LSAgICB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBwcmVmaXggKyAiJyIgKyBub2RlLm5vZGVOYW1l
KCkgKyAiJzonIiArIG5vZGUubm9kZVZhbHVlKCkgKyAiJyAtICciICsgbm9kZS54UGF0aCh0cnVl
KSArICInIjsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocmVzdWx0LnJlcGxhY2Uo
L1xuL2csICJcXG4iKSk7Ci0gICAgfQotfQotLy9dXT4KLTwvc2NyaXB0PgotPHNjcmlwdD4KLS8v
IENvbW1lbnQKLS8vPCFbQ0RBVEFbCi1mdW5jdGlvbiBmKCkKLXsKLSAgICBkb2N1bWVudC53cml0
ZSgiPCIpOwotfQotLy9dXT4KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08cD5UZXN0cyBET01Ob2RlLnhQYXRoKCk8L3A+Ci0KLTxkaXYgaWQ9ImlkMSIg
Y2xhc3M9ImZvbyI+PC9kaXY+Ci08ZGl2IGlkPSJpZDIiIGNsYXNzPSJmb28iPjwvZGl2PgotCi08
ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgaWQ9ImlkMyIgY2xhc3M9ImZvbyI+MyBQcmVm
aXggPCFbQ0RBVEFbPGdyZWV0aW5nPkhlbGxvLCB3b3JsZCE8L2dyZWV0aW5nPl1dPiBTdWZmaXg8
L2Rpdj4KLSAgICA8ZGl2IGlkPSJpZDQiIGNsYXNzPSJmb28iPjQ8L2Rpdj4KLSAgICA8ZGl2IGlk
PSJpZDUiIGNsYXNzPSJmb28iPjU8L2Rpdj4KLSAgICA8ZGl2IGlkPSJpZDYiIGNsYXNzPSJmb28i
PjY8L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+Ci08IS0tIFBvc3QtY29tbWVudCAt
LT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZW1vdmUtbm9k
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVtb3ZlLW5v
ZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODhlZTE3ODFl
NzA3Y2Q0MmRmNmQ2YjAzYmE3MjY0Zjk0OWFmZGEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZW1v
dmUtbm9kZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1UZXN0
cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgZG9tIHRyZWUgc3RydWN0dXJlIHVwb24gbm9k
ZSByZW1vdmFsLgotCi0KLVJ1bm5pbmc6IHRlc3REdW1wSW5pdGlhbAotPT09PT09PT09IE9yaWdp
bmFsID09PT09PT09Ci0tIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGls
ZDEiPjwvZGl2PgotICAgICAgPGRpdiBpZD0iY2hpbGQyIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9
ImNoaWxkMyI+PC9kaXY+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDQiPjwvZGl2PgotICA8L2Rpdj4K
LQotUnVubmluZzogdGVzdFJlbW92ZUZpcnN0Ci09PT09PSBSZW1vdmVkIGZpcnN0ID09PT09Ci0t
IDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PgotICAg
ICAgPGRpdiBpZD0iY2hpbGQzIj48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkNCI+PC9kaXY+
Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0UmVtb3ZlTWlkZGxlCi09PT09PSBSZW1vdmVkIG1p
ZGRsZSA9PT09PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgICAgPGRpdiBpZD0iY2hpbGQy
Ij48L2Rpdj4KLSAgICAgIDxkaXYgaWQ9ImNoaWxkNCI+PC9kaXY+Ci0gIDwvZGl2PgotCi1SdW5u
aW5nOiB0ZXN0UmVtb3ZlTGFzdAotPT09PT0gUmVtb3ZlZCBsYXN0ID09PT09Ci0tIDxkaXYgaWQ9
ImNvbnRhaW5lciI+Ci0gICAgICA8ZGl2IGlkPSJjaGlsZDIiPjwvZGl2PgotICA8L2Rpdj4KLQot
UnVubmluZzogdGVzdFJlbW92ZVRoZU9ubHkKLT09PT09IFJlbW92ZWQgdGhlIG9ubHkgPT09PT0K
LS0gPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgPC9kaXY+Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZW1vdmUtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL3JlbW92ZS1ub2RlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGRjNTY2M2NhYzIwMzY0MDRhZTUxODNiODZkZDk2M2NiOGI2NGZlNzQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL3JlbW92ZS1ub2RlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHJlbW92ZU5vZGUoaWQpCi17Ci0gICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoaWQpOwotICAgIGNoaWxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQp
OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgY29udGFpbmVyTm9kZTsKLQotICAg
IEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdER1bXBJ
bml0aWFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5v
ZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29udGFpbmVyTm9kZSA9IEluc3Bl
Y3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJjb250YWluZXIiKTsKLQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT0gT3JpZ2luYWwgPT09PT09PT0i
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29udGFp
bmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoY2FsbGJhY2spOwotICAgICAg
ICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVGaXJzdChuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09IFJlbW92ZWQgZmlyc3QgPT09
PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUoY29u
dGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlTm9kZSgnY2hpbGQx
JykiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92
ZU1pZGRsZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
Ij09PT09IFJlbW92ZWQgbWlkZGxlID09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAgIG5l
eHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoInJlbW92ZU5vZGUoJ2NoaWxkMycpIiwgY2FsbGJhY2spOwotICAgICAgICB9LAotCi0g
ICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVMYXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gUmVtb3ZlZCBsYXN0ID09PT09Iik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUp
OwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJlbW92ZU5vZGUoJ2NoaWxkNCcpIiwgY2FsbGJh
Y2spOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVUaGVPbmx5KG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT0gUmVt
b3ZlZCB0aGUgb25seSA9PT09PSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cEVsZW1lbnRzVHJlZShjb250YWluZXJOb2RlKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJy
ZW1vdmVOb2RlKCdjaGlsZDInKSIsIGNhbGxiYWNrKTsKLSAgICAgICAgfQotICAgIF0pOwotfQot
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1U
ZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHVwZGF0ZXMgZG9tIHRyZWUgc3RydWN0dXJlIHVwb24g
bm9kZSByZW1vdmFsLgotPC9wPgotCi08ZGl2IGlkPSJjb250YWluZXIiPjxkaXYgaWQ9ImNoaWxk
MSI+PC9kaXY+PGRpdiBpZD0iY2hpbGQyIj48L2Rpdj48ZGl2IGlkPSJjaGlsZDMiPjwvZGl2Pjxk
aXYgaWQ9ImNoaWxkNCI+PC9kaXY+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxvYWQt
ZXZlbnQtaWZyYW1lLTEuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNv
dXJjZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZyYW1lLTEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzMwMjRmZTFkNjMwNDM3MWJhZGMxMGY4MWJhNTI2ODE1ZDVkODE0OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS0xLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlk
PSJpZnJhbWUtMS1lbGVtZW50Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxvYWQtZXZl
bnQtaWZyYW1lLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJj
ZXMvaWZyYW1lLWxvYWQtZXZlbnQtaWZyYW1lLTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDdiOWI2OTAxOGM3ZTcwOGRkMzEyYmNiZDEzMDE5MzhlNTFhM2Q4ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL2lmcmFtZS1sb2FkLWV2ZW50LWlmcmFtZS0yLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTxodG1sPgotPGJvZHk+Ci08ZGl2IGlkPSJp
ZnJhbWUtMi1lbGVtZW50Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9yZXNvdXJjZXMvaWZyYW1lLWxvYWQtZXZlbnQt
aWZyYW1lLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy9pZnJh
bWUtbG9hZC1ldmVudC1pZnJhbWUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJk
YmUyODdmOTk1NjcwYjZhOGRmOTg0NGMzNzU0ZDVkYWQzMGMxMjkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL3Jlc291cmNlcy9pZnJhbWUtbG9hZC1ldmVudC1pZnJhbWUuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzMiArMCwwIEBACi1mdW5jdGlvbiBsb2FkU2Vjb25kSUZyYW1lKCkKLXsKLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgibXlmcmFtZSIpLm9ubG9hZCA9IG51bGw7Ci0gICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm15ZnJhbWUiKS5zcmMgPSAicmVzb3VyY2VzL2lmcmFtZS1sb2Fk
LWV2ZW50LWlmcmFtZS0yLmh0bWwiOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNw
ZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MSgpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzLk5vZGVJbnNlcnRlZCwgbm9kZUluc2VydGVk
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZFNlY29uZElGcmFt
ZSgpIik7Ci0KLSAgICAgICAgZnVuY3Rpb24gbm9kZUluc2VydGVkKGV2ZW50KQotICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgICAgICBpZiAobm9k
ZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09ICJteWZyYW1lIikgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlKHN0ZXAyKTsKLSAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9N
QWdlbnQuRXZlbnRzLk5vZGVJbnNlcnRlZCwgbm9kZUluc2VydGVkKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcblxuQWZ0ZXIgZnJhbWUgbmF2aWdhdGUiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL3Jlc291cmNlcy91c2VyLXByb3BlcnRpZXMuanMgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL3VzZXItcHJvcGVydGllcy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI2MjUwMTkzZTA2ZTE1YWRlNDhmMTk0NjBhMGVi
ZGUzZGVlNjZiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvcmVzb3VyY2VzL3VzZXItcHJvcGVydGll
cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHZhciBjb250YWluZXJOb2RlOwotICAgIHZhciBjaGlsZDFOb2RlOwotICAgIHZhciBjaGls
ZDJOb2RlOwotICAgIHZhciBhTm9kZTsKLQotICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVu
dHNUcmVlKHN0ZXAwKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAwKCkKLSAgICB7Ci0gICAgICAgIGNv
bnRhaW5lck5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCgiY29udGFpbmVy
Iik7Ci0gICAgICAgIGNoaWxkMU5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJ
ZCgiY2hpbGQxIik7Ci0gICAgICAgIGNoaWxkMk5vZGUgPSBJbnNwZWN0b3JUZXN0LmV4cGFuZGVk
Tm9kZVdpdGhJZCgiY2hpbGQyIik7Ci0gICAgICAgIGFOb2RlID0gSW5zcGVjdG9yVGVzdC5leHBh
bmRlZE5vZGVXaXRoSWQoImFOb2RlIik7Ci0KLSAgICAgICAgYU5vZGUuc2V0VXNlclByb3BlcnR5
KCJhdHRyMSIsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYXR0cjEg
c2V0IG9uIGFOb2RlIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShu
dWxsKTsKLQotICAgICAgICBjaGlsZDJOb2RlLnNldFVzZXJQcm9wZXJ0eSgiYXR0cjIiLCAidmFs
dWUiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImF0dHIyIHNldCBvbiBjaGls
ZDIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKG51bGwpOwotCi0g
ICAgICAgIGNoaWxkMk5vZGUuc2V0VXNlclByb3BlcnR5KCJhdHRyMSIsIHRydWUpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYXR0cjEgc2V0IG9uIGNoaWxkMiIpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUobnVsbCk7Ci0KLSAgICAgICAgYU5vZGUu
c2V0VXNlclByb3BlcnR5KCJhdHRyMSIsICJhbm90aGVyVmFsdWUiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoImF0dHIxIG1vZGlmaWVkIG9uIGFOb2RlIik7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShudWxsKTsKLQotICAgICAgICBjaGlsZDJOb2Rl
LnNldFVzZXJQcm9wZXJ0eSgiYXR0cjIiLCAiYW5vdGhlclZhbHVlIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJhdHRyMiBtb2RpZmllZCBvbiBjaGlsZDIiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKG51bGwpOwotCi0gICAgICAgIGFOb2RlLnJl
bW92ZVVzZXJQcm9wZXJ0eSgiYXR0cjEiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoImF0dHIxIHJlbW92ZWQgZnJvbSBhTm9kZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBFbGVtZW50c1RyZWUobnVsbCk7Ci0KLSAgICAgICAgYU5vZGUucmVtb3ZlTm9kZShzdGVwMSk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEoZXJyb3IpCi0gICAgewotICAgICAgICBpZiAo
ZXJyb3IpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGYWlsZWQgdG8g
cmVtb3ZlIGFOb2RlIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoImFOb2RlIHJlbW92ZWQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
RWxlbWVudHNUcmVlKG51bGwpOwotCi0gICAgICAgIGNoaWxkMk5vZGUucmVtb3ZlTm9kZShzdGVw
Mik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IpCi0gICAgewotICAgICAgICBp
ZiAoZXJyb3IpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGYWlsZWQg
dG8gcmVtb3ZlIGNoaWxkMiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJjaGlsZDIgcmVtb3ZlZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBFbGVtZW50c1RyZWUobnVsbCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL3NldC1odG1sLXZpYS1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvc2V0LWh0bWwtdmlhLXJlc291cmNlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQwMGJmZWRmY2M5YjYzNjg3ZTVkOTlkYTA1M2Y2ZWRk
NGQyYWI3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LWh0bWwtdmlhLXJlc291cmNlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCB0aGUgRE9N
IGNvbnRlbnQgY2FuIGJlIHNldCB2aWEgZWRpdGluZyByZXNvdXJjZSBjb250ZW50LgotCi0KLTxo
dG1sPjxoZWFkPjwvaGVhZD48Ym9keT5OZXcgaWZyYW1lIGNvbnRlbnQ8L2JvZHk+PC9odG1sPgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LWRvbS1t
b2RpZnktY2hhcmRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL3NoYWRvdy1kb20tbW9kaWZ5LWNoYXJkYXRhLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmJlN2VkYzQ3ZjZjMWRiZWFmMTkxOWU3ZDY2Njg5YzFkNjZiOGI3
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LWRvbS1tb2RpZnktY2hhcmRhdGEtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGVzdHMgdGhhdCBlbGVtZW50
cyBwYW5lbCB1cGRhdGVzIHNoYWRvdyBkb20gdHJlZSBzdHJ1Y3R1cmUgdXBvbiB0eXBpbmcuCi0K
LQotCi1SdW5uaW5nOiB0ZXN0RHVtcEluaXRpYWwKLT09PT09PT09PSBPcmlnaW5hbCA9PT09PT09
PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgIC0gPGlucHV0IHR5cGU9InRleHQiIGlkPSJp
bnB1dDEiPgotICAgICAgICAtICNkb2N1bWVudC1mcmFnbWVudAotICAgICAgICAgIDxkaXY+PC9k
aXY+Ci0gICAgICA8L2lucHV0PgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdEFwcGVuZAotPT09
PT09PT0gVHlwZSB0ZXh0ID09PT09PT09PQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgIC0g
PGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dDEiPgotICAgICAgICAtICNkb2N1bWVudC1mcmFn
bWVudAotICAgICAgICArIDxkaXY+QmFyPC9kaXY+Ci0gICAgICA8L2lucHV0PgotICA8L2Rpdj4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NoYWRvdy1kb20t
bW9kaWZ5LWNoYXJkYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hh
ZG93LWRvbS1tb2RpZnktY2hhcmRhdGEuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2QwMWU0ZTAzMjk1MzM3NDE5MmEzYzcyNTgzOTNiNDJlY2QyYjcyMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvc2hhZG93LWRvbS1tb2RpZnktY2hhcmRhdGEuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDY0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gdHlwZVRleHQoKQotewotICAgIHZhciBpbnB1dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dDEiKTsKLSAgICBpbnB1dC5mb2N1cygpOwotICAgIGV2
ZW50U2VuZGVyLmtleURvd24oIkIiKTsKLSAgICBldmVudFNlbmRlci5rZXlEb3duKCJhIik7Ci0g
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiciIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICB2YXIgY29udGFpbmVyTm9kZTsKLQotICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93U2hh
ZG93RE9NLnNldCh0cnVlKTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAg
ICAgICAgZnVuY3Rpb24gdGVzdER1bXBJbml0aWFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgY29udGFpbmVyTm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJjb250
YWluZXIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09
PT09IE9yaWdpbmFsID09PT09PT09Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lck5vZGUpOwotICAgICAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNU
cmVlKGNhbGxiYWNrKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0QXBwZW5k
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0
eXBlVGV4dCgpIiwgY2FsbGJhY2syKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrMigpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT09PT09IFR5cGUgdGV4dCA9PT09
PT09PT0iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUo
Y29udGFpbmVyTm9kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUoY2FsbGJhY2spOwot
ICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgdXBkYXRlcyBz
aGFkb3cgZG9tIHRyZWUgc3RydWN0dXJlIHVwb24gdHlwaW5nLgotPC9wPgotCi08ZGl2IGlkPSJj
b250YWluZXIiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQxIj48L2Rpdj4KLQotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3No
YWRvdy1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9z
aGFkb3ctcm9vdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhl
ZTBlNmQyYzE1MDkzNjgzZTY3YWZkZjhlZTQ1YmM1MTdjZGQwOGMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL3NoYWRvdy1yb290LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoaXMgdGVzdCB2ZXJpZmllZCAjZG9jdW1lbnQtZnJhZ21lbnQgaXMgZGlzcGxheWVkIHdo
ZW4gc2hvd1NoYWRvd1Jvb3QgaXMgZW5hYmxlZC4KLQotLSA8ZGl2IGlkPSJjb250YWluZXIiPgot
ICAgIC0gPGRpdiBpZD0idGVzdDEiPgotICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAotICAg
ICAgPC9kaXY+Ci0gICAgLSA8ZGl2IGlkPSJ0ZXN0MiI+Ci0gICAgICAgICAgI2RvY3VtZW50LWZy
YWdtZW50Ci0gICAgICAgICAgIm9ubHkgdGVzdCIKLSAgICAgIDwvZGl2PgotICAgIC0gPGRpdiBp
ZD0idGVzdDMiPgotICAgICAgICAgICNkb2N1bWVudC1mcmFnbWVudAotICAgICAgICAgICJ3aXRo
ICIKLSAgICAgICAgICA8c3Bhbj5lbGVtZW50czwvc3Bhbj4KLSAgICAgIDwvZGl2PgotICA8L2Rp
dj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NoYWRvdy1y
b290Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LXJvb3QuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY5MzE1Mjc4Y2M1ZTA5MzkwOGFlMmE3
MTJiNWRmNzIyMGFlYjRmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2hhZG93LXJvb3QuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gaW5pdGlhbGl6
ZV9zaGFkb3dTZXR0aW5ncygpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dTaGFk
b3dET00uc2V0KHRydWUpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGNvbnRhaW5l
ciA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJjb250YWluZXIiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKGNvbnRhaW5lcik7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotCi08cCBpZD0iZGVzY3JpcHRpb24iPlRo
aXMgdGVzdCB2ZXJpZmllZCAjZG9jdW1lbnQtZnJhZ21lbnQgaXMgZGlzcGxheWVkIHdoZW4gc2hv
d1NoYWRvd1Jvb3QgaXMgZW5hYmxlZC48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAg
PGRpdiBpZD0idGVzdDEiPjwvZGl2PgotICAgIDxkaXYgaWQ9InRlc3QyIj5vbmx5IHRlc3Q8L2Rp
dj4KLSAgICA8ZGl2IGlkPSJ0ZXN0MyI+d2l0aCA8c3Bhbj5lbGVtZW50czwvc3Bhbj48L2Rpdj4K
LTwvZGl2PgotCi08c2NyaXB0PgotdGVzdDEud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdGVz
dDIud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwotdGVzdDMud2Via2l0Q3JlYXRlU2hhZG93Um9v
dCgpOwotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy0yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy0yLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY3NjUwMjU4Y2E0ZTAwOGZlZTYyMjU5
ZDAzZDBhZjIwNmZiOWMyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMtMi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1UZXN0cyB0aGF0IERP
TSBtb2RpZmljYXRpb25zIGRvbmUgaW4gdGhlIEVsZW1lbnRzIHBhbmVsIGFyZSB1bmRvYWJsZSAo
UGFydCAyKS4KLQotCi1SdW5uaW5nOiB0ZXN0U2V0VXAKLQotUnVubmluZzogdGVzdFNldEF0dHJp
YnV0ZQotSW5pdGlhbDoKLS0gPGRpdiBpZD0idGVzdFNldEF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2
IGZvbz0iYXR0cmlidXRlIHZhbHVlIiBpZD0ibm9kZS10by1zZXQtYXR0cmlidXRlIj48L2Rpdj4K
LSAgPC9kaXY+Ci1Qb3N0LWFjdGlvbjoKLS0gPGRpdiBpZD0idGVzdFNldEF0dHJpYnV0ZSI+Ci0g
ICAgICA8ZGl2IGlkPSJub2RlLXRvLXNldC1hdHRyaWJ1dGUiIGJhcj0iZWRpdGVkIGF0dHJpYnV0
ZSI+PC9kaXY+Ci0gIDwvZGl2PgotUG9zdC11bmRvIChpbml0aWFsKToKLS0gPGRpdiBpZD0idGVz
dFNldEF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLXNldC1hdHRyaWJ1dGUiIGZv
bz0iYXR0cmlidXRlIHZhbHVlIj48L2Rpdj4KLSAgPC9kaXY+Ci1Qb3N0LXJlZG8gKGFjdGlvbik6
Ci0tIDxkaXYgaWQ9InRlc3RTZXRBdHRyaWJ1dGUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1z
ZXQtYXR0cmlidXRlIiBiYXI9ImVkaXRlZCBhdHRyaWJ1dGUiPjwvZGl2PgotICA8L2Rpdj4KLQot
UnVubmluZzogdGVzdFJlbW92ZUF0dHJpYnV0ZQotSW5pdGlhbDoKLS0gPGRpdiBpZD0idGVzdFJl
bW92ZUF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGZvbz0iYXR0cmlidXRlIHZhbHVlIiBpZD0ibm9k
ZS10by1yZW1vdmUtYXR0cmlidXRlIj48L2Rpdj4KLSAgPC9kaXY+Ci1Qb3N0LWFjdGlvbjoKLS0g
PGRpdiBpZD0idGVzdFJlbW92ZUF0dHJpYnV0ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2RlLXRvLXJl
bW92ZS1hdHRyaWJ1dGUiPjwvZGl2PgotICA8L2Rpdj4KLVBvc3QtdW5kbyAoaW5pdGlhbCk6Ci0t
IDxkaXYgaWQ9InRlc3RSZW1vdmVBdHRyaWJ1dGUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1y
ZW1vdmUtYXR0cmlidXRlIiBmb289ImF0dHJpYnV0ZSB2YWx1ZSI+PC9kaXY+Ci0gIDwvZGl2Pgot
UG9zdC1yZWRvIChhY3Rpb24pOgotLSA8ZGl2IGlkPSJ0ZXN0UmVtb3ZlQXR0cmlidXRlIj4KLSAg
ICAgIDxkaXYgaWQ9Im5vZGUtdG8tcmVtb3ZlLWF0dHJpYnV0ZSI+PC9kaXY+Ci0gIDwvZGl2Pgot
Ci1SdW5uaW5nOiB0ZXN0QWRkQXR0cmlidXRlCi1Jbml0aWFsOgotLSA8ZGl2IGlkPSJ0ZXN0QWRk
QXR0cmlidXRlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tYWRkLWF0dHJpYnV0ZSI+PC9kaXY+
Ci0gIDwvZGl2PgotUG9zdC1hY3Rpb246Ci0tIDxkaXYgaWQ9InRlc3RBZGRBdHRyaWJ1dGUiPgot
ICAgICAgPGRpdiBpZD0ibm9kZS10by1hZGQtYXR0cmlidXRlIiBuZXdhdHRyPSJuZXctdmFsdWUi
PjwvZGl2PgotICA8L2Rpdj4KLVBvc3QtdW5kbyAoaW5pdGlhbCk6Ci0tIDxkaXYgaWQ9InRlc3RB
ZGRBdHRyaWJ1dGUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1hZGQtYXR0cmlidXRlIj48L2Rp
dj4KLSAgPC9kaXY+Ci1Qb3N0LXJlZG8gKGFjdGlvbik6Ci0tIDxkaXYgaWQ9InRlc3RBZGRBdHRy
aWJ1dGUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1hZGQtYXR0cmlidXRlIiBuZXdhdHRyPSJu
ZXctdmFsdWUiPjwvZGl2PgotICA8L2Rpdj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVkaXRzLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy91bmRvLWRvbS1lZGl0cy0yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQwNzg2YzFiMzM4MDg4NmZkOWQ5ZWE1Yzk3YjI5NDg0ZjI5MDMxZWYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVkaXRzLTIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDY4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHRlc3RTdWl0ZSA9IFtdOwotCi0g
ICAgZnVuY3Rpb24gdGVzdFNldFVwKG5leHQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGFuZEVsZW1lbnRzVHJlZShuZXh0KTsKLSAgICB9Ci0gICAgdGVzdFN1aXRlLnB1c2godGVz
dFNldFVwKTsKLQotCi0gICAgZnVuY3Rpb24gdGVzdFNldEF0dHJpYnV0ZShjYWxsYmFjaykKLSAg
ICB7Ci0gICAgICAgIHZhciBub2RlID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQo
Im5vZGUtdG8tc2V0LWF0dHJpYnV0ZSIpOyAKLSAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoImZv
byIsICJiYXI9XCJlZGl0ZWQgYXR0cmlidXRlXCIiLCBjYWxsYmFjayk7Ci0gICAgfQotICAgIHRl
c3RTdWl0ZS5wdXNoKEluc3BlY3RvclRlc3QuZ2VuZXJhdGVVbmRvVGVzdCh0ZXN0U2V0QXR0cmli
dXRlKSk7Ci0KLQotICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVBdHRyaWJ1dGUoY2FsbGJhY2spCi0g
ICAgewotICAgICAgICB2YXIgbm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElk
KCJub2RlLXRvLXJlbW92ZS1hdHRyaWJ1dGUiKTsgCi0gICAgICAgIG5vZGUucmVtb3ZlQXR0cmli
dXRlKCJmb28iLCBjYWxsYmFjayk7Ci0gICAgfQotICAgIHRlc3RTdWl0ZS5wdXNoKEluc3BlY3Rv
clRlc3QuZ2VuZXJhdGVVbmRvVGVzdCh0ZXN0UmVtb3ZlQXR0cmlidXRlKSk7Ci0KLQotICAgIGZ1
bmN0aW9uIHRlc3RBZGRBdHRyaWJ1dGUoY2FsbGJhY2spCi0gICAgewotICAgICAgICB2YXIgbm9k
ZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJub2RlLXRvLWFkZC1hdHRyaWJ1
dGUiKTsgCi0gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCIiLCAibmV3YXR0cj1cIm5ldy12YWx1
ZVwiIiwgY2FsbGJhY2spOwotICAgIH0KLSAgICB0ZXN0U3VpdGUucHVzaChJbnNwZWN0b3JUZXN0
LmdlbmVyYXRlVW5kb1Rlc3QodGVzdEFkZEF0dHJpYnV0ZSkpOwotCi0KLSAgICBJbnNwZWN0b3JU
ZXN0LnJ1blRlc3RTdWl0ZSh0ZXN0U3VpdGUpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IERPTSBtb2RpZmljYXRp
b25zIGRvbmUgaW4gdGhlIEVsZW1lbnRzIHBhbmVsIGFyZSB1bmRvYWJsZSAoUGFydCAyKS4KLTwv
cD4KLQotPGRpdiBzdHlsZT0iZGlzcGxheTpub25lIj4KLSAgICA8ZGl2IGlkPSJ0ZXN0U2V0QXR0
cmlidXRlIj4KLSAgICAgICAgPGRpdiBmb289ImF0dHJpYnV0ZSB2YWx1ZSIgaWQ9Im5vZGUtdG8t
c2V0LWF0dHJpYnV0ZSI+PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJ0ZXN0UmVt
b3ZlQXR0cmlidXRlIj4KLSAgICAgICAgPGRpdiBmb289ImF0dHJpYnV0ZSB2YWx1ZSIgaWQ9Im5v
ZGUtdG8tcmVtb3ZlLWF0dHJpYnV0ZSI+PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGlk
PSJ0ZXN0QWRkQXR0cmlidXRlIj4KLSAgICAgICAgPGRpdiBpZD0ibm9kZS10by1hZGQtYXR0cmli
dXRlIj48L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVkaXRz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJhYjI0MjMwMDM2
ZDBlZDkxNjk0MjhjNWQ0ODVjYjNjZGMzOWJmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1k
b20tZWRpdHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotVGVz
dHMgdGhhdCBET00gbW9kaWZpY2F0aW9ucyBkb25lIGluIHRoZSBFbGVtZW50cyBwYW5lbCBhcmUg
dW5kb2FibGUuCi0KLQotUnVubmluZzogdGVzdFNldFVwCi0KLVJ1bm5pbmc6IHRlc3RSZW1vdmUK
LUluaXRpYWw6Ci0tIDxkaXYgaWQ9InRlc3RSZW1vdmUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10
by1yZW1vdmUiPjwvZGl2PgotICA8L2Rpdj4KLVBvc3QtYWN0aW9uOgotLSA8ZGl2IGlkPSJ0ZXN0
UmVtb3ZlIj4KLSAgPC9kaXY+Ci1Qb3N0LXVuZG8gKGluaXRpYWwpOgotLSA8ZGl2IGlkPSJ0ZXN0
UmVtb3ZlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tcmVtb3ZlIj48L2Rpdj4KLSAgPC9kaXY+
Ci1Qb3N0LXJlZG8gKGFjdGlvbik6Ci0tIDxkaXYgaWQ9InRlc3RSZW1vdmUiPgotICA8L2Rpdj4K
LQotUnVubmluZzogdGVzdFNldE5vZGVOYW1lCi1Jbml0aWFsOgotLSA8ZGl2IGlkPSJ0ZXN0U2V0
Tm9kZU5hbWUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtbmFtZSI+PC9kaXY+Ci0gIDwv
ZGl2PgotUG9zdC1hY3Rpb246Ci0tIDxkaXYgaWQ9InRlc3RTZXROb2RlTmFtZSI+Ci0gICAgICA8
c3BhbiBpZD0ibm9kZS10by1zZXQtbmFtZSI+PC9zcGFuPgotICA8L2Rpdj4KLVBvc3QtdW5kbyAo
aW5pdGlhbCk6Ci0tIDxkaXYgaWQ9InRlc3RTZXROb2RlTmFtZSI+Ci0gICAgICA8ZGl2IGlkPSJu
b2RlLXRvLXNldC1uYW1lIj48L2Rpdj4KLSAgPC9kaXY+Ci1Qb3N0LXJlZG8gKGFjdGlvbik6Ci0t
IDxkaXYgaWQ9InRlc3RTZXROb2RlTmFtZSI+Ci0gICAgICA8c3BhbiBpZD0ibm9kZS10by1zZXQt
bmFtZSI+PC9zcGFuPgotICA8L2Rpdj4KLQotUnVubmluZzogdGVzdFNldE5vZGVWYWx1ZQotSW5p
dGlhbDoKLS0gPGRpdiBpZD0idGVzdFNldE5vZGVWYWx1ZSI+Ci0gICAgICA8ZGl2IGlkPSJub2Rl
LXRvLXNldC12YWx1ZSI+VGV4dDwvZGl2PgotICA8L2Rpdj4KLVBvc3QtYWN0aW9uOgotLSA8ZGl2
IGlkPSJ0ZXN0U2V0Tm9kZVZhbHVlIj4KLSAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LXZhbHVl
Ij5OZXcgVGV4dDwvZGl2PgotICA8L2Rpdj4KLVBvc3QtdW5kbyAoaW5pdGlhbCk6Ci0tIDxkaXYg
aWQ9InRlc3RTZXROb2RlVmFsdWUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUi
PlRleHQ8L2Rpdj4KLSAgPC9kaXY+Ci1Qb3N0LXJlZG8gKGFjdGlvbik6Ci0tIDxkaXYgaWQ9InRl
c3RTZXROb2RlVmFsdWUiPgotICAgICAgPGRpdiBpZD0ibm9kZS10by1zZXQtdmFsdWUiPk5ldyBU
ZXh0PC9kaXY+Ci0gIDwvZGl2PgotCi1SdW5uaW5nOiB0ZXN0RWRpdEFzSFRNTAotSW5pdGlhbDoK
LS0gPGRpdiBpZD0idGVzdEVkaXRBc0hUTUwiPgotICAgIC0gPGRpdiBpZD0ibm9kZS10by1lZGl0
LWFzLWh0bWwiPgotICAgICAgICAgIDxzcGFuIGlkPSJzcGFuIj5UZXh0PC9zcGFuPgotICAgICAg
PC9kaXY+Ci0gIDwvZGl2PgotUG9zdC1hY3Rpb246Ci0tIDxkaXYgaWQ9InRlc3RFZGl0QXNIVE1M
Ij4KLSAgICArIDxkaXYgaWQ9Im5vZGUtdG8tZWRpdC1hcy1odG1sIj7igKY8L2Rpdj4KLSAgICAg
IDxzcGFuPlNlY29uZCBub2RlPC9zcGFuPgotICA8L2Rpdj4KLVBvc3QtdW5kbyAoaW5pdGlhbCk6
Ci0tIDxkaXYgaWQ9InRlc3RFZGl0QXNIVE1MIj4KLSAgICArIDxkaXYgaWQ9Im5vZGUtdG8tZWRp
dC1hcy1odG1sIj7igKY8L2Rpdj4KLSAgPC9kaXY+Ci1Qb3N0LXJlZG8gKGFjdGlvbik6Ci0tIDxk
aXYgaWQ9InRlc3RFZGl0QXNIVE1MIj4KLSAgICArIDxkaXYgaWQ9Im5vZGUtdG8tZWRpdC1hcy1o
dG1sIj7igKY8L2Rpdj4KLSAgICAgIDxzcGFuPlNlY29uZCBub2RlPC9zcGFuPgotICA8L2Rpdj4K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VuZG8tZG9tLWVk
aXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMwNjJjNGJlODUyMzdiOWQ2NTBk
ZThjM2Q0MDAzYzcxMzVmNDViZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdW5kby1kb20tZWRpdHMu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
dmFyIHRlc3RTdWl0ZSA9IFtdOwotCi0gICAgZnVuY3Rpb24gdGVzdFNldFVwKG5leHQpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShuZXh0KTsKLSAgICB9
Ci0gICAgdGVzdFN1aXRlLnB1c2godGVzdFNldFVwKTsKLQotCi0gICAgZnVuY3Rpb24gdGVzdFJl
bW92ZShjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gSW5zcGVjdG9yVGVzdC5l
eHBhbmRlZE5vZGVXaXRoSWQoIm5vZGUtdG8tcmVtb3ZlIik7IAotICAgICAgICBub2RlLnJlbW92
ZU5vZGUoY2FsbGJhY2spOwotICAgIH0KLSAgICB0ZXN0U3VpdGUucHVzaChJbnNwZWN0b3JUZXN0
LmdlbmVyYXRlVW5kb1Rlc3QodGVzdFJlbW92ZSkpOwotCi0KLSAgICBmdW5jdGlvbiB0ZXN0U2V0
Tm9kZU5hbWUoY2FsbGJhY2spCi0gICAgewotICAgICAgICB2YXIgbm9kZSA9IEluc3BlY3RvclRl
c3QuZXhwYW5kZWROb2RlV2l0aElkKCJub2RlLXRvLXNldC1uYW1lIik7IAotICAgICAgICBub2Rl
LnNldE5vZGVOYW1lKCJzcGFuIiwgY2FsbGJhY2spOwotICAgIH0KLSAgICB0ZXN0U3VpdGUucHVz
aChJbnNwZWN0b3JUZXN0LmdlbmVyYXRlVW5kb1Rlc3QodGVzdFNldE5vZGVOYW1lKSk7Ci0KLQot
ICAgIGZ1bmN0aW9uIHRlc3RTZXROb2RlVmFsdWUoY2FsbGJhY2spCi0gICAgewotICAgICAgICB2
YXIgbm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKCJub2RlLXRvLXNldC12
YWx1ZSIpOyAKLSAgICAgICAgbm9kZS5maXJzdENoaWxkLnNldE5vZGVWYWx1ZSgiTmV3IFRleHQi
LCBjYWxsYmFjayk7Ci0gICAgfQotICAgIHRlc3RTdWl0ZS5wdXNoKEluc3BlY3RvclRlc3QuZ2Vu
ZXJhdGVVbmRvVGVzdCh0ZXN0U2V0Tm9kZVZhbHVlKSk7Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RWRp
dEFzSFRNTChjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gSW5zcGVjdG9yVGVz
dC5leHBhbmRlZE5vZGVXaXRoSWQoIm5vZGUtdG8tZWRpdC1hcy1odG1sIik7IAotICAgICAgICBu
b2RlLnNldE91dGVySFRNTCgiPGRpdiBpZD1cIm5vZGUtdG8tZWRpdC1hcy1odG1sXCI+PGRpdiBp
ZD1cInNwYW4yXCI+VGV4dDI8L2Rpdj48L2Rpdj48c3Bhbj5TZWNvbmQgbm9kZTwvc3Bhbj4iLCBj
YWxsYmFjayk7Ci0gICAgfQotICAgIHRlc3RTdWl0ZS5wdXNoKEluc3BlY3RvclRlc3QuZ2VuZXJh
dGVVbmRvVGVzdCh0ZXN0RWRpdEFzSFRNTCkpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0
U3VpdGUodGVzdFN1aXRlKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBET00gbW9kaWZpY2F0aW9ucyBkb25lIGlu
IHRoZSBFbGVtZW50cyBwYW5lbCBhcmUgdW5kb2FibGUuCi08L3A+Ci0KLTxkaXYgc3R5bGU9ImRp
c3BsYXk6bm9uZSI+Ci0gICAgPGRpdiBpZD0idGVzdFJlbW92ZSI+Ci0gICAgICAgIDxkaXYgaWQ9
Im5vZGUtdG8tcmVtb3ZlIj48L2Rpdj4KLSAgICA8L2Rpdj4KLQotICAgIDxkaXYgaWQ9InRlc3RT
ZXROb2RlTmFtZSI+Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tc2V0LW5hbWUiPjwvZGl2Pgot
ICAgIDwvZGl2PgotCi0gICAgPGRpdiBpZD0idGVzdFNldE5vZGVWYWx1ZSI+Ci0gICAgICAgIDxk
aXYgaWQ9Im5vZGUtdG8tc2V0LXZhbHVlIj5UZXh0PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8
ZGl2IGlkPSJ0ZXN0RWRpdEFzSFRNTCI+Ci0gICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8tZWRpdC1h
cy1odG1sIj48c3BhbiBpZD0ic3BhbiI+VGV4dDwvc3Bhbj48L2Rpdj4KLSAgICA8L2Rpdj4KLTwv
ZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4NmUyZTU1MWUwM2FlOTFhY2U0Y2M2N2IzNjA5N2E1ZTg1
YmZiZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VwZGF0ZS1zaGFkb3dkb20tZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1UaGlzIHRlc3QgY29uZmlybXMgdGhhdCB1
cGRhdGluZyB0aGUgc2hhZG93IGRvbSBpcyByZWZsZWN0ZWQgdG8gdGhlIEluc3BlY3Rvci4KLQot
LSA8ZGl2IGlkPSJjb250YWluZXIiPgotICAgIC0gPGRpdiBpZD0iaG9zdCI+Ci0gICAgICAgIC0g
I2RvY3VtZW50LWZyYWdtZW50Ci0gICAgICA8L2Rpdj4KLSAgPC9kaXY+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91cGRhdGUtc2hhZG93ZG9tLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXBkYXRlLXNoYWRvd2RvbS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzMxZThjOGJhNjJmYTk3MTQ5ZGVmMWVmNGQ2OTlh
NjFkZjJkMGU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy91cGRhdGUtc2hhZG93ZG9tLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB1cGRhdGVTaGFkb3dE
T00oKQotewotICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoc2hhZG93Um9vdC5maXJzdENoaWxk
KTsKLX0KLQotZnVuY3Rpb24gaW5pdGlhbGl6ZV9zaGFkb3dTZXR0aW5ncygpCi17Ci0gICAgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLnNob3dTaGFkb3dET00uc2V0KHRydWUpOwotfQotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZShmdW5jdGlv
bigpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgidXBkYXRlU2hhZG93
RE9NKCkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kRWxl
bWVudHNUcmVlKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHZhciBjb250YWluZXJFbGVt
ID0gSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoJ2NvbnRhaW5lcicpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZShjb250YWluZXJFbGVtKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLQotPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3Qg
Y29uZmlybXMgdGhhdCB1cGRhdGluZyB0aGUgc2hhZG93IGRvbSBpcyByZWZsZWN0ZWQgdG8gdGhl
IEluc3BlY3Rvci48L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaG9z
dCI+PC9kaXY+Ci08L2Rpdj4KLQotPHNjcmlwdD4KLXZhciBzaGFkb3dSb290ID0gaG9zdC53ZWJr
aXRDcmVhdGVTaGFkb3dSb290KCk7Ci1zaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2PjwvZGl2
PiI7Ci08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL3VzZXItcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI2OTgwNmRlOTFlZTFmNWEzZWQxZjU5OTdj
MjRlM2RlMzAwMjA4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi1UZXN0cyB0aGF0IERPTU5v
ZGUgcHJvcGVybHkgdHJhY2tzIG93biBhbmQgZGVzY2VuZGFudHMnIHVzZXIgcHJvcGVydGllcy4K
LQotYXR0cjEgc2V0IG9uIGFOb2RlCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtk
ZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xXV0KLSAgICAtIDxoZWFkPgot
ICAgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgICAgICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXNlci1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KLSAgICAg
IDwvaGVhZD4KLSAgICAtIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4gW2Rlc2NlbmRhbnRVc2Vy
QXR0cmlidXRlQ291bnRlcnM6W2F0dHIxPTFdXQotICAgICAgICAgIDxwPlxuVGVzdHMgdGhhdCBE
T01Ob2RlIHByb3Blcmx5IHRyYWNrcyBvd24gYW5kIGRlc2NlbmRhbnRzJyB1c2VyIHByb3BlcnRp
ZXMuXG48L3A+Ci0gICAgICAgIC0gPGRpdiBpZD0iY29udGFpbmVyIj4gW2Rlc2NlbmRhbnRVc2Vy
QXR0cmlidXRlQ291bnRlcnM6W2F0dHIxPTFdXQotICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGls
ZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbZGVzY2VuZGFudFVz
ZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MV1dCi0gICAgICAgICAgICAgICAgICA8YSBocmVm
PSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+IFt1c2VyUHJvcGVydGllczpbYXR0
cjE9dHJ1ZV1dCi0gICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgIDwvZGl2PgotICAgICAg
PC9ib2R5PgotICA8L2h0bWw+Ci1hdHRyMiBzZXQgb24gY2hpbGQyCi0gICAgICA8IURPQ1RZUEUg
aHRtbD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0x
LGF0dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91c2VyLXByb3Bl
cnRpZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9oZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MSxhdHRy
Mj0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBwcm9wZXJseSB0cmFja3Mg
b3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9wPgotICAgICAgICAtIDxk
aXYgaWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRy
MT0xLGF0dHIyPTFdXQotICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAg
ICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbdXNlclByb3BlcnRpZXM6W2F0dHIyPXZhbHVl
XSwgZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MV1dCi0gICAgICAgICAg
ICAgICAgICA8YSBocmVmPSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+IFt1c2Vy
UHJvcGVydGllczpbYXR0cjE9dHJ1ZV1dCi0gICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAg
IDwvZGl2PgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci1hdHRyMSBzZXQgb24gY2hpbGQyCi0g
ICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNv
dW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91c2VyLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9oZWFkPgotICAgIC0g
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVy
czpbYXR0cjE9MixhdHRyMj0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBw
cm9wZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9w
PgotICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0
ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGls
ZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBbdXNlclByb3BlcnRp
ZXM6W2F0dHIyPXZhbHVlLGF0dHIxPXRydWVdLCBkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50
ZXJzOlthdHRyMT0xXV0KLSAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGlkPSJhTm9kZSI+
VGhpcmQtbGV2ZWwgbm9kZTwvYT4gW3VzZXJQcm9wZXJ0aWVzOlthdHRyMT10cnVlXV0KLSAgICAg
ICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRt
bD4KLWF0dHIxIG1vZGlmaWVkIG9uIGFOb2RlCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0
bWw+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQot
ICAgIC0gPGhlYWQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91c2VyLXByb3BlcnRpZXMuanMiPjwv
c2NyaXB0PgotICAgICAgPC9oZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPiBb
ZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MixhdHRyMj0xXV0KLSAgICAg
ICAgICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBwcm9wZXJseSB0cmFja3Mgb3duIGFuZCBkZXNj
ZW5kYW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9wPgotICAgICAgICAtIDxkaXYgaWQ9ImNvbnRh
aW5lciI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFd
XQotICAgICAgICAgICAgICA8ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8
ZGl2IGlkPSJjaGlsZDIiPiBbdXNlclByb3BlcnRpZXM6W2F0dHIyPXZhbHVlLGF0dHIxPXRydWVd
LCBkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xXV0KLSAgICAgICAgICAg
ICAgICAgIDxhIGhyZWY9IiMiIGlkPSJhTm9kZSI+VGhpcmQtbGV2ZWwgbm9kZTwvYT4gW3VzZXJQ
cm9wZXJ0aWVzOlthdHRyMT1hbm90aGVyVmFsdWVdXQotICAgICAgICAgICAgICA8L2Rpdj4KLSAg
ICAgICAgICA8L2Rpdj4KLSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotYXR0cjIgbW9kaWZpZWQg
b24gY2hpbGQyCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNl
ckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91c2VyLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9o
ZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRy
aWJ1dGVDb3VudGVyczpbYXR0cjE9MixhdHRyMj0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRo
YXQgRE9NTm9kZSBwcm9wZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9w
ZXJ0aWVzLlxuPC9wPgotICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50
VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0yLGF0dHIyPTFdXQotICAgICAgICAgICAgICA8
ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBb
dXNlclByb3BlcnRpZXM6W2F0dHIyPWFub3RoZXJWYWx1ZSxhdHRyMT10cnVlXSwgZGVzY2VuZGFu
dFVzZXJBdHRyaWJ1dGVDb3VudGVyczpbYXR0cjE9MV1dCi0gICAgICAgICAgICAgICAgICA8YSBo
cmVmPSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+IFt1c2VyUHJvcGVydGllczpb
YXR0cjE9YW5vdGhlclZhbHVlXV0KLSAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgPC9k
aXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLWF0dHIxIHJlbW92ZWQgZnJvbSBhTm9kZQot
ICAgICAgPCFET0NUWVBFIGh0bWw+Ci0tIDxodG1sPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1dGVD
b3VudGVyczpbYXR0cjE9MSxhdHRyMj0xXV0KLSAgICAtIDxoZWFkPgotICAgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci0gICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdXNlci1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KLSAgICAgIDwvaGVhZD4KLSAgICAt
IDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4gW2Rlc2NlbmRhbnRVc2VyQXR0cmlidXRlQ291bnRl
cnM6W2F0dHIxPTEsYXR0cjI9MV1dCi0gICAgICAgICAgPHA+XG5UZXN0cyB0aGF0IERPTU5vZGUg
cHJvcGVybHkgdHJhY2tzIG93biBhbmQgZGVzY2VuZGFudHMnIHVzZXIgcHJvcGVydGllcy5cbjwv
cD4KLSAgICAgICAgLSA8ZGl2IGlkPSJjb250YWluZXIiPiBbZGVzY2VuZGFudFVzZXJBdHRyaWJ1
dGVDb3VudGVyczpbYXR0cjE9MSxhdHRyMj0xXV0KLSAgICAgICAgICAgICAgPGRpdiBpZD0iY2hp
bGQxIj48L2Rpdj4KLSAgICAgICAgICAgIC0gPGRpdiBpZD0iY2hpbGQyIj4gW3VzZXJQcm9wZXJ0
aWVzOlthdHRyMj1hbm90aGVyVmFsdWUsYXR0cjE9dHJ1ZV1dCi0gICAgICAgICAgICAgICAgICA8
YSBocmVmPSIjIiBpZD0iYU5vZGUiPlRoaXJkLWxldmVsIG5vZGU8L2E+Ci0gICAgICAgICAgICAg
IDwvZGl2PgotICAgICAgICAgIDwvZGl2PgotICAgICAgPC9ib2R5PgotICA8L2h0bWw+Ci1hTm9k
ZSByZW1vdmVkCi0gICAgICA8IURPQ1RZUEUgaHRtbD4KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNl
ckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xLGF0dHIyPTFdXQotICAgIC0gPGhlYWQ+Ci0gICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLSAgICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91c2VyLXByb3BlcnRpZXMuanMiPjwvc2NyaXB0PgotICAgICAgPC9o
ZWFkPgotICAgIC0gPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPiBbZGVzY2VuZGFudFVzZXJBdHRy
aWJ1dGVDb3VudGVyczpbYXR0cjE9MSxhdHRyMj0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRo
YXQgRE9NTm9kZSBwcm9wZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9w
ZXJ0aWVzLlxuPC9wPgotICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+IFtkZXNjZW5kYW50
VXNlckF0dHJpYnV0ZUNvdW50ZXJzOlthdHRyMT0xLGF0dHIyPTFdXQotICAgICAgICAgICAgICA8
ZGl2IGlkPSJjaGlsZDEiPjwvZGl2PgotICAgICAgICAgICAgLSA8ZGl2IGlkPSJjaGlsZDIiPiBb
dXNlclByb3BlcnRpZXM6W2F0dHIyPWFub3RoZXJWYWx1ZSxhdHRyMT10cnVlXV0KLSAgICAgICAg
ICAgICAgPC9kaXY+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICAgICsgPGRpdj7igKY8L2Rpdj4K
LSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotY2hpbGQyIHJlbW92ZWQKLSAgICAgIDwhRE9DVFlQ
RSBodG1sPgotLSA8aHRtbD4KLSAgICAtIDxoZWFkPgotICAgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
LXRlc3QuanMiPjwvc2NyaXB0PgotICAgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXNl
ci1wcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KLSAgICAgIDwvaGVhZD4KLSAgICAtIDxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgRE9NTm9kZSBwcm9w
ZXJseSB0cmFja3Mgb3duIGFuZCBkZXNjZW5kYW50cycgdXNlciBwcm9wZXJ0aWVzLlxuPC9wPgot
ICAgICAgICAtIDxkaXYgaWQ9ImNvbnRhaW5lciI+Ci0gICAgICAgICAgICAgIDxkaXYgaWQ9ImNo
aWxkMSI+PC9kaXY+Ci0gICAgICAgICAgPC9kaXY+Ci0gICAgICAgICsgPGRpdj7igKY8L2Rpdj4K
LSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvdXNlci1wcm9wZXJ0aWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIxNWM1NzAxNDlmNWE5YzQ2ZTc0MzBlZGIzZjhhOTk3NTcyNWExOGYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL3VzZXItcHJvcGVydGllcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXNlci1wcm9wZXJ0aWVzLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0
aGF0IERPTU5vZGUgcHJvcGVybHkgdHJhY2tzIG93biBhbmQgZGVzY2VuZGFudHMnIHVzZXIgcHJv
cGVydGllcy4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIj4KLSAgPGRpdiBpZD0iY2hpbGQx
Ij48L2Rpdj4KLSAgPGRpdiBpZD0iY2hpbGQyIj48YSBocmVmPSIjIiBpZD0iYU5vZGUiPlRoaXJk
LWxldmVsIG5vZGU8L2E+PC9kaXY+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V2YWx1YXRlLWluLXBhZ2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V2YWx1YXRlLWluLXBhZ2UtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTBhZDQzYjFmNTE1YmE1NGVlM2ZjNWU4Yjdm
NWIyMjQ1NWU2ZWQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmFsdWF0ZS1pbi1wYWdlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhpcyB0ZXN0cyB0aGF0IGxheW91dCB0ZXN0
IGNhbiBldmFsdWF0ZSBzY3JpcHRzIGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4KLQotMiArIDIgPSA0
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmFsdWF0ZS1pbi1wYWdlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZhbHVhdGUtaW4tcGFnZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmI1M2FkNzI3OGIzNDM1OGNiZTBhZmU5MTRhYjYzMjNh
NTk3OTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9ldmFsdWF0ZS1pbi1wYWdlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHN1bShhLCBiKQotewotICAgIHJldHVybiBhICsgYjsKLX0KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2socmVzdWx0KQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIjIgKyAyID0gIiArIHJlc3VsdC5kZXNjcmlwdGlvbik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoInN1bSgyLCAyKSIsIGNhbGxiYWNrKTsKLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0
cyB0aGF0IGxheW91dCB0ZXN0IGNhbiBldmFsdWF0ZSBzY3JpcHRzIGluIHRoZSBpbnNwZWN0ZWQg
cGFnZS4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDExOWNlZGNlY2NkNzNjODBkNGMxY2NiOTJm
ZDdiMjVlZTQ4ZTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXBpLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLVRlc3RzIHB1YmxpYyBpbnRl
cmZhY2Ugb2YgV2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMgQVBJCi0KLVN0YXJ0ZWQgZXh0ZW5zaW9u
LgotUnVubmluZyB0ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEFQSQotewot
ICAgIGF1ZGl0cyA6IHsKLSAgICB9Ci0gICAgY29uc29sZSA6IHsKLSAgICAgICAgb25NZXNzYWdl
QWRkZWQgOiB7Ci0gICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAgICAg
ICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICB9Ci0gICAgfQotICAgIGlu
c3BlY3RlZFdpbmRvdyA6IHsKLSAgICAgICAgb25SZXNvdXJjZUFkZGVkIDogewotICAgICAgICAg
ICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6
IDxmdW5jdGlvbj4KLSAgICAgICAgfQotICAgICAgICBvblJlc291cmNlQ29udGVudENvbW1pdHRl
ZCA6IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICAgICAg
cmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgbmV0d29y
ayA6IHsKLSAgICAgICAgb25GaW5pc2hlZCA6IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDog
PGZ1bmN0aW9uPgotICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAg
ICAgIH0KLSAgICAgICAgb25OYXZpZ2F0ZWQgOiB7Ci0gICAgICAgICAgICBhZGRMaXN0ZW5lciA6
IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAg
ICAgICB9Ci0gICAgICAgIG9uUmVxdWVzdEZpbmlzaGVkIDogewotICAgICAgICAgICAgYWRkTGlz
dGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlv
bj4KLSAgICAgICAgfQotICAgIH0KLSAgICBwYW5lbHMgOiB7Ci0gICAgICAgIGVsZW1lbnRzIDog
ewotICAgICAgICAgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAg
ICBvblNlbGVjdGlvbkNoYW5nZWQgOiB7Ci0gICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8
ZnVuY3Rpb24+Ci0gICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmVzb3VyY2VzIDogewotICAgICAg
ICBvbkZpbmlzaGVkIDogewotICAgICAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0g
ICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAgICAgfQotICAgICAg
ICBvbk5hdmlnYXRlZCA6IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgot
ICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIH0KLSAgICAg
ICAgb25SZXF1ZXN0RmluaXNoZWQgOiB7Ci0gICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5j
dGlvbj4KLSAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICB9
Ci0gICAgfQotICAgIHRpbWVsaW5lIDogewotICAgICAgICBvbkV2ZW50UmVjb3JkZWQgOiB7Ci0g
ICAgICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHJlbW92ZUxp
c3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICB9Ci0gICAgfQotfQotQWxsIHRlc3RzIGRvbmUu
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MjljNzRkYjA5ZmEyNmE3
NjI0MDRlZDYzZmUzODAzNTM4ZDE0OWIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtYXBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEFQSShuZXh0VGVzdCkKLXsKLSAgICBkdW1w
T2JqZWN0KHdlYkluc3BlY3Rvcik7Ci0gICAgbmV4dFRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBwdWJsaWMgaW50ZXJm
YWNlIG9mIFdlYkluc3BlY3RvciBFeHRlbnNpb25zIEFQSTwvcD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
YXVkaXRzLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLWF1ZGl0cy1hcGktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmNWRlZWFmY2M0ZWNiYzA1MDhmYmIwYzA2ODRhZTk0YzYwOWIzYWIyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1UZXN0cyBhdWRpdHMgc3VwcG9ydCBpbiBXZWJJ
bnNwZWN0b3IgRXh0ZW5zaW9ucyBBUEkKLQotU3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRl
c3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QXVkaXRzQVBJCi1BZGRlZCBhdWRp
dCBjYXRlZ29yeSwgcmVzdWx0IGR1bXAgZm9sbG93czoKLXsKLSAgICBvbkF1ZGl0U3RhcnRlZCA6
IHsKLSAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHJlbW92ZUxpc3Rl
bmVyIDogPGZ1bmN0aW9uPgotICAgIH0KLX0KLWNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkIGZpcmVk
LCByZXN1bHRzIGR1bXAgZm9sbG93czoKLXsKLSAgICBTZXZlcml0eSA6IHsKLSAgICAgICAgSW5m
byA6ICJpbmZvIgotICAgICAgICBTZXZlcmUgOiAic2V2ZXJlIgotICAgICAgICBXYXJuaW5nIDog
Indhcm5pbmciCi0gICAgfQotICAgIGFkZFJlc3VsdCA6IDxmdW5jdGlvbj4KLSAgICBjcmVhdGVO
b2RlIDogPGZ1bmN0aW9uPgotICAgIGNyZWF0ZU9iamVjdCA6IDxmdW5jdGlvbj4KLSAgICBjcmVh
dGVSZXNvdXJjZUxpbmsgOiA8ZnVuY3Rpb24+Ci0gICAgY3JlYXRlUmVzdWx0IDogPGZ1bmN0aW9u
PgotICAgIGNyZWF0ZVNuaXBwZXQgOiA8ZnVuY3Rpb24+Ci0gICAgY3JlYXRlVGV4dCA6IDxmdW5j
dGlvbj4KLSAgICBjcmVhdGVVUkwgOiA8ZnVuY3Rpb24+Ci0gICAgZG9uZSA6IDxmdW5jdGlvbj4K
LSAgICB1cGRhdGVQcm9ncmVzcyA6IDxmdW5jdGlvbj4KLX0KLXsKLSAgICBjaGlsZHJlbiA6IHsK
LSAgICB9Ci0gICAgY29udGVudHMgOiB7Ci0gICAgICAgIDAgOiAiU3VidHJlZSIKLSAgICB9Ci0g
ICAgZXhwYW5kZWQgOiBmYWxzZQotfQotIEV4dGVuc2lvbiBhdWRpdHMKLUFsbCB0ZXN0cyBkb25l
LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1hcGkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtYXVkaXRzLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MDNlYjZkYzk1ZmRiZGM5ZjRlY2Q2Njg2MWEzNjBhNTI5MmE0YTI2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9hdWRpdHMvYXVkaXRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
ImV4dGVuc2lvbnMtYXVkaXRzLXRlc3RzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEF1ZGl0c0FQSShuZXh0
VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXRDYXRlZ29yeShyZXN1bHRzKQotICAg
IHsKLSAgICAgICAgb3V0cHV0KCJjYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCwgcmVzdWx0
cyBkdW1wIGZvbGxvd3M6Iik7Ci0gICAgICAgIGR1bXBPYmplY3QocmVzdWx0cyk7Ci0gICAgICAg
IHZhciBub2RlID0gcmVzdWx0cy5jcmVhdGVSZXN1bHQoIlN1YnRyZWUiKTsKLSAgICAgICAgZHVt
cE9iamVjdChub2RlKTsKLSAgICAgICAgLy8gTWFrZSBzdXJlIGR1bXBPYmplY3QoKSBwdXNoZXMg
c3R1ZmYgdGhyb3VnaCBiZWZvcmUgd2UgY29udGludWUuCi0gICAgICAgIGV2YWx1YXRlT25Gcm9u
dGVuZCgiSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHJlcGx5KSIsIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgcmVzdWx0cy5kb25lKCk7Ci0gICAgICAgIH0pOwotICAg
IH0KLSAgICB2YXIgY2F0ZWdvcnkgPSB3ZWJJbnNwZWN0b3IuYXVkaXRzLmFkZENhdGVnb3J5KCJF
eHRlbnNpb24gYXVkaXRzIik7Ci0gICAgY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQuYWRkTGlzdGVu
ZXIob25TdGFydEF1ZGl0Q2F0ZWdvcnkpOwotICAgIG91dHB1dCgiQWRkZWQgYXVkaXQgY2F0ZWdv
cnksIHJlc3VsdCBkdW1wIGZvbGxvd3M6Iik7Ci0gICAgZHVtcE9iamVjdChjYXRlZ29yeSk7Ci0g
ICAgZXh0ZW5zaW9uX3J1bkF1ZGl0cyhuZXh0VGVzdCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgYXVkaXRzIHN1cHBvcnQgaW4g
V2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMgQVBJPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMt
Y29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODU4MjllODI4MzRhMGI5MWQ3ZDhjMzcwNDdjZWM0
NTUyYzQwMGZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRl
bnQtc2NyaXB0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLVRl
c3RzIGF1ZGl0IGZvcm1hdHRlcnMgcGVyZm9ybWluZyBldmFscyBvbiBjb250ZW50IHNjcmlwdHMg
aW4gV2ViSW5zcGVjdG9yIEV4dGVuc2lvbnMgQVBJCi0KLSBTdGFydGVkIGV4dGVuc2lvbi4KLVJ1
bm5pbmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RBdWRpdHMKLSBFeHRl
bnNpb24gYXVkaXRzCi0gICAgUnVsZSB3aXRoIGRldGFpbHMgc3VidHJlZSAoMSkKLSAgICAgIFRl
c3QgRm9ybWF0dGVycwotICAgICAgICAgICBtYWluIHdvcmxkIG9iamVjdAotICAgICAgICAgICAg
d2hlcmVBbUkKLSAgICAgICAgICAgIDogCi0gICAgICAgICAgICAibWFpbiB3b3JsZCIKLSAgICAg
ICAgICAgIF9fcHJvdG9fXwotICAgICAgICAgICAgOiAKLSAgICAgICAgICAgIE9iamVjdAotICAg
ICAgICAgICAgPAotICAgICAgICAgICAgIHNwYW4KLSAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgaWQKLSAgICAgICAgICAgICA9IgotICAgICAgICAgICAgICB0ZXN0LWVsZW1lbnQKLSAgICAg
ICAgICAgICAiCi0gICAgICAgICAgICA+Ci0gICAgICAgICAgIAotICAgICAgICAgICBjb250ZW50
IHNjcmlwdCBvYmplY3QKLSAgICAgICAgICAgIHdoZXJlQW1JCi0gICAgICAgICAgICA6IAotICAg
ICAgICAgICAgImJyYXZlIG5ldyB3b3JsZCIKLSAgICAgICAgICAgIF9fcHJvdG9fXwotICAgICAg
ICAgICAgOiAKLSAgICAgICAgICAgIE9iamVjdAotICAgICAgICAgICAgPAotICAgICAgICAgICAg
IHNwYW4KLSAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgaWQKLSAgICAgICAgICAgICA9Igot
ICAgICAgICAgICAgICB0ZXN0LWVsZW1lbnQKLSAgICAgICAgICAgICAiCi0gICAgICAgICAgICA+
Ci0gICAgICAgICAgIAotY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQKLUFsbCB0ZXN0cyBk
b25lLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE1YzQyZTNhMmM5NmE2YTdkYWFhMDYwOGNlZTU4Yjdl
MmU1ZmY5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50
LXNjcmlwdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9hdWRpdHMvYXVk
aXRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImV4dGVuc2lvbnMtYXVkaXRzLXRl
c3RzLmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13
aW5kb3cud2hlcmVBbUkgPSAibWFpbiB3b3JsZCI7Ci0KLXRlc3RSdW5uZXIuc2V0SXNvbGF0ZWRX
b3JsZFNlY3VyaXR5T3JpZ2luKDYzMiwgImZpbGU6Ly8vIik7Ci10ZXN0UnVubmVyLmV2YWx1YXRl
U2NyaXB0SW5Jc29sYXRlZFdvcmxkKDYzMiwgIndpbmRvdy53aGVyZUFtSSA9ICdicmF2ZSBuZXcg
d29ybGQnIik7Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0QXVkaXRzKG5leHRUZXN0KQotewot
ICAgIHZhciBwZW5kaW5nT3V0cHV0ID0gW107Ci0KLSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXRD
YXRlZ29yeShyZXN1bHRzKQotICAgIHsKLSAgICAgICAgcGVuZGluZ091dHB1dC5wdXNoKCJjYXRl
Z29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZCIpOwotICAgICAgICB2YXIgbm9kZSA9IHJlc3VsdHMu
Y3JlYXRlUmVzdWx0KCJUZXN0IEZvcm1hdHRlcnMiKTsKLSAgICAgICAgbm9kZS5hZGRDaGlsZChy
ZXN1bHRzLmNyZWF0ZU9iamVjdCgiKHt3aGVyZUFtSTogd2luZG93LndoZXJlQW1JfSkiLCAibWFp
biB3b3JsZCBvYmplY3QiKSk7Ci0gICAgICAgIG5vZGUuYWRkQ2hpbGQocmVzdWx0cy5jcmVhdGVO
b2RlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1lbGVtZW50JykiKSk7Ci0KLSAgICAg
ICAgbm9kZS5hZGRDaGlsZChyZXN1bHRzLmNyZWF0ZU9iamVjdCgiKHt3aGVyZUFtSTogd2luZG93
LndoZXJlQW1JfSkiLCAiY29udGVudCBzY3JpcHQgb2JqZWN0IiwgeyB1c2VDb250ZW50U2NyaXB0
Q29udGV4dDogdHJ1ZSB9KSk7Ci0gICAgICAgIG5vZGUuYWRkQ2hpbGQocmVzdWx0cy5jcmVhdGVO
b2RlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1lbGVtZW50JykiLCB7IHVzZUNvbnRl
bnRTY3JpcHRDb250ZXh0OiB0cnVlIH0pKTsKLQotICAgICAgICByZXN1bHRzLmFkZFJlc3VsdCgi
UnVsZSB3aXRoIGRldGFpbHMgc3VidHJlZSAoMSkiLCAiIiwgcmVzdWx0cy5TZXZlcml0eS5XYXJu
aW5nLCBub2RlKTsKLSAgICAgICAgcmVzdWx0cy5kb25lKCk7Ci0gICAgfQotICAgIHZhciBjYXRl
Z29yeSA9IHdlYkluc3BlY3Rvci5hdWRpdHMuYWRkQ2F0ZWdvcnkoIkV4dGVuc2lvbiBhdWRpdHMi
LCAyMCk7Ci0gICAgY2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQuYWRkTGlzdGVuZXIob25TdGFydEF1
ZGl0Q2F0ZWdvcnkpOwotCi0gICAgZnVuY3Rpb24gYXVkaXRzRG9uZSgpCi0gICAgewotICAgICAg
ICBwZW5kaW5nT3V0cHV0LnNvcnQoKS5mb3JFYWNoKG91dHB1dCk7Ci0gICAgICAgIG5leHRUZXN0
KCk7Ci0gICAgfQotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgiIiwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIGV4dGVuc2lvbl9ydW5BdWRpdHMoYXVkaXRzRG9uZSk7Ci0gICAg
fSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
PHA+VGVzdHMgYXVkaXQgZm9ybWF0dGVycyBwZXJmb3JtaW5nIGV2YWxzIG9uIGNvbnRlbnQgc2Ny
aXB0cyBpbiBXZWJJbnNwZWN0b3IgRXh0ZW5zaW9ucyBBUEk8L3A+Ci08c3BhbiBpZD0idGVzdC1l
bGVtZW50Ij48Yj48L2I+PC9zcGFuPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzYxMTM0OGJhYTQz
MDEzNjljOWFlMWNjOGEzOTRkYjUzN2FlYWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtYXVkaXRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAK
LVRlc3RzIGF1ZGl0cyBzdXBwb3J0IGluIFdlYkluc3BlY3RvciBFeHRlbnNpb25zIEFQSQotCi0g
U3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRlc3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVu
c2lvbl90ZXN0QXVkaXRzCi1Qcm9ncmVzczogNTAlCi1Qcm9ncmVzczogNzUlCi0gRXh0ZW5zaW9u
IGF1ZGl0cwotICAgIEZhaWxlZCBydWxlICg0MikKLSAgICAgdGhpcyBydWxlIGFsd2F5cyBmYWls
cwotICAgIFJ1bGUgd2l0aCBkZXRhaWxzIHN1YnRyZWUgKDEpCi0gICAgIFRoaXMgcnVsZSBoYXMg
YSBsb3Qgb2YgZGV0YWlscwotICAgICAgU3VidHJlZQotICAgICAgIFNvbWUgdXJsOiAKLSAgICAg
ICAgV2ViS2l0Ci0gICAgICAgIG1vcmUgdGV4dCAKLSAgICAgICAgaHR0cDovL3d3dy5nb29nbGUu
Y29tCi0gICAgICAgLi4uIGFuZCBhIHNuaXBwZXQKLSAgICAgICAgIGZ1bmN0aW9uIHJhbmQoKQot
ewotICAgIHJldHVybiA0OwotfQotICAgICAgICAgL3BhdGgvdG8vZXJyb3IuaHRtbDoxMAotICAg
ICAgICAgICAgb2JqZWN0IGRldGFpbHMKLSAgICAgICAgICAgICBhCi0gICAgICAgICAgICAgOiAK
LSAgICAgICAgICAgICA0MgotICAgICAgICAgICAgIGIKLSAgICAgICAgICAgICA6IAotICAgICAg
ICAgICAgICJmb28iCi0gICAgICAgICAgICAgX19wcm90b19fCi0gICAgICAgICAgICAgOiAKLSAg
ICAgICAgICAgICBPYmplY3QKLSAgICAgICAgICAgICA8Ci0gICAgICAgICAgICAgIHNwYW4KLSAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICBpZAotICAgICAgICAgICAgICA9IgotICAgICAg
ICAgICAgICAgdGVzdC1lbGVtZW50Ci0gICAgICAgICAgICAgICIKLSAgICAgICAgICAgICA+Ci0g
ICAgICAgICAgICAKLSAgICAgICAgIGV4dGVuc2lvbnMtYXVkaXRzLmh0bWw6MjAKLSAgICBQYXNz
ZWQgcnVsZQotICAgICB0aGlzIHJ1bGUgYWx3YXlzIHBhc3NlcyBvawotIEV4dGVuc2lvbiBhdWRp
dHMgdGhhdCBmYWlsCi1jYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZCBmaXJlZAotZmFpbGVkQ2F0ZWdv
cnkub25BdWRpdFN0YXJ0ZWQgZmlyZWQsIHRocm93aW5nIGV4Y2VwdGlvbgotQWxsIHRlc3RzIGRv
bmUuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtYXVkaXRzLXRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNiMjY3YWZhYTQ5NzYwYjNhYjI4YTk5YmNmODkzMjZiZjkyN2JmNmUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwz
OCArMCwwIEBACi1mdW5jdGlvbiBleHRlbnNpb25fcnVuQXVkaXRzKGNhbGxiYWNrKQotewotICAg
IGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5zdGFydEV4dGVuc2lvbkF1ZGl0cyhy
ZXBseSk7IiwgY2FsbGJhY2spOwotfQotCi0vLyBydW5zIGluIGZyb250LWVuZAotdmFyIGluaXRp
YWxpemVfRXh0ZW5zaW9uc0F1ZGl0c1Rlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgSW5zcGVjdG9y
VGVzdC5zdGFydEV4dGVuc2lvbkF1ZGl0cyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgIHsKLSAg
ICAgICAgY29uc3QgbGF1bmNoZXJWaWV3ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5hdWRpdHMuX2xh
dW5jaGVyVmlldzsKLSAgICAgICAgbGF1bmNoZXJWaWV3Ll9zZWxlY3RBbGxDbGlja2VkKGZhbHNl
KTsKLSAgICAgICAgbGF1bmNoZXJWaWV3Ll9hdWRpdFByZXNlbnRTdGF0ZUVsZW1lbnQuY2hlY2tl
ZCA9IHRydWU7Ci0KLSAgICAgICAgdmFyIGV4dGVuc2lvbkNhdGVnb3JpZXMgPSBkb2N1bWVudC5l
dmFsdWF0ZSgibGFiZWxbc3RhcnRzLXdpdGgoLiwnRXh0ZW5zaW9uICcpXS9pbnB1dFtAdHlwZT0n
Y2hlY2tib3gnXSIsCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cy5fbGF1
bmNoZXJWaWV3Ll9jYXRlZ29yaWVzRWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuT1JERVJFRF9O
T0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOwotCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZXh0ZW5zaW9uQ2F0ZWdvcmllcy5zbmFwc2hvdExlbmd0aDsgKytpKQotICAgICAgICAgICAgZXh0
ZW5zaW9uQ2F0ZWdvcmllcy5zbmFwc2hvdEl0ZW0oaSkuY2xpY2soKTsKLQotICAgICAgICBmdW5j
dGlvbiBvbkF1ZGl0c0RvbmUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb2xsZWN0QXVkaXRSZXN1bHRzKCk7Ci0gICAgICAgICAgICAgICAgY2Fs
bGJhY2soKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cywgImF1ZGl0RmluaXNoZWRD
YWxsYmFjayIsIG9uQXVkaXRzRG9uZSwgdHJ1ZSk7Ci0KLSAgICAgICAgbGF1bmNoZXJWaWV3Ll9s
YXVuY2hCdXR0b25DbGlja2VkKCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5kdW1wQXVk
aXRQcm9ncmVzcyA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBwcm9ncmVzcyA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wYW5lbC5hdWRpdHMgcHJvZ3Jlc3MiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlByb2dyZXNzOiAiICsgTWF0aC5yb3VuZCgxMDAgKiBw
cm9ncmVzcy52YWx1ZSAvIHByb2dyZXNzLm1heCkgKyAiJSIpOwotICAgIH0KLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDg4NGQ4OGViNWNkYmE2MzIyOTFi
ZjYzZGFmNTc1ZDNlNWRiMmVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVk
aXRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRl
bnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2F1ZGl0cy9hdWRpdHMt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMu
anMiPjwvc2NyaXB0PgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWZ1bmN0
aW9uIGV4dGVuc2lvbl90ZXN0QXVkaXRzKG5leHRUZXN0KQotewotICAgIHZhciBwZW5kaW5nT3V0
cHV0ID0gW107Ci0KLSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXRDYXRlZ29yeShyZXN1bHRzKQot
ICAgIHsKLSAgICAgICAgcGVuZGluZ091dHB1dC5wdXNoKCJjYXRlZ29yeS5vbkF1ZGl0U3RhcnRl
ZCBmaXJlZCIpOwotICAgICAgICByZXN1bHRzLmFkZFJlc3VsdCgiUGFzc2VkIHJ1bGUiLCAidGhp
cyBydWxlIGFsd2F5cyBwYXNzZXMgb2siLCByZXN1bHRzLlNldmVyaXR5LkluZm8pOwotICAgICAg
ICByZXN1bHRzLmFkZFJlc3VsdCgiRmFpbGVkIHJ1bGUgKDQyKSIsICJ0aGlzIHJ1bGUgYWx3YXlz
IGZhaWxzIiwgcmVzdWx0cy5TZXZlcml0eS5TZXZlcmUpOwotCi0gICAgICAgIHZhciBub2RlID0g
cmVzdWx0cy5jcmVhdGVSZXN1bHQoIlN1YnRyZWUiKTsKLSAgICAgICAgbm9kZS5hZGRDaGlsZCgi
U29tZSB1cmw6ICIsIHJlc3VsdHMuY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmciLCAi
V2ViS2l0IiksICIgbW9yZSB0ZXh0ICIsIHJlc3VsdHMuY3JlYXRlVVJMKCJodHRwOi8vd3d3Lmdv
b2dsZS5jb20iKSk7Ci0gICAgICAgIHZhciBuZXN0ZWROb2RlID0gbm9kZS5hZGRDaGlsZCgiLi4u
IGFuZCBhIHNuaXBwZXQiKTsKLSAgICAgICAgbmVzdGVkTm9kZS5leHBhbmRlZCA9IHRydWU7Ci0g
ICAgICAgIG5lc3RlZE5vZGUuYWRkQ2hpbGQocmVzdWx0cy5jcmVhdGVTbmlwcGV0KCJmdW5jdGlv
biByYW5kKClcbntcbiAgICByZXR1cm4gNDtcbn0iKSk7Ci0gICAgICAgIG5lc3RlZE5vZGUuYWRk
Q2hpbGQocmVzdWx0cy5jcmVhdGVSZXNvdXJjZUxpbmsoImZpbGU6Ly8vcGF0aC90by9lcnJvci5o
dG1sIiwgMTApKTsKLSAgICAgICAgbmVzdGVkTm9kZS5hZGRDaGlsZChyZXN1bHRzLmNyZWF0ZU9i
amVjdCgiKHthOiA0MiwgYjogJ2Zvbyd9KSIsICJvYmplY3QgZGV0YWlscyIpKTsKLSAgICAgICAg
bmVzdGVkTm9kZS5hZGRDaGlsZChyZXN1bHRzLmNyZWF0ZU5vZGUoImRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0LWVsZW1lbnQnKSIpKTsKLQotICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVj
dGVkV2luZG93LmV2YWwoImxvY2F0aW9uLmhyZWYiLCBmdW5jdGlvbihpbnNwZWN0ZWRQYWdlVVJM
KSB7Ci0gICAgICAgICAgICBuZXN0ZWROb2RlLmFkZENoaWxkKHJlc3VsdHMuY3JlYXRlUmVzb3Vy
Y2VMaW5rKGluc3BlY3RlZFBhZ2VVUkwsIDIwKSk7Ci0KLSAgICAgICAgICAgIGV2YWx1YXRlT25G
cm9udGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wQXVkaXRQcm9ncmVzcygpOyByZXBseSgpOyIsIGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIHJlc3VsdHMuYWRkUmVzdWx0KCJSdWxlIHdpdGgg
ZGV0YWlscyBzdWJ0cmVlICgxKSIsICJUaGlzIHJ1bGUgaGFzIGEgbG90IG9mIGRldGFpbHMiLCBy
ZXN1bHRzLlNldmVyaXR5Lldhcm5pbmcsIG5vZGUpOwotICAgICAgICAgICAgICAgIHJlc3VsdHMu
dXBkYXRlUHJvZ3Jlc3MoMTAsIDIwKTsKLSAgICAgICAgICAgICAgICBldmFsdWF0ZU9uRnJvbnRl
bmQoIkluc3BlY3RvclRlc3QuZHVtcEF1ZGl0UHJvZ3Jlc3MoKTsgcmVwbHkoKTsiLCByZXN1bHRz
LmRvbmUuYmluZChyZXN1bHRzKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fQotICAgIGZ1bmN0aW9uIG9uU3RhcnRBdWRpdEZhaWxlZENhdGVnb3J5KCkKLSAgICB7Ci0gICAg
ICAgIHBlbmRpbmdPdXRwdXQucHVzaCgiZmFpbGVkQ2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQgZmly
ZWQsIHRocm93aW5nIGV4Y2VwdGlvbiIpOwotICAgICAgICB0aHJvdyAib29wcyEiOwotICAgIH0K
LSAgICBmdW5jdGlvbiBvblN0YXJ0QXVkaXREaXNhYmxlZENhdGVnb3J5KHJlc3VsdHMpCi0gICAg
ewotICAgICAgICBwZW5kaW5nT3V0cHV0LnB1c2goIkZBSUw6IGRpc2FibGVkQ2F0ZWdvcnkub25B
dWRpdFN0YXJ0ZWQgZmlyZWQiKTsKLSAgICAgICAgcmVzdWx0cy5kb25lKCk7Ci0gICAgfQotCi0g
ICAgdmFyIGNhdGVnb3J5ID0gd2ViSW5zcGVjdG9yLmF1ZGl0cy5hZGRDYXRlZ29yeSgiRXh0ZW5z
aW9uIGF1ZGl0cyIpOwotICAgIGNhdGVnb3J5Lm9uQXVkaXRTdGFydGVkLmFkZExpc3RlbmVyKG9u
U3RhcnRBdWRpdENhdGVnb3J5KTsKLQotICAgIHZhciBmYWlsZWRDYXRlZ29yeSA9IHdlYkluc3Bl
Y3Rvci5hdWRpdHMuYWRkQ2F0ZWdvcnkoIkV4dGVuc2lvbiBhdWRpdHMgdGhhdCBmYWlsIiwgMik7
Ci0gICAgZmFpbGVkQ2F0ZWdvcnkub25BdWRpdFN0YXJ0ZWQuYWRkTGlzdGVuZXIob25TdGFydEF1
ZGl0RmFpbGVkQ2F0ZWdvcnkpOwotCi0gICAgdmFyIGRpc2FibGVkQ2F0ZWdvcnkgPSB3ZWJJbnNw
ZWN0b3IuYXVkaXRzLmFkZENhdGVnb3J5KCJEaXNhYmxlZCBleHRlbnNpb24gYXVkaXRzIiwgMik7
Ci0gICAgZGlzYWJsZWRDYXRlZ29yeS5vbkF1ZGl0U3RhcnRlZC5hZGRMaXN0ZW5lcihvblN0YXJ0
QXVkaXREaXNhYmxlZENhdGVnb3J5KTsKLQotICAgIGZ1bmN0aW9uIGF1ZGl0c0RvbmUoKQotICAg
IHsKLSAgICAgICAgcGVuZGluZ091dHB1dC5zb3J0KCkuZm9yRWFjaChvdXRwdXQpOwotICAgICAg
ICBuZXh0VGVzdCgpOwotICAgIH0KLSAgICBleHRlbnNpb25fcnVuQXVkaXRzKGF1ZGl0c0RvbmUp
OwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PlRlc3RzIGF1ZGl0cyBzdXBwb3J0IGluIFdlYkluc3BlY3RvciBFeHRlbnNpb25zIEFQSTwvcD4K
LTxzcGFuIGlkPSJ0ZXN0LWVsZW1lbnQiPjxiPjwvYj48L3NwYW4+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWNvbnNvbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1jb25zb2xlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmRiN2JmYjNiMzAyYzg1ODdiMTE3NWU3MTA3ZDdhZWMwNDQ0ZDBiYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTM0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogbG9nIG1lc3Nh
Z2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NzogZGVidWcgbWVzc2FnZQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDQ4OiB3YXJuaW5nIG1lc3NhZ2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTog
ZXJyb3IgbWVzc2FnZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiBsb2cgbWVzc2FnZSB3aXRo
IHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVzCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogbG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZQotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDQ2OiBsb2cgbWVzc2FnZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ3
OiBkZWJ1ZyBtZXNzYWdlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IHdhcm5pbmcgbWVzc2Fn
ZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBlcnJvciBtZXNzYWdlCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNTA6IGxvZyBtZXNzYWdlIHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6
ICVkIGFuZCBhIHN0cmluZzogJXMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBsb2cgbWVzc2Fn
ZSBmcm9tIGV2YWx1YXRlZCBjb2RlCi1UZXN0cyBtZXRob2RzIG9mIHdlYkluc3BlY3Rvci5jb25z
b2xlIGV4dGVuc2lvbiBBUEkKLQotU3RhcnRlZCBleHRlbnNpb24uCi1SdW5uaW5nIHRlc3RzLi4u
Ci1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0QWRkQ29uc29sZU1lc3NhZ2VzCi1sb2cgbWVz
c2FnZSBleHRlbnNpb25zLWNvbnNvbGUuaHRtbDo0NiBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS1s
b2ctbGV2ZWwKLWRlYnVnIG1lc3NhZ2UgZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWw6NDcgY29uc29s
ZS1tZXNzYWdlIGNvbnNvbGUtZGVidWctbGV2ZWwKLXdhcm5pbmcgbWVzc2FnZSBleHRlbnNpb25z
LWNvbnNvbGUuaHRtbDo0OCBjb25zb2xlLW1lc3NhZ2UgY29uc29sZS13YXJuaW5nLWxldmVsCi1l
cnJvciBtZXNzYWdlIGV4dGVuc2lvbnMtY29uc29sZS5odG1sOjQ5IGNvbnNvbGUtbWVzc2FnZSBj
b25zb2xlLWVycm9yLWxldmVsCi1sb2cgbWVzc2FnZSB3aXRoIHR3byBwYXJhbWV0ZXJzLCBhbiBp
bnRlZ2VyOiA0MiBhbmQgYSBzdHJpbmc6IGZvbyBleHRlbnNpb25zLWNvbnNvbGUuaHRtbDo1MCBj
b25zb2xlLW1lc3NhZ2UgY29uc29sZS1sb2ctbGV2ZWwKLWxvZyBtZXNzYWdlIGZyb20gZXZhbHVh
dGVkIGNvZGUgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtbG9nLWxldmVsCi1kZWJ1ZyBtZXNzYWdl
IGZyb20gZXh0ZW5zaW9uIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWRlYnVnLWxldmVsCi1sb2cg
bWVzc2FnZSBmcm9tIGV4dGVuc2lvbiB0ZXN0LXVybC5odG1sOjQyIGNvbnNvbGUtbWVzc2FnZSBj
b25zb2xlLWxvZy1sZXZlbAotd2FybmluZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIGNvbnNvbGUt
bWVzc2FnZSBjb25zb2xlLXdhcm5pbmctbGV2ZWwKLWVycm9yIG1lc3NhZ2UgZnJvbSBleHRlbnNp
b24gY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKLVJVTk5JTkcgVEVTVDogZXh0
ZW5zaW9uX3Rlc3RHZXRDb25zb2xlTWVzc2FnZXMKLXsKLSAgICAwIDogewotICAgICAgICBsaW5l
IDogNDYKLSAgICAgICAgc2V2ZXJpdHkgOiAibG9nIgotICAgICAgICB0ZXh0IDogImxvZyBtZXNz
YWdlIgotICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKLSAgICB9Ci0g
ICAgMSA6IHsKLSAgICAgICAgbGluZSA6IDQ3Ci0gICAgICAgIHNldmVyaXR5IDogImRlYnVnIgot
ICAgICAgICB0ZXh0IDogImRlYnVnIG1lc3NhZ2UiCi0gICAgICAgIHVybCA6IC4uLi9leHRlbnNp
b25zLWNvbnNvbGUuaHRtbAotICAgIH0KLSAgICAyIDogewotICAgICAgICBsaW5lIDogNDgKLSAg
ICAgICAgc2V2ZXJpdHkgOiAid2FybmluZyIKLSAgICAgICAgdGV4dCA6ICJ3YXJuaW5nIG1lc3Nh
Z2UiCi0gICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAotICAgIH0KLSAg
ICAzIDogewotICAgICAgICBsaW5lIDogNDkKLSAgICAgICAgc2V2ZXJpdHkgOiAiZXJyb3IiCi0g
ICAgICAgIHRleHQgOiAiZXJyb3IgbWVzc2FnZSIKLSAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lv
bnMtY29uc29sZS5odG1sCi0gICAgfQotICAgIDQgOiB7Ci0gICAgICAgIGxpbmUgOiA1MAotICAg
ICAgICBzZXZlcml0eSA6ICJsb2ciCi0gICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2Ugd2l0aCB0
d28gcGFyYW1ldGVycywgYW4gaW50ZWdlcjogJWQgYW5kIGEgc3RyaW5nOiAlcyIKLSAgICAgICAg
dXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCi0gICAgfQotICAgIDUgOiB7Ci0gICAg
ICAgIGxpbmUgOiAxCi0gICAgICAgIHNldmVyaXR5IDogImxvZyIKLSAgICAgICAgdGV4dCA6ICJs
b2cgbWVzc2FnZSBmcm9tIGV2YWx1YXRlZCBjb2RlIgotICAgIH0KLSAgICA2IDogewotICAgICAg
ICBzZXZlcml0eSA6ICJkZWJ1ZyIKLSAgICAgICAgdGV4dCA6ICJkZWJ1ZyBtZXNzYWdlIGZyb20g
ZXh0ZW5zaW9uIgotICAgIH0KLSAgICA3IDogewotICAgICAgICBsaW5lIDogNDIKLSAgICAgICAg
c2V2ZXJpdHkgOiAibG9nIgotICAgICAgICB0ZXh0IDogImxvZyBtZXNzYWdlIGZyb20gZXh0ZW5z
aW9uIgotICAgICAgICB1cmwgOiB0ZXN0LXVybC5odG1sCi0gICAgfQotICAgIDggOiB7Ci0gICAg
ICAgIHNldmVyaXR5IDogIndhcm5pbmciCi0gICAgICAgIHRleHQgOiAid2FybmluZyBtZXNzYWdl
IGZyb20gZXh0ZW5zaW9uIgotICAgIH0KLSAgICA5IDogewotICAgICAgICBsaW5lIDogNDIKLSAg
ICAgICAgc2V2ZXJpdHkgOiAiZXJyb3IiCi0gICAgICAgIHRleHQgOiAiZXJyb3IgbWVzc2FnZSBm
cm9tIGV4dGVuc2lvbiIKLSAgICB9Ci19Ci1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0T25D
b25zb2xlTWVzc2FnZUFkZGVkCi17Ci0gICAgMCA6IHsKLSAgICAgICAgbGluZSA6IDQ2Ci0gICAg
ICAgIHNldmVyaXR5IDogImxvZyIKLSAgICAgICAgdGV4dCA6ICJsb2cgbWVzc2FnZSIKLSAgICAg
ICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtY29uc29sZS5odG1sCi0gICAgfQotfQotewotICAgIDAg
OiB7Ci0gICAgICAgIGxpbmUgOiA0NwotICAgICAgICBzZXZlcml0eSA6ICJkZWJ1ZyIKLSAgICAg
ICAgdGV4dCA6ICJkZWJ1ZyBtZXNzYWdlIgotICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1j
b25zb2xlLmh0bWwKLSAgICB9Ci19Ci17Ci0gICAgMCA6IHsKLSAgICAgICAgbGluZSA6IDQ4Ci0g
ICAgICAgIHNldmVyaXR5IDogIndhcm5pbmciCi0gICAgICAgIHRleHQgOiAid2FybmluZyBtZXNz
YWdlIgotICAgICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwKLSAgICB9Ci19
Ci17Ci0gICAgMCA6IHsKLSAgICAgICAgbGluZSA6IDQ5Ci0gICAgICAgIHNldmVyaXR5IDogImVy
cm9yIgotICAgICAgICB0ZXh0IDogImVycm9yIG1lc3NhZ2UiCi0gICAgICAgIHVybCA6IC4uLi9l
eHRlbnNpb25zLWNvbnNvbGUuaHRtbAotICAgIH0KLX0KLXsKLSAgICAwIDogewotICAgICAgICBs
aW5lIDogNTAKLSAgICAgICAgc2V2ZXJpdHkgOiAibG9nIgotICAgICAgICB0ZXh0IDogImxvZyBt
ZXNzYWdlIHdpdGggdHdvIHBhcmFtZXRlcnMsIGFuIGludGVnZXI6ICVkIGFuZCBhIHN0cmluZzog
JXMiCi0gICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAotICAgIH0KLX0K
LXsKLSAgICAwIDogewotICAgICAgICBsaW5lIDogMQotICAgICAgICBzZXZlcml0eSA6ICJsb2ci
Ci0gICAgICAgIHRleHQgOiAibG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQgY29kZSIKLSAgICB9
Ci19Ci1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODQyYTNjZDBjMzE3NmE4ZTA2NTc5NmU3YzVjOTc3Mzc1YmRmYmNlNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWNvbnNvbGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDYwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0
LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotZnVuY3Rp
b24gZXh0ZW5zaW9uX3Rlc3RHZXRDb25zb2xlTWVzc2FnZXMobmV4dFRlc3QpCi17Ci0gICAgZnVu
Y3Rpb24gY2FsbGJhY2sobWVzc2FnZXMpCi0gICAgewotICAgICAgICBkdW1wT2JqZWN0KG1lc3Nh
Z2VzLCB7IHVybDogInVybCIgfSk7Ci0gICAgfQotICAgIHdlYkluc3BlY3Rvci5jb25zb2xlLmdl
dE1lc3NhZ2VzKGNhbGxiYWNrQW5kTmV4dFRlc3QoY2FsbGJhY2ssIG5leHRUZXN0KSk7Ci19Ci0K
LWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0QWRkQ29uc29sZU1lc3NhZ2VzKG5leHRUZXN0KQotewot
ICAgIHdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUu
U2V2ZXJpdHkuRGVidWcsICJkZWJ1ZyBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIik7Ci0gICAgd2Vi
SW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVzc2FnZSh3ZWJJbnNwZWN0b3IuY29uc29sZS5TZXZlcml0
eS5Mb2csICJsb2cgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIsICJ0ZXN0LXVybC5odG1sIiwgNDIp
OwotICAgIHdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNv
bGUuU2V2ZXJpdHkuV2FybmluZywgIndhcm5pbmcgbWVzc2FnZSBmcm9tIGV4dGVuc2lvbiIpOwot
ICAgIHdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3NhZ2Uod2ViSW5zcGVjdG9yLmNvbnNvbGUu
U2V2ZXJpdHkuRXJyb3IsICJlcnJvciBtZXNzYWdlIGZyb20gZXh0ZW5zaW9uIiwgbnVsbCwgNDIp
OwotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgiIiwgZnVuY3Rpb24oKSB7
Ci0gICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1l
c3NhZ2VzV2l0aENsYXNzZXMoKTsgcmVwbHkoKTsiLCBuZXh0VGVzdCk7Ci0gICAgfSk7Ci19Ci0K
LWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0T25Db25zb2xlTWVzc2FnZUFkZGVkKG5leHRUZXN0KQot
ewotICAgIHZhciBleHBlY3RlZE1lc3NhZ2VzID0gNjsKLQotICAgIGZ1bmN0aW9uIG9uTWVzc2Fn
ZShtZXNzYWdlKQotICAgIHsKLSAgICAgICAgZHVtcE9iamVjdChBcnJheS5wcm90b3R5cGUuc2xp
Y2UuY2FsbChhcmd1bWVudHMsIDApLCB7IHVybDogInVybCIgfSk7Ci0gICAgICAgIGlmICghLS1l
eHBlY3RlZE1lc3NhZ2VzKSB7Ci0gICAgICAgICAgICB3ZWJJbnNwZWN0b3IuY29uc29sZS5vbk1l
c3NhZ2VBZGRlZC5yZW1vdmVMaXN0ZW5lcihvbk1lc3NhZ2UpOwotICAgICAgICAgICAgbmV4dFRl
c3QoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICB3ZWJJbnNwZWN0b3IuY29uc29sZS5vbk1lc3Nh
Z2VBZGRlZC5hZGRMaXN0ZW5lcihvbk1lc3NhZ2UpOwotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0
ZWRXaW5kb3cuZXZhbCgibG9nKCk7Iik7Ci19Ci0KLWZ1bmN0aW9uIGxvZygpCi17Ci0gICAgY29u
c29sZS5sb2coImxvZyBtZXNzYWdlIik7Ci0gICAgY29uc29sZS5kZWJ1ZygiZGVidWcgbWVzc2Fn
ZSIpOwotICAgIGNvbnNvbGUud2Fybigid2FybmluZyBtZXNzYWdlIik7Ci0gICAgY29uc29sZS5l
cnJvcigiZXJyb3IgbWVzc2FnZSIpOwotICAgIGNvbnNvbGUubG9nKCJsb2cgbWVzc2FnZSB3aXRo
IHR3byBwYXJhbWV0ZXJzLCBhbiBpbnRlZ2VyOiAlZCBhbmQgYSBzdHJpbmc6ICVzIiwgNDIsICJm
b28iKTsKLSAgICBldmFsKCJjb25zb2xlLmxvZygnbG9nIG1lc3NhZ2UgZnJvbSBldmFsdWF0ZWQg
Y29kZScpIik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJsb2coKTsg
cnVuVGVzdCgpIj4KLTxwPlRlc3RzIG1ldGhvZHMgb2Ygd2ViSW5zcGVjdG9yLmNvbnNvbGUgZXh0
ZW5zaW9uIEFQSTwvcD4KLTxkaXYgaWQ9InRlc3QtZGl2IiBjbGFzcz0idGVzdCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjIwM2Q0MmRkNjAy
Njg3ZTIyODYyMDNkMDI0Yjc4MDk3YzdlZDI5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTIgKzAsMCBAQAotVGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKLQotU3RhcnRl
ZCBleHRlbnNpb24uCi1SdW5uaW5nIHRlc3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90
ZXN0RXZhbEluQ29udGVudFNjcmlwdENvbnRleHQKLUV2YWx1YXRlOiAiYnJhdmUgbmV3IHdvcmxk
IiAoZXhjZXB0aW9uOiB1bmRlZmluZWQpCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXZh
bEluTWFpbldvcmxkRXhwbGljaXQKLUV2YWx1YXRlOiAibWFpbiB3b3JsZCIgKGV4Y2VwdGlvbjog
dW5kZWZpbmVkKQotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEV2YWxJbk1haW5Xb3JsZElt
cGxpY2l0Ci1FdmFsdWF0ZTogIm1haW4gd29ybGQiIChleGNlcHRpb246IHVuZGVmaW5lZCkKLUFs
bCB0ZXN0cyBkb25lLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzA0MDRmMDJkMTdhYjE5NGM3YWVkZjEzZTZj
NTNkODhkNjg1NWM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1jb250
ZW50LXNjcmlwdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KLQotd2luZG93LndoZXJlQW1JID0gIm1haW4gd29ybGQiOwotCi10ZXN0UnVubmVy
LnNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbig2MzIsICJmaWxlOi8vLyIpOwotdGVzdFJ1
bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCg2MzIsICJ3aW5kb3cud2hlcmVBbUkg
PSAnYnJhdmUgbmV3IHdvcmxkJyIpOwotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxJbk1h
aW5Xb3JsZEltcGxpY2l0KG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRX
aW5kb3cuZXZhbCgid2hlcmVBbUkiLCBjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vbkV2
YWwsIG5leHRUZXN0KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXZhbEluTWFpbldv
cmxkRXhwbGljaXQobmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRv
dy5ldmFsKCJ3aGVyZUFtSSIsIHsgdXNlQ29udGVudFNjcmlwdENvbnRleHQ6IGZhbHNlIH0sIGNh
bGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKLX0KLQotZnVu
Y3Rpb24gZXh0ZW5zaW9uX3Rlc3RFdmFsSW5Db250ZW50U2NyaXB0Q29udGV4dChuZXh0VGVzdCkK
LXsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoIndoZXJlQW1JIiwgeyB1
c2VDb250ZW50U2NyaXB0Q29udGV4dDogdHJ1ZSB9LCBjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVu
c2lvbl9vbkV2YWwsIG5leHRUZXN0KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl9vbkV2YWwo
dmFsdWUsIGlzRXhjZXB0aW9uKQotewotICAgIG91dHB1dCgiRXZhbHVhdGU6ICIgKyBKU09OLnN0
cmluZ2lmeSh2YWx1ZSkgKyAiIChleGNlcHRpb246ICIgKyBpc0V4Y2VwdGlvbiArICIpIik7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVz
dHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEk8L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
cy1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWFiY2Fk
MWM5Y2EyOTU5YzQzZDRiNTljOGYyNDNkZDdjNzJlMzk1NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLWV2YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAs
MCBAQAotVGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKLQotU3RhcnRlZCBleHRlbnNp
b24uCi1SdW5uaW5nIHRlc3RzLi4uCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0RXZhbENv
bnNvbGVBUEkKLUV2YWx1YXRlOiAiZnVuY3Rpb24iIChleGNlcHRpb246IHVuZGVmaW5lZCkKLVJV
Tk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsRGVmaW5lc0dsb2JhbFN5bWJvbHMKLUV2YWx1
YXRlOiB7ImZ1bmMiOiJmdW5jdGlvbiIsInZhcmlhYmxlIjo0Mn0gKGV4Y2VwdGlvbjogdW5kZWZp
bmVkKQotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdEV2YWxPawotRXZhbHVhdGU6IHsic3Ry
IjoiZm9vIiwibnVtIjo0Mn0gKGV4Y2VwdGlvbjogdW5kZWZpbmVkKQotUlVOTklORyBURVNUOiBl
eHRlbnNpb25fdGVzdEV2YWxTdGF0ZW1lbnQKLUV2YWx1YXRlOiAwIChleGNlcHRpb246IHVuZGVm
aW5lZCkKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsU3RyaW5naWZ5aW5nTG9vcEZh
aWxlZAotbG9nOiBFeHRlbnNpb24gc2VydmVyIGVycm9yOiBJbnNwZWN0b3IgcHJvdG9jb2wgZXJy
b3I6IE9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluKG11c3Qgbm90IGJlIGxvbmdl
ciB0aGFuIDEwMDApCi1FdmFsdWF0ZTogdW5kZWZpbmVkIChleGNlcHRpb246IHsiY29kZSI6IkVf
UFJPVE9DT0xFUlJPUiIsImRlc2NyaXB0aW9uIjoiSW5zcGVjdG9yIHByb3RvY29sIGVycm9yOiAl
cyIsImRldGFpbHMiOlsiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVuY2UgY2hhaW4obXVzdCBu
b3QgYmUgbG9uZ2VyIHRoYW4gMTAwMCkiXSwiaXNFcnJvciI6dHJ1ZX0pCi1SVU5OSU5HIFRFU1Q6
IGV4dGVuc2lvbl90ZXN0RXZhbFRocm93cwotRXZhbHVhdGU6IHVuZGVmaW5lZCAoZXhjZXB0aW9u
OiB7ImlzRXhjZXB0aW9uIjp0cnVlLCJ2YWx1ZSI6InRlc3RFeGNlcHRpb25TdHJpbmcifSkKLVJV
Tk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RFdmFsVW5kZWZpbmVkCi1FdmFsdWF0ZTogdW5kZWZp
bmVkIChleGNlcHRpb246IHVuZGVmaW5lZCkKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RX
aXRoU3RyaW5naWZ5T3ZlcnJpZGRlbgotRXZhbHVhdGU6ICJPSyIgKGV4Y2VwdGlvbjogdW5kZWZp
bmVkKQotQWxsIHRlc3RzIGRvbmUuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGViYjdkYjRjYWMwNmU0NWQyM2E4NzIwOTE4ZDA3ZWZhMDNmYjYxMGIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuaW5zcGVjdGVkVmFsdWUgPSB7
IHN0cjogImZvbyIsIG51bTogNDIgfTsKLQotd2luZG93Lmxvb3AgPSB7IH07Ci13aW5kb3cubG9v
cC5uZXh0ID0gd2luZG93Lmxvb3A7Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXZhbE9rKG5l
eHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgiaW5zcGVj
dGVkVmFsdWUiLCBjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vbkV2YWwsIG5leHRUZXN0
KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0RXZhbFN0cmluZ2lmeWluZ0xvb3BGYWls
ZWQobmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJ3
aW5kb3cubG9vcCIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRl
c3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RFdmFsRGVmaW5lc0dsb2JhbFN5bWJv
bHMobmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJm
dW5jdGlvbiBleHRlbnNpb25GdW5jKCkge30iKTsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVk
V2luZG93LmV2YWwoImV4dGVuc2lvblZhciA9IDQyOyIpOwotICAgIHdlYkluc3BlY3Rvci5pbnNw
ZWN0ZWRXaW5kb3cuZXZhbCgiKHsgZnVuYzogdHlwZW9mIHdpbmRvdy5leHRlbnNpb25GdW5jLCB2
YXJpYWJsZTogd2luZG93LmV4dGVuc2lvblZhciB9KSIsIGNhbGxiYWNrQW5kTmV4dFRlc3QoZXh0
ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RF
dmFsU3RhdGVtZW50KG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5k
b3cuZXZhbCgidmFyIHggPSAzOyB3aGlsZSAoLS14KTsgeCIsIGNhbGxiYWNrQW5kTmV4dFRlc3Qo
ZXh0ZW5zaW9uX29uRXZhbCwgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rl
c3RFdmFsVW5kZWZpbmVkKG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRX
aW5kb3cuZXZhbCgidW5kZWZpbmVkIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRlbnNpb25fb25F
dmFsLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2YWxDb25zb2xl
QVBJKG5leHRUZXN0KQotewotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cuZXZhbCgi
dHlwZW9mIGluc3BlY3QiLCBjYWxsYmFja0FuZE5leHRUZXN0KGV4dGVuc2lvbl9vbkV2YWwsIG5l
eHRUZXN0KSk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0V2l0aFN0cmluZ2lmeU92ZXJy
aWRkZW4obmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFs
KCIoSlNPTi5zdHJpbmdpZnkgPSBmdW5jdGlvbigpIHsgdGhyb3cgJ29vcHMhIHlvdSBjYW4gbm90
IHVzZSBKU09OLnN0cmluZ2lmeSc7IH0pLCAnT0snIiwgY2FsbGJhY2tBbmROZXh0VGVzdChleHRl
bnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEV2
YWxUaHJvd3MobmV4dFRlc3QpCi17Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5l
dmFsKCJ0aHJvdygndGVzdEV4Y2VwdGlvblN0cmluZycpIiwgY2FsbGJhY2tBbmROZXh0VGVzdChl
eHRlbnNpb25fb25FdmFsLCBuZXh0VGVzdCkpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fb25F
dmFsKHZhbHVlLCBzdGF0dXMpCi17Ci0gICAgdmFyIGV4Y2VwdGlvblN0cmluZyA9IHR5cGVvZiBz
dGF0dXMgPT09ICJ1bmRlZmluZWQiID8gInVuZGVmaW5lZCIgOiBKU09OLnN0cmluZ2lmeShzdGF0
dXMpOwotICAgIG91dHB1dCgiRXZhbHVhdGU6ICIgKyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgKyAi
IChleGNlcHRpb246ICIgKyBleGNlcHRpb25TdHJpbmcgKyAiKSIpOwotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIFdlYkluc3BlY3Rv
ciBleHRlbnNpb24gQVBJPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWQyZDNlNTY4ZWRmN2Y0
MzMwOWZmYTFhNGY5MzNlYzkwOGQwMDU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRl
c3RzIFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJCi0KLVN0YXJ0ZWQgZXh0ZW5zaW9uLgotUnVu
bmluZyB0ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uTmF2aWdhdGVkCi1Q
YWdlIHJlbG9hZGVkLgotUGFnZSByZWxvYWRlZC4KLU5hdmlnYXRlZCB0bzogZXh0ZW5zaW9ucy1l
dmVudHMuaHRtbD9uYXZpZ2F0ZWQKLU5hdmlnYXRlZCB0bzogZXh0ZW5zaW9ucy1ldmVudHMuaHRt
bAotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uUmVxdWVzdEZpbmlzaGVkCi1vblJlcXVl
c3RGaW5pc2hlZCBmaXJlZAotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdE9uU2VsZWN0aW9u
Q2hhbmdlZAotb25TZWxlY3Rpb25DaGFuZ2VkIGZpcmVkCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lv
bl90ZXN0VGltZWxpbmVFdmVudHMKLUdvdCBMYXlvdXQgZXZlbnQgZnJvbSB0aW1lbGluZQotUlVO
TklORyBURVNUOiBleHRlbnNpb25fdGVzdFZpZXdTaG93SGlkZQotR290IG9uU2hvd24gZXZlbnQg
Zm9yIHNpZGViYXIKLVNpZGViYXIgc2hvd24sIGxvY2F0aW9uOiAuLi4vZXh0ZW5zaW9uLXNpZGVi
YXIuaHRtbAotR290IG9uSGlkZGVuIGV2ZW50IGZvciBzaWRlYmFyCi1Hb3Qgb25TaG93biBldmVu
dCBmb3IgcGFuZWwKLVBhbmVsIHNob3duLCBsb2NhdGlvbjogLi4uL2V4dGVuc2lvbi1wYW5lbC5o
dG1sCi1Hb3Qgb25IaWRkZW4gZXZlbnQgZm9yIHBhbmVsCi1Hb3Qgb25TaG93biBldmVudCBmb3Ig
c2lkZWJhcgotU2lkZWJhciBzaG93biwgbG9jYXRpb246IC4uLi9leHRlbnNpb24tc2lkZWJhci5o
dG1sCi1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZlbnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJkYzAzM2M0ZjU3ZjA2YjU2ZjI2NmRiY2NjY2Q5ZWRlY2FlOGE0ZWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmVudHMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE2NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1mdW5jdGlvbiBpbml0aWFsaXpl
X2V4dGVuc2lvbnNTaWRlYmFyVGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5leHBhbmRTaWRl
YmFyID0gZnVuY3Rpb24oY2FsbGJhY2spCi0gICAgewotICAgICAgICB2YXIgc2lkZWJhciA9IElu
c3BlY3RvclRlc3QuX2V4dGVuc2lvblNpZGViYXIoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5y
dW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc2lkZWJh
ci5leHBhbmQoKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOwotICAgIH0K
LQotICAgIEluc3BlY3RvclRlc3QuX2V4dGVuc2lvblNpZGViYXIgPSBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICB2YXIgc2lkZWJhclBhbmVzID0gV2ViSW5zcGVjdG9yLnBhbmVsKCJlbGVtZW50
cyIpLnNpZGViYXJQYW5lczsKLSAgICAgICAgLy8gdGhlIHNpZGViYXIgb2YgaW50ZXJlc3QgaXMg
cHJlc3VtZWQgdG8gYWx3YXlzIGJlIGxhc3QuCi0gICAgICAgIHJldHVybiBzaWRlYmFyUGFuZXNb
T2JqZWN0LmtleXMoc2lkZWJhclBhbmVzKS5wb3AoKV07Ci0gICAgfQotfQotCi1mdW5jdGlvbiBl
eHRlbnNpb25fZXhwYW5kU2lkZWJhcihjYWxsYmFjaykKLXsKLSAgICBldmFsdWF0ZU9uRnJvbnRl
bmQoIkluc3BlY3RvclRlc3QuZXhwYW5kU2lkZWJhcihyZXBseSk7IiwgY2FsbGJhY2spOwotfQot
Ci1mdW5jdGlvbiBleHRlbnNpb25fdGVzdE9uU2VsZWN0aW9uQ2hhbmdlZChuZXh0VGVzdCkKLXsK
LSAgICBmdW5jdGlvbiBvblNlbGVjdGlvbkNoYW5nZWQoKQotICAgIHsKLSAgICAgICAgd2ViSW5z
cGVjdG9yLnBhbmVscy5lbGVtZW50cy5vblNlbGVjdGlvbkNoYW5nZWQucmVtb3ZlTGlzdGVuZXIo
b25TZWxlY3Rpb25DaGFuZ2VkKTsKLSAgICAgICAgb3V0cHV0KCJvblNlbGVjdGlvbkNoYW5nZWQg
ZmlyZWQiKTsKLSAgICAgICAgbmV4dFRlc3QoKTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLnBh
bmVscy5lbGVtZW50cy5vblNlbGVjdGlvbkNoYW5nZWQuYWRkTGlzdGVuZXIob25TZWxlY3Rpb25D
aGFuZ2VkKTsKLSAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImluc3BlY3Qo
ZG9jdW1lbnQuYm9keS5jaGlsZHJlblswXSksIDAiKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9u
X3Rlc3RPblJlcXVlc3RGaW5pc2hlZChuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblJlcXVl
c3RGaW5pc2hlZCgpCi0gICAgewotICAgICAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5vblJlcXVl
c3RGaW5pc2hlZC5yZW1vdmVMaXN0ZW5lcihvblJlcXVlc3RGaW5pc2hlZCk7Ci0gICAgICAgIG91
dHB1dCgib25SZXF1ZXN0RmluaXNoZWQgZmlyZWQiKTsKLSAgICAgICAgbmV4dFRlc3QoKTsKLSAg
ICB9Ci0gICAgd2ViSW5zcGVjdG9yLm5ldHdvcmsub25SZXF1ZXN0RmluaXNoZWQuYWRkTGlzdGVu
ZXIob25SZXF1ZXN0RmluaXNoZWQpOwotICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cu
ZXZhbCgidmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOyB4aHIub3BlbignR0VUJywgJyIg
KyBsb2NhdGlvbi5ocmVmICsgIicsIGZhbHNlKTsgeGhyLnNlbmQobnVsbCk7Iik7Ci19Ci0KLWZ1
bmN0aW9uIGV4dGVuc2lvbl90ZXN0T25OYXZpZ2F0ZWQobmV4dFRlc3QpCi17Ci0gICAgdmFyIHVy
bHMgPSBbXTsKLSAgICB2YXIgbG9hZENvdW50ID0gMDsKLQotICAgIGZ1bmN0aW9uIG9uTG9hZCgp
Ci0gICAgewotICAgICAgICArK2xvYWRDb3VudDsKLSAgICAgICAgcHJvY2Vzc0V2ZW50KCk7Ci0g
ICAgfQotICAgIGZ1bmN0aW9uIHByb2Nlc3NFdmVudCgpCi0gICAgewotICAgICAgICBpZiAobG9h
ZENvdW50ICE9PSB1cmxzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KGxvYWRDb3VudCA9PT0gMSkKLSAgICAgICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVj
dG9yVGVzdC5uYXZpZ2F0ZShXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTC5zdWJzdHJpbmco
MCwgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwuaW5kZXhPZignPycpKSwgcmVwbHkpIiwg
b25Mb2FkKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB3ZWJJbnNwZWN0b3IubmV0d29y
ay5vbk5hdmlnYXRlZC5yZW1vdmVMaXN0ZW5lcihvbk5hdmlnYXRlZCk7Ci0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHVybHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgb3V0
cHV0KCJOYXZpZ2F0ZWQgdG86ICIgKyB1cmxzW2ldKTsKLSAgICAgICAgICAgIG5leHRUZXN0KCk7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZnVuY3Rpb24gb25OYXZpZ2F0ZWQodXJsKQotICAgIHsK
LSAgICAgICAgdXJscy5wdXNoKHVybC5yZXBsYWNlKC9eKC4qXC8pKi8sICIiKSk7Ci0gICAgICAg
IHByb2Nlc3NFdmVudCgpOwotICAgIH0KLSAgICB3ZWJJbnNwZWN0b3IubmV0d29yay5vbk5hdmln
YXRlZC5hZGRMaXN0ZW5lcihvbk5hdmlnYXRlZCk7Ci0gICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJ
bnNwZWN0b3JUZXN0Lm5hdmlnYXRlKFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMICsgJz9u
YXZpZ2F0ZWQnLCByZXBseSkiLCBvbkxvYWQpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVz
dFZpZXdTaG93SGlkZShuZXh0VGVzdCkKLXsKLSAgICB2YXIgbGlzdGVuZXJzVG9DbGVhbnVwID0g
W107Ci0gICAgdmFyIHNpZGViYXI7Ci0gICAgdmFyIGJlZW5Ub0V4dGVuc2lvblBhbmVsID0gZmFs
c2U7Ci0KLSAgICBmdW5jdGlvbiBvblZpZXdFdmVudCh0eXBlLCB2aWV3TmFtZSwgdmlld1dpbmRv
dykKLSAgICB7Ci0gICAgICAgIG91dHB1dCgiR290ICIgKyB0eXBlICsgIiBldmVudCBmb3IgIiAr
IHZpZXdOYW1lKTsKLSAgICAgICAgaWYgKHR5cGUgIT09ICJvblNob3duIikKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgaWYgKHZpZXdOYW1lID09PSAicGFuZWwiKSB7Ci0gICAgICAgICAg
ICBvdXRwdXQoIlBhbmVsIHNob3duLCBsb2NhdGlvbjogIiArIHRyaW1VUkwodmlld1dpbmRvdy5s
b2NhdGlvbi5ocmVmKSk7Ci0gICAgICAgICAgICBleHRlbnNpb25fc2hvd1BhbmVsKCJlbGVtZW50
cyIpOwotICAgICAgICB9IGVsc2UgaWYgKHZpZXdOYW1lID09PSAic2lkZWJhciIpIHsKLSAgICAg
ICAgICAgIG91dHB1dCgiU2lkZWJhciBzaG93biwgbG9jYXRpb246ICIgKyB0cmltVVJMKHZpZXdX
aW5kb3cubG9jYXRpb24uaHJlZikpOwotICAgICAgICAgICAgaWYgKCFiZWVuVG9FeHRlbnNpb25Q
YW5lbCkgewotICAgICAgICAgICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwoImV4dGVuc2lvbiIp
OwotICAgICAgICAgICAgICAgIGJlZW5Ub0V4dGVuc2lvblBhbmVsID0gdHJ1ZTsKLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgY2xlYW51cExpc3RlbmVycygpOwotICAgICAg
ICAgICAgICAgIG5leHRUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgZnVuY3Rpb24gYWRkTGlzdGVuZXIodmlldywgdmlld05hbWUsIHR5cGUpCi0gICAgewotICAg
ICAgICB2YXIgbGlzdGVuZXIgPSBiaW5kKG9uVmlld0V2ZW50LCBudWxsLCB0eXBlLCB2aWV3TmFt
ZSk7Ci0gICAgICAgIHZhciBldmVudCA9IHZpZXdbdHlwZV07Ci0gICAgICAgIGxpc3RlbmVyc1Rv
Q2xlYW51cC5wdXNoKHsgZXZlbnQ6IGV2ZW50LCBsaXN0ZW5lcjogbGlzdGVuZXIgfSk7Ci0gICAg
ICAgIGV2ZW50LmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gY2xl
YW51cExpc3RlbmVycygpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3Rl
bmVyc1RvQ2xlYW51cC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGxpc3RlbmVyc1RvQ2xlYW51
cFtpXS5ldmVudC5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcnNUb0NsZWFudXBbaV0ubGlzdGVuZXIp
OwotICAgIH0KLSAgICBmdW5jdGlvbiBvblBhbmVsQ3JlYXRlZChwYW5lbCkKLSAgICB7Ci0gICAg
ICAgIGFkZExpc3RlbmVyKHBhbmVsLCAicGFuZWwiLCAib25TaG93biIpOwotICAgICAgICBhZGRM
aXN0ZW5lcihwYW5lbCwgInBhbmVsIiwgIm9uSGlkZGVuIik7Ci0gICAgICAgIGFkZExpc3RlbmVy
KHNpZGViYXIsICJzaWRlYmFyIiwgIm9uSGlkZGVuIik7Ci0gICAgICAgIGFkZExpc3RlbmVyKHNp
ZGViYXIsICJzaWRlYmFyIiwgIm9uU2hvd24iKTsKLSAgICAgICAgc2lkZWJhci5zZXRQYWdlKGJh
c2VQYXRoICsgImV4dGVuc2lvbi1zaWRlYmFyLmh0bWwiKTsKLSAgICB9Ci0gICAgZXh0ZW5zaW9u
X3Nob3dQYW5lbCgiZWxlbWVudHMiLCBleHRlbnNpb25fZXhwYW5kU2lkZWJhcik7Ci0gICAgdmFy
IGJhc2VQYXRoID0gbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQvLCAiLyIpOwot
ICAgIGZ1bmN0aW9uIG9uU2lkZWJhckNyZWF0ZWQoc2lkZWJhclBhbmUpCi0gICAgewotICAgICAg
ICBzaWRlYmFyID0gc2lkZWJhclBhbmU7Ci0gICAgICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuY3Jl
YXRlKCJUZXN0IFBhbmVsIiwgYmFzZVBhdGggKyAiZXh0ZW5zaW9uLXBhbmVsLnBuZyIsIGJhc2VQ
YXRoICsgImV4dGVuc2lvbi1wYW5lbC5odG1sIiwgb25QYW5lbENyZWF0ZWQpOwotICAgIH0KLSAg
ICB3ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmNyZWF0ZVNpZGViYXJQYW5lKCJUZXN0IFNp
ZGViYXIiLCBvblNpZGViYXJDcmVhdGVkKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RU
aW1lbGluZUV2ZW50cyhuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblRpbWVsaW5lRXZlbnQo
cmVjb3JkKQotICAgIHsKLSAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSAiTGF5b3V0Iikgewot
ICAgICAgICAgICAgb3V0cHV0KCJHb3QgTGF5b3V0IGV2ZW50IGZyb20gdGltZWxpbmUiKTsKLSAg
ICAgICAgICAgIHdlYkluc3BlY3Rvci50aW1lbGluZS5vbkV2ZW50UmVjb3JkZWQucmVtb3ZlTGlz
dGVuZXIob25UaW1lbGluZUV2ZW50KTsKLSAgICAgICAgICAgIG5leHRUZXN0KCk7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICB3ZWJJbnNwZWN0b3IudGltZWxpbmUub25FdmVudFJlY29yZGVkLmFk
ZExpc3RlbmVyKG9uVGltZWxpbmVFdmVudCk7Ci0KLSAgICAvLyBUcmlnZ2VyIGEgcmVsYXlvdXQu
Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJkb2N1bWVudC5ib2R5LnN0
eWxlLmZsb2F0ID0gJ2xlZnQnOyIpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIFdlYkluc3BlY3RvciBleHRlbnNpb24gQVBJPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3b3JrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtbmV0d29yay1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwMzZhMmM2M2RhOGU5MjVkZDk2OTA3MGNmZjMyMmFm
NTkyMTE2ZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3b3JrLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLVRlc3RzIFdlYkluc3BlY3Rv
ciBleHRlbnNpb24gQVBJCi0KLSAKLVBhZ2UgcmVsb2FkZWQuCi1TdGFydGVkIGV4dGVuc2lvbi4K
LVJ1bm5pbmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRIQVIKLXJl
c291cmNlOiAuLi4vdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtbmV0d29yay10ZXN0LmpzCi1y
ZXNvdXJjZTogLi4uL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMKLXJlc291cmNl
OiAuLi4vdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCi1yZXNvdXJjZTogLi4uL2lu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtbmV0d29yay5odG1sCi1yZXNvdXJjZTogLi4u
L2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtbmV0d29yay5odG1sCi1yZXNvdXJjZTog
Li4uL2V4dGVuc2lvbnMvcmVzb3VyY2VzL2FiZS5wbmcKLXJlc291cmNlOiAuLi4vZXh0ZW5zaW9u
cy9yZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3MKLXJlc291cmNlOiAuLi4vZXh0ZW5zaW9ucy9y
ZXNvdXJjZXMvbWlzc2luZy1pbWFnZS5wbmcKLXJlc291cmNlOiAuLi4vTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL0FoZW0udHRmCi1SVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0R2V0UmVxdWVzdENv
bnRlbnQKLXsKLSAgICAwIDogIi5zb21lLXN0eWxlIHsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogbWlk
ZGxlOwotfSIKLSAgICAxIDogIiIKLX0KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRS
ZXNvdXJjZUNvbnRlbnRFbmNvZGVkCi17Ci0gICAgMCA6ICJpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBRXdBQUFCbkNBSUFBQUFsbmpPSkFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFnQUVs
RVFWUjRuRzE4YVd3YzUzbi96T3pNN016c2ZTOTNlUitpZUlpa3BFaFJTTW1XTGNlS2JUbEhIY1d1
RXp2Tmw3UW9naDZmaWdKRmdhSm8rNmtGQ2pSQWc3Yi93a2xRRjAxaHVHa1ZxWElkeWJVczZxWWtr
dUlsTHNWZGNzbmwzdmZzN0J6L0R6L082NUhjK1VBczk1aDUzL2U1ZnMvdmVkNlh2bkxsaWlBSWtp
U3hMR3NZaHFxcW1xWVpoaUZKRXNNd0RNUFFORTFSRkUzVCtGZlROSTdqTkUxck5wc013emdjRGsz
VGFyV2FMTXMybTQybTZYYTczVzYzZFYybmFacW1hVVZST0k0ekRFT1daVlZWYlRZYnd6QzZycXVx
Nm5RNk9ZNXJOcHVxcWdxQ0lJb2l3ekEybTgxbXMyRWt1SW11NisxMnU5VnFzU3pMOHp6SGNiZ0po
dFJzTnZIQ1pya3dERjNYRGNQUWRaMWxXWlpoR0lxaURNUFFOQTB6cENpSzR6aE1EeC9oVFlxaVdK
YkZnMjAybXlpS2dpQlVLcFZTcWVUeGVEUk5veWpLYnJjekRGT3YxOXZ0TnNNd2Ryc2Q3MHVTUkZH
VXBtazBUYk1zMjJnMDJ1MjJvaWcybTgzbGNnbUNZQmlHb2lpR1lkQTBiYlBac0RUNGlhN3J1QzBt
UUZFVW1UOUdSWnNYbVR4a2hubXllSmRNbXFJb1NNeG1zK0gzK0lqSXM5MXUyMncyUVJBd2lIYTdM
UWpDd01CQXRWcHROQnFxcWpJTVl4Z0dGcHZuZWNpRXBtbXNXcXZWd3FkdXR4c3l4RGV4OEhnY0dR
T2VxS3FxWVJqNE9kRXNpQVFESTlNakk4Yzdobm50VHhjTGc1dXlMQXVGd2IzSUpIRWp2OTlmcjlj
cGlvSjJsY3RsV1pZWmhuRTZuVHpQTnhxTmVyMnVxaXB1Z2w5QldhQ2xQTTlqbVhtZTUza2V6MVZW
VlZFVXU5M3VjcmxxdFpyMXQwUnVXRHZLdk1nRWlPaUl4aEt6SXBySWtnOHdkWElYVlZYSjdhd3Fr
YzFtWTdHWUpFazdPenVKUktMUmFEaWRUcmZibmNsa2ZENmZJQWlRbTkxdTEzVzlWcXN4RENNSUFz
dXlXSGlvQUVWUmlxSm9tc1l3REd5TW9pajhGVVVSaXdLUkV0VWxPZ1U1NHlOaStXUnU1SUtON0lz
TkMwQXNEWmRWeTU5NTdmVjZEY080ZWZQbWUrKzk5ei8vOHorR1lZVERZWjduUjBaR1JrWkdob2FH
NEU0d2RMdmREajlFVVJUeEdVUU9lQlpVbDZJb1daWmJyWllrU1JBalJra0VpTCtZRmZHSUVCY1JJ
OTc4NHJCWnVBZWU1NjJXK293ZDR3Y1ltY2ZqK2NVdmZ2SDNmLy8zZCsvZWRUZ2NzVmlzMld4bU1w
bk56YzIxdGJYUjBkRm9OTXJ6dkNBSW9WQW9IQTdMc3B6TDVRekRpRWFqRG9lalZDb1ZpMFZkMTkx
dU41UkZrcVJRS0JRTUJpRXVLRFArNGwvTUJJcUFzV0ZXK0JjclFnUklabWhWZUZhV1pXZ1grU1dt
QkYyQ1loQzkxWFY5WjJkbmRuWjJhV25KNC9INC9mNjl2VDFabGdPQkFNZHhlM3Q3cXFxdXI2L1hh
clYydXowNE9IajQ4T0d0cmEzRnhVVlpsZzhjT09CeXVWWlhWemMyTm5SZGowYWpvaWp5UEMrS1lp
d1dHeDBkSFJnWThIcTlmcjhmTTdRS0JNcUZBZENXQzZ0Zy9aZGNWbHVsUC9yb0l5eTgzVzZIT2tI
dU5wdXQzVzVybW9aLzhUT080NHJGNHV1dnY2NG9TcjFlOS9sOEhNZUZ3MkdmenlmTGNuZDM5K0Rn
b01maktaZkxpVVFpa1VqazgvbmUzbDVZWUxGWXpHYXo1WElaSGxXVzVYZzhQalUxTlR3OHpEQk1Q
cCtuYWRydjkvTThINC9IM1c2M0tJcnhlRHdhalhJY3ArdTZMTXVWU3NYbGN1bTZYcTFXb2RYUUJT
SU1DQloyUVF4NFA0UVFyME9jT0pRRVZ2R01pVzV2YjFlclZWM1hGVVZwTkJwWWRWVlZoNGFHc3Rs
c0twWHllcjA5UFQzOS9mM2QzZDNWYW5WemMzTnZieStWU3VWeU9SaW5ydXU0ZWJsY3ptUXlUcWRU
MS9Wa01wbkw1WFJkRndUQlpyUFY2L1ZtcytuMWVzZkd4czZjT2ZQODg4K0xvdWgydTNWZDV6ak83
L2RqQW9xaVFQdXNVeUllRkZQYlJ3SzBKZkxBQVBBOXErcHpISWZWeW1henhHc3BpZ0svVWk2WEh6
MTZKRWtTeDNGNDArbDA5dmIyZG5aMlFyQzZycmRhTGNSWXNvNkZRbUZoWVdGM2Q5ZG1zeFdMUlFp
WjUzbTczVzYzMjFtVzNkcmFTaVFTOC9QenM3T3ozLzN1ZHc4ZVBOaHF0ZkRvU3FVaUNBS1JrRFVR
WUJFaFZmaFUxckJjVmdEUmJyZGhxTVNoSWFCbHMxbThDZDFHckcrMzJ3UWhZVjFLcGRMaTR1TGEy
dHJrNUdTOVhvY2NLcFVLNW1tMzJ5bUthalFhK1h5K1VDZ2c1RElNSTRvaVFCekRNQTZIUXhURmJE
YWJTQ1RxOWZxaFE0Y09IanlJUnp1ZFRrM1RYQzRYNEFTeFE2dXpoTlpBY3ArREFTdXNzWVlnTWtu
ZzFmWDE5V2F6Mlc2M2VaNG44VkJSRk5nTVlBRG1nSDhybFFyMEJUTEhHdU51VUEzNEdFZ0FrbFFV
cFZLcDVQTjVqOGVER05ob05CS0pCT0F4VkJTQnFsZ3M0bGxFT2EyS1NadTRsN1hhMnpPT2kzd2Jy
MlZaTGhhTEd4c2JCRHJqcWJpUkxNdE9wNVBnZFNBWXQ5dGRLQlRJU2tQNFdCVGdac3dUWUpDb0dj
d1NDMGRSVkx2ZHJ0VnF4V0tSb3FpT2pvNTZ2ZDVxdGVyMU9zSWVGSWMyTVRvSkIwQ2R1Q2RyeFFw
V1Iwd3NrOERhWnJPWnorZVR5U1JOMDVJa1NaSlVxOVhnZmdWQkNJZkQwQWlHWWR4dU4vS0dTcVhp
OFhoZ3BiUUpYOXZ0TmxBUkFoWGNHOC96VVA1V3F3VTVRK3dZcnRQcDNOblpXVmhZaUVRaWdpREFj
Q2lLaWthamxVcUZ3RjNFUm93V2Q4UGtuNEoxVmdzbVlzUWs4ZmhxdGJxMXRkVnV0OTF1dDl2dGhz
cEpraVNLSW9UWmFyVmtXU2JRbWVmNWFyVktWQWpvL0JtOEJ1TmhHQVpBRCtDV1lSZ0FRTnlOb3Fp
Yk4yLys1Q2MvZWZMa3llVGs1T2pvcU0vbkt4UUs5WHFkUkF2YzhJdmhnQUoycFUxQWg5a1RjQ2NJ
UXJQWmhFcGtNaG1QeDFNcWxUaU84M2c4clZacmIyOFBvYlhaYkJZS0JTSWlFb2cxVFZOVmxlTTR1
RVJKa21DV0hvK251N3Y3MUtsVEhvL0hicmRuTXBtSER4OHVMeTlEc1JHZm9iR3lMUE04NzNLNTRJ
YzJOalorL09NZmQzZDMvOG1mL01taFE0ZmNibmU5WGlmNmlWbGdnYUNySkp5d0JCblFUK005aG1H
cTFTckJWajZmcjlsc3JxeXMxR28xQWswTncyZzBHbzFHQTZPeG9tY1NEQW5DYWphYkZFVU5EZzUr
NjF2ZmV1MjExd0tCZ05QcFpGbTJYQzQvZWZMa3pwMDdGeTlldkhuekptTW1hTFZhelRBTWg4T2g2
M3FwVklLM3AyazZtVXgrOE1FSGtVaEVGRVdIdy9GTS9tQU4rNStEQVpMRldNRUFIR0M5WHZkNFBP
MTJHeTcrOGVQSDE2OWZSOEFrd29jL0ZBUUJWb2VJMG1xMWNGdWd0bmE3N2ZmN2p4MDdkdWJNbWFt
cHFXQXdpUEFGNndvR2c3RlliSHg4ZkhCd2NIeDgvRmUvK2xXdFZxTW95dXYxMXV2MXZiMDlTWks2
dXJvcWxRcHVXNjFXTDF5NDhPYWJiNGJEWWJneDZ5Uy82RGdwaW1LeDJBUWxrSVVoNndHM3ViVzE5
ZkhISHk4dExUbWRUaVM0UkU4UTkxcXRGdWFQcDlydDltQXc2UGY3anh3NU1qbzZPalUxRlkxR1lm
eGdPb0FOY0N1SHcrSDMrNy82MWE5T1RVMk5qWTFkdkhqeDAwOC9iYlZheUU1VVZTMlZTZzZIUTFW
VkdHRW1rMG1uMDdGWURBKzFZaDJNMlRwSm1xWlo0dDhKSk1CWFZWVVZSUkVxMTI2Mzc5NjllL1hx
VlF3TG5sMlNKT2dQYnRUVDArUDFlajBlRDVUVDQvSDA5ZlYxZFhXOTl0cHJaQVU1am1OWlZwYmxV
cWtVQ0FRTXd5Q2NDSExscnE2dUgvemdCNGNQSDM3Ly9mY3ZYYnBVTHBjRlFkQTByZFZxd1lCcnRS
clA4NjFXYTNaMmRueDhuQ0NRWjVTV01yTlRpR28vbjhSYkpJV0RFMmRaRmpSVXJWYTdmLy8rOXZZ
MkxBUmVudWQ1bjg4bmlxTFA1d3NFQXJGWUxCZ01SaUlSbDh2Rjg3emI3ZTdvNkFpSHc2VlNTUkFF
bnVmaGgzQmJuOCtIOEFPL3duRWNxQk9iemFacDJwZSs5Q1cvM3o4eU1uTDE2dFU3ZCs3SXN0elgx
NWZQNXdPQmdLSW9GRVVwaXZMWlo1OUI4aVJCc2M2VHNwQUpORTJ6UkltSkpQRTludWVoUzVJa2JX
eHNKQklKT0d2SU1CQUlEQThQZDNkM2U3M2VlRHplMWRYRmNad2tTVTZuVTVJa1VCdmdwaHdPQjVZ
UHRxcHBHc2hCeE5KOTJNV3kwQm84dlZ3dWk2TDQybXV2alk2Ty92TS8vL09WSzFkS3BSSkU3WEE0
NnZXNnJ1dVpUT2IyN2RzOVBUMCtuNDlNejdBd0cxWWFnU1VFanpWamh1VlVLaFc4eUdhemhVTEI2
WFNtMDJtZTUvMSsvOFRFeE1tVEo3dTd1eEVuZzhGZ0tCUUNFb0pIWVZsVzEvVkdvMkczMnhWRkFY
N0F4UEExd0YzRE1CQWVSVkcwMld5dFZrc1FCSWZEZ2ZqcDgvbUN3U0J5RklaaElHMVpsaUdsaHc4
ZlF1YTBtWEJhRGZLcGRBUnJqR2ZEcWJJc0MvMEJlYk83dTh0eFhDQVFxRlFxVHFlelhxOGZQbno0
bFZkZU9YTGtpTWZqY2JsYzhYZ2NZaWZUdzYzaFFrbmVvQ2dLd2RNa204UDZhcHFHM0FwZlEwQnl1
OTFlcjNkd2NMQy92OTh3REkvSGswd21YMzMxVlFnOG1VdytlZkprZm40K2s4azBHZzA4RkpRYVFq
ZHRJVFQybjBTMGxNaGRGRVVvbU4xdUQ0ZkRTR1RCNVJ3N2Rpd2FqYklzRzRsRUVBOWdWNFJsZ3hK
aTdheFlpb0JKNjBPdGwyRVlQTThERzBFTFJrZEhEeDgrM05IUkFRTmpHT2FkZDk1QllnbXhBOThE
RENQQWdvYUcvZU12UXlqelo5d3NJU0FFUVhDNzNXQXJHSVpCK2k5SmtpekxkcnRkRkVYRHpNZVJD
c0xrb0FVZWo0Y2dCK3NLR3BZMDF3cVNDY1dHck44d2pMNit2aE1uVG95T2pyYmI3ZjcrL21xMU9q
TXpNejA5SFl2RkVva0VRQklTUzhwayttRDJWdWkyUDhsbjFwV3NoOTF1eDdlRHdTQ1NQVW1TWUxT
QTdCUkZRVmRiVDE4a255WVNmb1pOc3pvNXE2aUJiNTFPcDkxdUIvL1UyZGs1T2pvYURBWnBtbDVl
WHE3VmFpTWpJOFBEdzVGSVpHVmxKWi9QSTFBVG5wSGdXSEx0SnpoazBzVEh3dldwcWdyNGV1REFn
WEE0VERJTUVNR05Sa1BUTkVtU21zMG1TWE53UStncVlCRDlCYXovVEV3akY4Rk0wRnNBR2ttU09q
czd6NTQ5dTc2K1BqOC9mK2ZPblVLaHdISGNxNisrMm1nMGxwZVhLNVVLWWcvS0xjQVAxbVZsaU1P
MVhsZ01XWmFyMWFxbWFSNlBaM2g0T0JnTUlxeGhBb2pnbFVxbDJXeFdLcFZHbzlGc05sdXRGb2FJ
REFPRkVIS1J4U1poMmpvOUtBaDBwMTZ2SS9kSGN1eDJ1OCtlUFh2bzBLRlNxWFR4NHNWQ29iQzd1
OXRzTm4wKzMvTHljaktaVkJRRklCRUIzSm82NjdyKzFEK2s0SU1McmgvOHYyRVlLR09CZlNrVUNp
Qjc0Qmp0ZG51bFVxbFVLdFZxdFZhclljS0tvaUIyazRzQUR5andNL01FQ0tITTBwQXN5NmdtSUl4
RklwSGYrcTNmNnVqb2VQejRNVmI1OHVYTDI5dmJHeHNiQ3dzTGUzdDdnaURBRkFsWC9qbDJ0VTZT
c29CWUNNVGhjRGlkemthanNiMjluVTZua1grNVhDNFFkdkY0SFA0TkdUTWNvSlg4aHo4a3NaZE1o
akxSbFZXU21LU2lLRDZmejJhendlQVpzNExTYXJWR1JrYjYrdnFheldheFdBd0dnNDhlUGRyYjJ6
dDgrUER5OHZMdzhIQTBHc1hTd0F0YTZhdDk0TVpZV0Vrays0cWl1TjN1YXJWcXM5bENvZERzN0N3
a3c3SnNNcG5NNS9PcXFucTkzb01IRDFJVUJTRWpncXVxNm5BNGtDc0hnMEdHWVNxVkNydzBTYVlo
cm1LeENKV0dTUVBXTmhvTlNFK1NwSFE2VFZFVUdNQnl1Znpnd1lOSGp4NXhISmRPcHdPQkFOaWRs
WlVWbG1XZFRtZEhSd2ZvUWl3V0tCVmNMQlllYjFGbW1BWTZKNWE1c3JKeS8vNzlUQ2FqNjNvNm5V
Ymt3SUxCUXlDMUkzVTdWVlZoV2dCb2tpUWhGMnMybXh6SE9Sd09lQlNQeDRNblF1YUtvcWlxR2d3
R204MG1ZbGcrbjkvWTJPanA2VGw2OUdpejJVd21rNlZTU2RkMVFCU1daWnZOWnIxZVgxcGFNZ3hq
Zkh6ODJMRmprVWhFbHVWQ29ZQlVjMStTRUIxaktSREFRU0dqcDJtNlZxdmR2WHYzeG8wYm1Vekc2
L1ZtczltQmdZR2hvU0dmejlmWjJRbEtHN1huVnF1RmVGaXRWajBlRDh1eTBHcFM5QlZGRVdsS3NW
aVVaUmw0QS9rcUZnV2hHTkVMQTVpYm04dG1zMGVQSGwxZVhwNmZud2RHNys3dWJyVmE0WEI0ZTN1
N1ZxdXBxcHJQNTR2Rm9xcXF3UDEydTkzS1hUMWxrekJXVEJ1Sk9jL3orWHgrWVdGaGMzTVRFYlha
YkNKOFlSQ1FQSDRpU1JJTVcxVlZmQmtFS1pUVDRYRElzcHhLcFJZV0ZoNCtmRmdxbGFhbnAwZEdS
a2pCcjFRcXdRdGd1V1ZaeGlPV2w1ZDNkbllrU1lKL0xoYUxvaWllUFh0MmFHaW9VcW44OUtjLzNk
N2VoaEVLZ2xBdWwxbVd4Vm9RajgyUytQWk1VRWFJVTFVMWxVcHRibTRDMzJtYXRyYTIxbXcyRnhZ
V29MUnV0enNRQ1BqOS9wNmVudkh4Y2FRdjhISlE3RXFsa3MxbXE5VnFzVmhjWEZ4OCtQQWh0QTQx
RWlTaVdFMjRSMW1XNGIxa1dVYU9CcitkeStWcXRacmI3UTZGUW9jUEh4NFlHTGgxNjlhZE8zZWdk
KzEydTFRcUFYVVIwRThneCtlU05MNVFXcVlvcWw2dmwwb2xWVlVCZEhSZHoyYXp4V0lSU1laaEdB
QjlraVNCbTNLNzNXQmZPanM3bDVlWG56eDU0bks1NXVibVZsWldjcmxjT3AwRzEreDBPamMyTmo3
ODhFTmtFaSsrK09MWTJCakhjZFZxRlhnZEJTK1B4d01HaEtLb2JEYXI2N3JYNnhWRjhkNjllN3U3
dTlldVhkdmUzdlo2dlVoV1pGbHVOcHZvNTBCdS9ibTZXcU16WXlsWmt5RG04WGg2ZW5vS2hVSXFs
VUw2ZzRRRHRKcWlLS2prb0NqZ2REcTd1N3ZENGZDNzc3NHJ5L0tISDM2WXkrVlNxWlNpS0JnM3lw
TFZhbFVVeGUzdGJZcWlvdEhvMXRaV1IwZEhNQmlFNnlMcHBTQUlyVllybDh2SnNwekpaRnd1MTdG
angrcjErdHpjbkNpS0w3LzhzaVJKVjY1Y0FjOENXZ3hCbThUaHo3MHJ3YXRXZVdxYUJtd2RpOFZx
dGRyVzFsWXFsZEoxSGVER1pyT0pva2hSRkR3RWJBbVU3Tzd1YmpRYS9aM2YrWjJ1cnE1VUtvVWc1
SFE2S1lxcTFXbzBUWVBJUklxenM3Tno0Y0tGWC8vNjF5ZFBubnpublhlbXA2ZlJEMExUZExGWWJM
VmFjTTdsY2htREdSb2FXbDVlaGd2OHhqZStBWko2ZTN1NzJXenlQQjhLaGNCM2tSVDg4emhKMHpT
b1I2U3pITWNSWmdWTGN1REFnVXdtOCtEQkE1N25RYy9CTVNMblJEK0V3K0hBcDVxbXpjek1nQlEr
Zi83OCsrKy9YeTZYRVFZMVRmTjZ2YVZTcWErdjcrREJnNElnb0dnbENNTE5temNGUVVBMUhpUWdT
cFEybTIxblo0ZW02WGE3UFRBd2tNMW1rOGxrTkJvTkJBS0lUTWVPSFd1MzIrRncrRXRmK2xLMVdr
V3N0Z3FNb2lqYm0yKyt5VmlxQ0FRV0Vjb1U0c3BtczQ4ZVBVSVJqakJBYnJjYlgvRDVmUGw4bmlR
Y2ZYMTl3V0RRNS9QRjQzRzRvbVF5V2EvWENXak81L095TEkrT2pvNlBqNE9WTHhhTFRxZno0TUdE
MFdnVWZvdW02VktwZE92V3JVUWlJWXBpYjIrdnBtbnBkQnIxN0Znc05qSXk0dmY3T3pvNmhvYUdS
a2RIQTRFQWJiTHlHQjZabCszTk45OGsySXBrZEVoRENmWURGYkt5c3JLN3UwdkVpRFFLeFN5S292
QW1nTTc1OCtkUG5qeloxZFdGZkJvVmRUakdiRGFMMmttOVhyOTM3OTdLeWdwTjArRndHUHJjYXJX
bXBxWWNEZ2VxWnRWcXRWQW9sTXZsQXdjT25EeDVzbGdzenMzTkljREN4MGFqVVZtV0k1R0lKRW43
bXNteVlOdWVza25LMG81RWNnVTRaYWdmNkJtLzN4K1B4OWZXMWdqamhreks2WFFpTDZsVUtzQ3I3
WFlibUFZUGlNVmlMNzMwVXIxZS8raWpqeWlLaXNWaWtVaGtmWDI5djcvLytQSGpwMDZkYXJmYitY
eGVFQVNvVExQWkJINUFTamsxTlZVb0ZIcDdleWNuSjFWVnZYbnpacVZTUWUwTXZnRGtvQ3pMS0xD
VFZCYVZSWXpCOXAzdmZFYzNhMllrRlVLMFFEWU0yRW5UTklJVndCcE4wNklvZ2xNQ2VvWWtXWmFO
eCtOdnZQRUdYR1dqMFVCVlkzaDRHRkFlWWJDN3U3dFdxK1Z5dVdBd2VQejQ4VU9IRG9WQ0lhL1gy
OS9mNzNRNlVRZ0Q5ZTV3T1BMNS9NREF3T0RnSU1Nd0N3c0w2K3ZydXE2UGpvNCs5OXh6U0d0Uk1n
S1pxSnZ0YUtUVmd3YTViTFZSSW1KSUhGb09ZUTRNREJ3OGVEQ1ZTb0diOG5xOWRydTlXcTIyV2ky
WHl3WDE3dW5wZWVXVlY3Nzg1Uzh6REZNc0ZnRkUrdnY3OC9rOE9QVVRKMDVVcTlYZDNkM1RwMDhm
T0hEZzZOR2pTT0xBcnlOc0lNT2lLTXB1dHlOYUJvTkJ1OTArTURBd01URngvLzU5dTkzZTFkWGw5
L3ZCSHVUeitYQTQzR3ExYXJXYTErc2xaVStTMzlqZWVPTU5vTEJuc2o0Z1FGSkxROUtFZU5EYjI0
dWhkSFoydXQxdXZFZ2tFbU5qWStmT25Ydnh4UmY5Zm4rcFZGSVVCWm9NS09OeXVUWTJOdGJXMXFM
UjZQZSs5NzJwcVNtLzMrL3orVUQ1WVRSZFhWMm90NU9zVFpibHpjM05lRHdPbnJKUUtPenM3SFIx
ZFgzdGExOGJHUmxCSStMMTY5ZEJLUm1HNFhhNzBhNWhaZEJ0My96bU4wbVYyNXJhb1ZTTWdHR1lU
WURGWWpFVUNyMzQ0b3VxcXE2dXJxSWF0N3E2V2lnVVhuNzU1ZWVlZTI1aVlnSnJHUTZIN1haN3NW
akVjalFhamE5ODVTczlQVDJxcW01dGJjM096Z0pZZ3pjQ2JBSzBBUE9QdWwyajBjaG1zeXNySzhG
ZzBPVnlHWVpSclZieitYeFBUOC8wOUxUZjcxZFY5ZU9QUC83YnYvMWJYZGRScDNDNVhPVnlHVjht
YzJFYmpRWkJyZnRtYXJNaGtBQUt3eXdsU1VKM1p6Z2NwaWpxekprekxNc3VMQ3djUEhqd2hSZGVj
RHFkTXpNejYrdnJHeHNiQnc0Y1FPQk9KcFBvN3dFbGtVcWxlbnQ3ejU0OSs4WWJiK1R6K2QzZFhU
aFZraEpBZ0tRSXJTaksrdnI2N3U3dXIzLzk2ME9IRG9HWWpVYWpmL2lIZndob0NreHkvLzc5VUNp
RUVJQVY5SHE5eUorSTByS0FBU1NFVUNiYlJjZ0l3K3hFWkZsV2txVGJ0MitMb2pnOFBEdzVPVGs0
T0lpMG1PTzQxZFhWWEM3M3dnc3ZrQjVDQUVCRlVicTZ1dGJYMXgwT1I2VlNnVlY3UEo1NFBJNTZF
UVlFSWtMWGRheExQcDlmWFYyOWV2WHFqUnMzUVBPVVNpV2Z6d2RmU3BrTXh1Ym1aakFZZlBubGw0
OGZQKzd4ZUlEcEVmRGdYZmNOa0hyNklsZ0JnZHV3OUwyd0xJdEYydG5aS1JhTGZyOC9Gb3NCSjBV
aWtjSEJ3WGE3aldLQllSaGdnQVJCNk96c3ZILy9QanErc0Zpam82TW9MWUlLSk05Q1hwL0paRlJW
VGFmVHE2dXIxNjlmMzl6Y0hCd2NyRmFyZHJ2ZDcvZTdYQzU4TXhBSW9CQStPRGg0NnRTcFE0Y093
UzVJYkdNc3BEWmpKZEZvcytjWFJCQkpGQ21UTVVDTDVQYjJkcVZTUVdLS0pNdmxjdjN5bDcvYzJk
bEJ5dzVRQzRJSDVGYXRWaTlkdWdTOHRyR3hnVENJWEJuRVBHcVBXMXRiNVhLNVVxbklzdHh1dDNk
MmRweE9aendlQjM1QWtvbThES3N2U2RMWTJGZzRIRVlVOFhxOURNT2dNWVRFRDRxaVRPRHpmL1dB
UUpJRUp4aG1jWHR6Y3hPdGNEelBSeUlSWGRjLy9QRERUei85OVBqeDR4MGRIYUlvb3ViUmJyZXoy
V3lwVk1JcTVQUDVuL3prSndBb3dJUHdNZERZY3JsY0xCYlgxdFlXRnhldlg3K3U2enBxekpGSVpH
QmdZSFIwbEhEcUxwZExGTVZHbzFHcjFWd3VWelFhUldvT2VJQXB3RjFUWnBLODMxaGtQRjNjTTB3
U0dxa25YaUNJalkyTi9leG5Qd05WSVFnQ1dJbkxseStQajQrSFFxRmtNdG5WMVlYNkxGRlhRSlp3
T1B6bmYvN25pVVRpci83cXIzdytIeXdaMmw2cjFWQ2lLUlFLcTZ1clhxKzN1N3Y3OGVQSDQrUGpJ
eU1qWHEvM3lwVXJ6ei8vUEVnRFFQOUNvYURyT2h3c1NpUE5ack5VS29GNXNsb2ZUZFA3QVAyTEYy
QTZUQkZvQmg0L0dBeGV2WHAxYVdrSm1lU2RPM2Z1M2J2WGJyY2JqY2JDd3NLREJ3OGcvRWFqZ1p3
QU9TR2F1SHA2ZWo3ODhNTkVJaEdMeFFnY0E2eUQ2NTZibTJOWmRuQndNQnFOWmpLWjhmSHg4Zkh4
Mjdkdi8vVmYvM1VvRkhJNm5kVnFkV05qSTUvUEk0RUczRUh1QmllSDFBOFJnY2lNTlo0bTdZbkdB
dXpDczVOYUZjTXdrVWprOU9uVC8vVmYvM1g1OG1Xd1ZaVkt4ZTEyKy8zKytmbDVpcUkrL3ZoanU5
M2UzOThQbUpyTlp0SGY4NmQvK3FmdnZQUE8rdnI2KysrL3Y3YTI5dFpiYjNWMmRsSVVKVWtTNkFL
MGZBOE9Eb3FpbUVxbFhuLzlkV1RuOSs3ZFV4VGx6LzdzejM3djkzNnZwNmNubjgrSFFxSFIwVkZK
a2tDTFFyYWt2TTlZeUVkSWtvV2lBMG1SWmdxYjJkd0RENFQrQTl5Q3B1blRwMDkvOE1FSFNDbjhm
ajlTcmNuSnlVYWpzYm01YWJQWnl1WHlyVnUza0ZYelBPOTBPdDk0NHcySHc4R3k3SGUvKzEyTzQz
Nys4NS8vM2QvOVhXOXY3OFRFeEsxYnR3WUdCbDU2NlNWQkVJNGVQZXB3T0ZDUWhISW1rMG5RSmJG
WXJORm8rSHkra1pFUlFSREErZ0d2d2pSMHkyWUVlQ1lTQlZuQ2N6Tm1RdzlsTmtVVGVJVUxWcVFv
U2pnY1BuTGt5T3pzTEpMYWNEZzhQajVPR3ZuUUpZYTZpTmZyUFhMa3lBc3Z2SEQ2OUdrUUgwZU9I
TkYxdlZxdC91ZC8vaWZETUYxZFhkLys5cmYvNGkvK1lubDUrUi8vOFI5RG9SQ2NPVUlMbG1sMGRM
U3JxeXNXaS9YMzkvZjA5TGpkYnF3NG5MOWhhU2FuTGRWQlluY1VSZG5lZXVzdEVqbklEQ0ZTQUJm
eUpzcVBJTFdLeGVLMWE5ZEVVUVNkMGQzZFBUQXdzTE96ZzlaT1JWSFFQUEhsTDMvNS9QbnpKMDZj
Nk83dXBzMXFERkR4aXkrK3VMYTJkdWZPbldQSGptVXltU2RQbmd3TkRRVUNBVGhlVVJUaGxuWjNk
NzFlNzRrVEo4Ykh4enM2T3VCYUVlaEo1ZVlabmhIenRNWUwyMi8rNW0rUzVJTVlxKzNwQzlZTSt4
WkZFUlh2eno3N0RML0NIcWE5dlQxZDF5T1JDSDVDVVZRNEhENS8vdnpSbzBkQm1lTExDR0xqNCtP
cXFrNU1URXhPVGw2NmRLbFlMSjQ3ZDI1a1pDU2J6WVpDSVlaaDBQaU42bUFrRWtFUXdoeVF0YUk2
U0t6dS81d2tlZk9wZlM0a0t0Sm1JeXZranE1dXFDNTJCUFQyOXA0NmRlcnUzYnMybTYxV3F5V1RT
WFFVcUtwYUxCYkQ0VER3NU5iV1ZqNmZoeHVzVnF0Z0pVRjJRRXJmL3ZhM0dZYjVmLy92LzRIZDdP
enN4Rk9Bem9QQklFaDZ4dXlCZ2gwU1FoUmxjMEp3VzZlZ1d6cTFXSUxkaUVMdkIxQ1diWnRiaTBq
bW91czZBSDAwR2gwZkg3OS8vejVGVVdoaThmbDhQcDh2bFVvMW04MXNObHVwVkRSTnkrVnlseTlm
UnRNTHpKVmhtTjNkM1VRaU1USXljdVRJRVVWUmhvZUgyKzEyUEI3MytYeDQzK2wwS29xU1NDUldW
bFpBNGNEQllIcFFZOHJDK2xzbFpGamFYY2pGa21hTno1RWV3OER4R0dhWENIUURyeHVOQm9obWxK
a0IwTkQ4ZnViTUdmUlU1L1A1dWJrNXQ5dmQwOU1UaVVTUUtNYmpjVTNUc3RuczB0TFN2WHYzRE1Q
NDFyZStGWXZGSGo5K3JPdDZKcE5KcFZMWTJLU3E2dTd1N3BNblQvYjI5amlPNit6c0pIVlZaQ2RF
UzBIRTBKWW1KTVBzM2JGT2VIODN3VE0rQ3FHR0JGTVNadUNmVVBaSkpwTVVSU0dyNWpqdThlUEg5
WHBkbHVYejU4K2ZPM2Z1M0xsenNWZ01aVHdzLytycTZ2ejh2TmZyZmZYVlY3LzJ0YThCTGRScU5U
U0JYcjE2bGVmNWwxOSsyVzYzNTNJNTlLN3dQTi9iMjRzOG1EU29JUWFDNE5ITWJRR1VoZnUzVG1k
L2tnaUdwRVJKZkE5dDdremI5OEttTVdCV0hvOG5GQW9waWlKSlVxUFI2T3JxNG5sK2VYbFpGTVdm
L3ZTblY2NWM2ZXZydzZjMm15MGVqMy95eVNkMnUvM2RkOS85eWxlK3NyZTNwMmxhUHA5UHBWS2hV
T2pLbFN0ZXJ6Y1lES2JUYVhCUXlXUlMwN1JVS3RYVDAwT3FsN0I1VkkyYXpTWXFpK2ludGJvZkRO
WHFkV2lhWnJXbjkwaDgvb0dweGtScGNhSERKaEFJN096c1JDS1JUQ2FqYVJyeWtsZ3NWcTFXczls
c3E5VjYvUGh4cFZLcDErdXhXQ3lmejA5TVRQem9SejhhSGg0dWw4dG9EMGtrRWx0YlcvZnYzMGMx
Q2UyaXlXUlNsbVZabGg4K2ZMaTV1WWtPSG83alVxa1UzQS9nSWFBdnRpRWdybUpzdXRsYVpqemR5
Y0phTVo3Vk1xM2l0aHE2Mys4dkZBb28xb01jUWZvVGlVVFFvREEyTmxZcWxRcUZ3dlBQUHgrUHg3
dTd1KzEyKzhURXhNaklTREtaZExsY3BWTHA1czJiVjY1Y0FmcHRObU9HMUZrQUFBOTRTVVJCVkp0
dXQ5dHV0OGZqOFZRcXRiaTRXS2xVcmwrLzN0L2ZQejQrRHNOQkVnUEt0MXF0dWx3dVRkUEFJY0ZF
NmFlN2VJMm4yNkJZa3UvUWxtMms1Sy8xSS93ZUUvdlhmLzNYZERwZHE5VjZlM3RCUm1DQkhRN0hL
Nis4MHRuWitlbW5uM1oyZHY3d2h6OUUvejhXWlgxOS9jR0RCLy83di84cml1TFMwaElBRFdBVGRL
ZFNxWHp5eVNlNDFjbVRKd2NHQnRDNDV2ZjdaMmRuWlZrK2ZQZ3d4M0VvalNERHRKcmwvM25STk0x
YUV4UHI5RWo4cEMzTjIvQ3VkcnQ5WldVRmJaR2hVQWpMakoyd0w3MzAwc0dEQjJ1MTJzVEVoQ2lL
YzNOeitYeCtlWG41eG8wYmlMM3o4L09QSGowNmMrWU1BcjNkYm9jQ2N4eTN0cmEydTd1N3Q3Zm45
WHEvL3ZXdno4ek1RSFE4ejJQTHhOTFNrcy9uaTBRaWFESURIL2xGQmJUaTAzM25RakpqcS9sUlp0
dkZNOHF0Nnpvc0h1MGVZRU82dXJwMFhkL2EydXJzN0N3V2kvLzkzLzhkaVVRTXc5amEyanA0OE9C
bm4zMEdySWZpNFlFREI0Zy9xOWZyV0RWTTQrN2R1NGdaS0hXZ3lrQlJGUEttWURENDNudnZPWjNP
MTE1N3JiT3pFMFI3cTlVaVREbVpyVldHeElPeXBFZUpzbXgxb1o2T3R1UmY4QlJUVTFPLy9PVXZR
VlZRRkZVdWwwT2hVTGxjM3QzZGpjZmpEeDgrTEJhTG1xYXRyNi9Mc2x5cjFYcDZlZ0tCUUwxZVQ2
ZlQyR21JOUkraUtGUXZLcFZLc1ZqTTVYSWRIUjNZYitad09Gd3VGellQWXdmZTl2YjJyMzcxSzFW
VlgzLzlkYi9mai96WUtrUGlIYTNEcHNpV0NUSXI2K3N2VGhLRUVNL3pwMDZkbXBpWWVQRGdnYVpw
aVVRQ1VNSHI5VzVzYkpSS0pacW1jN21jeitkaldUYWRUa3VTUkx4dU1CakUvaVJzTGdFaDBHNjNV
WElFTUo2ZW51N3A2Y0VjR0lZQjJlRndPQVJCV0ZsWlFjU2FucDUydTkyQ0lEUWFqV2Y4alc3dXV5
S1R0UDN1Ny82dWJyYlhNWmFPS2JJRndtWnV2c1h6SEE0SE9zSkRvVkNwVkZwZlgwYzdQSnArZ04z
aEdPeDJlejZmQnplQjFtTnNoRUpwRFVnTlRoTGxHanh1Ykd6czlPblRnNE9Ec1ZnTVhRNFlkekta
dkhUcGtxSW9wVklwbFVvaEUzUTZuYkJuaVBRWklYMHVTZmdZMHZwQmZBenBraU9LU2xFVUdvZlJu
bmY0OEdGWmxyZTN0NWVYbDJHOTROUVk4NUFCQkhGaTJOYS9GRVhoU0FIRGJJbkF0QU9CZ00vbmkw
YWowRWFTY0dEaFFLdUNBZnlYZi9tWCtmbjVyMzcxcXlkUG5vUnhBcW1qWFFOQm5reG5IOFZiSi9N
TUNId21iRUp6RUVoZWV1a2xsbVV2WHJ5NHRMUzBzYkZCV2RKelRkTlFxMFRVUWNIUDZzTVEvYUNy
U0pFOUhzL0F3QUIydnpxZFRzeWZNVTh0Mk52YmcvMUxrcVFveXU3dUxseng0dUppZjMvL29VT0hl
bnQ3MFk5ZXE5WHE5VHE0K1gyZ1prMnVpV1lUa280a3pjQkRVRjNVNnByTlprZEh4K3V2dno0NE9I
ano1czIvK1p1L3FWYXJzaXlqWVJGbFZzM2NjNjFibWtESkMraXFZUmhJdnVGMWdYTEF4S0xlU05N
MHgzRWJHeHZ3a2JWYVRSQUU3RGk2ZnYzNnZYdjM0dkg0ME5EUWdRTUhob2FHaG9hR3VycTZnc0Vn
NFFBQTRsbXJ3NFgvQk00QXBpVkJCWDRmYmdEN0pVcWxrdHZ0OXZsOG9GdHROcHZENFNnV2k4MW1F
NXZ2Q2F4bkxIMGw4T1NvQXNHWWNZWUMrc0JuWm1aQ29aQmhkbWFRTFdlcnE2dHV0OXZwZEdZeUdX
eWhKSVBjM3Q1T0pCS1hMbDJLUkNKVFUxUEhqaDNyNit1THhXSit2eCs5eUt4dTJhTm1qUzJVcGVu
RmVKb3lNY3lxTmVRMlB6Ly9zNS85ckZ3dWQzWjJUazlQUDNueUJPZ0U0ZUdMbWtLWlBlNk5SZ090
ZG1oSG5KeWMvUDczdngrTHhZalYyR3cybENqVDZUUWFYRkVMYUxmYmFHVnh1VnhvQ0Vla1RhZlQr
WHoreG8wYmdpQk1UMDhQRGc1T1RrNzI5L2V6SktXeXpvR3lrQ0J3UDhTSURjTUEyd2xiUjlYcDRz
V0xUcWZUNy9mUHpNdzRuYzVQUC8wVTByYkdYc29zWUlPYklidElBVjltWm1iZWZ2dnRreWRQZ2lJ
Q0x3RUwxSFY5Y1hFUmVSbCthTTJlc2JrR3ZBejhUYlBaYkRRYVAvLzV6OEdiUktOUnhzclQ0VUl0
aEJBODFrOUpXUWFNYUtWU3VYVHAwa2NmZlFRMkhYc0dvV3lVMlN4dlJiL2tXVFJOVjZ0Vnd6RGdk
Y2JHeHY3Z0QvN2czTGx6bTV1YjBDRGdVbGhzcFZLNWZmczJNQ0NzQUNrQnFVd1QvMFNNSHdoSlZk
WEhqeDlmdTNadG55bUhmaE9wR3VZaEhTUm1XbWtlNElHbHBhWExseTlmdm53WlViSFZhbzJQajZO
NGp2bytGb2owdllEN2c5SWliQVFDQVZtVysvdjcvK2lQL3VqczJiUDFlaDBSSDRFbkVBaWdMVUdX
NVd2WHJsRVVoWm9IR3E0Y0RnZGNJTmt2WnVVcEFjdUFCMjAyMi81K0FXUVNtQ1FwcEpIT1NreVlZ
UmhGVWRDRHVyUzB0THE2K3VqUkkrempobHNIbUk1R295TWpJeXNySzZWU0tSd083KzN0K1h3K1VE
NG9RcmZiYlpmTHRiZTN0N096ODl4enovM29Sejk2NFlVWHF0V3FxcXArdjc5YXJUcWRUdUErVGRQ
OGZ2K0ZDeGZRUFloRlIrNWltSHNZU1JaQ20rME5jR3hvVjlobk13QmxJREY0Rkt3MzVveGdoWjJE
Mld3V2ZWa3JLeXRMUzB1NVhLN1JhTURGNDZZb3Y0YkQ0Vzk4NHh1dFZ1dkNoUXQ3ZTN0dXR4dEZk
VXdBQWFaY0xyLzExbHM4ejMvem05OUVPUUF0c29xaUlDdENhY3poY0pUTDVZOCsrZ2h3SEo2TXVH
aG9MQW55eE1vSUgvczU0Z0dEd0pxbnVKRGtRemZQVGdMcG1FZ2s3dDI3dDdhMnRyQ3drTXZsVU1x
RnJ5T2RQVEI5bG1XbnBxWUNnUUNvalpXVkZVZ21uOCtqbEQ4Mk52YmJ2LzNiTXpNellFYlFqdWYz
K3gwT3g5N2VYaUFRSUJzUGFacis0SU1QMEhacU05dm5OZk9nQkpRM3lRWVVFdHV0MFo0eVdRN1da
aDZpWkUwK0VJNUxwVkkybTBXeSsvRGh3NjJ0TFdBb3FEVFJjQ2loeldZREtLL1Zha2VQSHUzdjd6
OXo1c3l0VzdldVhMbnk2TkVqVlZVOUhzLzN2dmU5ZDk5OWQzSnlFbjRGM1RJNDFLUmVyNlBUQW5l
bUtPckdqUnZ2di85K3FWUWk4SVVJZ0lBSDJxVGFudEZiYS9CbkdjdlpHU3pMQW55aVhBRmN1cmk0
dUxLeUF2cVkzQWdPVFRWM1k3SG1YaUFVUW1BLzZMQTdlL2JzbTIrKytkNTc3eVVTaWU5ODV6dm56
cDJ6Mld5bFVva3hTNlVNd3pnY0RrVlJ3R3MwR2cydjE0dFRFbVpuWnpjM056RVpPR3I0WjFnZEFS
dTBKY1duekkxd1QzVkprbGVNMmI2RHZkZ1BIanhZWFYyZG01dkRsaWgwYVBJOGo0MERKS0lRZ0Fa
c2pXZWdKUUJOOFlJZ1RFNU8vdVZmL2lXNkNGRHhocE1FK2tOWkdxdURaYUxNNmoyNkVBazhKQkdJ
c09NRXNSRDRTWElSeGtJZFA3VkpGT2RScE5QcFRDWnovZnIxOWZYMTlmVjFoSFVVMGtGa29YK05Z
Q3NvakNBSVBUMDlEb2NERGdNZFpsNnZGNTdHWnJPUllpYVlhR0I5ekFyUkM5cUJTZUx2OVBUMEwz
N3hDeFNWeVJsVXVHano2QzJDTjJFN1JKK2hrbEI3bHBpaUxNdnBkSHBoWVdGdWJtNWpZMk5qWXdQ
M1Fya0dPL3BoNkJSRmhjTmhkQzJvcWdySVFwdVZCVm1XRnhZVy91RWYvdUhSbzBjQXNVTkRRL0Y0
dkZBb0xDOHZ0MXF0MGRIUnljbkprWkdSVUNqVTI5dUxkbEhOM0l6QTgvenQyN2ViemViaHc0Y3ZY
TGlBT0lIVHh6Uk5RemFMamV2SUU2QzlpSndJajFBVDB2MElsV1pSazFwYld3UExSRTdjSVlVUWtr
UG81bVl6K041NnZZNFVBUWZOTEMwdGRYVjFaYlBaUC83alAzN3c0SUhmNzg5a01nNkhnM0R0V0l0
ME92M0pKNThVQ29Wb05OclIwWEhnd0lIcDZXbWc2a0FnY1BIaXhmZmVlMjkrZmo0V2k4RWJ1Vnl1
VENiRG1ZZHVZVERnQjlIV1Ixc09BdVBNYll5R3VlR1ZwbWtXMjlrWEZ4ZnYzNysvc3JLU3pXWlY4
eXc1a3Z0UkpqOUFVUlFjRE82T2xtU080N3hlN3p2dnZETXhNYUZwMnZ6OC9OMjdkd0VrME5CRkZN
eG03aHBCOVJ2dHZMZHUzZnFQLy9nUEZDVDlmajg2V3lSSnltUXluWjJkdVZ3Ty9ra3pUMzBoV01v
d20rOFFXbFZ6c3pIZWgrL1k5NjdYcjEvZjJOaVluNS9mM054RUxzOVp6cFFnanBnZ1dBQlhQQWxZ
ajZLb2MrZk8vZUFIUCtqbzZNaG1zNDhmUHdiRGpVUUJaUXpPUE1rUGdSNTREVW9GR0l3VmNUcWRs
VW9GRlo2ZG5SMTRYYlJody9NQkd5SkVROG54UGxZQm9xYk5zeDFKZEdRLy92ampYQzZYeVdUUVBz
MllKNmdRMXVTWkZLUmVyOE9Yb0xrRFgvdis5NzhmQ29Wa1dVYlRHSHdZRWs3QVdyVFlZNU1zRUNa
bEhqdFFyVllGUVlEcWRuWjJwbElwaG1GS3BSSllIeGdoYWlwRW9SQ3hPUE5JUTl3UWs4U1dDUXlN
ZEYyeER4NDhRR1RIVVJDa3BxbVptMGZ3THlHVVNMeXExV3JvSU1aT1ZhQy85ZlgxMjdkdjB6UU5o
MG1PbDhCdENRK0NnYUxYSEllandDQXptY3pzN0N3a0dRZ0U0TWFCWmhtelBZeHdia0RrRUNsOEJD
bWkwalNOSFZINzJKWG9Ia0ZEK0Rhd0NHVnBYQ0xaT3BhVEZNK09IRGtDMFQxOCtQQ2YvdW1mUHZu
a0V4eFJoaG96ZkNhNFJoUjJvQWhrYXpiUDh6Z0xyZFZxNGFBdG5ES2w2em8yaWRJMFRReWJSRDhT
SjlHcm9acDc0Y2lSbTJSREdzTXdiREFZUk5BakV0UE5VNnFJWDJVc2xXYVExb3Fpa0dUbjFLbFRF
TWlQZi96amYvdTNmM081WERBR2RDdUNpZHNuV3N6VFZTdVZpcy9uMjl2YjgzZzhvaWdDOTN1OTNr
S2g0UEY0a0lWaER3Yk1HQkFLRHQ5NG12Nm16UTRKbTNud0ptYU9nMS8ySzZ1SUZvYUZMOVRONmp4
dUFkVW45Q1NJQnZCVW9paTZYSzRqUjQ1d0hKZkw1V1puWjNFU0VVVlIxV29WNUkwa1NiQkp4SDNn
YVlRZkVMYm9VNGRwZEhSMEJBS0JSQ0xSMGRFQi9nYWhHSjEzdUJVZ0hrQ2wxK3ZGZVRwWVB0d2Ny
clZjTG1ORHJxcXErNVFrZ1VpVVNUUUJHVkpmcU9FQkpXTUV1cTZqN1lSbFdWUUVFSFd4c2Nubjh5
RmVvMnlLd0kzdGQzRDlMTXVpNU43VjFSVUtoVERWZXIzZTM5Ky9zcklTQ29VUTBDdVZDbnd2eWpD
d1RIUmg0WVFaTXVCYXJWWXVsK0d1a1I0QmlyR2srNXl4OE9xR3BTQkxkSU8ybEkyUVNlUHdSSERr
Mkd4R0tFYWczTDI5dlVna2d2M3RpT01vaElFUU9uSGl4Q3V2dkRJNU9ZbkpBRXMxbTgzbDVlWGYv
LzNmUnhjLzlrWXo1bUdCMXVVMlRNcmJNRHZLeUR0a0k4YyszTEVPM1FvQVNOMlMzQlRmTWN5eUQ4
cXZ3OFBESE1jMW04M1BQdnRNVVJRSXBGcXRsc3RsTkp6QjE0Mk9qbjc5NjE4L2NlSUVXbFlvODNS
UkdEa3liOW84ZGJSU3FXQ2w0SDRRaEFnWW9DeUhhbUtEcmFxcWRyc2RaNnVnU3dOTmFhQk9kRjFu
eWF5c0FBQU9qVXpiZVBwVVZaTDRDSUl3TURBQWM0ZER5dVZ5T0w0WmcvQjRQSTFHNCt6WnMyKy8v
ZmJNekF6MjkxSm1md01rUThJQVlHcXRWcnQyN1JwOEk4ZHhicmZiNFhEVWFqWEVRemhuMmp3WUZh
RUl0NExuQnhqQU8zQkNOcHZ0OC80UXpkTFRBblJpalR5VXVXK0xzUDJnWkhwNmVoQ3lmdmpESDNx
OTNnOCsrQUROU242L0gyNGdIbysvL2ZiYnYvRWJ2NkZwR2pZaVl3OGJVU0pWVlFIMFVEeTIyKzNa
YkRZYWpXSmZHRVZSckxsTkJIOUoyUWIyUmxBWFkxYXJNRDNNZ3BSR1dLZ2ZaU25kV1hXWWVwcUp4
UzVjR0Vrd0dBd0dnNFpoOER4Lyt2VHB2cjQrcDlQNTcvLys3NkJrQkVIbzd1NCtkKzdjOGVQSERj
UFkyZG5CUVhDS29vQUVRRXVNM1c1SGtxbnJlcVBSZVBqd1lUcWRSaWoyK1h6WUk0RjBqellKR29S
b1pFaTZyZ01xSUJCZ0lkcnRkcUZRTUV6dTUvOERKYytjVWNoZFREc0FBQUFBU1VWT1JLNUNZSUk9
IgotICAgIDEgOiAiYmFzZTY0IgotfQotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFJlcXVl
c3ROb3RpZmljYXRpb24KLVJlcXVlc3QgZmluaXNoZWQ6IC4uLi9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLW5ldHdvcmsuaHRtbAotQWxsIHRlc3RzIGRvbmUuCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtbmV0d29yay5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3b3JrLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhNzg3MDdlYjgwNmFkYjRiZDlhYzI0
ZDA4NDM4M2E5NTgxMzc5MzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1uZXR3
b3JrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvYXVkaXRzLXN0eWxlMS5jc3Mi
IHR5cGU9InRleHQvY3NzIj4KLTxzdHlsZT4KLUBmb250LWZhY2UgewotICAgIGZvbnQtZmFtaWx5
OiAndGVzdCc7Ci0gICAgc3JjOiB1cmwoLi4vLi4vcmVzb3VyY2VzL0FoZW0udHRmKTsKLX0KLQot
cCB7IGZvbnQtZmFtaWx5OiAndGVzdCc7IH0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNp
b25zLW5ldHdvcmstdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0SEFSKG5leHRUZXN0KQotewotICAg
IGZ1bmN0aW9uIGNvbXBhcmVFbnRyaWVzKGEsIGIpCi0gICAgewotICAgICAgICByZXR1cm4gYS5y
ZXF1ZXN0LnVybC50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5yZXF1ZXN0LnVybC50b0xv
d2VyQ2FzZSgpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkhBUihyZXN1bHQpCi0gICAgewot
ICAgICAgICByZXN1bHQuZW50cmllcy5zb3J0KGNvbXBhcmVFbnRyaWVzKTsKLQotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5lbnRyaWVzLmxlbmd0aDsgKytpKQotICAgICAgICAg
ICAgb3V0cHV0KCJyZXNvdXJjZTogIiArIHJlc3VsdC5lbnRyaWVzW2ldLnJlcXVlc3QudXJsLnJl
cGxhY2UoLy4qKChcL1teL10qKXszfSQpLywiLi4uJDEiKSk7Ci0gICAgfQotICAgIGV4dGVuc2lv
bl9kb1hIUihmdW5jdGlvbigpIHsKLSAgICAgICAgd2ViSW5zcGVjdG9yLm5ldHdvcmsuZ2V0SEFS
KGNhbGxiYWNrQW5kTmV4dFRlc3Qob25IQVIsIG5leHRUZXN0KSk7Ci0gICAgfSk7Ci19Ci0KLWZ1
bmN0aW9uIGRvWEhSKCkKLXsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0g
ICAgeGhyLm9wZW4oIkdFVCIsICIiLCBmYWxzZSk7Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci19Ci0K
LWZ1bmN0aW9uIGV4dGVuc2lvbl9kb1hIUihjYWxsYmFjaykKLXsKLSAgICB3ZWJJbnNwZWN0b3Iu
aW5zcGVjdGVkV2luZG93LmV2YWwoImRvWEhSKCkiLCBjYWxsYmFjayk7Ci19Ci0KLWZ1bmN0aW9u
IGV4dGVuc2lvbl90ZXN0UmVxdWVzdE5vdGlmaWNhdGlvbihuZXh0VGVzdCkKLXsKLSAgICBmdW5j
dGlvbiBvblJlcXVlc3RGaW5pc2hlZChyZXF1ZXN0KQotICAgIHsKLSAgICAgICAgb3V0cHV0KCJS
ZXF1ZXN0IGZpbmlzaGVkOiAiICsgcmVxdWVzdC5yZXF1ZXN0LnVybC5yZXBsYWNlKC8uKigoXC9b
Xi9dKil7M30kKS8sIi4uLiQxIikpOwotICAgIH0KLQotICAgIHdlYkluc3BlY3Rvci5uZXR3b3Jr
Lm9uUmVxdWVzdEZpbmlzaGVkLmFkZExpc3RlbmVyKGNhbGxiYWNrQW5kTmV4dFRlc3Qob25SZXF1
ZXN0RmluaXNoZWQsIG5leHRUZXN0KSk7Ci0gICAgZXh0ZW5zaW9uX2RvWEhSKCk7Ci19Ci0KLWZ1
bmN0aW9uIGV4dGVuc2lvbl9vblJlcXVlc3RCb2R5KGNvbnRlbnQsIGVuY29kaW5nKQotewotICAg
IGR1bXBPYmplY3QoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7Ci19Ci0K
LWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0UmVxdWVzdENvbnRlbnQobmV4dFRlc3QpCi17Ci0g
ICAgZXh0ZW5zaW9uX2dldFJlcXVlc3RCeVVybChbL2F1ZGl0cy1zdHlsZTEuY3NzJC9dLCBmdW5j
dGlvbihyZXF1ZXN0KSB7Ci0gICAgICAgIHJlcXVlc3QuZ2V0Q29udGVudChjYWxsYmFja0FuZE5l
eHRUZXN0KGV4dGVuc2lvbl9vblJlcXVlc3RCb2R5LCBuZXh0VGVzdCkpOwotICAgIH0pOwotfQot
Ci1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEdldFJlc291cmNlQ29udGVudEVuY29kZWQobmV4dFRl
c3QpCi17Ci0gICAgZXh0ZW5zaW9uX2dldFJlcXVlc3RCeVVybChbL2FiZS5wbmckLyBdLCBmdW5j
dGlvbihyZXF1ZXN0KSB7Ci0gICAgICAgIHJlcXVlc3QuZ2V0Q29udGVudChjYWxsYmFja0FuZE5l
eHRUZXN0KGV4dGVuc2lvbl9vblJlcXVlc3RCb2R5LCBuZXh0VGVzdCkpOwotICAgIH0pOwotfQot
Ci12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uo
SW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgV2ViSW5zcGVjdG9yIGV4dGVu
c2lvbiBBUEk8L3A+Ci08aW1nIHNyYz0icmVzb3VyY2VzL2FiZS5wbmciPgotPGltZyBzcmM9InJl
c291cmNlcy9taXNzaW5nLWltYWdlLnBuZyI+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcGFu
ZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDc1Y2MyMGEy
NTI5Mzg0OWExYTE2MGI0ZDcxYWEwNDM5MzBlYWQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtcGFuZWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IGhlbGxvCi1UZXN0cyBXZWJJbnNwZWN0b3IgZXh0
ZW5zaW9uIEFQSQotCi1TdGFydGVkIGV4dGVuc2lvbi4KLVJ1bm5pbmcgdGVzdHMuLi4KLVJVTk5J
TkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RDcmVhdGVQYW5lbAotUGFuZWwgY3JlYXRlZAotewotICAg
IGNyZWF0ZVN0YXR1c0JhckJ1dHRvbiA6IDxmdW5jdGlvbj4KLSAgICBvbkhpZGRlbiA6IHsKLSAg
ICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHJlbW92ZUxpc3RlbmVyIDog
PGZ1bmN0aW9uPgotICAgIH0KLSAgICBvblNlYXJjaCA6IHsKLSAgICAgICAgYWRkTGlzdGVuZXIg
OiA8ZnVuY3Rpb24+Ci0gICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgIH0K
LSAgICBvblNob3duIDogewotICAgICAgICBhZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICAg
ICAgcmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgfQotICAgIHNob3cgOiA8ZnVuY3Rp
b24+Ci19Ci1QYW5lbCBzaG93bgotZm9jdXNlZDogdHJ1ZQotRXh0ZW5zaW9uIHBhbmVsIHNpemUg
Y29ycmVjdAotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFNlYXJjaAotUGFuZWwgaGlkZGVu
Ci1QYW5lbCBzZWFyY2hlZDoKLXsKLSAgICAwIDogInBlcmZvcm1TZWFyY2giCi0gICAgMSA6ICJo
ZWxsbyIKLX0KLVBhbmVsIHNlYXJjaGVkOgotewotICAgIDAgOiAiY2FuY2VsU2VhcmNoIgotICAg
IDEgOiB1bmRlZmluZWQKLX0KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RTdGF0dXNCYXJC
dXR0b25zCi1DcmVhdGVkIGEgc3RhdHVzIGJhciBidXR0b24sIGR1bXAgZm9sbG93czoKLXsKLSAg
ICBvbkNsaWNrZWQgOiB7Ci0gICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAg
ICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICB9Ci0gICAgdXBkYXRlIDogPGZ1bmN0
aW9uPgotfQotYnV0dG9uMSBjbGlja2VkCi1TdGF0dXMgYmFyIGJ1dHRvbnMgc3RhdGU6Ci1zdGF0
dXMgYmFyIGl0ZW0gMCwgaWNvbjogLi4uL2luc3BlY3Rvci9yZXNvdXJjZXMvYnV0dG9uMS5wbmcs
IHRvb2x0aXA6ICdCdXR0b24gT25lIHRvb2x0aXAnLCBkaXNhYmxlZDogZmFsc2UKLXN0YXR1cyBi
YXIgaXRlbSAxLCBpY29uOiAuLi4vaW5zcGVjdG9yL3Jlc291cmNlcy9idXR0b24yLnBuZywgdG9v
bHRpcDogJ0J1dHRvbiBUd28gdG9vbHRpcCcsIGRpc2FibGVkOiB0cnVlCi1VcGRhdGVkIHN0YXR1
cyBiYXIgYnV0dG9ucwotU3RhdHVzIGJhciBidXR0b25zIHN0YXRlOgotc3RhdHVzIGJhciBpdGVt
IDAsIGljb246IC4uLi9pbnNwZWN0b3IvcmVzb3VyY2VzL2J1dHRvbjEtdXBkYXRlZC5wbmcsIHRv
b2x0aXA6ICdCdXR0b24gT25lIHRvb2x0aXAnLCBkaXNhYmxlZDogZmFsc2UKLXN0YXR1cyBiYXIg
aXRlbSAxLCBpY29uOiAuLi4vaW5zcGVjdG9yL3Jlc291cmNlcy9idXR0b24yLnBuZywgdG9vbHRp
cDogJ0J1dHRvbiBUd28gdXBkYXRlZCB0b29sdGlwJywgZGlzYWJsZWQ6IGZhbHNlCi1idXR0b24y
IGNsaWNrZWQKLUFsbCB0ZXN0cyBkb25lLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXBhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY4YzMyMDg1YmJiZjhmMjRhN2ZhMDI2ODRiZTE3M2U2ZmZkMGNjZDAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1wYW5lbC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTY3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1mdW5jdGlvbiBsb2dNZXNzYWdl
KCkKLXsKLSAgICBjb25zb2xlLmxvZygiaGVsbG8iKTsKLX0KLQotZnVuY3Rpb24gaW5pdGlhbGl6
ZV9leHRlbnNpb25zUGFuZWxUZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmdldFBhbmVsU2l6
ZSA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBib3VuZGluZ1JlY3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibWFpbi1wYW5lbHMiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
LSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHdpZHRoOiBib3VuZGluZ1JlY3Qud2lkdGgs
Ci0gICAgICAgICAgICBoZWlnaHQ6IGJvdW5kaW5nUmVjdC5oZWlnaHQKLSAgICAgICAgfTsKLSAg
ICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBTdGF0dXNCYXJCdXR0b25zID0gZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcu
Y3VycmVudFBhbmVsKCk7Ci0gICAgICAgIHZhciBpdGVtcyA9IHBhbmVsLnN0YXR1c0Jhckl0ZW1z
KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdGF0dXMgYmFyIGJ1dHRvbnMg
c3RhdGU6Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07Ci0gICAgICAgICAgICBpZiAoIShp
dGVtIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoInN0YXR1cyBiYXIgaXRlbSAiICsgaSArICIgaXMgbm90IGEg
YnV0dG9uLiIpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgLy8gU3RyaXAgdXJsKC4uLikgYW5kIHByZWZpeCBvZiB0aGUgVVJMIHdpdGhpbiwg
bGVhdmUganVzdCBsYXN0IDMgY29tcG9uZW50cy4KLSAgICAgICAgICAgIHZhciB1cmwgPSBpdGVt
LnN0eWxlLmJhY2tncm91bmRJbWFnZS5yZXBsYWNlKC9edXJsXCguKigoWy9dW14vXSopezN9W14v
KV0qKVwpJC8sICIuLi4kMSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
InN0YXR1cyBiYXIgaXRlbSAiICsgaSArICIsIGljb246ICIgKyB1cmwgKyAiLCB0b29sdGlwOiAn
IiArIGl0ZW0udGl0bGUgKyAiJywgZGlzYWJsZWQ6ICIgKyBpdGVtLmRpc2FibGVkKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuY2xpY2tCdXR0b24gPSBmdW5jdGlvbihp
bmRleCkKLSAgICB7Ci0gICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5pbnNwZWN0b3JW
aWV3LmN1cnJlbnRQYW5lbCgpOwotICAgICAgICBwYW5lbC5zdGF0dXNCYXJJdGVtcygpW2luZGV4
XS5jbGljaygpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuY2xpY2tPblVSTCA9IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImNvbnNvbGUiKTsK
LSAgICAgICAgdmFyIHhwYXRoUmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8vYVtzdGFydHMt
d2l0aCguLCAnZXh0ZW5zaW9ucy1wYW5lbC5odG1sJyldIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsKCJjb25zb2xlIikuZWxl
bWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUsIG51bGwpOwot
ICAgICAgICB2YXIgY2xpY2sgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpOwot
ICAgICAgICBjbGljay5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVlLCB0cnVlKTsKLSAgICAg
ICAgeHBhdGhSZXN1bHQuc2luZ2xlTm9kZVZhbHVlLmRpc3BhdGNoRXZlbnQoY2xpY2spOwotICAg
IH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RDcmVhdGVQYW5lbChuZXh0VGVzdCkKLXsK
LSAgICB2YXIgZXhwZWN0T25TaG93biA9IGZhbHNlOwotCi0gICAgZnVuY3Rpb24gb25QYW5lbFNo
b3duKHBhbmVsLCB3aW5kb3cpCi0gICAgewotICAgICAgICBpZiAoIWV4cGVjdE9uU2hvd24pIHsK
LSAgICAgICAgICAgIG91dHB1dCgiRkFJTDogdW5leHBlY3RlZCBvblNob3duIGV2ZW50Iik7Ci0g
ICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIG91dHB1dCgiUGFuZWwgc2hvd24iKTsKLSAgICAgICAgb3V0cHV0KCJmb2N1c2VkOiAi
ICsgd2luZG93LmRvY3VtZW50Lmhhc0ZvY3VzKCkpOwotICAgICAgICBwYW5lbC5vblNob3duLnJl
bW92ZUxpc3RlbmVyKG9uUGFuZWxTaG93bik7Ci0gICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgi
cmVwbHkoSW5zcGVjdG9yVGVzdC5nZXRQYW5lbFNpemUoKSkiLCBmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICAgICAgICAgIGlmIChyZXN1bHQud2lkdGggIT09IHdpbmRvdy5pbm5lcldpZHRoKQotICAg
ICAgICAgICAgICAgIG91dHB1dCgicGFuZWwgd2lkdGggbWlzbWF0Y2gsIG91dGVyOiAiICsgcmVz
dWx0LndpZHRoICsgIiwgaW5uZXI6IiArIHdpbmRvdy5pbm5lcldpZHRoKTsKLSAgICAgICAgICAg
IGVsc2UgaWYgKHJlc3VsdC5oZWlnaHQgIT09IHdpbmRvdy5pbm5lckhlaWdodCkKLSAgICAgICAg
ICAgICAgICBvdXRwdXQoInBhbmVsIGhlaWdodCBtaXNtYXRjaCwgb3V0ZXI6ICIgKyByZXN1bHQu
aGVpZ2h0ICsgIiwgaW5uZXI6IiArIHdpbmRvdy5pbm5lckhlaWdodCk7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgb3V0cHV0KCJFeHRlbnNpb24gcGFuZWwgc2l6ZSBjb3JyZWN0
Iik7Ci0gICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBvblBhbmVsQ3JlYXRlZChwYW5lbCkKLSAgICB7Ci0gICAgICAgIG91dHB1dCgiUGFu
ZWwgY3JlYXRlZCIpOwotICAgICAgICBkdW1wT2JqZWN0KHBhbmVsKTsKLSAgICAgICAgcGFuZWwu
b25IaWRkZW4uYWRkTGlzdGVuZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBvdXRwdXQoIlBh
bmVsIGhpZGRlbiIpOwotICAgICAgICB9KTsKLSAgICAgICAgcGFuZWwub25TaG93bi5hZGRMaXN0
ZW5lcihvblBhbmVsU2hvd24uYmluZCh0aGlzLCBwYW5lbCkpOwotCi0gICAgICAgIC8vIFRoaXMg
aXMgbm90IGF1dGhvcml6ZWQgYW5kIHRoZXJlZm9yZSBzaG91bGQgbm90IHByb2R1Y2UgYW55IG91
dHB1dAotICAgICAgICBwYW5lbC5zaG93KCk7Ci0gICAgICAgIGV4dGVuc2lvbl9zaG93UGFuZWwo
ImNvbnNvbGUiKTsKLQotICAgICAgICBmdW5jdGlvbiBoYW5kbGVPcGVuUmVzb3VyY2UocmVzb3Vy
Y2UsIGxpbmVOdW1iZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBmb3Jj
ZSBleHRlbnNpb24gaWZyYW1lIHRvIGJlIHJlYWxseSBsb2FkZWQuCi0gICAgICAgICAgICBwYW5l
bC5zaG93KCk7Ci0gICAgICAgIH0KLSAgICAgICAgd2ViSW5zcGVjdG9yLnBhbmVscy5zZXRPcGVu
UmVzb3VyY2VIYW5kbGVyKGhhbmRsZU9wZW5SZXNvdXJjZSk7Ci0gICAgICAgIGV2YWx1YXRlT25G
cm9udGVuZCgiV2ViSW5zcGVjdG9yLm9wZW5BbmNob3JMb2NhdGlvblJlZ2lzdHJ5Ll9hY3RpdmVI
YW5kbGVyID0gJ3Rlc3QgZXh0ZW5zaW9uJyIpOwotICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVj
dGVkV2luZG93LmV2YWwoImxvZ01lc3NhZ2UoKSIsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAg
ZXhwZWN0T25TaG93biA9IHRydWU7Ci0gICAgICAgICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIklu
c3BlY3RvclRlc3QuY2xpY2tPblVSTCgpOyIpOwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgdmFy
IGJhc2VQYXRoID0gbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQvLCAiLyIpOwot
ICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuY3JlYXRlKCJUZXN0IFBhbmVsIiwgYmFzZVBhdGggKyAi
ZXh0ZW5zaW9uLXBhbmVsLnBuZyIsIGJhc2VQYXRoICsgImV4dGVuc2lvbi1wYW5lbC5odG1sIiwg
b25QYW5lbENyZWF0ZWQpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdFNlYXJjaChuZXh0
VGVzdCkKLXsKLSAgICB2YXIgY2FsbGJhY2tDb3VudCA9IDA7Ci0KLSAgICBmdW5jdGlvbiBvblBh
bmVsQ3JlYXRlZChwYW5lbCkKLSAgICB7Ci0gICAgICAgIHBhbmVsLm9uU2VhcmNoLmFkZExpc3Rl
bmVyKGZ1bmN0aW9uKGFjdGlvbiwgcXVlcnlTdHJpbmcpIHsKLSAgICAgICAgICAgIG91dHB1dCgi
UGFuZWwgc2VhcmNoZWQ6Iik7Ci0gICAgICAgICAgICBkdW1wT2JqZWN0KEFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpOwotICAgICAgICAgICAgY2FsbGJhY2tDb3VudCsrOwot
ICAgICAgICAgICAgaWYgKGNhbGxiYWNrQ291bnQgPT09IDIpCi0gICAgICAgICAgICAgICAgbmV4
dFRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZXh0
ZW5zaW9uIik7Ci0gICAgICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiV2ViSW5zcGVjdG9yLnNlYXJj
aENvbnRyb2xsZXIuX3BlcmZvcm1TZWFyY2goJ2hlbGxvJywgdHJ1ZSwgZmFsc2UsIHRydWUpOyBy
ZXBseSgpIik7Ci0gICAgfQotICAgIHZhciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJl
cGxhY2UoL1wvW14vXSokLywgIi8iKTsKLSAgICB3ZWJJbnNwZWN0b3IucGFuZWxzLmNyZWF0ZSgi
VGVzdCBQYW5lbCIsIGJhc2VQYXRoICsgImV4dGVuc2lvbi1wYW5lbC5wbmciLCBiYXNlUGF0aCAr
ICJub24tZXhpc3RlbnQuaHRtbCIsIG9uUGFuZWxDcmVhdGVkKTsKLX0KLQotZnVuY3Rpb24gZXh0
ZW5zaW9uX3Rlc3RTdGF0dXNCYXJCdXR0b25zKG5leHRUZXN0KQotewotICAgIHZhciBiYXNlUGF0
aCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1wvW14vXSokLywgIi8iKTsKLQotICAgIGZ1
bmN0aW9uIG9uUGFuZWxDcmVhdGVkKHBhbmVsKQotICAgIHsKLSAgICAgICAgdmFyIGJ1dHRvbjEg
PSBwYW5lbC5jcmVhdGVTdGF0dXNCYXJCdXR0b24oYmFzZVBhdGggKyAiYnV0dG9uMS5wbmciLCAi
QnV0dG9uIE9uZSB0b29sdGlwIik7Ci0gICAgICAgIHZhciBidXR0b24yID0gcGFuZWwuY3JlYXRl
U3RhdHVzQmFyQnV0dG9uKGJhc2VQYXRoICsgImJ1dHRvbjIucG5nIiwgIkJ1dHRvbiBUd28gdG9v
bHRpcCIsIHRydWUpOwotICAgICAgICBvdXRwdXQoIkNyZWF0ZWQgYSBzdGF0dXMgYmFyIGJ1dHRv
biwgZHVtcCBmb2xsb3dzOiIpOwotICAgICAgICBkdW1wT2JqZWN0KGJ1dHRvbjEpOwotICAgICAg
ICBmdW5jdGlvbiB1cGRhdGVCdXR0b25zKCkKLSAgICAgICAgewotICAgICAgICAgICAgYnV0dG9u
MS51cGRhdGUoYmFzZVBhdGggKyAiYnV0dG9uMS11cGRhdGVkLnBuZyIpOwotICAgICAgICAgICAg
YnV0dG9uMi51cGRhdGUobnVsbCwgIkJ1dHRvbiBUd28gdXBkYXRlZCB0b29sdGlwIiwgZmFsc2Up
OwotICAgICAgICAgICAgb3V0cHV0KCJVcGRhdGVkIHN0YXR1cyBiYXIgYnV0dG9ucyIpOwotICAg
ICAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmR1bXBTdGF0dXNCYXJC
dXR0b25zKCk7IEluc3BlY3RvclRlc3QuY2xpY2tCdXR0b24oMSk7Iik7Ci0gICAgICAgIH0KLSAg
ICAgICAgYnV0dG9uMS5vbkNsaWNrZWQuYWRkTGlzdGVuZXIoZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBvdXRwdXQoImJ1dHRvbjEgY2xpY2tlZCIpOwotICAgICAgICAgICAgZXZhbHVhdGVPbkZy
b250ZW5kKCJJbnNwZWN0b3JUZXN0LmR1bXBTdGF0dXNCYXJCdXR0b25zKCk7IHJlcGx5KCk7Iiwg
dXBkYXRlQnV0dG9ucyk7Ci0gICAgICAgIH0pOwotICAgICAgICBidXR0b24yLm9uQ2xpY2tlZC5h
ZGRMaXN0ZW5lcihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIG91dHB1dCgiYnV0dG9uMiBjbGlj
a2VkIik7Ci0gICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAgICB9KTsKLSAgICAgICAgZXZh
bHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnNob3dQYW5lbCgnZXh0ZW5zaW9uJyk7IElu
c3BlY3RvclRlc3QuY2xpY2tCdXR0b24oMSk7IEluc3BlY3RvclRlc3QuY2xpY2tCdXR0b24oMCk7
IiwgdXBkYXRlQnV0dG9ucyk7Ci0gICAgfQotCi0gICAgd2ViSW5zcGVjdG9yLnBhbmVscy5jcmVh
dGUoIkJ1dHRvbnMgUGFuZWwiLCBiYXNlUGF0aCArICJleHRlbnNpb24tcGFuZWwucG5nIiwgYmFz
ZVBhdGggKyAibm9uLWV4aXN0ZW50Lmh0bWwiLCBvblBhbmVsQ3JlYXRlZCk7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgV2ViSW5z
cGVjdG9yIGV4dGVuc2lvbiBBUEk8L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9h
ZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlOTU1MzdlYWJl
MjU1MzM2OGM1MjE1OTMwOTc5NjcyMThjOWJlNGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1yZWxvYWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA
QAotVGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LnJlbG9hZCgpIHN1Y2Nl
c3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2RlIHVwb24gcmVsb2FkCi0KLVN0YXJ0ZWQgZXh0ZW5z
aW9uLgotUnVubmluZyB0ZXN0cy4uLgotUlVOTklORyBURVNUOiBleHRlbnNpb25fdGVzdFJlbG9h
ZEluamVjdHNDb2RlCi1QYWdlIHJlbG9hZGVkLgotUGFnZSByZWxvYWRlZC4KLVdpdGggaW5qZWN0
ZWQgY29kZTogZm9vID0gNDIKLVdpdGhvdXQgaW5qZWN0ZWQgY29kZTogZm9vID0gdW5kZWZpbmVk
Ci1BbGwgdGVzdHMgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtcmVsb2FkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU1ZDBhN2Y4YTBiYTFlZWVhY2E3MzI4MmQyNjk5ZTZiZWE5ZjM4MWUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZWxvYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5iYXIgPSAiZm9vID0gIiAr
IHdpbmRvdy5mb287Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0UmVsb2FkSW5qZWN0c0NvZGUo
bmV4dFRlc3QpCi17Ci0gICAgdmFyIHZhbHVlV2l0aEluamVjdGVkQ29kZTsKLQotICAgIGZ1bmN0
aW9uIG9uUGFnZVdpdGhJbmplY3RlZENvZGVMb2FkZWQoKQotICAgIHsKLSAgICAgICAgd2ViSW5z
cGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJ3aW5kb3cuYmFyIiwgZnVuY3Rpb24odmFsdWUp
IHsKLSAgICAgICAgICAgIHZhbHVlV2l0aEluamVjdGVkQ29kZSA9IHZhbHVlOwotICAgICAgICAg
ICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVw
bHkpIiwgb25QYWdlV2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCk7Ci0gICAgICAgICAgICB3ZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LnJlbG9hZCgpOwotICAgICAgICB9KTsKLSAgICB9Ci0g
ICAgZnVuY3Rpb24gb25QYWdlV2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCgpCi0gICAgewotICAg
ICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoIndpbmRvdy5iYXIiLCBmdW5j
dGlvbih2YWx1ZSkgewotICAgICAgICAgICAgb3V0cHV0KCJXaXRoIGluamVjdGVkIGNvZGU6ICIg
KyB2YWx1ZVdpdGhJbmplY3RlZENvZGUpOwotICAgICAgICAgICAgb3V0cHV0KCJXaXRob3V0IGlu
amVjdGVkIGNvZGU6ICIgKyB2YWx1ZSk7Ci0gICAgICAgICAgICBuZXh0VGVzdCgpOwotICAgICAg
ICB9KTsKLSAgICB9Ci0gICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldo
ZW5QYWdlTG9hZHMocmVwbHkpIiwgb25QYWdlV2l0aEluamVjdGVkQ29kZUxvYWRlZCk7Ci0gICAg
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoewotICAgICAgICBpbmplY3RlZFNj
cmlwdDogIndpbmRvdy5mb28gPSA0MjsiCi0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3Iu
aW5zcGVjdGVkV2luZG93LnJlbG9hZCgpIHN1Y2Nlc3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2Rl
IHVwb24gcmVsb2FkPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZXNvdXJjZXMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2VmNWE1NTNjZjUz
N2NlZmM4ZjE4YjZiOGVmNmU5YzE2NDIxYjJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtcmVzb3VyY2VzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAg
QEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogZG9uJ3QgcGFuaWMhCi1UZXN0cyByZXNvdXJj
ZS1yZWxhdGVkIG1ldGhvZHMgb2YgV2ViSW5zcGVjdG9yIGV4dGVuc2lvbiBBUEkKLQotCi1TdGFy
dGVkIGV4dGVuc2lvbi4KLVJ1bm5pbmcgdGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9u
X3Rlc3RHZXRBbGxSZXNvdXJjZXMKLXBhZ2UgcmVzb3VyY2VzOgotewotICAgIDAgOiB7Ci0gICAg
ICAgIDAgOiB7Ci0gICAgICAgICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAg
ICAgc2V0Q29udGVudCA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAiaW1hZ2UiCi0g
ICAgICAgICAgICB1cmwgOiAuLi4vYWJlLnBuZwotICAgICAgICB9Ci0gICAgICAgIDEgOiB7Ci0g
ICAgICAgICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgc2V0Q29udGVu
dCA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAic3R5bGVzaGVldCIKLSAgICAgICAg
ICAgIHVybCA6IC4uLi9hdWRpdHMtc3R5bGUxLmNzcwotICAgICAgICB9Ci0gICAgICAgIDIgOiB7
Ci0gICAgICAgICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgc2V0Q29u
dGVudCA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAiZG9jdW1lbnQiCi0gICAgICAg
ICAgICB1cmwgOiAuLi4vZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbAotICAgICAgICB9Ci0gICAg
ICAgIDMgOiB7Ci0gICAgICAgICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAg
ICAgc2V0Q29udGVudCA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAic2NyaXB0Igot
ICAgICAgICAgICAgdXJsIDogLi4uL2V4dGVuc2lvbnMtdGVzdC5qcwotICAgICAgICB9Ci0gICAg
ICAgIDQgOiB7Ci0gICAgICAgICAgICBnZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAg
ICAgc2V0Q29udGVudCA6IDxmdW5jdGlvbj4KLSAgICAgICAgICAgIHR5cGUgOiAic2NyaXB0Igot
ICAgICAgICAgICAgdXJsIDogLi4uL2luc3BlY3Rvci10ZXN0LmpzCi0gICAgICAgIH0KLSAgICAg
ICAgNSA6IHsKLSAgICAgICAgICAgIGdldENvbnRlbnQgOiA8ZnVuY3Rpb24+Ci0gICAgICAgICAg
ICBzZXRDb250ZW50IDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgdHlwZSA6ICJzY3JpcHQiCi0g
ICAgICAgICAgICB1cmwgOiAuLi4vdGVzdC1zY3JpcHQuanMKLSAgICAgICAgfQotICAgIH0KLX0K
LVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RHZXRSZXNvdXJjZUNvbnRlbnQKLXsKLSAgICAw
IDogImZ1bmN0aW9uIF9fdGVzdF9mdW5jdGlvbigpCi17Ci19Ci0KLSIKLSAgICAxIDogIiIKLX0K
LVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RPbkNvbnRlbnRDb21taXR0ZWQKLWxvZzogRXh0
ZW5zaW9uIHNlcnZlciBlcnJvcjogT2JqZWN0IGRvZXMgbm90IHN1cHBvcnQgcmVxdWVzdGVkIG9w
ZXJhdGlvbjogUmVzb3VyY2UgaXMgbm90IGVkaXRhYmxlCi1jb250ZW50IGNvbW1pdHRlZCBmb3Ig
cmVzb3VyY2UgLi4uL2F1ZGl0cy1zdHlsZTEuY3NzICh0eXBlOiBzdHlsZXNoZWV0KSwgbmV3IGNv
bnRlbnQ6IGRpdi50ZXN0IHsgd2lkdGg6IDIyMHB4OyBoZWlnaHQ6IDQycHg7IH0KLVJldmlzaW9u
IGNvbnRlbnQ6IGRpdi50ZXN0IHsgd2lkdGg6IDIyMHB4OyBoZWlnaHQ6IDQycHg7IH0KLVJVTk5J
TkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RPblJlc291cmNlQWRkZWQKLURlYnVnZ2VyIHdhcyBlbmFi
bGVkLgotcmVzb3VyY2UgYWRkZWQ6Ci17Ci0gICAgMCA6IHsKLSAgICAgICAgZ2V0Q29udGVudCA6
IDxmdW5jdGlvbj4KLSAgICAgICAgc2V0Q29udGVudCA6IDxmdW5jdGlvbj4KLSAgICAgICAgdHlw
ZSA6ICJzY3JpcHQiCi0gICAgICAgIHVybCA6IGRhdGE6YXBwbGljYXRpb24vamF2YXNjcmlwdC4u
LgotICAgIH0KLX0KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLVJVTk5JTkcgVEVTVDogZXh0ZW5z
aW9uX3Rlc3RPcGVuUmVzb3VyY2VIYW5kbGVyCi1oYW5kbGVPcGVuUmVzb3VyY2UoKSBpbnZva2Vk
IFt0aGlzIHNob3VsZCBvbmx5IGFwcGVhciBvbmNlIV06IAotewotICAgIDAgOiB7Ci0gICAgICAg
IGdldENvbnRlbnQgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHNldENvbnRlbnQgOiA8ZnVuY3Rpb24+
Ci0gICAgICAgIHR5cGUgOiAiZG9jdW1lbnQiCi0gICAgICAgIHVybCA6IC4uLi9leHRlbnNpb25z
LXJlc291cmNlcy5odG1sCi0gICAgfQotICAgIDEgOiAxMgotfQotUlVOTklORyBURVNUOiBleHRl
bnNpb25fdGVzdFNldFJlc291cmNlQ29udGVudAotZGl2LnRlc3Qgd2lkdGggYWZ0ZXIgc3R5bGVz
aGVldCBlZGl0ZWQgKHNob3VsZCBiZSAxMjYpOiAxMjYKLUFsbCB0ZXN0cyBkb25lLgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlc291
cmNlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1y
ZXNvdXJjZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFhNTE2YmM4ZjYz
M2ZiN2ZjZWExZDllZDI1ZWFmOTdmYTVkYjNkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLXJlc291cmNlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEyICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9hdWRpdHMtc3R5bGUxLmNzcyIgdHlw
ZT0idGV4dC9jc3MiPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3Vy
Y2VzL3Rlc3Qtc2NyaXB0LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotZnVuY3Rpb24gbG9nTWVzc2FnZSgpCi17Ci0gICAgY29uc29sZS5sb2coImRvbid0
IHBhbmljISIpOwotfQotCi1mdW5jdGlvbiBpbml0aWFsaXplX0V4dGVuc2lvblJlc291cmNlVGVz
dHMoKQotewotCi1JbnNwZWN0b3JUZXN0LmNsaWNrT25VUkwgPSBmdW5jdGlvbigpCi17Ci0gICAg
V2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiY29uc29sZSIpOwotICAgIHZhciB4cGF0aFJlc3VsdCA9
IGRvY3VtZW50LmV2YWx1YXRlKCIvL2Fbc3RhcnRzLXdpdGgoLiwgJ2V4dGVuc2lvbnMtcmVzb3Vy
Y2VzLmh0bWwnKV0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMuY29uc29sZS5lbGVtZW50LCBudWxsLCBYUGF0aFJlc3VsdC5BTllf
VU5PUkRFUkVEX05PREVfVFlQRSwgbnVsbCk7Ci0gICAgdmFyIGNsaWNrID0gZG9jdW1lbnQuY3Jl
YXRlRXZlbnQoIk1vdXNlRXZlbnQiKTsKLSAgICBjbGljay5pbml0TW91c2VFdmVudCgiY2xpY2si
LCB0cnVlLCB0cnVlKTsKLSAgICB4cGF0aFJlc3VsdC5zaW5nbGVOb2RlVmFsdWUuZGlzcGF0Y2hF
dmVudChjbGljayk7Ci19Ci0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RHZXRBbGxSZXNv
dXJjZXMobmV4dFRlc3QpCi17Ci0gICAgZnVuY3Rpb24gY2FsbGJhY2socmVzb3VyY2VzKQotICAg
IHsKLSAgICAgICAgZnVuY3Rpb24gZmlsdGVyKHJlc291cmNlKQotICAgICAgICB7Ci0gICAgICAg
ICAgICAvLyBGb3Igc29tZSByZWFzb24gc2NyaXB0cyBmcm9tIHRlc3RzIHByZXZpb3VzbHkgcnVu
IGluIHRoZSBzYW1lIHRlc3Qgc2hlbGwgc29tZXRpbWVzIGFwcGVhciwgc28gd2UgbmVlZCB0byBm
aWx0ZXIgdGhlbSBvdXQuCi0gICAgICAgICAgICBjb25zdCByZXNvdXJjZVVSTHNXaGl0ZUxpc3Qg
PSBbImFiZS5wbmciLCAiYXVkaXRzLXN0eWxlMS5jc3MiLCAiZXh0ZW5zaW9ucy1yZXNvdXJjZXMu
aHRtbCIsICJleHRlbnNpb25zLXRlc3QuanMiLCAiaW5zcGVjdG9yLXRlc3QuanMiLCAidGVzdC1z
Y3JpcHQuanMiXTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2VVUkxz
V2hpdGVMaXN0Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc291cmNlLnVy
bC5pbmRleE9mKHJlc291cmNlVVJMc1doaXRlTGlzdFtpXSkgIT09IC0xKQotICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBjb21wYXJlUmVzb3VyY2VzKGEsIGIp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB0cmltVVJMKGEudXJsKS5sb2NhbGVDb21w
YXJlKHRyaW1VUkwoYi51cmwpKTsKLSAgICAgICAgfQotICAgICAgICByZXNvdXJjZXMgPSByZXNv
dXJjZXMuZmlsdGVyKGZpbHRlcik7Ci0gICAgICAgIHJlc291cmNlcy5zb3J0KGNvbXBhcmVSZXNv
dXJjZXMpOwotICAgICAgICBvdXRwdXQoInBhZ2UgcmVzb3VyY2VzOiIpOwotICAgICAgICBkdW1w
T2JqZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyksIHsgdXJsOiAidXJs
IiB9KTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5nZXRSZXNvdXJj
ZXMoY2FsbGJhY2tBbmROZXh0VGVzdChjYWxsYmFjaywgbmV4dFRlc3QpKTsKLX0KLQotZnVuY3Rp
b24gZXh0ZW5zaW9uX3J1bldpdGhSZXNvdXJjZShyZWdleHAsIGNhbGxiYWNrKQotewotICAgIGZ1
bmN0aW9uIG9uUmVzb3VyY2VzKHJlc291cmNlcykKLSAgICB7Ci0gICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZXNvdXJjZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgaWYgKHJlZ2V4cC50
ZXN0KHJlc291cmNlc1tpXS51cmwpKSB7Ci0gICAgICAgICAgICAgICBjYWxsYmFjayhyZXNvdXJj
ZXNbaV0pCi0gICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgIH0KLSAgICAgICB9Ci0g
ICAgICAgdGhyb3cgIkZhaWxlZCB0byBmaW5kIGEgcmVzb3VyY2U6ICIgKyByZWdleHAudG9TdHJp
bmcoKTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5nZXRSZXNvdXJj
ZXMob25SZXNvdXJjZXMpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fdGVzdEdldFJlc291cmNl
Q29udGVudChuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvbkNvbnRlbnQoKQotICAgIHsKLSAg
ICAgICAgZHVtcE9iamVjdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTsK
LSAgICB9Ci0gICAgZXh0ZW5zaW9uX3J1bldpdGhSZXNvdXJjZSgvdGVzdC1zY3JpcHRcLmpzJC8s
IGZ1bmN0aW9uKHJlc291cmNlKSB7Ci0gICAgICAgIHJlc291cmNlLmdldENvbnRlbnQoY2FsbGJh
Y2tBbmROZXh0VGVzdChvbkNvbnRlbnQsIG5leHRUZXN0KSk7Ci0gICAgfSk7Ci19Ci0KLS8vIEV4
dGVuc2lvbnMgdGVzdHMgb3ZlcnJpZGUgV2ViSW5zcGVjdG9yLlN0eWxlRmlsZS51cGRhdGVUaW1l
b3V0IGJlY2F1c2Ugb3RoZXJ3aXNlIGV4dGVuc2lvbnMgZG9uJ3QgaGF2ZSBhbnkgY29udHJvbCBv
dmVyIGFwcGx5aW5nIGNoYW5nZXMgdG8gZG9tYWluIHNwZWNpZmljIGJpbmRpbmdzLgotZnVuY3Rp
b24gZXh0ZW5zaW9uX3NldEZha2VTdHlsZVNoZWV0VXBkYXRlVGltZW91dChjYWxsYmFjaykKLXsK
LSAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIldlYkluc3BlY3Rvci5vbGRTdHlsZVNoZWV0VXBkYXRl
VGltZW91dCA9IFdlYkluc3BlY3Rvci5TdHlsZUZpbGUudXBkYXRlVGltZW91dDsgV2ViSW5zcGVj
dG9yLlN0eWxlRmlsZS51cGRhdGVUaW1lb3V0ID0gLTE7IHJlcGx5KCk7IiwgY2FsbGJhY2spOwot
fQotCi1mdW5jdGlvbiBleHRlbnNpb25fcmVzZXRTdHlsZVNoZWV0VXBkYXRlVGltZW91dChjYWxs
YmFjaykKLXsKLSAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIldlYkluc3BlY3Rvci5TdHlsZUZpbGUu
dXBkYXRlVGltZW91dCA9IFdlYkluc3BlY3Rvci5vbGRTdHlsZVNoZWV0VXBkYXRlVGltZW91dDsg
ZGVsZXRlIFdlYkluc3BlY3Rvci5vbGRTdHlsZVNoZWV0VXBkYXRlVGltZW91dDsgcmVwbHkoKTsi
LCBjYWxsYmFjayk7Ci19Ci0KLWZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0U2V0UmVzb3VyY2VDb250
ZW50KG5leHRUZXN0KQotewotICAgIGV4dGVuc2lvbl9zZXRGYWtlU3R5bGVTaGVldFVwZGF0ZVRp
bWVvdXQoc3RlcDIpOwotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgZXh0
ZW5zaW9uX3J1bldpdGhSZXNvdXJjZSgvYXVkaXRzLXN0eWxlMVwuY3NzJC8sIGZ1bmN0aW9uKHJl
c291cmNlKSB7Ci0gICAgICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KCJkaXYudGVzdCB7IHdp
ZHRoOiAxMjZweDsgaGVpZ2h0OiA0MnB4OyB9IiwgZmFsc2UsIHN0ZXAzKTsKLSAgICAgICAgfSk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgd2ViSW5zcGVj
dG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdC1k
aXYnKS5jbGllbnRXaWR0aCIsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAgb3V0cHV0
KCJkaXYudGVzdCB3aWR0aCBhZnRlciBzdHlsZXNoZWV0IGVkaXRlZCAoc2hvdWxkIGJlIDEyNik6
ICIgKyByZXN1bHQpOwotICAgICAgICAgICAgc3RlcDQoKTsKLSAgICAgICAgfSk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgZXh0ZW5zaW9uX3Jlc2V0U3R5
bGVTaGVldFVwZGF0ZVRpbWVvdXQobmV4dFRlc3QpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXh0
ZW5zaW9uX3Rlc3RPbkNvbnRlbnRDb21taXR0ZWQobmV4dFRlc3QpCi17Ci0gICAgdmFyIGV4cGVj
dGVkX2NvbnRlbnQgPSAiZGl2LnRlc3QgeyB3aWR0aDogMjIwcHg7IGhlaWdodDogNDJweDsgfSI7
Ci0gICAgZXh0ZW5zaW9uX3NldEZha2VTdHlsZVNoZWV0VXBkYXRlVGltZW91dChzdGVwMik7Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotCi0gICAgICAgIHdlYkluc3BlY3Rvci5pbnNw
ZWN0ZWRXaW5kb3cub25SZXNvdXJjZUNvbnRlbnRDb21taXR0ZWQuYWRkTGlzdGVuZXIob25Db250
ZW50Q29tbWl0dGVkKTsKLSAgICAgICAgZXh0ZW5zaW9uX3J1bldpdGhSZXNvdXJjZSgvYXVkaXRz
LXN0eWxlMVwuY3NzJC8sIGZ1bmN0aW9uKHJlc291cmNlKSB7Ci0gICAgICAgICAgICByZXNvdXJj
ZS5zZXRDb250ZW50KCJkaXYudGVzdCB7IHdpZHRoOiAxNDBweDsgaGVpZ2h0OiA0MnB4OyB9Iiwg
ZmFsc2UpOwotICAgICAgICB9KTsKLSAgICAgICAgLy8gVGhlIG5leHQgc3RlcCBpcyBnb2luZyB0
byBwcm9kdWNlIGEgY29uc29sZSBtZXNzYWdlIHRoYXQgd2lsbCBiZSBsb2dnZWQsIHNvIHN5bmNo
cm9uaXplIHRoZSBvdXRwdXQgbm93LgotICAgICAgICBldmFsdWF0ZU9uRnJvbnRlbmQoIkluc3Bl
Y3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhyZXBseSkiLCBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIGV4dGVuc2lvbl9ydW5XaXRoUmVzb3VyY2UoL2FiZVwucG5nJC8sIGZ1bmN0
aW9uKHJlc291cmNlKSB7Ci0gICAgICAgICAgICAgICAgcmVzb3VyY2Uuc2V0Q29udGVudCgiIiwg
dHJ1ZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGV4dGVuc2lvbl9ydW5XaXRoUmVz
b3VyY2UoL2F1ZGl0cy1zdHlsZTFcLmNzcyQvLCBmdW5jdGlvbihyZXNvdXJjZSkgewotICAgICAg
ICAgICAgICAgIHJlc291cmNlLnNldENvbnRlbnQoZXhwZWN0ZWRfY29udGVudCwgdHJ1ZSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25Db250
ZW50Q29tbWl0dGVkKHJlc291cmNlLCBjb250ZW50KQotICAgIHsKLSAgICAgICAgb3V0cHV0KCJj
b250ZW50IGNvbW1pdHRlZCBmb3IgcmVzb3VyY2UgIiArIHRyaW1VUkwocmVzb3VyY2UudXJsKSAr
ICIgKHR5cGU6ICIgKyByZXNvdXJjZS50eXBlICsgIiksIG5ldyBjb250ZW50OiAiICsgY29udGVu
dCk7Ci0gICAgICAgIGlmICghL2F1ZGl0cy1zdHlsZTFcLmNzcyQvLnRlc3QocmVzb3VyY2UudXJs
KSB8fCBjb250ZW50ICE9PSBleHBlY3RlZF9jb250ZW50KQotICAgICAgICAgICAgb3V0cHV0KCJG
QUlMOiBzdHJheSBvbkNvbnRlbnRFZGl0ZWQgZXZlbnQiKTsKLSAgICAgICAgd2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFdpbmRvdy5vblJlc291cmNlQ29udGVudENvbW1pdHRlZC5yZW1vdmVMaXN0ZW5l
cihvbkNvbnRlbnRDb21taXR0ZWQpOwotICAgICAgICByZXNvdXJjZS5nZXRDb250ZW50KGZ1bmN0
aW9uKGNvbnRlbnQpIHsKLSAgICAgICAgICAgIG91dHB1dCgiUmV2aXNpb24gY29udGVudDogIiAr
IGNvbnRlbnQpOwotICAgICAgICAgICAgc3RlcDMoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgZXh0ZW5zaW9uX3Jlc2V0U3R5bGVT
aGVldFVwZGF0ZVRpbWVvdXQobmV4dFRlc3QpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5z
aW9uX3Rlc3RPblJlc291cmNlQWRkZWQobmV4dFRlc3QpCi17Ci0gICAgZXZhbHVhdGVPbkZyb250
ZW5kKCJJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHJlcGx5KTsiLCBzdGVwMik7Ci0K
LSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVj
dGVkV2luZG93Lm9uUmVzb3VyY2VBZGRlZC5hZGRMaXN0ZW5lcihvblJlc291cmNlQWRkZWQpOwot
ICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoImFkZFJlc291cmNlKCki
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvblJlc291cmNlQWRkZWQocmVzb3VyY2UpCi0gICAg
ewotICAgICAgICBpZiAocmVzb3VyY2UudXJsLmluZGV4T2YoInRlc3RfZnVuYyIpID09PSAtMSkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgb3V0cHV0KCJyZXNvdXJjZSBhZGRlZDoiKTsK
LSAgICAgICAgZHVtcE9iamVjdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMp
LCB7IHVybDogInVybCIgfSk7Ci0gICAgICAgIHdlYkluc3BlY3Rvci5pbnNwZWN0ZWRXaW5kb3cu
b25SZXNvdXJjZUFkZGVkLnJlbW92ZUxpc3RlbmVyKG9uUmVzb3VyY2VBZGRlZCk7Ci0KLSAgICAg
ICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LmZpbmlzaERlYnVnZ2VyVGVzdChy
ZXBseSk7IiwgbmV4dFRlc3QpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RP
cGVuUmVzb3VyY2VIYW5kbGVyKG5leHRUZXN0KQotewotICAgIGZ1bmN0aW9uIGhhbmRsZU9wZW5S
ZXNvdXJjZShyZXNvdXJjZSwgbGluZU51bWJlcikKLSAgICB7Ci0gICAgICAgIG91dHB1dCgiaGFu
ZGxlT3BlblJlc291cmNlKCkgaW52b2tlZCBbdGhpcyBzaG91bGQgb25seSBhcHBlYXIgb25jZSFd
OiAiKTsKLSAgICAgICAgZHVtcE9iamVjdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1
bWVudHMpLCB7IHVybDogInVybCIgfSk7Ci0gICAgICAgIHdlYkluc3BlY3Rvci5wYW5lbHMuc2V0
T3BlblJlc291cmNlSGFuZGxlcihudWxsKTsKLSAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJ
bnNwZWN0b3JUZXN0LmNsaWNrT25VUkwoKTsgcmVwbHkoKSIsIG5leHRUZXN0KTsKLSAgICB9Ci0g
ICAgd2ViSW5zcGVjdG9yLnBhbmVscy5zZXRPcGVuUmVzb3VyY2VIYW5kbGVyKGhhbmRsZU9wZW5S
ZXNvdXJjZSk7Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCJsb2dNZXNz
YWdlKCkiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0
b3JUZXN0LmNsaWNrT25VUkwoKTsiKTsKLSAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJXZWJJ
bnNwZWN0b3Iub3BlbkFuY2hvckxvY2F0aW9uUmVnaXN0cnkuYWN0aXZlSGFuZGxlciA9ICd0ZXN0
IGV4dGVuc2lvbic7IEluc3BlY3RvclRlc3QuY2xpY2tPblVSTCgpOyIpOwotICAgIH0pOwotfQot
Ci1mdW5jdGlvbiBhZGRSZXNvdXJjZSgpCi17Ci0gICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAgIHNjcmlwdC5zcmMgPSAiZGF0YTphcHBsaWNhdGlv
bi9qYXZhc2NyaXB0LCIgKyBlc2NhcGUoImZ1bmN0aW9uIHRlc3RfZnVuYygpe307Iik7Ci0gICAg
ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHJlc291cmNlLXJlbGF0ZWQg
bWV0aG9kcyBvZiBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9uIEFQSTwvcD4KLTxpbWcgc3JjPSJyZXNv
dXJjZXMvYWJlLnBuZyI+Ci08ZGl2IGlkPSJ0ZXN0LWRpdiIgY2xhc3M9InRlc3QiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVu
c2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtc2lkZWJhci1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjODEwYWY0ZTIwYjU4YjQwNGJmZGQ5YzVlYjRkZDFlOGQy
N2VmMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1zaWRlYmFyLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLVRlc3RzIHNpZGViYXJzIGluIFdl
Ykluc3BlY3RvciBleHRlbnNpb25zIEFQSQotCi1TdGFydGVkIGV4dGVuc2lvbi4KLVJ1bm5pbmcg
dGVzdHMuLi4KLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyUGFnZVJlcGxhY2Vk
V2l0aE9iamVjdAotR290IG9uU2hvd24oKSwgZnJhbWUgZGVmaW5lZAotR290IG9uU2hvd24oKSwg
ZnJhbWUgbm90IGRlZmluZWQKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0
RXhwcmVzc2lvbgotbG9nOiBFeHRlbnNpb24gc2VydmVyIGVycm9yOiBJbnNwZWN0b3IgcHJvdG9j
b2wgZXJyb3I6IE9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluKG11c3Qgbm90IGJl
IGxvbmdlciB0aGFuIDEwMDApCi1TaWRlYmFyIGNvbnRlbnQ6IHRpdGxlZjA6ICJleHByZXNzaW9u
ImYxOiB1bmRlZmluZWRmMjogbnVsbGYzOiBPYmplY3RmNDogQXJyYXlbMF1mNTogQXJyYXlbM11m
NjogT2JqZWN0Zjc6IDQyZjg6IExvY2F0aW9uZjk6IEhUTUxDb2xsZWN0aW9uWzJdZjEwOiBmdW5j
dGlvbiAoKSB7fWYxMTogImZvbyJfX3Byb3RvX186IE9iamVjdAotUlVOTklORyBURVNUOiBleHRl
bnNpb25fdGVzdFNpZGViYXJTZXRPYmplY3QKLVdhdGNoIHNpZGViYXIgY3JlYXRlZCwgY2FsbGJh
Y2sgYXJndW1lbnRzIGR1bXAgZm9sbG93czoKLXsKLSAgICAwIDogewotICAgICAgICBvbkhpZGRl
biA6IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICAgICAg
cmVtb3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIH0KLSAgICAgICAgb25TaG93biA6
IHsKLSAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgICAgICAgICAgcmVt
b3ZlTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIH0KLSAgICAgICAgc2V0RXhwcmVzc2lv
biA6IDxmdW5jdGlvbj4KLSAgICAgICAgc2V0SGVpZ2h0IDogPGZ1bmN0aW9uPgotICAgICAgICBz
ZXRPYmplY3QgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHNldFBhZ2UgOiA8ZnVuY3Rpb24+Ci0gICAg
fQotfQotU2lkZWJhciBjb250ZW50OiBmMDogIm9iamVjdCJmMTogdW5kZWZpbmVkZjI6IG51bGxm
Mzoge31mNDogW11mNTogW2FhLCBiYiwgY2NdZjY6IHtmNjA6NDIsIGY2MTpmb28sIGY2MjpbXX1m
NzogNDIKLVJVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0UGFnZQotU2lkZWJh
ciBjcmVhdGVkCi17Ci0gICAgb25IaWRkZW4gOiB7Ci0gICAgICAgIGFkZExpc3RlbmVyIDogPGZ1
bmN0aW9uPgotICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5jdGlvbj4KLSAgICB9Ci0gICAg
b25TaG93biA6IHsKLSAgICAgICAgYWRkTGlzdGVuZXIgOiA8ZnVuY3Rpb24+Ci0gICAgICAgIHJl
bW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgotICAgIH0KLSAgICBzZXRFeHByZXNzaW9uIDogPGZ1
bmN0aW9uPgotICAgIHNldEhlaWdodCA6IDxmdW5jdGlvbj4KLSAgICBzZXRPYmplY3QgOiA8ZnVu
Y3Rpb24+Ci0gICAgc2V0UGFnZSA6IDxmdW5jdGlvbj4KLX0KLUFsbCB0ZXN0cyBkb25lLgotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXNp
ZGViYXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
c2lkZWJhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGU3MjU2ZDhkOWJm
NTljODkyNmUxZDY0Y2NmYmEwYmExNmE1ZDcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtc2lkZWJhci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci0KLWZ1bmN0aW9uIGluaXRpYWxpemVfZXh0ZW5zaW9uc1NpZGViYXJUZXN0
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBTaWRlYmFyQ29udGVudCA9IGZ1bmN0aW9uKGNh
bGxiYWNrKQotICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXIgPSBJbnNwZWN0b3JUZXN0Ll9leHRl
bnNpb25TaWRlYmFyKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlz
cGF0Y2hlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTaWRlYmFyIGNvbnRlbnQ6ICIgKyBzaWRlYmFyLmJvZHlFbGVtZW50LnRleHRDb250ZW50KTsK
LSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3QuZXhwYW5kU2lkZWJhciA9IGZ1bmN0aW9uKGNhbGxiYWNrKQotICAgIHsKLSAgICAg
ICAgdmFyIHNpZGViYXIgPSBJbnNwZWN0b3JUZXN0Ll9leHRlbnNpb25TaWRlYmFyKCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgIHNpZGViYXIuZXhwYW5kKCk7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwot
ICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0Ll9leHRlbnNpb25TaWRlYmFy
ID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHNpZGViYXJQYW5lcyA9IFdlYkluc3Bl
Y3Rvci5wYW5lbCgiZWxlbWVudHMiKS5zaWRlYmFyUGFuZXM7Ci0gICAgICAgIC8vIHRoZSBzaWRl
YmFyIG9mIGludGVyZXN0IGlzIHByZXN1bWVkIHRvIGFsd2F5cyBiZSBsYXN0LgotICAgICAgICBy
ZXR1cm4gc2lkZWJhclBhbmVzW09iamVjdC5rZXlzKHNpZGViYXJQYW5lcykucG9wKCldOwotICAg
IH0KLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0UGFnZShuZXh0VGVzdCkK
LXsKLSAgICBmdW5jdGlvbiBvblNpZGViYXJDcmVhdGVkKHNpZGViYXIpCi0gICAgewotICAgICAg
ICBvdXRwdXQoIlNpZGViYXIgY3JlYXRlZCIpOwotICAgICAgICBkdW1wT2JqZWN0KHNpZGViYXIp
OwotICAgICAgICBmdW5jdGlvbiBvblNob3duKCkKLSAgICAgICAgewotICAgICAgICAgICAgc2lk
ZWJhci5vblNob3duLnJlbW92ZUxpc3RlbmVyKG9uU2hvd24pOwotICAgICAgICAgICAgbmV4dFRl
c3QoKTsKLSAgICAgICAgfQotICAgICAgICBzaWRlYmFyLm9uU2hvd24uYWRkTGlzdGVuZXIob25T
aG93bik7Ci0gICAgICAgIHZhciBiYXNlUGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2Uo
L1wvW14vXSokLywgIi8iKTsKLSAgICAgICAgc2lkZWJhci5zZXRQYWdlKGJhc2VQYXRoICsgImV4
dGVuc2lvbi1zaWRlYmFyLmh0bWwiKTsKLSAgICAgICAgZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxl
bWVudHMiLCBleHRlbnNpb25fZXhwYW5kU2lkZWJhcik7Ci0gICAgfQotICAgIHdlYkluc3BlY3Rv
ci5wYW5lbHMuZWxlbWVudHMuY3JlYXRlU2lkZWJhclBhbmUoIlRlc3QgU2lkZWJhciIsIG9uU2lk
ZWJhckNyZWF0ZWQpOwotfQotCi1mdW5jdGlvbiBleHRlbnNpb25fZHVtcFNpZGViYXJDb250ZW50
KG5leHRUZXN0KQotewotICAgIGV2YWx1YXRlT25Gcm9udGVuZCgiSW5zcGVjdG9yVGVzdC5kdW1w
U2lkZWJhckNvbnRlbnQocmVwbHkpOyIsIG5leHRUZXN0KTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5z
aW9uX2V4cGFuZFNpZGViYXIoY2FsbGJhY2spCi17Ci0gICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJ
bnNwZWN0b3JUZXN0LmV4cGFuZFNpZGViYXIocmVwbHkpOyIsIGNhbGxiYWNrKTsKLX0KLQotZnVu
Y3Rpb24gZXh0ZW5zaW9uX3Rlc3RTaWRlYmFyU2V0T2JqZWN0KG5leHRUZXN0KQotewotICAgIGZ1
bmN0aW9uIG9uU2lkZWJhckNyZWF0ZWQoc2lkZWJhcikKLSAgICB7Ci0gICAgICAgIG91dHB1dCgi
V2F0Y2ggc2lkZWJhciBjcmVhdGVkLCBjYWxsYmFjayBhcmd1bWVudHMgZHVtcCBmb2xsb3dzOiIp
OwotICAgICAgICBkdW1wT2JqZWN0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50
cykpOwotICAgICAgICBzaWRlYmFyLnNldE9iamVjdCh7Ci0gICAgICAgICAgICBmMDogIm9iamVj
dCIsCi0gICAgICAgICAgICBmMTogdW5kZWZpbmVkLAotICAgICAgICAgICAgZjI6IG51bGwsCi0g
ICAgICAgICAgICBmMzoge30sCi0gICAgICAgICAgICBmNDogW10sCi0gICAgICAgICAgICBmNTog
WyJhYSIsICJiYiIsICJjYyJdLAotICAgICAgICAgICAgZjY6IHsgZjYwOiA0MiwgZjYxOiAiZm9v
IiwgZjYyOiBbXSB9LAotICAgICAgICAgICAgZjc6IDQyCi0gICAgICAgIH0sIG51bGwsIGV4dGVu
c2lvbl9kdW1wU2lkZWJhckNvbnRlbnQuYmluZCh0aGlzLCBuZXh0VGVzdCkpOwotICAgIH0KLSAg
ICB3ZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmNyZWF0ZVNpZGViYXJQYW5lKCJXYXRjaCBU
ZXN0OiBPYmplY3QiLCBvblNpZGViYXJDcmVhdGVkKTsKLX0KLQotZnVuY3Rpb24gZXh0ZW5zaW9u
X3Rlc3RTaWRlYmFyU2V0RXhwcmVzc2lvbihuZXh0VGVzdCkKLXsKLSAgICBmdW5jdGlvbiBvblNp
ZGViYXJDcmVhdGVkKHNpZGViYXIpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBleHByZXNzaW9u
KCkKLSAgICAgICAgewotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS50ZXN0UHJvcGVydHkgPSAn
Zm9vJzsKLSAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgZjA6ICdleHByZXNz
aW9uJywKLSAgICAgICAgICAgICAgICBmMTogdW5kZWZpbmVkLAotICAgICAgICAgICAgICAgIGYy
OiBudWxsLAotICAgICAgICAgICAgICAgIGYzOiB7fSwKLSAgICAgICAgICAgICAgICBmNDogW10s
Ci0gICAgICAgICAgICAgICAgZjU6IFsiYWEiLCAiYmIiLCAiY2MiXSwKLSAgICAgICAgICAgICAg
ICBmNjogeyBmNjA6IDQyLCBmNjE6ICJmb28iLCBmNjI6IFtdIH0sCi0gICAgICAgICAgICAgICAg
Zjc6IDQyLAotICAgICAgICAgICAgICAgIGY4OiB3aW5kb3cubG9jYXRpb24sCi0gICAgICAgICAg
ICAgICAgZjk6IGRvY3VtZW50LmJvZHkuY2hpbGRyZW4sCi0gICAgICAgICAgICAgICAgZjEwOiBm
dW5jdGlvbigpIHt9LAotICAgICAgICAgICAgICAgIGYxMTogJDAudGVzdFByb3BlcnR5Ci0gICAg
ICAgICAgICB9OwotICAgICAgICB9Ci0gICAgICAgIC8vIERvIGFuIGV4dHJhIHJvdW5kLXRyaXAg
dG8gdGhlIGluc3BlY3RlZCBwYWdlIHRvIGFzc3VyZSBpbnNwZWN0KCkncyByb3VuZC10cmlwIHRv
Ci0gICAgICAgIC8vIGZyb250LWVuZCBpcyBjb21wbGV0ZSBhbmQgJDAgaXMgcHJvcGVybHkgdXBk
YXRlZCB3aXRoIGN1cnJlbnRseSBpbnNwZWN0ZWQgbm9kZS4KLSAgICAgICAgd2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFdpbmRvdy5ldmFsKCIiLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHNpZGVi
YXIuc2V0RXhwcmVzc2lvbigiKCIgKyBleHByZXNzaW9uLnRvU3RyaW5nKCkgKyAiKSgpOyIsICJ0
aXRsZSIsIGV4dGVuc2lvbl9kdW1wU2lkZWJhckNvbnRlbnQuYmluZCh0aGlzLCBuZXh0VGVzdCkp
OwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5l
dmFsKCJpbnNwZWN0KGRvY3VtZW50LmJvZHkpIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgIHdlYklu
c3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuY3JlYXRlU2lkZWJhclBhbmUoIldhdGNoIFRlc3Q6IEV4
cHJlc3Npb24iLCBvblNpZGViYXJDcmVhdGVkKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gZXh0
ZW5zaW9uX3Rlc3RTaWRlYmFyUGFnZVJlcGxhY2VkV2l0aE9iamVjdChuZXh0VGVzdCkKLXsKLSAg
ICAgdmFyIGJhc2VQYXRoID0gbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXC9bXi9dKiQvLCAi
LyIpOwotICAgICB2YXIgc2lkZWJhcjsKLQotICAgICBmdW5jdGlvbiBvblNpZGViYXJDcmVhdGVk
KGFTaWRlYmFyKQotICAgICB7Ci0gICAgICAgICBzaWRlYmFyID0gYVNpZGViYXI7Ci0gICAgICAg
ICBzaWRlYmFyLm9uU2hvd24uYWRkTGlzdGVuZXIob25TaG93bik7Ci0gICAgICAgICBzaWRlYmFy
LnNldFBhZ2UoYmFzZVBhdGggKyAiZXh0ZW5zaW9uLXNpZGViYXIuaHRtbCIpOwotICAgICAgICAg
ZXh0ZW5zaW9uX3Nob3dQYW5lbCgiZWxlbWVudHMiLCBleHRlbnNpb25fZXhwYW5kU2lkZWJhcik7
Ci0gICAgIH0KLSAgICAgdmFyIGRpZFNldE9iamVjdCA9IGZhbHNlOwotICAgICBmdW5jdGlvbiBv
blNob3duKGZyYW1lKQotICAgICB7Ci0gICAgICAgICBvdXRwdXQoIkdvdCBvblNob3duKCksIGZy
YW1lICIgKyAoZnJhbWUgPyAiZGVmaW5lZCIgOiAibm90IGRlZmluZWQiKSk7Ci0gICAgICAgICBp
ZiAoIWRpZFNldE9iamVjdCkgewotICAgICAgICAgICAgIGRpZFNldE9iamVjdCA9IHRydWU7Ci0g
ICAgICAgICAgICAgc2lkZWJhci5zZXRPYmplY3QoeyBmb286ICdiYXInIH0pOwotICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHNpZGViYXIub25TaG93bi5yZW1vdmVMaXN0ZW5lcihvblNo
b3duKTsKLSAgICAgICAgICAgIG5leHRUZXN0KCk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAgICAg
d2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5jcmVhdGVTaWRlYmFyUGFuZSgiU2lkZWJhciBU
ZXN0OiByZXBsYWNlIHBhZ2Ugd2l0aCBvYmplY3QiLCBvblNpZGViYXJDcmVhdGVkKTsKLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBz
aWRlYmFycyBpbiBXZWJJbnNwZWN0b3IgZXh0ZW5zaW9ucyBBUEk8L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9yZXNvdXJj
ZXMvYWJlLnBuZyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL3Jlc291cmNlcy9h
YmUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTMyNTM2NzM0YTkyNDY0YTNm
NjU4YzhhMmQyOTZkZDZlZmRhZTUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDEy
MjQyCnpjbVcrKzJSTjFnN3E8eW4tR3BSYispNzlpbEQpMUZMaVRvekJ4R21INHBEYTJsXnNIfGw1
eHEtYHFeWiE+P0U4Mgp6PjNANmhKVXk9V3pWRyooJnBJYnVUfXw7S0lUSlleOV5PVD9sQUk+fFJE
bXlSRzZNTHttM304MmVxMy09KHRDbDIKek17KClqN2R+RmZkaj5vX0hheFZQdzNmJkZYV3E4PCUq
JnFWLVJ1QVVgUzgxWXZTS35MSzczSHBRMGhweSlmVndnCnpSUGtEQyQpKT19aUp3dHtFRXkzNUAm
UTx6O3tzeEdBKnJBKj1nbnlLRTI/Skl3d0RXPnVYUi1Oez5ud2gmMmpPeQp6OGFhMD97QGg8KlhG
akt2e0lNMjBjX191WnBYNTJjVSpwQG08QHEhNW9BWTc+OChBRShqUTElK05NVGAwRUBLRWcKem5o
cXlHaVIlK20pais1WTl5fVFvaWs9cnplSlkkdmk0JFJfUVhSQ2JPeVRWa1BMMFo0YipyMGxzQiQm
UnZyV21oCnptRGRvN3pDJFVTVjVQMTdPIXo4SnB0aHVfQFJ5NjJYZihYQnUjaH5FRXJKNmxBZWBF
UnNXM3hVaG5LOHZ4WVo1Vwp6bUdPNCVpbmxwY1VrTGZuVVU7ViZRekpsV0c7JEh3PWJDMXZtdGUq
YWYmS1J9RjVkWm9pa0tIc3A9TztgamxrK0EKenY8NXZCUERNb292VDVDaipEUDRyQGVvcVlNcysk
PS1KeUozSXg/eyNqMXpGSHlTRFcoUEVPLXB1QzApMjFAREI3CnooRD1wfEVERWxePXpKbTJscHpG
KjNOaDt3ZFI4Jl5OJDNEUk9aNj5vREdmeGpxPUowdm0xSj90NVlLWHRNM29kUQp6Tn5zJURGfXJe
ZCk/UDg/Rmt2cSZPKFBLSVIoRmY2eHZeMklRdmFDe1EoPlZYcjNDe0NlZEBBamA+Un5ya05RUEoK
eiYzTykwUnxRK3ttMkc9NEdaTG9mN1ojY145RWtTd2g3bDJSNHN2cH4tNEY1SGN5eHMjRDdCb0lC
RGtyKDlxR2lgCnpGbHx5Z2F5PXJARXhycnhubFojbEVLUilrOSNmUThlTSNYQmhkPmkpejA0ZihV
VztWVV5rcSskVVR0a3s0TWc0NAp6cmdJSVAhKE5xfmdZTnkjdWtBIShEYERVMURtWVR3PEVSQihv
diZ6WGNXaXZUNSEte1lDYCZAM0A4Nz40RXtFOzYKejVsS180bm4+JWdecD9uQUJZVHJOPHVLd311
VHlsSmw5UDt9dDZiTTNBNVVIKjAmQTE8VTRZWDVINVBTcFMpTWtNCnpBZUxeM09OPn1fcDQwciQo
cVNQbVlDWkJJZyV0MF9NRDRCJiZ5Nzg9aUAwamYtS0NkWF80fF9OeU9KU2h1VylBUgp6JVpkdkJV
TGhlTkdpbX1aYnlITjVhdkYjb01tWmBFZGFYbihOLXgybkkwMT5LO1ojNXFnKjdCeS1VKnwqTGQq
SHsKeldiVHQqSEVIXkNhbCtCLVl4QVRHJCErdDh0XkI/X2ArbiM5P3ByQHlNVlFOVUthU2FCMWUx
R3VkTVlhYGB9X05DCnpnZ1NTPnZYTnp9cW5OMz4lSE1ZX1FzVGxDdlorRnx3UWdMRmxzNmlnYT03
PFNLSko0JDNQRE4yJldFfmxIZlBkSgp6NnlhWkhyZ0whUnJWTm8xI3p4eWlDJjl8KiR7fC1Ta3hg
JklQNXFGb2tGflk2bzEyQGhaTzhvMSFSYzlqe1I2IU8KeiFUYEtCcjxYNVo3OGFKMm1YNnB9eTQ1
YHA1JUQ8S28tSG1lWmYldjxPUTI+Sm5RXllzZEdoMyp1JnwzIWo2eWFSCnpeOz9gaiFrbX0+PmF9
YXY3I095Xz5VfHFuP3xkZEY+SX15M09RMHcrSnh3JiFHMDJmVFRIKW1WSV5fXjVDY1A8fgp6VDBH
X09HJHE3dT1UN3V8TUM7c0lYK3NIMHghIXBIKDNgbX03LXlFeiVoVG9UPyFHQFdsaTQ8WkorVWlY
anc0b1MKelZmWE9vUGgoeHZHRj5SdU1RMjc5P1N3QFNhZiFRaz9+MDNlMyNkcUI8a15tST9lQmBT
IzxXNEpxOVMlWSNGP1U7CnpuZSowYWRBczczVE5qO0lZbUpMX3ZXRUpJSVZqMkstSn5mIUJ3eHsj
JUR4d1FOMklnIUleNXk7XkN2fnhNa0FOeQp6WkgxVjBVQTQ3Q0xxZntPPn5GO1hfTnNzSTtLQXdY
PkQxS0prZSV5YDdjWlZhPVp7eGpiUVdkRWdNUlg/RzVsZEUKenNGd0c1V1kxREN4b2dxST1uN0Yy
cmViSnE0XnkkYT1oZ1E4YDtZZ2N5Qz1LN2s9UFp0SSM7Nyprc24rODc2Y0prCnpzcEY1MklhbTtu
Q2xtPWpiTnowXytrUX49PmppVkBQJCNDTTw+fmJaZihBeyNNQWlwaE5Ia3JXbGdIcXklaXE2JAp6
O2ptO3Ipc3xIMC0paGs8an1EZUdnT3xKZTImTXVgZkdtMDBeQitiez1we156azFIZVRjNldDeERr
YFE9SHtHZE8KeiM3Rkhhd154Kk5JTEhXTS1gdTQhckRmTVgmPkg/XnNEc3o8UC1UfGlsRXQyQlJp
WEZ3IWohX3Q9VCNGIz59RSNGCnpJUmtUWmJLflJWM2sjT0AjLVlxTjs+bms2dDB0flQqYTxObWRW
ZjwjdWBMS3Zhej0xU0cyO1pOTFMrJUhfUUkpMwp6JFh8TyRTK2IjMkVhRzhgX3RWcj0yTXpoSSVu
KzV5N0ZFMCZtVTdNciFvVF5rRVFDIUVKdXxlbzJhampXcH5eRnoKelhHZEtGRi1tRVF4OCgxNEdv
SmhwdjB4azF5bzM3MTB8cTYkSTR3akR6fX5LQk9qezdjc0VyVV5JTUt7KUVrcjx9CnpGN0tTNG9N
Pj9iSTwtMm5hKHY9V2Jmb3Z5UVkkP15gcEJ6U3VNJnlQN2dXZGNjQiRwUG9wRUpqc0cyWkJBPTtI
Pwp6NHxFWVRuQz9yYVp9Sih0PV9uTDZ3Q2JpeGhVezkrVzNsPHMoYX5QQEtrWGBpP1RJekJBVlAo
MmkoTWQ8Tn5gOTEKeitEZmpZc0tXY1VhVTReVCtgSWc/MUYxUn5oZVhGfDYlRWIhNT0pYlg7YCsh
ISVxQVZ+e1NIeWluY01MJiZHfiU2CnoxWWxYNm1mLVRfKSF0cThHbzIhMFFRMzhkbEVLeDx1YHhZ
ZS03cTxoSyg8Q2xSNzhZQWNEITxNcWZ2eyhZa0dJdwp6TFBuc2c0aDZTKTN2JWJjdUNsaFdhPiR8
VC0mdDtpYmZWKnM1Z2YwXj4/JHF3eGNpY3E1QTc8SXdhOFhaN3s4THQKem49ejBgUU9eSyo7N0x0
SlZlP2IoSndJRkVrQFduJSg2Tyt2dShGY2h5TD1OdHpVUCVETT1ga19JcU9nMG1aS15hCnpJKEVz
Q2hmSm5vPzNKPm1BWSlBMTt+VmlKKFlxZXYjWDMpKUtjfipCOUo4azxDKzZVdzMlamZPU1VZfVJx
KkBMZwp6WFBVcWdsVUctRns5bk9pbVk2biZEcj4+eVAtPDJfZXR5fDkrS2pCU2FeNzk+RSQ1bjxQ
Kz8oVi07O1MoY1gjKm0KemoqT0VJc0R3IWVfaitUVnFpe1hiZlhwSn5gJWdyU2VVSWlKZ3FSZiQt
RHVMMCRTNTdORlp1WktLZkFqR3N1eXVLCnpMUUdLI2d4T19TWWRYcGMmMzN9NjI+Rlh0Uks5Qmwo
X1J+dUJMbzVkZ1I3USRVa3YmRi1RYlYzYCZhbWx6azJSKwp6VFg1U3s+aH1teGhUXmk7eWI4MWV0
TVk4Y2wydkBTbkBENG88UGg/cXhFKy08KH5ITVlkdlVHME8/Yj92ZkhFSDkKejgqVyRtJlVXVjhN
b0xXLTg8RVlTa19hTXZvelNvV3lHbG9jJXI5PHI4fmV2RypZM001YnRlfVQ2cXBLeFo0PEFOCnps
TFZGTitJeEZASjMyYWdkIUlhTUlNT2NHMFd4ME84KCFOMz10UmZXKjQ5Rm9JMmFWYEBFY1pkRlFx
O1khSUBSeAp6VVBDc2xoK0t+X0ZCPkp8ZEsxalBoRj9gdlMtSDI8Iz4jKXxtU356OXZSZHZEJkF4
c3l7WmRUY197THZUZmZjd2sKenYjNmskbkFxTEJtIWxOU1BFNXU4RkZNYH4jbSgqP0h5ak8+cztS
MCpNTVc4WF8xR0RGQj5BalR6ZzxtQmAmUFUlCnpecXtzamdCa1oqYmx6WkBFK3V1UGBMKSskVig2
NHl5fTlXTiRpXnF5K0NYdFBNaldjUGUlOE8tYD13MXVrIX09Kwp6VCVtVU9aKlh2YSYrN3BUXn1F
Nk9vai1lZnVDQXsyZjUpRiU1e3BKIz07PFVaWThEe0toJHdNdkA1ITdPT0ctKnUKelBpOUVyQE97
cnVfeFgpI3dmR1c9clRjYDZod1BnQ3BIPyNVP21gJj5OT15tfFhNMUQpRTx2IzNhaFJRQ012RFA1
CnpJT3ZrSzk9KHVPdX0rPWVgUHR2VSFue1ByITBgYXw1IWx7azNMPTZzVTB3IUMxckZOOHVHWmJK
NkMwWj1FNmBtegp6bnJJckxeeVMlNU19diZzJn4zdG9XKyYkU09RfTcldyZSSzR7JXwhK085fjEp
QEJKRk9ANG5leUp+PVh5KnQ8Kl4KejtFelFpPGdaOGs5PCREbnsqOUNfYHwtQj8lPn5kI2FeY35+
b2RAYTVTcjZsbyYrUDR5YlFlVVB3aFBkWlFCcVN3CnojbEVjbj1eXzRlWHNGZmNKcldJUTkqMCFG
SStNI3hNVmRoVXJPPWtDVUFrcSFYU0I3dms0ZTFWa1NgS0BGI2ZiTwp6RG13YVg3bzxTXiVfcXRe
YmFFU3hCRVItKE9WKk5BbWl9JWAwQSl5SSNIalJzNjFifHY2dT9Da2JKcnFkNXhEd20KekpFa0k3
cmZKbkJjaEVMe2BQQkVrcktQM2dFbCp1dDlXNzUjbFBMOzhLb19XSnJsJktxcjt1JHtIRX4lVS0/
eT00CnpgKTtFVlBKbzYqVWdQdGFlWC02JThscTVLemBeUzdWUEYlUkdhfCV7P1VgTnpkayEzbiUr
bHYlTkJ4VngzdFdodgp6elA4MntmYnUlVV9wR1JePnZBJD1xc2lDMHBfVyUrVCpAbHBlR3ZifFNr
IXFUdFptK0AjJkV9aipfPncoUzNFMCYKensrV3ApWnlIM1Y7KlJXNkxNRipnV1RsK3pyaUBHNzlV
VlY0Ryl4T24jPGFhdjtXcUt2KDxUIzdSKn5AaFpSelZQCnpAd1AqVj43cUV8OWgxenhYWTR8TUd2
cSRNWWQxcDNxbXJmXnM2JWx8bVE5UHlfdVk3enFSTSUlaFJlfVZuPzhBRQp6Nit+eWdAbGlMekFI
NjE5b01eQCUtYjs4QG5uRlFRayh5T3Z2Y0RnbigxS3dwJkhibWVgR3FwVlgrbGNRIz13d30Keih8
TFliKVVOZDtGRlBCTnZ9NF9yPX1tP1o9Xzd1MDlCLUZmOWI2OUEtNDt2VXlwVCFFNSk7WnN4PDx+
RkFUJlpBCnpjY0NAcDxGdnIqWntOT007ISU0WTlzT2x1PEx2Q3J1MlNzSW9qVlU2VCNJWjROfEI8
WWQpUjR0V2NwV1U8JT92OAp6Xj5GO2gmPyQkdXMtUHllSU91QkEmO0lLT2RGZHd4azQlc20rO3FN
bnN1ZzBRTWZtfkcpNzB7Jjk3eGFxOHlnYzkKejZKdyR6dX12e0hIVT51RjxtQU5SYUlzMzNSI3Nk
WXlgMVdvKHFtX0lvaX0oeUVDKldKbillQ3skcSYzezhVcXxmCnpSMEp0JG54WWhCMlpoamFETHZm
aTdtbChrSCV3X3hpOWVwSnNCbTZzUXQzMG1WP3hKPy1NYDxQey1FeUxId2o1ZQp6enZVbGtHRmdw
SWxTUVQ5IyUrV1c1KSorayY4YShZSEJ0ey1TJXUqJGpkZHlZNXtpWmpiOFQ1LXRVV3dMNyRgWUQK
em5ofUp9IzRHMkYrM1ZiaFNJRitTN2Q5eFM0KyowcjQ1bzM4WlJJdV83a2h2cmJJQ0k8PD1qX3ZV
VSNkNWlAalh3CnolaERgeCpfbXNWJEApfVIyWSRkdVYqMi1RWFRmQUcxVGg7ZXskel5TVEo3MD9r
e0BQKkM7JC19JW90RD4wWTI5ZQp6PFpMZno3JmhFcTAlPmRBN196ST5ES2N4MHpfUGkkamxgb3la
UXQxP0JGcEw/YypFUDMmJn5FKW8rRWJwc0NmRjwKeiU4Skx5IUVLJHgtLX0lbjZCOXQrNmNpTW9L
WT05PzdvTURueD5jJmhtSFg/R3dhaHctcjJTQ0hFfn5HSDJPc05LCnpXNWBHMjI4RFplaz97XzVY
OGNMMEIoZnx+Qn1BfTRVT08pNzB+UkhiKFRrflFucWpPNjFXKlRzZXNwd3sodGBuSAp6Qm5nVVBj
YCFhUGFvX3UzYH1nblArdU0jcE9zeFpyNiNBPTBKflE4U2I8eFA8MnlGRyNyZF8zNyNoNlQxLX0q
VykKejU/NXw3bkIyWCpUVVpEKEEmOFYoNkc2PCo4Mz9BJlFSS317KGplJiZHWFZhdExnLXhmNjd3
PiRfeipQVnVyU2pfCnpyQUtpZVQqU2F4R0JpNVpvWGopQERhTm9rRig8MCFmeU4kOWk7dXNZVjNu
cTN0KkEpNEJFdzZNeEBeY3gmKz1SWQp6bFNDck1sVGNHJD90RmZCcz19U1U8fFVTPHUrU0xUQitG
TEc+M1V5Vitle3pOQ0p4RGQxLXZHNm48ejd0MkxpK3EKemtJWWc4SG9wKzZGdHZ4PFR2c0F2ZFVT
TVVieWR7c2s0P3B4M2luJDgoaCpsRk0xbUVWKHQyWVBlU0kpPEt3X2gxCno3UW03VGkheGRNU30j
b0VYcyVnWXIpaVhDJig1PjApaFV7KWY0VG9YPlQwc2Vfa1U3JEVGZDV0RH5tbSZjVnVrcgp6ZzdW
ZU1XdTJtNjU4WXhOQWRhcmBLMEQxbktyZ24rV3hEVUk3KEVDTlpfcEVHRzR4WHFDWihvIVZKaElo
amZ7PWMKekdjcmdPd2wrNSVEKW5hX0p6bD03KDx2JF9PekI7WVl7ZUU5SGxCalA/bGdLfV47U1Nm
PCFaUVNAOXY/dUZSMHJXCnpGRH11N0NnSmNscWpAOWwlWW1rJkd8PC1lVytifSlaZ0FHSXo1S20k
NG1+fFJpLWZvQ2pyaVFXSlRQTlFPe0gybAp6bmtZPGJ0bnxLZkxWdmlzeGdwVmtleE1Bb0NANT88
OD1ITDFmfEVhYWwyYm9faFJ+NytzYERsNENBOHwoI1BxfSsKens4ZHBgMnojdTNIKHZSZmc5RXt8
Wk9XR35VeHd8NHVoNyRIZXMtdzNQZVRTS0RMcC1YWFVGTFN8RipPR3heaGxqCno1MmdzTHl7QDY1
QShSdlFYUjVuJk5VV31Fd1c0MGFZYHZ3UExOck4zVEd0fUQqTkZ8UFU+Tnt0NzZ5aUQqUnxvYQp6
YHxnP1U1RFJHQ3o7fnRYZCZKaFo5NEdXbVR8WEM5WGs0MTglJSFjM0A4Vih2MT45OyppdyomTz1N
I3F2TkNoTXwKekgzMms4T2lhdVdfbmRSQ1N6MjFzKGF+fFBGJShOOThDaURgMTRreHR2TXA7IyRO
JWtNWmdpQlAmMXVOKXZkMS1JCnp7K0twR2wyX1AjZCpQekIrTDUpKEA7amdiZk5ANGpqMyQybXtP
ZVYocStfWSlBZV8zZ0VhaC1vUT4ma1MkS3R4KQp6VGVoVmc0PSpuLUA/ZT04QGlJcTJ1THdVd09w
dzJqaUpFWntnRSEtNXg5aGdQLVIkfXUlSWNmYzF2MjNzN1I3THsKekdqN09FOF9+TTRAaGskMT9P
eiFsKT1eWWM2a3ZGQCM8N35pTXBtcUlHcUowcXtDJFV8QT5ULXVNSHw/SyQ7dFBxCnoyPnluWGF3
UGdtaTZNUzNmaipebFlSaGJJe21ySCM5WiRPeTVfPHE/eVVLQytPRT07TlQoOFoxJDVlITRsezY2
SQp6TURgY250d1Q4cEZgY0dPQUV0cGUoWWdgTHcle1VtSikmXlBQRG5NVlRgbUYpKDJMcFRWM1lI
czV1UWlzLXBndDMKelAkbTc7R0pgSWw8dHBfWmV9SW4rVnF7e3tII1FFVElRZjM+OC1BUEBST1hv
ZFoqZi1nOzcwZFkjTDJEKmRRZDF8CnpAazBmMzghZCtUcCkpfFkzaXN8ejZKaCRZYlpec2JqJTdL
P1NHZHs2eXAtSVk/cndqQ2d4fWY4QG03TmdVbWA4Wgp6VURhSyRkY2VaYyhrPHh6Syg8VTlGMCRz
SClPKkN6UWc+TzlZfDhKMVE9ZUh8aHlEd2Y5dGE0JD5BfTQxdW1tYjQKekFfIUF5aUB4QD5ZR1Qm
JDtHeE5wV35JTFQkMW1nJVElc35qfEpJPmZOSmQwWStsaVAxcVg8d1lMbU1xMTF3bzktCnpfTSFL
b2NSR15VJEglQTF2flBMMGI+NjhPWWJtSCNJJiM3MCRNU0FEWnclTytuMyRrPWUpPnFZSmgrM1Bl
ajl7dQp6V2JQXjt7bn5KYDkwei1aYFNhKGN4d2ZrPU9uZDlQeXV5TmxiTmsybCNsI0BvMEJRISVk
UkczTWZoOVJ7cXZ6ZjwKemF4fXV5TU0/STtVJjcxZkBUI2tPKmIqajAtcFUoKy1SQWNIYWsjdHVD
fCFKUFhlaWo1PjlWV0hjWUVRO2FkZj9MCnoxN3NWV28jZCp9eChyOD9jOXByZ3t7JlZjMkFEen1e
eyM3P2tkKjRaeE0jVTg/fms0eV9RdkttZz1gSkkxa1R0bgp6Qj5GZ3xxdWd7TnkmVDsrNUgwNlNF
TWs/PHkyOThuNE9WfC1jJGpRSE01U31wZ0BZZVJyP0NqNmVHJjxFU2dTZEkKentVNlBHPE1XbTU3
O3N4KV5PUClvZUNpdC0mSlQ5eF5WSEpwc3dOSi1qY0pKVFJWdjFhZTVJNXtAN35vJEE+aTxOCnpj
ekNxNj5wZ2NkSWh4V05sOzd8Y0dJX2dEcFdiVEckSUhLTmBrU2BwdCQ2UCMyNjxXTHZ5P0Y5RDNu
SXY8d2hwZQp6S2BiaXBGQGFZSVFaRkhAWlR8ViE5VEcjVT8welkyM2w5JGxicnYoPVAoWnN5PU5l
TjFBaUV1SyRpWHR+NWEzTnUKelpAR3dSa1ArQH1JKlI7MEpaV3Jmb1M5KzYyPj03R3QqekNUej0y
OFpQcmd1a3N2JF5fb1MoWDNeSTw1NnF7aEJkCnpnVHF7alMpYTtgaWp0QzkrKFJIPElVcDU2M2Io
cD97bypoQnctVVJFX2NtOG9KczBEamRePWc+aHAzUjM5JClWMAp6Xzt+a0ZUeDFWcTVWJSl9RzZ3
Uz12NUdqKHRuX0NxJXs3KkMrT3klWHxCXipjZVVjI1F4K3dfKDBmRjFNb3pCbUUKej5aVSp5RllY
XlZ1fE5SaEM8NGFAYTVsMldXJVZkLWRpMUJxe0tkPnEqNXdqeFFrb0JDMlZReWZPLXd7KXh3eUky
CnpQQzB5NExlZzFTU2IkPUF4emw+KClZcT4tM3dTZXk1O2dCITE1Ujt4Y28rYTt8SiMwakxCYUtn
Pjg7JkVzWTVkJQp6Qk97fnlzPCQ2aTZCWiUpQChgeT1GSVB2Y3VkbG5meTgzSzlITXo+akQ5dCZ5
dz5CYnVvaVN3QXQqKmJzJSZQQyUKel52VGphYm9AbGhjJFVee2YzcVoyfDVvJGMyPWUtYXhrdzFI
Tj1tUnlSa2dNSEQxQD1eO29AQG9POXlqdmZ+U21CCnpwJihQcmJYJU9rYmU0S0EtVVBXYFNtXk5W
UzxqQ2oxaUNAQDI8ITx5PEwkPU84ZkV1YFVjWShzQ1VnYClNVGtiUgp6NGlNOSRONDxha2U0Z0hW
cVA7Z0NCWThIX2FCNSZRcUxKclZWK2ctdiF1YFZSWTd+aWRAaUU0KGc4ZEMxSWdYYkwKekUjcSEy
IWttbHgpdCE4WXd+TFJMN21qVF5fPT5Ua1NRX1kxSUJTcVNxKlRtT0dpdXkjU0dNckVWd0gyQzU8
IVJeCnpmNH0tMTl7YmRrayUpRjJvc3xDdnZTTCZ4TlNWI2UlfkhTOUg3S05qcSRxYEt6a15VZUc4
PU4wZjB7dVpeQF8mLQp6QCpsN0lfS2RLQmEoe2Z9RHxQTShgRjFrZ3h9MnErUFRZcnlzXl5oZDVw
aSpHUUJoRzVrKzlFNl5WTEhgTHh6MCYKeiVAcTdeU1krXnw8VGIjXjR2Jm1ucWYqUyM0QTZjbHA2
KCRZP0x8dk0jMzNge2B0aE1laEtaMzt6MVFCYXNIXnYrCnpjSGIkMyN3OWdUUE53fDZ3MWczMEBJ
RzhqakE1MUItMHw+VnJRTXp9K1EwYjU+eGVAYUtWYWgxcFpaVXtrQERrWAp6VzdweztlSCRke0Jr
XzRhMTIjMV54eiRDUDJiZUxLYFYmZDd0Z25DZEpDX2pxX0RNSDhJfiNRP2tRfmA3VzFQYHAKenNp
bSEmSCZ8M3UxY3JUamEqfjt1YEord3xEMkE+NUl6dkExSjJZZ09HIWhVfntgIyl+OSFWM1FsRCE0
KjJWbzFZCnpldyZLckR7P2V3I1B6cWdyNkx5fkshY18+azNlPVVJLW1ZZFk9QjVjeHtGR2tCOUxA
SjJUWiRCRXojRjZXbn0+Wgp6VlRPej87JnczeDFfc2N3bmd3N2o5alpWX3lqUWFwWENke0tpVk9j
clM7VVZYNyMtQ1dWT0J1d2MtMiRsR0g8X1gKenBebV8rJTxUSEBgQWZ3U0BpMVZWVVY/WmpiYDxZ
YjxlKVZna3YhU1BKKDR7QTFMeS1XREhlcllnNTw0WSUpVVVZCnpgMzlWRCM+b04/OTt6e0RgKno8
YjVJUWVDOzJRbXZFMlNuNEMyTH1LLTJoJnVybHV8fj87TDtlQnxiIzcweH1sQwp6bkxRQz1sRERK
c0BXMCtAXmNXTk9iejBYXystVU5TM0xSNGNrMTw7cSMwMDE3KXs9elU+fF9NRzthIVJSRik9WnIK
ekdGZ15ffEE2XzNTTDJDUGZ9X2FFdmZ0VHF4WkdVbip7QFA+MzA3WGxhcFImUGJ1NElrYy1xRkxS
U14zP1BCSzN+Cno1NE9nKmJpWHRIWDBQUEF4RHVoJXhsQzUobml3OyRHQUdQQXZ+QzE9bWd9PnM0
aiR2M01xVikkUT16cFhWVWM4QAp6R19MbkB3WTl5RnlhMGt7YkUqI0ZocFNRRm8xMj9LTCRqU0lX
Q3kmKjZKPH1TMjkqSzIxdC1UcjhgKDw2TyF6VHEKekVqPX5XTGVJXzdRR2g4NUxoem1jem8ybD5f
ZXs9UlEzeitUR3plbFhFSTdlbDEmflppWjw2cVl7enB3NChFaj52CnpJYD5CU2NZXmlpaW5zY2dh
Ukx3O3w1K1hVfEdOJTxUWWJgbzc8anwmYDFJYFgmQCUhbmFkdXo8OzVJIT9vZG5MSAp6ZXxrNjE/
PGpCVT4rVFFlRkpTUDdGSkp4KzgkNVMpYkpJantxM0tvI0s2X0pCUUFKPnJseWkqelBGKmRSX2N4
fj0KekJObHRsKV9aLW9fSSpxOUBeflBsa2pkKXIqRmVXZk1hcTJuQFU+VUJUflI0NjcpeXdiI2dN
MHRPJWhWU0l3UEQ2Cnoldn1aU15ARF47PkgzTVVxLUpxUE0rZit0bml8YFJ2Q2hUYyNSZ1N4dj57
TSk1dHt+WjRhR0g7dWUmIUs4JTU5aQp6cDZ6Q3dQZmVkMUolN0ZocCNsNkoyPz5kQCpEOUFaTypH
MmB1cDtWalVPN1lsKTVpdEZnTU9PPj97QmZPdzkrKDwKek5CRWA5TE1+a3hBYGZtbFYhaEBVY1FD
VGxSPkphXkpjMjI3S0FAQ0VtP2ZNUytRSD8talhSMm5PR3YwTzlya2dCCnopUHt8JEolSW5HO1Ej
NyledjlObFJXWHttLXhVYnY0Qztqa0NqZEEtZWZHRU5lMilMait8JT1yXj9aal9IakMhSAp6czA+
QWR0JjdYJnFOMURoayRlMDVgK3hwYVBkUilQZEVhMVclYmo7P05aUTtUQXdUeGhZd1pARFhnZWps
Q2Y9M2IKeis/X0ZPbGBzUlNkXiNlaEw2cGAlSDNlR2VRJDxENHUkc0lecFpMeHF6dSkxPjtWekhi
YDwyYmorI1draF5fQHVtCnpaYEVKRXhCO19Sdl8pRzlDV0V4MnltKm5BMEFJdmQxMkxRNjxfQDli
UmA/fko/YD5AJFV1TmBhU0l+PH5qT256eQp6cFRBUX5KVT80ezk9OHowUF8oZzFGLSY8KEZIZGBV
dDVAUWZ2WjB3SjdoKmk0NXpiZ0xVbHxROGNyR0MyYG0rX0sKemxqcGp+JSVLQWMzKU5JcVJNZ2Fy
WWg0Ty1kREhLXko2S3ZHUStxO1cqa1F0VTVjU0l4TmhlTHklPjFTakUyaXt1CnpeWlkmMWJHTntV
NHwhdCUhK0NRZHkySyUkJnlERU0tQG9aJXVEX3JjVTxSVTcjUHReS2cyKnFfPWNVS1ozVCFXYwp6
JGQkK2x5JGFaNyR8ZGI0clRwJl5HbG1AY29vfTU3T2FUcUhKb2YocXY0b1A+X3d8NmxZamlSUXN+
MGtrMjY+cVYKelZ3SmpxUSgtYiZyME5PSlFWay1ObWF1RExjc0BjKipIfkVfMDhpeUxZfE04S1ZI
NV4paUBUe2trTl5+RDM4P31LCnpDaTBzbzN7ckgqbjxhckZrbUktd2FvUiNWdC1NQV5YejBYLW4+
WSYkV0lVITxVMmE2Z0RJdmpYTlg8NGpuUj07UAp6YlQlSXVhOVFlKDhAMEVfVldONnRTI1hVejQ0
NmJSN3M2N1l6QSgoWVdjPEZxNldedDcjeT91aXlONU0zcUUhPTkKemdNKmpDPD0mdmEmcFc5T21Y
RUN1Mz1EdzVxe0pOelNBRHgyKn4lajZgKkY8KyR+US1JYm80e3ZGSlFSMEpkYUBKCnpBcmlmfHpL
KFImdyZhbX1EQmFTUno+VVBNUG5EXjhffXkhfEJTREBPTGlDc3BHbjFrSTd0UT9eQTx0ZzRCKGUj
Mwp6d2RaQSZ1KC1TMm4qcCNoU0BReUh6bSspZWBMQUVVUEVOaiN0b2lIPkohJHdgUyZEeFBxR3pF
MTBJQiVwISRjRWIKem1gNXgtaX5jRnU3TX0oZ0JjM0ZiJnJUOUopOEc5Snw2VEJMbTcyOSo5OWhU
KklrWSRSdnJVeld7cFFAO3JhQ00hCnpKUDdqWjVnY2dFP0VhTnN6dmV1Qkp3NWRodHI9JjNeMSNs
bHVDM3duZ2l+Kl4jUTZSMDtCbCl2b3BQVCg/UkBnQgp6eWI1QSFlVGpAbUlodEFPRH1iclNyU30q
cEFyVypgQDM3UHl7MCFtQTtHaz9fO3dNazdDYGc4R002VHBqKjBORiMKentjXlFRIUJwbiREfHcj
PDZudk1uYjtgblYofnY9N3o8ZG17MCRabHZha3spZld4eSolTHRaQmJQR0NNcCkqeEVWCno9elhO
M2E8WloqJDs4NkttKUs9UGpZaVN8ejNwI0pFOGV9WmZyWDFFeiZzWG0hUm5mdGE0TUdRY31SVUhz
Ynw8VAp6YE08RVVtNitTdGpfRzU+ciNoUFRaPko5bDdTRFpRcy01MkFOMDZoMmdQNWd7OzhePUkx
JSFwY3BwZ2VSQEFnVzkKekVDPDAwTkREQzQtbVdCPT57NFR4cXEofSZsbHNyJTlYJTdhMj5ETUI1
MEJkOC0hNEVaajUhPnQrVTlxKFpkNnVSCno+bFNGMG1eMSg9T0ctI2s7aVR5WkpGRTFJWVlxOFMy
T0hVJjxXfT9RSmZpWEBHSWlzJmBWeVhmU1NhMSZKWWwoWAp6Sm1QbWM7diF9UXhCVCpAdzFSMkNI
TEE5b3JDJGZlI3R2OFdHOVpwVitZWGhLSkN+JWxeNkAhczNMLXJ9WmFCWGcKekYqaChraGotRVJs
MXJYdWZqNjheXiReNmNxJERKTClsMil3RmNgSmNnT3BVRCU/VEM3aFduaGRjPCRMUilUNGp0Cnoo
JUspVGxNbENnQ2JtbzU+VV54TWhAWnR+c2dyZlJQV3VGUVYqdmo2KTVgSWRtUkcwPDcheUsqMG5p
OCROPzFNMgp6Oz1ybmp5OyEwb3NEfXxLITMqWHAkUUl4c1JhR3RUY3tRQnZtRypYYk9TIT00eVFe
aGpBUHp6aUlTdn5eTGVAaWgKejs/SHd+S0Zjeks3RGF+fG4yRlhxb3lCV255ZXUwbXJtfj5ZVCNU
bTIkQTFCSyg/XzE0UE09PjNtIXJndWoqcDlaCnpZfG1Je18+Zz1Jb3RxNkhCbl5gKzhkPWw1dDE9
SSQ2VUs7ZyZGcTg/Zlp3Xk0wdFlgfFppJU0tNyVfZlhUdjJnSgp6P3EkJnNobColJnYzNXZIUTI3
Vk5ATiM/Q3RufXpGM250ciQkQiFSM2ZSfldnUiEzO19DQ1g7MCpCSmhzbmdYaT4KemZofUEtQ0FZ
WT13NSF8QFBRYzVIQVY4fCNfKSpeQXNCUEd2NyVXUFF8MypDSUxmd25icG5GRTJGRkFfOVAqOWxL
CnpnN2hhZWNkNzUqTz5KIXg7TTBjYm4zS15QdlVBc3Bhaz1kWTdYKXZ2dD97ZVR5YHQmZTErJGl0
bG14ZEZrWlQoKgp6TjEpIWN3JiE0UDU1aEFnX2VJVjctZW42dDtXUlpeZiV4aG16fGVBcndDQlRU
P3tsY3FhMyZJZnRPa3J3NkVpfnkKent1c29FTUFFdT9kZVNXXj5GSjt4MUtCfE5UYzFRWll9UnFT
e2R+SClieW5pPVcjbzIzXiEwTSRXe2t0UCk/S2lzCnpWJEU9PzF6UCRoQ1dgbVBRKylsV1cqT0dx
VVBAJDstVX1HRXV6d3xFZHJ8NDQ4cj5xM0lERFhXUCNRciZGZTlRZwp6cUdFNnRPI2JTIThpeiZZ
WGtMJDNYMjBZam1pRWF5Pjw9VG00PEd0flZjPHlHbntxWGRHZVRKZCE0JXFgP3RaWHMKenJrN0F2
UlJ6aDhTXmRtXjQ3K2RlaUpaKHdoWl8qYHZyNzBsYHwhcmtGeFA7cFB7ezY2aDt1WlpsYDBDdktT
fWdFCnpPZ3ViMWdsQVg7NEVWfjRwZGowYlAmIUAzbnpod3tYUDEpOW83LU9JMSZ6YF9pSTg5Zykz
V04lcEZmd0NOJFUtfgp6UCNzaCtsS1c0KHNyTUktPH18Wk5EZlIoTloofTIjVFozNGRUNmYwbk40
R3tOQ1cxfk0jKGg5X1pmXjEhPyMjYFoKemB9dioySlAjVklLTCFMTTNgKG1IZUtJa3NDRT1KJGFu
Wj0wTXA8PkV8OSpqdlFkRGUlWTVxU2t6UHJAWmFHMlVxCnpwaUAtTm57N3NHclBETHtxU3pvc3Mp
SiQkN0RiZjQmQUo5U0hAMEFaRGgmIz9JZWBKJWo7KypKcjZGMXVzcjVaUQp6MCYxQXNJcTIpX2da
aFIxMGJXcTxGenVNZCE8KkE5IVVkbGJ7bExyUmt8eT9MYi0rOTNmKkB7VTxMe3cmclU5KFcKejtB
VDx1a3YqNzhzYXFGNVRKIXBGWjc8eyNHJGxFTzVGOW1IVj15dlZaX0x+PFoqRXpHeWFuVzBiLUBU
UytHaW55CnpDViYxXkwoKFBrOEFacihLKCN+dTA9NnUmKWZ7I2k+ZjFqJGpBZGhAWm9TSntaU19i
SXl4bT1SY1JeVEVeMUxHQgp6XnJJbWtJMExtdWs2PGNFdl9kcEg4PGBATHs5cUZYblo8NTRpdHBk
UUtSTWZQVjJ4fUk4eWRBMmV1by1kNj1Fe2YKenBzPVokdSg1KXtpdyY5TDJrPHFBLWUtVWtmb3Yq
fDkpWk1FUSZhbzl6aDhtT0RnT35yeylXdl92TCk7eTRzWVV1CnpmI1Q1V1Rxe0kzZ0lvSzY3TGJP
NnBGaitKYEVLMEZZWntjd1VaO2RfZzI3O1pgV3xscGF8VXR7QFooZWI9aiE5Kwp6TUMtfXVZdHhm
blJ6dmNZQDxiSzVMNU5CNntJSXR2Ulc0aU9kKnxTKyUma3s2Oz1fOzdkTCp4SGF4YG1QUnRGU1cK
emVUYW13eShHITllPmNZYVQpdHNKUGU+SihCWDl5VXVIVjBaS2J4VUduKm1sJE8tPTElbzYqI0Bo
ZDIyZzNrJEcpCnojSmk0UHBtT1A0P2xtaEpUNj9IMWhTajliP09EZTRQflNAaE9pUyQ3a1FqWWlt
WUlOQG9FJEpDQ2Z+ZG5IT2h3VQp6cUdEcFFKKSh+IT0pP1poYHlVNGxhTSUrTztPaXdFQTBNQnUj
R0l8SGs1JWs+VTg3fFUtfnAzJk9GQ2lrPX0zdE4KekF+PVBWc1JTQy1rWnBffnZ2P2k5JWIpYV9A
V2ghZno5bjR9XjdAQ15BSWQ2OFcoPVNvZ0tEQVpZaW9+SWBaP0Y8CnpMa3ZpaHE3fH5pJCQrRFcm
U2ErQStTbVlEcSVNSnlzaFc2fSppe0tWU1cmUyVgSihwfXhZQkRqXyk2aFdWUFQ8Zgp6THhYLVh3
OG81dD5mbmoqY2AoSjV6Nlc5UWlrcyQxRkIjREVHTn5JRTlxbnpOajlUQnB2dHFtTGYldGZEPjl1
S2EKelNgZHVWZWV+Yzs0PEEwUEYpWm5+WD42VShNS3klcld9a2J7VW9GO0lZWXpUNT1tMU0zQDJZ
fV9wS0hrMXVzM1dWCnotc2B1VUl4USFQY2RIeUdDcFRxbXlKc0NDOGpGIVFCNkRPO2VfZF4zIStZ
VShPRDdyWXZGSUZyUC05QTdeX3ZDUgp6ZCViRHx0NFRebzBRaTVyXjZBcj91MHszRTs4TT1DMkxl
NmBSKFpMKDFPYSZZUTgwMik7P0MmSmVrVW1gezE7TS0KejI/IXJkNzVidT1fbTY9eFZZIUJsaFYz
ZX5aT1lrOTVPdHJNLUpPWiR5U3RmMEA5dVN3QW19RUZgX2wjV3NEPzJ0CnpTVzh0Mm4mXmkpbiE+
NV88O1VCenhaPmhscmxAP09lbihWUjR+N3NgSSVFZmR8SGpzcTxjcDxsYTQ5OCpITldCVQp6WWlr
M0B7RUtfc3Ird1U9byN9anVydnlkKmAoUnZ9SnhKZ1YoRms8RlI+UWUoZmZtUGhGcXl3VT5HKzU3
Xm5RYjwKeit0IVItVn5vNkExbTBMZmU4Yng2Pmd3YHhmfV5CS0dBaC0oP2lPV0IjJXVAflFefVEy
X2gwXjloampFMUQyPENRCnplOUw/SktHKn1PXiZITGMrWWZYOHpzQEpHKGZBYk4pelhuamtjYCZX
X3dMPWglX3c0YlY2QSUlfExTTTEqMVlhMAp6JDQ5UXt4RkBnMno2STVmIXFTWWNreF5QfERsUCUj
VilJKShDVztWPXJTVGBSa0Z3Nj4hYypPV2MyIWU1VFFvVzIKenN3R3EzMzMqRiZCJil8JTZsOF8l
e2BIYGk9N0tucUh0Zj9wUTVucXYrTGB2ZCVyKGhNRy02cmYhe0RrNF9sd2diCnpTYnU/Kz5ubTVw
ZlY1P25VekYpaClOM3t9MiUpRyMzOEBJTFZUPzwhcShqZ2hZdEVmeVc5cmpRLWNLPGVmUyVqPgp6
XlhDdDJpQlRacEl+Y1g5WkZXfn4xPlE1ZUZQRClPcn5XYl8zQ3I4SD5mIX02NjkpJGUkbFdYfjI9
YEBiTmJWbioKenRzdnhLcl5AQTRlaiQwZ09sbXhfVUlJKXMmU3FLOVgySVJ5bUM0Rz0/cyRBdk5B
ZEZXZ1Z1c29Hd2BGYXY5YW8/Cnp8M0MhMFk0bDlLWnJuWkRuNWF0YVMoP1IjIWZKIVJOV2ZzNWtn
QlkzV1lrKndyT2YpVV9oZDJabWorSkI7eFFVOwp6XiRpUk55WDRkKypASjF+V0xLNmpjTWc3Zilr
aD1uTnFjeTItR2JjJHRCTnRudncyQmhwITRhaVVRMG8kJj4rVlIKei1BRVUpKCste3QxYkh5KkZa
VEM0TENDKGtZTWMyPmlwPiMqa28hTWhLOEhDb2VQcSpCWGUxU0dUeW0mYG5aT0tiCnp8RkVJfjZ+
VFA+dikzVXR2Kz1wTV5iPSFPdTNYdWdaZkdia2hzbGlnRjBXfFp1P0R2ISRRQD9OJkZCUW49PXJi
NAp6VGxjclYtbm80eyVYYSthPFljUE85VXN9KEN5KGdIWSUpcGpVRVRPdjx1Ryo9YkFDWExLJVYr
YWlXd2wkb3RBPVcKelg9eWN2UkE9WnJrOV5wNUl8V2o9WCFOeVRSTlZkPHg7NDZBQC1MQVo5Wmt4
fWZMdXpCdVVHSEtKR1NUfkhlSXxZCno7dW15ZHU9eXtSZjFKKmNPMEtNfEsjJk5AN3pyKik0JlJG
TWhqPDVkMEVAPihXbnpaY210aE1zVVlZb0VkUnAydwp6NTJNZCF4THkzSzlDRVQ5SX0kcWgqeGE2
cVlpSmlzJCtMcmJMJXpmZyVSWSZvQiVYWWw7ZX0pYl5iUmdEdnhkOyoKel8jZWxSMmdBSCtraW5h
UVBPVllAXlFnc0pVSyh5SW1peXwoST5nZmN6ZCF9JllGLWE5Z0dCe2hSdDkjdjgqKjdSCnpXZ0Aj
dXZYZUEjVE17bCV6SUhKeGdObTIzWX0yNm1rWHcrUHM8X1MxeyFaeURPajFfWnpOPXx4SGJBe1gw
eThMZAp6RiUldTAqIWIpTWJ6bEg/Z2dHPzNrP2xAJF9yRD0yQk5AQG1fVyVySSNlPig1NHBJdj0q
UygzWlYrVnd5dTR4PlAKeiM7PnFRJU5fYFNCRDFuSjxRTmw2YyNHKGJXKT55cmUqamFuakktNFlp
TmwzVSVvLXN+Y2Y3Zik2JWNOaldSXzJiCnpkdmBAQlY2a0wyXlZXTzhvSGE0d0BCdHhKJTJZVz9J
LWRUYnRkeTZ0P1hqdHJ2UD9KdWRqU1R5SzJFeTlwMnZrQAp6Q1JWKWhtXlpAXypmKkJUdSZxU1g5
Xi1kMT97ezN+X29CdjdmVytseVZFNj0mZSlwakUmRz9Ba1dmKFdaO3U5N3sKenVuKV4wR0ZkWV85
JmR1cHM3Ym1SWHZuRmlKeU9uY2QjRW0/ZFR3KUxxSnZFUy1ZZzJFNCstWX51amlNejFPNT10CnpB
N21LR3dpWHN1WWdvZG04MTJaTSp0SDBkO3pTNEQ4RD8kXlFBcVNCYmNAZjc/SkhLQUZEczhqQXJv
O1NBXyRQPAp6ZmNDO2FCZ3RZJmJGYVM0I3Yrdzd2ZXhQO3JZa1lZVHZCUHNYQ1lmc1NhfCNuOEtD
cUlFcmlkZ1hfN3lTJnQqWVcKelRhdng7JTFUZCpoe208N3RZZGtYLThrRG1xQV9hMi1TTCNTMyVk
YUV7QUtjQmZndT04UGZ0VlQofiQ/JF51Ynp5CnpILUQkVkNsd2Q3KjtrQiRHeTI2a2UyS0ZxdWBL
dXpXZ217O211PiRGJHpnbHc2Nz1PPSlFbzV0d3cmWF9zSiNNOAp6QSM8fDZ6RnI5I2MpQWZiazly
a0FCano7TTAjLV47UjVaSzs/OyU3N2k7SWlYVV5OdTROZDhzMHZ0JC05eWVPPkYKeklVI1ZydjtE
cCRYUGQtaThQeWF5cDMrcEBCeDNxQGNSNil1RFhjOzt4NHwxQlZvfWpSa2JUZkVQVXh9e2Rmemt4
CnorY1VuV1liS0lUYjQyPCZzOWhIZzIyc0sxPEtuS0xINDk5MFdfKVIwa3VoWlFoVDU0MjYmRHU1
bEN5UEQ9MGllTgp6K2V8ZVZCa1BXakFNeDwwcUVzZTRqPG1HbjQjKXl3U2JfSDxSSkw9YFM+empJ
KDYpem9sKV5qK2h2eUJhZjRqUlcKenxMJHZJezBOYjwmM0xBRXV6JSNYIVF7PV48Xjx3eikpRC1G
aT4hJEN4SCFZKkVWOFA9V20xTzVgO0ljZ3NUO2R6CnpHKDdgQDFUTi1MO19xc25NfTlpWnY7PUVJ
UXxeMCFWfSVEekVwZFI/cVlUPjZmc0d7d3R9QFpFYkcwR01tUHdleQp6ZzhIZmsyaDRCKHNFZm17
JChYJGBRPFMrMEQzT21mc3ppUzFGX09PdT5RXmp1aVViflgyZmtDIyYxYmNgS0JlY0gKejxkcVdN
JTRmKWM3R1F3PWdiPWZCYWxmTkt0Rlo5XytIbVhxWSU5fGVxVmRnNTI/I1NGK187RHY5VUUoc2M4
dExLCno2Rz1VTUo+e1NuU0ZxLWwtNDkjM1gwUi1QMHdGeGc4UT5CbGUxWWtlamlwajszRT5Tazhk
TFcxNFl3P0gwaFBfPQphYjMoNChfWnNhK0QpKFZZOX1nfEJDUlpZMzh1JmpsI183TlMKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9yZXNvdXJjZXMvYXVkaXRz
LXN0eWxlMS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9yZXNvdXJjZXMv
YXVkaXRzLXN0eWxlMS5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3MTEyYWQy
NWQxNjVlM2ZmMjVmZGVmZDAxNDg1NDZiZWNiZjNhMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
cmVzb3VyY2VzL2F1ZGl0cy1zdHlsZTEuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci0uc29tZS1zdHlsZSB7Ci0gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKLX0KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9yZXNvdXJjZXMvdGVzdC1zY3JpcHQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9yZXNvdXJjZXMvdGVzdC1zY3JpcHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDhkOTlkN2ZiNjI4N2JiZGY5NjZmNzA5ODgzMWVmODI0Y2I1NjU5MzUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2V4dGVuc2lvbnMvcmVzb3VyY2VzL3Rlc3Qtc2NyaXB0LmpzCisrKyAvZGV2L251bGwK
QEAgLTEsNCArMCwwIEBACi1mdW5jdGlvbiBfX3Rlc3RfZnVuY3Rpb24oKQotewotfQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1tYXBwaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDU0ZjI1MWM4ZWFiY2UwNGI1MjNiNmVlMjAyZjZjODIx
ZGVhYjdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdHMgRmlsZU1hcHBpbmcKLQotVGVzdCBtYXBwaW5nRW50
cnlGb3JVUkwKLSAgICBodHRwOi8vd3d3LmV4YW1wbGUuY29tIC0+IG51bGwKLSAgICBodHRwOi8v
d3d3LmV4YW1wbGUuY29tLyAtPiAvaG9tZS9leGFtcGxlLmNvbS8KLSAgICBodHRwOi8vbG9jYWxo
b3N0L2luZGV4Lmh0bWwgLT4gL3Zhci93d3cvCi0gICAgaHR0cDovL2xvY2FsaG9zdC9mb28vaW5k
ZXguaHRtbCAtPiAvdmFyL3d3dy8KLSAgICBodHRwczovL2xvY2FsaG9zdCAtPiBudWxsCi0gICAg
aHR0cDovL2V4YW1wbGUuY29tIC0+IG51bGwKLVRlc3QgbWFwcGluZ0VudHJ5Rm9yUGF0aAotICAg
IC9ob21lL2V4YW1wbGUuY29tIC0+IG51bGwKLSAgICAvaG9tZS9leGFtcGxlLmNvbS8gLT4gaHR0
cDovL3d3dy5leGFtcGxlLmNvbS8KLSAgICAvdmFyL3d3dy9pbmRleC5odG1sIC0+IGh0dHA6Ly9s
b2NhbGhvc3QvCi0gICAgL3Zhci93d3cvZm9vL2luZGV4Lmh0bWwgLT4gaHR0cDovL2xvY2FsaG9z
dC8KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyZDQwN2JhZGRmYTViMzU3ZmM0YjNlMzEwNzUzYTc2MmM5MzBjN2Qw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIC8vIEF0IGZpcnN0IGZpbGwgZmlsZSBtYXBwaW5nIHdpdGggZW50cmllcy4KLSAg
ICB2YXIgZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKCk7Ci0gICAg
dmFyIG1hcHBpbmdFbnRyaWVzID0gW107Ci0gICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2Vi
SW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vbG9jYWxob3N0LyIsICIvdmFyL3d3
dy8iKSk7Ci0gICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBw
aW5nLkVudHJ5KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIsICIvaG9tZS9leGFtcGxlLmNvbS8i
KSk7Ci0gICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
LkVudHJ5KCJodHRwOi8vd3d3LmZvby5jb20vIiwgIi9iYXIvIikpOwotICAgIGZpbGVNYXBwaW5n
LnNldE1hcHBpbmdFbnRyaWVzKG1hcHBpbmdFbnRyaWVzKTsKLQotICAgIC8vIFRoZW4gY3JlYXRl
IGFub3RoZXIgZmlsZSBtYXBwaW5nIHRvIG1ha2Ugc3VyZSBpdCBpcyBjb3JyZWN0bHkgcmVzdG9y
ZWQgZnJvbSB0aGUgc2V0dGluZ3MuCi0gICAgZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9y
LkZpbGVNYXBwaW5nKCk7Ci0KLSAgICBmdW5jdGlvbiB0ZXN0UGF0aFByZWZpeEZvclVSTCh1cmwp
Ci0gICAgewotICAgICAgICB2YXIgZW50cnkgPSBmaWxlTWFwcGluZy5tYXBwaW5nRW50cnlGb3JV
UkwodXJsKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgdXJsICsg
IiAtPiAiICsgKGVudHJ5ID8gZW50cnkucGF0aFByZWZpeCA6IG51bGwpKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiB0ZXN0VVJMUHJlZml4Rm9yUGF0aChwYXRoKQotICAgIHsKLSAgICAgICAgdmFy
IGVudHJ5ID0gZmlsZU1hcHBpbmcubWFwcGluZ0VudHJ5Rm9yUGF0aChwYXRoKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgcGF0aCArICIgLT4gIiArIChlbnRyeSA/
IGVudHJ5LnVybFByZWZpeCA6IG51bGwpKTsKLSAgICB9Ci0KLSAgICAvLyBOb3cgdGVzdCBhbGwg
RmlsZU1hcHBpbmcgbWV0aG9kcy4KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCBt
YXBwaW5nRW50cnlGb3JVUkwiKTsKLSAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgiaHR0cDovL3d3
dy5leGFtcGxlLmNvbSIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tLyIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJodHRwOi8vbG9jYWxob3N0
L2luZGV4Lmh0bWwiKTsKLSAgICB0ZXN0UGF0aFByZWZpeEZvclVSTCgiaHR0cDovL2xvY2FsaG9z
dC9mb28vaW5kZXguaHRtbCIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJodHRwczovL2xv
Y2FsaG9zdCIpOwotICAgIHRlc3RQYXRoUHJlZml4Rm9yVVJMKCJodHRwOi8vZXhhbXBsZS5jb20i
KTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IG1hcHBpbmdFbnRyeUZvclBh
dGgiKTsKLSAgICB0ZXN0VVJMUHJlZml4Rm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5jb20iKTsKLSAg
ICB0ZXN0VVJMUHJlZml4Rm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5jb20vIik7Ci0gICAgdGVzdFVS
TFByZWZpeEZvclBhdGgoIi92YXIvd3d3L2luZGV4Lmh0bWwiKTsKLSAgICB0ZXN0VVJMUHJlZml4
Rm9yUGF0aCgiL3Zhci93d3cvZm9vL2luZGV4Lmh0bWwiKTsKLQotICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPlRlc3RzIEZpbGVNYXBwaW5nPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLW1hcHBpbmctZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTYxZGI3NDU3NmY3NGEyZDY3
NzU0ZWIwMGUxMDBkZDk1NGE5OTRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLVRlc3RzIEZpbGVTeXN0
ZW1NYXBwaW5nCi0KLVRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KLSAgICBmaWxlIHN5c3Rl
bSBwYXRoczoKLSAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKLQotQWRkaW5nIGZpbGUgc3lz
dGVtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbwotVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBw
aW5nLgotICAgIGZpbGUgc3lzdGVtIHBhdGhzOgotICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2ZvbwotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgotICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCi0gICAgICAg
IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9m
b28KLQotQWRkaW5nIGZpbGUgc3lzdGVtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgotVGVz
dGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgotICAgIGZpbGUgc3lzdGVtIHBhdGhzOgotICAgICAt
IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbwotICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2JhcgotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgotICAgICAgICAvaG9tZS91c2Vy
bmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCi0gICAgICAg
IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9i
YXIKLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2ZvbwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hv
bWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyCi0KLUFkZGluZyBmaWxlIHN5c3RlbSAvd3d3L3NpdGUx
Ci1UZXN0aW5nIGZpbGUgc3lzdGVtIG1hcHBpbmcuCi0gICAgZmlsZSBzeXN0ZW0gcGF0aHM6Ci0g
ICAgIC0gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vCi0gICAgIC0gL2hvbWUvdXNlcm5hbWUv
cHJvamVjdHMvYmFyCi0gICAgIC0gL3d3dy9zaXRlMQotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJl
Zml4OgotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5h
bWUvcHJvamVjdHMvZm9vCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAv
aG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKLSAgICAgICAgL3d3dy9zaXRlMSA9PiAvd3d3L3Np
dGUxCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFt
ZS9wcm9qZWN0cy9mb28KLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9o
b21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgotICAgICAgICAvd3d3L3NpdGUxID0+IC93d3cvc2l0
ZTEKLQotQ3JlYXRpbmcgYW5vdGhlciBmaWxlIHN5c3RlbSBtYXBwaW5nLgotVGVzdGluZyBmaWxl
IHN5c3RlbSBtYXBwaW5nLgotICAgIGZpbGUgc3lzdGVtIHBhdGhzOgotICAgICAtIC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2ZvbwotICAgICAtIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Jhcgot
ICAgICAtIC93d3cvc2l0ZTEKLSAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKLSAgICAgICAg
L2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Zv
bwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hvbWUvdXNlcm5hbWUv
cHJvamVjdHMvYmFyCi0gICAgICAgIC93d3cvc2l0ZTEgPT4gL3d3dy9zaXRlMQotICAgICAgICAv
aG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28gPT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9v
Ci0gICAgICAgIC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhciA9PiAvaG9tZS91c2VybmFtZS9w
cm9qZWN0cy9iYXIKLSAgICAgICAgL3d3dy9zaXRlMSA9PiAvd3d3L3NpdGUxCi0KLVJlbW92aW5n
IGZpbGUgc3lzdGVtIC93d3cvc2l0ZTEKLVRlc3RpbmcgZmlsZSBzeXN0ZW0gbWFwcGluZy4KLSAg
ICBmaWxlIHN5c3RlbSBwYXRoczoKLSAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28K
LSAgICAgLSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKLSAgICBmaWxlU3lzdGVtUGF0aEZv
clByZWZpeDoKLSAgICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvZm9vID0+IC9ob21lL3Vz
ZXJuYW1lL3Byb2plY3RzL2ZvbwotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIg
PT4gL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyCi0gICAgICAgIC9ob21lL3VzZXJuYW1lL3By
b2plY3RzL2ZvbyA9PiAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KLSAgICAgICAgL2hvbWUv
dXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2JhcgotCi1S
ZW1vdmluZyBmaWxlIHN5c3RlbSAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9mb28KLVRlc3Rpbmcg
ZmlsZSBzeXN0ZW0gbWFwcGluZy4KLSAgICBmaWxlIHN5c3RlbSBwYXRoczoKLSAgICAgLSAvaG9t
ZS91c2VybmFtZS9wcm9qZWN0cy9iYXIKLSAgICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoKLSAg
ICAgICAgL2hvbWUvdXNlcm5hbWUvcHJvamVjdHMvYmFyID0+IC9ob21lL3VzZXJuYW1lL3Byb2pl
Y3RzL2JhcgotICAgICAgICAvaG9tZS91c2VybmFtZS9wcm9qZWN0cy9iYXIgPT4gL2hvbWUvdXNl
cm5hbWUvcHJvamVjdHMvYmFyCi0KLVJlbW92aW5nIGZpbGUgc3lzdGVtIC9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2JhcgotVGVzdGluZyBmaWxlIHN5c3RlbSBtYXBwaW5nLgotICAgIGZpbGUgc3lz
dGVtIHBhdGhzOgotICAgIGZpbGVTeXN0ZW1QYXRoRm9yUHJlZml4OgotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tbWFwcGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjY2IxYWU5YzJiYzk0NDdmNTg0ZWFhNGUxMjE5MDI5OWY1MjE1OTQyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9maWxlLXN5c3RlbS1tYXBwaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4
MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICB2YXIgcGF0aHMgPSB7Ci0gICAgICAgIEZPTzogIi9ob21lL3VzZXJuYW1l
L3Byb2plY3RzL2ZvbyIsCi0gICAgICAgIEJBUjogIi9ob21lL3VzZXJuYW1lL3Byb2plY3RzL2Jh
ciIsCi0gICAgICAgIFNJVEUxOiAiL3d3dy9zaXRlMSIKLSAgICB9OwotCi0gICAgZnVuY3Rpb24g
YWRkRmlsZVN5c3RlbShmaWxlU3lzdGVtTWFwcGluZywgcGF0aCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlsZSBzeXN0ZW0gIiArIHBhdGgpOwotICAg
ICAgICBmaWxlU3lzdGVtTWFwcGluZy5hZGRGaWxlU3lzdGVtTWFwcGluZyhwYXRoKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiByZW1vdmVGaWxlU3lzdGVtKGZpbGVTeXN0ZW1NYXBwaW5nLCBwYXRo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlbW92aW5nIGZpbGUg
c3lzdGVtICIgKyBwYXRoKTsKLSAgICAgICAgZmlsZVN5c3RlbU1hcHBpbmcucmVtb3ZlRmlsZVN5
c3RlbU1hcHBpbmcocGF0aCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY2hlY2tBbmREdW1wRmls
ZVN5c3RlbU1hcHBpbmcoZmlsZVN5c3RlbU1hcHBpbmcpCi0gICAgewotICAgICAgICB2YXIgZmls
ZVN5c3RlbVBhdGhzID0gZmlsZVN5c3RlbU1hcHBpbmcuZmlsZVN5c3RlbVBhdGhzKCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIGZpbGUgc3lzdGVtIG1hcHBpbmcu
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgZmlsZSBzeXN0ZW0gcGF0
aHM6Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZVN5c3RlbVBhdGhzLmxlbmd0
aDsgKytpKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAgLSAiICsg
ZmlsZVN5c3RlbVBhdGhzW2ldKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
ICBmaWxlU3lzdGVtUGF0aEZvclByZWZpeDoiKTsKLSAgICAgICAgLy8gQ2FsbCBmaWxlU3lzdGVt
UGF0aEZvclByZWZpeCB0d2ljZSBmb3IgZWFjaCBwYXRoIHByZWZpeCB0byBjaGVjayBjYWNoaW5n
LgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI7ICsraSkgewotICAgICAgICAgICAgZm9y
IChwYXRoSWQgaW4gcGF0aHMpIHsKLSAgICAgICAgICAgICAgICB2YXIgcGF0aFByZWZpeCA9IHBh
dGhzW3BhdGhJZF07Ci0gICAgICAgICAgICAgICAgdmFyIGZpbGVTeXN0ZW1QYXRoID0gZmlsZVN5
c3RlbU1hcHBpbmcuZmlsZVN5c3RlbVBhdGhGb3JQcmVmaXgocGF0aFByZWZpeCArICIvIik7Ci0g
ICAgICAgICAgICAgICAgaWYgKCFmaWxlU3lzdGVtUGF0aCkKLSAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAg
ICAgIiArIHBhdGhQcmVmaXggKyAiID0+ICIgKyBmaWxlU3lzdGVtUGF0aCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAg
IH0KLQotICAgIC8vIEF0IGZpcnN0IGNyZWF0ZSBmaWxlIHN5c3RlbSBtYXBwaW5nIGFuZCBjbGVh
ciBpdC4KLSAgICB2YXIgZmlsZVN5c3RlbU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVT
eXN0ZW1NYXBwaW5nSW1wbCgpOwotICAgIHZhciBmaWxlU3lzdGVtUGF0aHMgPSBmaWxlU3lzdGVt
TWFwcGluZy5maWxlU3lzdGVtUGF0aHMoKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVT
eXN0ZW1QYXRocy5sZW5ndGg7ICsraSkKLSAgICAgICAgZmlsZVN5c3RlbU1hcHBpbmcucmVtb3Zl
RmlsZVN5c3RlbU1hcHBpbmcoZmlsZVN5c3RlbVBhdGhzW2ldKTsKLSAgICAKLSAgICAvLyBOb3cg
ZmlsbCBpdCB3aXRoIGZpbGUgc3lzdGVtcyBhbmQgdGVzdC4KLSAgICBjaGVja0FuZER1bXBGaWxl
U3lzdGVtTWFwcGluZyhmaWxlU3lzdGVtTWFwcGluZyk7Ci0gICAgYWRkRmlsZVN5c3RlbShmaWxl
U3lzdGVtTWFwcGluZywgcGF0aHMuRk9PKQotICAgIGNoZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBw
aW5nKGZpbGVTeXN0ZW1NYXBwaW5nKTsKLSAgICBhZGRGaWxlU3lzdGVtKGZpbGVTeXN0ZW1NYXBw
aW5nLCBwYXRocy5CQVIpCi0gICAgY2hlY2tBbmREdW1wRmlsZVN5c3RlbU1hcHBpbmcoZmlsZVN5
c3RlbU1hcHBpbmcpOwotICAgIGFkZEZpbGVTeXN0ZW0oZmlsZVN5c3RlbU1hcHBpbmcsIHBhdGhz
LlNJVEUxKQotICAgIGNoZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBwaW5nKGZpbGVTeXN0ZW1NYXBw
aW5nKTsKLQotICAgIC8vIFRoZW4gY3JlYXRlIGFub3RoZXIgZmlsZSBtYXBwaW5nIHRvIG1ha2Ug
c3VyZSBpdCBpcyBjb3JyZWN0bHkgcmVzdG9yZWQgZnJvbSB0aGUgc2V0dGluZ3MuCi0gICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNyZWF0aW5nIGFub3RoZXIgZmlsZSBzeXN0ZW0gbWFwcGlu
Zy4iKTsKLSAgICB2YXIgZmlsZVN5c3RlbU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVT
eXN0ZW1NYXBwaW5nSW1wbCgpOwotICAgIGNoZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBwaW5nKGZp
bGVTeXN0ZW1NYXBwaW5nKTsKLQotICAgIC8vIE5vdyByZW1vdmUgZmlsZSBzeXN0ZW1zIGFuZCB0
ZXN0LgotICAgIHJlbW92ZUZpbGVTeXN0ZW0oZmlsZVN5c3RlbU1hcHBpbmcsIHBhdGhzLlNJVEUx
KQotICAgIGNoZWNrQW5kRHVtcEZpbGVTeXN0ZW1NYXBwaW5nKGZpbGVTeXN0ZW1NYXBwaW5nKTsK
LSAgICByZW1vdmVGaWxlU3lzdGVtKGZpbGVTeXN0ZW1NYXBwaW5nLCBwYXRocy5GT08pCi0gICAg
Y2hlY2tBbmREdW1wRmlsZVN5c3RlbU1hcHBpbmcoZmlsZVN5c3RlbU1hcHBpbmcpOwotICAgIHJl
bW92ZUZpbGVTeXN0ZW0oZmlsZVN5c3RlbU1hcHBpbmcsIHBhdGhzLkJBUikKLSAgICBjaGVja0Fu
ZER1bXBGaWxlU3lzdGVtTWFwcGluZyhmaWxlU3lzdGVtTWFwcGluZyk7Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBGaWxlU3lzdGVtTWFwcGluZzwvcD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1w
cm9qZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLXN5c3RlbS1w
cm9qZWN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQzNzAz
NTY2ZmNlOWYzZDM2NTIyOWE2Mjg5MWM2NjFhMGU3OGUxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0
ZW0tcHJvamVjdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1U
ZXN0cyBmaWxlIHN5c3RlbSBwcm9qZWN0LgotCi0KLVJ1bm5pbmc6IHRlc3RGaWxlU3lzdGVtcwot
QWRkaW5nIGZpcnN0IGZpbGUgc3lzdGVtLgotQWRkaW5nIHNlY29uZCBmaWxlIHN5c3RlbS4KLQot
VUlTb3VyY2VDb2RlOiBmaWxlOi8vL3Zhci93d3cvbG9jYWxob3N0L2Zvby5qcwotVUlTb3VyY2VD
b2RlIGlzIGVkaXRhYmxlOiB0cnVlCi1VSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZh
bHNlCi1NaW1lIHR5cGU6IHRleHQvamF2YXNjcmlwdAotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxm
b28gY29udGVudD4KLQotVUlTb3VyY2VDb2RlOiBmaWxlOi8vL3Zhci93d3cvYmFyLmpzCi1VSVNv
dXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUKLVVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlw
dDogZmFsc2UKLU1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0Ci1VSVNvdXJjZUNvZGUgY29udGVu
dDogPGJhciBjb250ZW50PgotCi1VSVNvdXJjZUNvZGU6IGZpbGU6Ly8vZm9vL2Jhci9iYXouanMK
LVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQotVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQg
c2NyaXB0OiBmYWxzZQotTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKLVVJU291cmNlQ29kZSBj
b250ZW50OiA8YmF6IGNvbnRlbnQ+Ci0KLVVJU291cmNlQ29kZSB1cmkgdG8gdXJsIG1hcHBpbmdz
OgotICAgIGZpbGVzeXN0ZW06L3Zhci93d3cvbG9jYWxob3N0L2Zvby5qcyAtPiBodHRwOi8vbG9j
YWxob3N0L2Zvby5qcwotICAgIGZpbGVzeXN0ZW06L2Zvby9iYXIvYmF6LmpzIC0+IGh0dHA6Ly93
d3cuZXhhbXBsZS5jb20vYmF6LmpzCi1VSVNvdXJjZUNvZGUgdXJsIHRvIHVyaSBtYXBwaW5nczoK
LSAgICBodHRwOi8vbG9jYWxob3N0L2Zvby5qcyAtPiBmaWxlc3lzdGVtOi92YXIvd3d3L2xvY2Fs
aG9zdC9mb28uanMKLSAgICBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2Jhei5qcyAtPiBmaWxlc3lz
dGVtOi9mb28vYmFyL2Jhei5qcwotUmVtb3Zpbmcgc2Vjb25kIGZpbGUgc3lzdGVtLgotICAgIG51
bWJlciBvZiB1aVNvdXJjZUNvZGVzIGluIHdvcmtzcGFjZSBhZnRlciByZW1vdmluZyBzZWNvbmQg
ZmlsZSBzeXN0ZW06IDEKLVJlbW92aW5nIGZpcnN0IGZpbGUgc3lzdGVtLgotICAgIG51bWJlciBv
ZiB1aVNvdXJjZUNvZGVzIGluIHdvcmtzcGFjZSBhZnRlciByZW1vdmluZyBmaXJzdCBmaWxlIHN5
c3RlbTogMAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0t
cHJvamVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtc3lzdGVtLXByb2plY3Qu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU3NTAwMmFiMjkyMTI4NjRjYWVh
ZTRiMjQzNWVhNzFiMzY2YTkwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1zeXN0ZW0tcHJvamVjdC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNl
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2lzb2xhdGVkLWZpbGVzeXN0ZW0tdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gZHVtcFVJU291cmNlQ29kZXModWlTb3VyY2VDb2Rl
cywgbmV4dCkKLSAgICB7Ci0gICAgICAgIGlubmVyRHVtcFVJU291cmNlQ29kZXModWlTb3VyY2VD
b2RlcywgMCwgbmV4dCk7Ci0KLSAgICAgICAgZnVuY3Rpb24gaW5uZXJEdW1wVUlTb3VyY2VDb2Rl
cyh1aVNvdXJjZUNvZGVzLCBzdGFydEluZGV4LCBuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgICAgICBpZiAoc3RhcnRJbmRl
eCA9PT0gdWlTb3VyY2VDb2Rlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZXNbc3RhcnRJbmRleF0sIGlubmVy
RHVtcFVJU291cmNlQ29kZXMuYmluZCh0aGlzLCB1aVNvdXJjZUNvZGVzLCBzdGFydEluZGV4ICsg
MSwgbmV4dCkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RmlsZVN5c3RlbXMobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2UoKTsKLSAgICAgICAg
ICAgIHZhciBtYW5hZ2VyID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVJc29sYXRlZEZpbGVTeXN0ZW1N
YW5hZ2VyKEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSwgSW5zcGVjdG9yVGVzdC50ZXN0Rmls
ZVN5c3RlbU1hcHBpbmcpOwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBbXTsKLSAg
ICAgICAgICAgIHZhciBlbnRyeTEgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5
KCJodHRwOi8vbG9jYWxob3N0LyIsICIvdmFyL3d3dy9sb2NhbGhvc3QvIik7Ci0gICAgICAgICAg
ICB2YXIgZW50cnkyID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDov
L3d3dy5leGFtcGxlLmNvbS8iLCAiL2Zvby9iYXIvIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnRlc3RGaWxlTWFwcGluZy5zZXRNYXBwaW5nRW50cmllcyhbZW50cnkxLCBlbnRyeTJdKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVVJU291cmNlQ29kZUFk
ZGVkRXZlbnQodWlTb3VyY2VDb2RlQWRkZWQsIDMpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkFkZGluZyBmaXJzdCBmaWxlIHN5c3RlbS4iKTsKLSAgICAgICAgICAgIG1h
bmFnZXIuYWRkTW9ja0ZpbGVTeXN0ZW0oIi92YXIvd3d3IiwgeyIvbG9jYWxob3N0L2Zvby5qcyI6
ICI8Zm9vIGNvbnRlbnQ+IiwgIi9iYXIuanMiOiAiPGJhciBjb250ZW50PiJ9KTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgc2Vjb25kIGZpbGUgc3lzdGVtLiIp
OwotICAgICAgICAgICAgbWFuYWdlci5hZGRNb2NrRmlsZVN5c3RlbSgiL2Zvby9iYXIiLCB7Ii9i
YXouanMiOiAiPGJheiBjb250ZW50PiJ9KTsKLQotICAgICAgICAgICAgZHVtcFVJU291cmNlQ29k
ZXModWlTb3VyY2VDb2RlcywgdWlTb3VyY2VDb2Rlc0R1bXBlZCk7Ci0KLSAgICAgICAgICAgIGZ1
bmN0aW9uIHVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB1aVNvdXJjZUNvZGVzLnB1c2godWlTb3VyY2VDb2RlKQotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVzRHVtcGVkKCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3Vy
Y2VDb2RlIHVyaSB0byB1cmwgbWFwcGluZ3M6Iik7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciB1cmwgPSB1aVNvdXJjZUNvZGVzW2ldLnVybDsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKCF1cmwpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgdWlTb3VyY2VDb2Rlc1tp
XS51cmkoKSArICIgLT4gIiArIHVpU291cmNlQ29kZXNbaV0udXJsKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29k
ZSB1cmwgdG8gdXJpIG1hcHBpbmdzOiIpOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgICAgICB2
YXIgdXJsID0gdWlTb3VyY2VDb2Rlc1tpXS51cmw7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgh
dXJsKQotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciB1cmkgPSBJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9y
VVJMKHVybCkudXJpKCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCIgICAgIiArIHVybCArICIgLT4gIiArIHVyaSk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVzQ291bnQgPSBJbnNwZWN0b3JUZXN0LnRlc3RX
b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpLmxlbmd0aDsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiUmVtb3Zpbmcgc2Vjb25kIGZpbGUgc3lzdGVtLiIpOwotICAgICAg
ICAgICAgICAgIG1hbmFnZXIucmVtb3ZlTW9ja0ZpbGVTeXN0ZW0oIi92YXIvd3d3Iik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBudW1iZXIgb2YgdWlTb3Vy
Y2VDb2RlcyBpbiB3b3Jrc3BhY2UgYWZ0ZXIgcmVtb3Zpbmcgc2Vjb25kIGZpbGUgc3lzdGVtOiAi
ICsgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLnVpU291cmNlQ29kZXMoKS5sZW5ndGgpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZW1vdmluZyBmaXJzdCBm
aWxlIHN5c3RlbS4iKTsKLSAgICAgICAgICAgICAgICBtYW5hZ2VyLnJlbW92ZU1vY2tGaWxlU3lz
dGVtKCIvZm9vL2JhciIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCIgICAgbnVtYmVyIG9mIHVpU291cmNlQ29kZXMgaW4gd29ya3NwYWNlIGFmdGVyIHJlbW92aW5n
IGZpcnN0IGZpbGUgc3lzdGVtOiAiICsgSW5zcGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLnVpU291
cmNlQ29kZXMoKS5sZW5ndGgpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSwKLSAgICBdKTsKLX07Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGZpbGUgc3lzdGVtIHByb2plY3QuPC9wPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVk
LWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWMxZTllNmEzZmI4Mjg1
ZjI3ZWU3ODcxY2I2YWE1Y2E3ZWI1ZDNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVj
dGlvbi1kaWFsb2ctZmlsdGVyaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLUNoZWNrIHRvIHNlZSB0aGF0IEZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyB1
c2VzIHByb3BlciByZWdleCB0byBmaWx0ZXIgcmVzdWx0cy4KLQotCi1FbXB0eSBxdWVyeSBtYXRj
aGVzIGV2ZXJ5dGhpbmcKLVF1ZXJ5OiIiCi1JbnB1dDpbImEiLCJiYyJdCi1PdXRwdXQ6WyJhIiwi
YmMiXQotCi1DYXNlIHNlbnNpdGl2ZSBtYXRjaGluZwotUXVlcnk6ImFCIgotSW5wdXQ6WyJhYmMi
LCJhY0IiXQotT3V0cHV0OlsiYWNCIiwiYWJjIl0KLQotQ2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGlu
ZwotUXVlcnk6ImFiIgotSW5wdXQ6WyJhYmMiLCJiYWMiLCJhX0IiXQotT3V0cHV0OlsiYV9CIiwi
YWJjIl0KLQotRHVwbGljYXRlIHN5bWJvbHMgaW4gcXVlcnkKLVF1ZXJ5OiJhYWIiCi1JbnB1dDpb
ImFiYWIiLCJhYmFhIiwiY2FhYiIsImJhYWMiLCJmb29hYWIiXQotT3V0cHV0OlsiYWJhYiIsImNh
YWIiLCJmb29hYWIiXQotCi1EYW5nZXJvdXMgaW5wdXQgZXNjYXBpbmcKLVF1ZXJ5OiJeW117fSgp
XFwuJCorP3wiCi1JbnB1dDpbIl5bXXt9KClcXC4kKis/fCIsIjAxMjM0NTY3ODlhYmNkZWYiXQot
T3V0cHV0OlsiXltde30oKVxcLiQqKz98Il0KLQotQ2FtZWwgY2FzZSBtYXRjaGluZwotUXVlcnk6
ImZCYUIiCi1JbnB1dDpbImZvb0JhckJheiIsIkZvb0JhckJheiIsIkZvb19CYXJfQmF6IiwiZm9v
X2Jhcl9iYXoiLCJmb29iYXJiYXoiLCJmb29iYXJCYXoiLCJhZm9vQmFyQmF6IiwiYUZvb0JhckJh
eiIsImEgZm9vQmFyQmF6IiwiZm9vQm9yQmF6IiwiZm9vQm9yQ2F6Il0KLU91dHB1dDpbImZvb0Jh
ckJheiIsIkZvb0JhckJheiIsIkZvb19CYXJfQmF6IiwiYSBmb29CYXJCYXoiLCJhRm9vQmFyQmF6
IiwiYWZvb0JhckJheiIsImZvb19iYXJfYmF6IiwiZm9vYmFyQmF6IiwiZm9vYmFyYmF6Il0KLQot
VW5kZXJzY29yZSBtYXRjaGluZwotUXVlcnk6ImZPX2JhX2IiCi1JbnB1dDpbImZvT0JhckJheiIs
IkZvT0JhckJheiIsIkZvT19CYXJfQmF6IiwiZm9PX2Jhcl9iYXoiLCJmb09iYXJiYXoiLCJmb09i
YXJCYXoiLCJhZm9PQmFyQmF6IiwiYUZvT0JhckJheiIsImEgZm9PQmFyQmF6IiwiZm9PQm9yQmF6
IiwiZm9PQm9yQ2F6Il0KLU91dHB1dDpbImZvT19iYXJfYmF6IiwiRm9PX0Jhcl9CYXoiXQotCi1D
YXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nCi1RdWVyeToiZmIiCi1JbnB1dDpbImZvb19iYXIiLCJG
QiIsImZvb2JhciIsImZCYXIiXQotT3V0cHV0OlsiRkIiLCJmb29fYmFyIiwiZkJhciIsImZvb2Jh
ciJdCi0KLUNhc2UgaW5zZW5zaXRpdmUgdW5kZXJzY29yZSBtYXRjaGluZwotUXVlcnk6ImZfYiIK
LUlucHV0OlsiZm9vX2JhciIsIkZPT19CQVIiLCJGb29fQmFyIiwiZk9vX2JBciJdCi1PdXRwdXQ6
WyJGb29fQmFyIiwiZk9vX2JBciIsImZvb19iYXIiLCJGT09fQkFSIl0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0
ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlv
bi1kaWFsb2ctZmlsdGVyaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYx
OTNiZWEyZTU1YmY0NDRlYmViZWM2MDY3YjRlMDE2Y2E0MmZlMDMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRl
cmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDYyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwot
Ci0gICAgdmFyIG92ZXJyaWRlbklucHV0ID0gW107Ci0gICAgdmFyIG92ZXJyaWRlblF1ZXJ5ID0g
IiI7Ci0gICAgdmFyIGRlbGVnYXRlID0gewotICAgICAgICBpdGVtVGl0bGVBdDogZnVuY3Rpb24o
aXRlbUluZGV4KSB7IH0sCi0gICAgICAgIGl0ZW1TdWZmaXhBdDogZnVuY3Rpb24oaXRlbUluZGV4
KSB7IH0sCi0gICAgICAgIGl0ZW1TdWJ0aXRsZUF0OiBmdW5jdGlvbihpdGVtSW5kZXgpIHsgfSwK
LSAgICAgICAgaXRlbUtleUF0OiBmdW5jdGlvbihpdGVtSW5kZXgpIHsgcmV0dXJuIG92ZXJyaWRl
bklucHV0W2l0ZW1JbmRleF07IH0sCi0gICAgICAgIGl0ZW1zQ291bnQ6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gb3ZlcnJpZGVuSW5wdXQubGVuZ3RoOyB9LAotICAgICAgICByZXF1ZXN0SXRlbXM6IGZ1
bmN0aW9uKGNhbGxiYWNrKSB7IGNhbGxiYWNrKCk7IH0sCi0gICAgICAgIHNlbGVjdEl0ZW06IGZ1
bmN0aW9uKGl0ZW1JbmRleCwgcHJvbXB0VmFsdWUpIHsgfSwKLSAgICAgICAgcmV3cml0ZVF1ZXJ5
OiBmdW5jdGlvbihxdWVyeSkgeyByZXR1cm4gb3ZlcnJpZGVuUXVlcnk7IH0sCi0gICAgfTsKLQot
ICAgIGZ1bmN0aW9uIGNoZWNrUXVlcnkodGl0bGUsIHF1ZXJ5LCBpbnB1dCkKLSAgICB7Ci0gICAg
ICAgIG92ZXJyaWRlbklucHV0ID0gaW5wdXQ7Ci0gICAgICAgIG92ZXJyaWRlblF1ZXJ5ID0gcXVl
cnk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuIiArIHRpdGxlKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlF1ZXJ5OiIgKyBKU09OLnN0cmluZ2lmeShx
dWVyeSkpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSW5wdXQ6IiArIEpTT04u
c3RyaW5naWZ5KGlucHV0KSk7Ci0KLSAgICAgICAgdmFyIGZpbHRlcmVkU2VsZWN0aW9uRGlhbG9n
ID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2coZGVsZWdhdGUp
OwotICAgICAgICBmaWx0ZXJlZFNlbGVjdGlvbkRpYWxvZy5fdXBkYXRlQWZ0ZXJJdGVtc0xvYWRl
ZCgpOwotICAgICAgICB2YXIgaXRlbXMgPSBmaWx0ZXJlZFNlbGVjdGlvbkRpYWxvZy5fZmlsdGVy
ZWRJdGVtczsKLSAgICAgICAgdmFyIG91dHB1dCA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgb3V0cHV0LnB1c2goZGVsZWdh
dGUuaXRlbUtleUF0KGl0ZW1zW2ldKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJPdXRwdXQ6IiArIEpTT04uc3RyaW5naWZ5KG91dHB1dCkpOwotICAgIH0KLQotICAgIGNoZWNr
UXVlcnkoIkVtcHR5IHF1ZXJ5IG1hdGNoZXMgZXZlcnl0aGluZyIsICIiLCBbImEiLCAiYmMiXSk7
Ci0gICAgY2hlY2tRdWVyeSgiQ2FzZSBzZW5zaXRpdmUgbWF0Y2hpbmciLCAiYUIiLCBbImFiYyIs
ICJhY0IiXSk7Ci0gICAgY2hlY2tRdWVyeSgiQ2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyIsICJh
YiIsIFsiYWJjIiwgImJhYyIsICJhX0IiXSk7Ci0gICAgY2hlY2tRdWVyeSgiRHVwbGljYXRlIHN5
bWJvbHMgaW4gcXVlcnkiLCAiYWFiIiwgWyJhYmFiIiwgImFiYWEiLCAiY2FhYiIsICJiYWFjIiwg
ImZvb2FhYiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJEYW5nZXJvdXMgaW5wdXQgZXNjYXBpbmciLCAi
Xltde30oKVxcLiQqKz98IiwgWyJeW117fSgpXFwuJCorP3wiLCAiMDEyMzQ1Njc4OWFiY2RlZiJd
KTsKLSAgICBjaGVja1F1ZXJ5KCJDYW1lbCBjYXNlIG1hdGNoaW5nIiwgImZCYUIiLCBbImZvb0Jh
ckJheiIsICJGb29CYXJCYXoiLCAiRm9vX0Jhcl9CYXoiLCAiZm9vX2Jhcl9iYXoiLCAiZm9vYmFy
YmF6IiwgImZvb2JhckJheiIsICJhZm9vQmFyQmF6IiwgImFGb29CYXJCYXoiLCAiYSBmb29CYXJC
YXoiLCAiZm9vQm9yQmF6IiwgImZvb0JvckNheiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJVbmRlcnNj
b3JlIG1hdGNoaW5nIiwgImZPX2JhX2IiLCBbImZvT0JhckJheiIsICJGb09CYXJCYXoiLCAiRm9P
X0Jhcl9CYXoiLCAiZm9PX2Jhcl9iYXoiLCAiZm9PYmFyYmF6IiwgImZvT2JhckJheiIsICJhZm9P
QmFyQmF6IiwgImFGb09CYXJCYXoiLCAiYSBmb09CYXJCYXoiLCAiZm9PQm9yQmF6IiwgImZvT0Jv
ckNheiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJDYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIiwgImZi
IiwgWyJmb29fYmFyIiwgIkZCIiwgImZvb2JhciIsICJmQmFyIl0pOwotICAgIGNoZWNrUXVlcnko
IkNhc2UgaW5zZW5zaXRpdmUgdW5kZXJzY29yZSBtYXRjaGluZyIsICJmX2IiLCBbImZvb19iYXIi
LCAiRk9PX0JBUiIsICJGb29fQmFyIiwgImZPb19iQXIiXSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPiAKLUNoZWNrIHRvIHNlZSB0aGF0IEZpbHRlcmVkSXRlbVNlbGVjdGlv
bkRpYWxvZyB1c2VzIHByb3BlciByZWdleCB0byBmaWx0ZXIgcmVzdWx0cy4KLTwvcD4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci1iYWNrZW5kLWNvbW1hbmRzLWdlbmVyYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci1iYWNrZW5kLWNvbW1hbmRzLWdlbmVyYXRpb24tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjZlOGIxOGFkZmIxMDUwYWY1NGMz
YTA5NzAwNDc3ZTBjM2MyZDVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItYmFja2VuZC1jb21tYW5k
cy1nZW5lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAot
VGVzdHMgY29ycmVjdG5lc3Mgb2YgY29kZSBnZW5lcmF0ZWQgYnkgSW5zcGVjdG9yQmFja2VuZC4K
LQotSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIlBhZ2UuUmVzb3VyY2VUeXBlIiwge0Rv
Y3VtZW50OiAiRG9jdW1lbnQiLCBYSFI6ICJYSFIiLCBDb25zb2xlQVBJOiAiY29uc29sZS1hcGki
LCBPdGhlcjogIm90aGVyIn0pOwotSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIlBh
Z2UuYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCIsIFt7Im5hbWUiOiAic2NyaXB0U291cmNlIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJpZGVudGlmaWVyIl0pOwot
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckV2ZW50KCJQYWdlLmRvbUNvbnRlbnRFdmVudEZpcmVk
IiwgWyJ0aW1lc3RhbXAiXSk7Ci1JbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUGFnZURpc3BhdGNo
ZXIgPSBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlci5iaW5kKEluc3Bl
Y3RvckJhY2tlbmQsICJQYWdlIik7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItYmFja2VuZC1jb21tYW5kcy1nZW5lcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLWJhY2tlbmQtY29tbWFuZHMtZ2VuZXJhdGlvbi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmIwNjY2ZDVjZDA4OTFlNDBjZDFiNmMzMjQ3
ZmQxM2ZhZTQ1MGU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItYmFja2VuZC1jb21tYW5kcy1nZW5l
cmF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnNwZWN0b3JKc29uID0g
eyJkb21haW5zIjogW3sKLSAgICAgICAgImRvbWFpbiI6ICJQYWdlIiwKLSAgICAgICAgInR5cGVz
IjogW3sKLSAgICAgICAgICAgICJpZCI6ICJSZXNvdXJjZVR5cGUiLAotICAgICAgICAgICAgInR5
cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICJlbnVtIjogWyJEb2N1bWVudCIsICJYSFIiLCAi
Y29uc29sZS1hcGkiLCAib3RoZXIiXQotICAgICAgICB9XSwKLSAgICAgICAgImNvbW1hbmRzIjog
W3sKLSAgICAgICAgICAgICJuYW1lIjogImFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQiLAotICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyJuYW1lIjogInNjcmlw
dFNvdXJjZSIsICJ0eXBlIjogInN0cmluZyJ9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAg
InJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyJuYW1lIjogImlkZW50aWZpZXIiLCAidHlw
ZSI6ICJzdHJpbmcifQotICAgICAgICAgICAgXQotICAgICAgICB9XSwKLSAgICAgICAgImV2ZW50
cyI6IFt7Ci0gICAgICAgICAgICAibmFtZSI6ICJkb21Db250ZW50RXZlbnRGaXJlZCIsCi0gICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7Im5hbWUiOiAidGltZXN0
YW1wIiwgInR5cGUiOiAibnVtYmVyIn0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfV0KLSAgICB9
XX07Ci0gICAgdmFyIGNvbW1hbmRzID0gSW5zcGVjdG9yQmFja2VuZENsYXNzLl9nZW5lcmF0ZUNv
bW1hbmRzKGluc3BlY3Rvckpzb24pOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGNvbW1h
bmRzKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBjb3JyZWN0bmVzcyBv
ZiBjb2RlIGdlbmVyYXRlZCBieSBJbnNwZWN0b3JCYWNrZW5kLjwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tYXAtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21hcC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRmNTljZmY5MWRjZjk3NGExNzk1NWU0Njk2MDE4YTM0ODc5Y2UzMGUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL21hcC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBA
QAotVGVzdHMgTWFwIGNsYXNzLgotCi1CdWcgNzQwODQKLUR1bXBpbmcgbWFwczoKLSAgRmlyc3Qg
bWFwOgotICAgIGtleTEgOiB1bmRlZmluZWQKLSAgICBrZXkyIDogdW5kZWZpbmVkCi0gICAgc2l6
ZSA6IDAKLSAgU2Vjb25kIG1hcDoKLSAgICBrZXkxIDogdW5kZWZpbmVkCi0gICAga2V5MiA6IHVu
ZGVmaW5lZAotICAgIHNpemUgOiAwCi0KLUR1bXBpbmcgbWFwczoKLSAgRmlyc3QgbWFwOgotICAg
IGtleTEgOiAyCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0gIFNlY29uZCBt
YXA6Ci0gICAga2V5MSA6IHVuZGVmaW5lZAotICAgIGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXpl
IDogMAotCi1EdW1waW5nIG1hcHM6Ci0gIEZpcnN0IG1hcDoKLSAgICBrZXkxIDogMQotICAgIGtl
eTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDogMQotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiB1
bmRlZmluZWQKLSAgICBrZXkyIDogdW5kZWZpbmVkCi0gICAgc2l6ZSA6IDAKLQotRHVtcGluZyBt
YXBzOgotICBGaXJzdCBtYXA6Ci0gICAga2V5MSA6IDEKLSAgICBrZXkyIDogdW5kZWZpbmVkCi0g
ICAgc2l6ZSA6IDEKLSAgU2Vjb25kIG1hcDoKLSAgICBrZXkxIDogMQotICAgIGtleTIgOiB1bmRl
ZmluZWQKLSAgICBzaXplIDogMQotCi1EdW1waW5nIG1hcHM6Ci0gIEZpcnN0IG1hcDoKLSAgICBr
ZXkxIDogMQotICAgIGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDogMQotICBTZWNvbmQgbWFw
OgotICAgIGtleTEgOiAyCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0KLUR1
bXBpbmcgbWFwczoKLSAgRmlyc3QgbWFwOgotICAgIGtleTEgOiAxCi0gICAga2V5MiA6IDIKLSAg
ICBzaXplIDogMgotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiAyCi0gICAga2V5MiA6IHVuZGVm
aW5lZAotICAgIHNpemUgOiAxCi0KLUR1bXBpbmcgbWFwczoKLSAgRmlyc3QgbWFwOgotICAgIGtl
eTEgOiAxCi0gICAga2V5MiA6IDIKLSAgICBzaXplIDogMgotICBTZWNvbmQgbWFwOgotICAgIGtl
eTEgOiAyCi0gICAga2V5MiA6IDEKLSAgICBzaXplIDogMgotCi1EdW1waW5nIG1hcHM6Ci0gIEZp
cnN0IG1hcDoKLSAgICBrZXkxIDogMQotICAgIGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDog
MQotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiAyCi0gICAga2V5MiA6IDEKLSAgICBzaXplIDog
MgotCi1EdW1waW5nIG1hcHM6Ci0gIEZpcnN0IG1hcDoKLSAgICBrZXkxIDogMQotICAgIGtleTIg
OiB1bmRlZmluZWQKLSAgICBzaXplIDogMQotICBTZWNvbmQgbWFwOgotICAgIGtleTEgOiAyCi0g
ICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0KLUR1bXBpbmcgbWFwczoKLSAgRmly
c3QgbWFwOgotICAgIGtleTEgOiAxCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAx
Ci0gIFNlY29uZCBtYXA6Ci0gICAga2V5MSA6IDIKLSAgICBrZXkyIDogdW5kZWZpbmVkCi0gICAg
c2l6ZSA6IDEKLQotRHVtcGluZyBtYXBzOgotICBGaXJzdCBtYXA6Ci0gICAga2V5MSA6IHVuZGVm
aW5lZAotICAgIGtleTIgOiB1bmRlZmluZWQKLSAgICBzaXplIDogMAotICBTZWNvbmQgbWFwOgot
ICAgIGtleTEgOiAyCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAxCi0KLUR1bXBp
bmcgbWFwczoKLSAgRmlyc3QgbWFwOgotICAgIGtleTEgOiB1bmRlZmluZWQKLSAgICBrZXkyIDog
dW5kZWZpbmVkCi0gICAgc2l6ZSA6IDAKLSAgU2Vjb25kIG1hcDoKLSAgICBrZXkxIDogdW5kZWZp
bmVkCi0gICAga2V5MiA6IHVuZGVmaW5lZAotICAgIHNpemUgOiAwCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21hcC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21h
cC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmVjZjAwOGJmMTg3MGFkYzk1
ZDFhODEyYjI0ZjBkYzgyOTNiYzM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tYXAuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDczICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgotCi12YXIgdGVzdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBmdW5j
dGlvbiBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgbWFwczoiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiAgRmlyc3QgbWFwOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgIGtleTEgOiAiICsgbWFwMS5nZXQoa2V5MSkpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiICAgIGtleTIgOiAiICsgbWFwMS5nZXQoa2V5MikpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHNpemUgOiAiICsgbWFwMS5zaXplKCkpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICBTZWNvbmQgbWFwOiIpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIGtleTEgOiAiICsgbWFwMi5nZXQoa2V5MSkp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIGtleTIgOiAiICsgbWFwMi5n
ZXQoa2V5MikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHNpemUgOiAi
ICsgbWFwMi5zaXplKCkpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0g
ICAgfQotCi0gICAgdmFyIGtleTEgPSB7fTsKLSAgICB2YXIga2V5MiA9IHt9OwotICAgIHZhciB2
YWx1ZTEgPSAxOwotICAgIHZhciB2YWx1ZTIgPSAyOwotICAgIHZhciBtYXAxID0gbmV3IE1hcCgp
OwotICAgIHZhciBtYXAyID0gbmV3IE1hcCgpOwotCi0gICAgZHVtcE1hcHMobWFwMSwgbWFwMiwg
a2V5MSwga2V5Mik7Ci0KLSAgICBtYXAxLnB1dChrZXkxLCB2YWx1ZTIpOwotICAgIGR1bXBNYXBz
KG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOwotCi0gICAgbWFwMS5wdXQoa2V5MSwgdmFsdWUxKTsK
LSAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKLQotICAgIG1hcDIucHV0KGtl
eTEsIHZhbHVlMSk7Ci0gICAgZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7Ci0KLSAg
ICBtYXAyLnB1dChrZXkxLCB2YWx1ZTIpOwotICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEs
IGtleTIpOwotCi0gICAgbWFwMS5wdXQoa2V5MiwgdmFsdWUyKTsKLSAgICBkdW1wTWFwcyhtYXAx
LCBtYXAyLCBrZXkxLCBrZXkyKTsKLQotICAgIG1hcDIucHV0KGtleTIsIHZhbHVlMSk7Ci0gICAg
ZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7Ci0KLSAgICBtYXAxLnJlbW92ZShrZXky
KTsKLSAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKLQotICAgIG1hcDIucmVt
b3ZlKGtleTIpOwotICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOwotCi0gICAg
bWFwMi5yZW1vdmUoa2V5Mik7Ci0gICAgZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7
Ci0KLSAgICBtYXAxLnJlbW92ZShrZXkxKTsKLSAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkx
LCBrZXkyKTsKLQotICAgIG1hcDIucmVtb3ZlKGtleTEpOwotICAgIGR1bXBNYXBzKG1hcDEsIG1h
cDIsIGtleTEsIGtleTIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0
cyBNYXAgY2xhc3MuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc0MDg0Ij5CdWcgNzQwODQ8L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbmV0d29yay1zdGF0dXMtbm9uLWh0dHAtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL25ldHdvcmstc3RhdHVzLW5vbi1odHRwLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY1MzhiYTIwYjlkNjg4
ZGM1ZGFjOTZkOTgzYWQ5MGE0ZTZkM2Q2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbmV0d29yay1zdGF0dXMtbm9u
LWh0dHAtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi17Ci0gICAg
MCA6ICJkYXRhOmFwcGxpY2F0aW9uL2phdmFzY3JpcHQ6IFN1Y2Nlc3MiCi0gICAgMSA6ICJuZXR3
b3JrLXRlc3QuanM6IFN1Y2Nlc3MiCi0gICAgMiA6ICJub24tZXhpc3RlbnQtZmlsZS5qczogKGZh
aWxlZCkiCi19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXN0
YXR1cy1ub24taHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL25ldHdvcmstc3RhdHVz
LW5vbi1odHRwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0YThlMzEyMTVl
M2U0NGFmNzYxMGM1NjhkYjBmMDJlODZhYzVkYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL25ldHdvcmstc3RhdHVz
LW5vbi1odHRwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIHZhciByZXF1
ZXN0c1RvV2F0Y2ggPSAvXC9uZXR3b3JrLXRlc3RcLmpzJHxcL25vbi1leGlzdGVudC1maWxlLmpz
JHxeZGF0YTphcHBsaWNhdGlvblwvamF2YXNjcmlwdCx8LzsKLSAgICB2YXIgc2VlblJlcXVlc3Rz
ID0gMDsKLQotICAgIGZ1bmN0aW9uIGR1bXBSZXF1ZXN0cygpCi0gICAgewotICAgICAgICB2YXIg
bG9nVmlldyA9IFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5fbmV0d29ya0xvZ1ZpZXc7Ci0g
ICAgICAgIGxvZ1ZpZXcucmVmcmVzaCgpOwotICAgICAgICB2YXIgZGF0YUdyaWQgPSBsb2dWaWV3
LmVsZW1lbnQucXVlcnlTZWxlY3RvcigidGFibGUuZGF0YSIpOwotICAgICAgICB2YXIgdXJscyA9
IGRvY3VtZW50LmV2YWx1YXRlKCIvL3Rib2R5L3RyL3RkW3Bvc2l0aW9uKCk9MV0vZGl2L0B0aXRs
ZSIsIGRhdGFHcmlkLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQ
RSwgbnVsbCk7Ci0gICAgICAgIHZhciBvdXRwdXRTdHJpbmdzID0gW107Ci0KLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB1cmxzLnNuYXBzaG90TGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IHZhciB1cmwgPSB1cmxzLnNuYXBzaG90SXRlbShpKS52YWx1ZTsKLSAgICAgICAgICAgIGlmIChy
ZXF1ZXN0c1RvV2F0Y2gudGVzdCh1cmwpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHVybEZyYWdt
ZW50ID0gL15kYXRhOi8udGVzdCh1cmwpID8gdXJsLnJlcGxhY2UoLywuKiQvLCAiIikgOiB1cmwu
cmVwbGFjZSgvLipcLy8sICIiKTsKLSAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gZG9jdW1l
bnQuZXZhbHVhdGUoImFuY2VzdG9yOjp0ci90ZFtwb3NpdGlvbigpPTNdIiwgdXJscy5zbmFwc2hv
dEl0ZW0oaSksIG51bGwsIFhQYXRoUmVzdWx0LlNUUklOR19UWVBFLCBudWxsKTsKLSAgICAgICAg
ICAgICAgICB2YXIgb3V0cHV0U3RhdHVzID0gc3RhdHVzLnN0cmluZ1ZhbHVlOwotICAgICAgICAg
ICAgICAgIC8vIFRydW5jYXRlIHRoZSBzdGF0dXMgc3RyaW5nIG9uIGZhaWx1cmUsIHNpbmNlIHRo
ZSBkZXNjcmlwdGlvbiBmb2xsb3dpbmcgIihmYWlsZWQpIiBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQu
Ci0gICAgICAgICAgICAgICAgaWYgKG91dHB1dFN0YXR1cy5zdGFydHNXaXRoKCIoZmFpbGVkKSIp
KQotICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdGF0dXMgPSAiKGZhaWxlZCkiOwotICAgICAg
ICAgICAgICAgIG91dHB1dFN0cmluZ3MucHVzaCh1cmxGcmFnbWVudCArICI6ICIgKyBvdXRwdXRT
dGF0dXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIG91dHB1dFN0cmluZ3Mu
c29ydCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChvdXRwdXRTdHJpbmdzKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBvblJlcXVlc3RGaW5pc2hlZChyZXF1ZXN0KQotICAgIHsKLSAgICAgICAgaWYgKCFyZXF1
ZXN0c1RvV2F0Y2gudGVzdChyZXF1ZXN0LnVybCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGlmICgrK3NlZW5SZXF1ZXN0cyA9PT0gMykKLSAgICAgICAgICAgIGR1bXBSZXF1ZXN0cygp
OwotICAgIH0KLQotICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlcXVlc3RGaW5pc2hl
ZCwgb25SZXF1ZXN0RmluaXNoZWQpOwotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoIm5ldHdv
cmsiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2FkUmVzb3VyY2VzKCki
KTsKLX0KLQotZnVuY3Rpb24gYWRkU2NyaXB0RWxlbWVudChzcmMpCi17Ci0gICAgdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICBlbGVtZW50LnNyYyA9
IHNyYzsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotfQotCi1mdW5j
dGlvbiBsb2FkUmVzb3VyY2VzKCkKLXsKLSAgICBhZGRTY3JpcHRFbGVtZW50KCIuLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrLXRlc3QuanMiKTsKLSAgICBhZGRTY3JpcHRFbGVtZW50KCJu
b24tZXhpc3RlbnQtZmlsZS5qcyIpOwotICAgIGFkZFNjcmlwdEVsZW1lbnQoImRhdGE6YXBwbGlj
YXRpb24vamF2YXNjcmlwdCx2YXIgeCA9IDA7Iik7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhcy1wcm9maWxlci10ZXN0LmpzIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhcy1wcm9maWxlci10ZXN0LmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjJlYWVhMTEyNGE5MzA2ZjA1MzE2ZGM3ZDA4
NzViYjNmMGFkYjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMtcHJvZmlsZXItdGVzdC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi12YXIgaW5pdGlhbGl6ZV9DYW52YXNX
ZWJHTFByb2ZpbGVyVGVzdCA9IGZ1bmN0aW9uKCkgewotCi1JbnNwZWN0b3JUZXN0LmVuYWJsZUNh
bnZhc0FnZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCi17Ci0gICAgdmFyIGRpc3BhdGNoZXIgPSBJ
bnNwZWN0b3JCYWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siQ2FudmFzIl07Ci0gICAgaWYgKCFk
aXNwYXRjaGVyKSB7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDYW52YXNEaXNw
YXRjaGVyKHsKLSAgICAgICAgICAgIGNvbnRleHRDcmVhdGVkOiBmdW5jdGlvbigpIHt9LAotICAg
ICAgICAgICAgdHJhY2VMb2dzUmVtb3ZlZDogZnVuY3Rpb24oKSB7fQotICAgICAgICB9KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBjYW52YXNBZ2VudEVuYWJsZWQoZXJyb3IpCi0gICAgewotICAg
ICAgICBpZiAoIWVycm9yKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxs
YmFjaykoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRkFJTEVEIHRvIGVuYWJsZSBDYW52YXNBZ2VudDogIiArIGVycm9yKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
dHJ5IHsKLSAgICAgICAgQ2FudmFzQWdlbnQuZW5hYmxlKGNhbnZhc0FnZW50RW5hYmxlZCk7Ci0g
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXhjZXB0
aW9uIHdoaWxlIGVuYWJsaW5nIENhbnZhc0FnZW50OiAiICsgZSk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5kaXNhYmxl
Q2FudmFzQWdlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKLXsKLSAgICBmdW5jdGlvbiBjYW52YXNB
Z2VudERpc2FibGVkKGVycm9yKQotICAgIHsKLSAgICAgICAgaWYgKCFlcnJvcikKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spKCk7Ci0gICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRCB0byBkaXNhYmxlIENh
bnZhc0FnZW50OiAiICsgZXJyb3IpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICB0cnkgewotICAgICAgICBDYW52YXNBZ2Vu
dC5kaXNhYmxlKGNhbnZhc0FnZW50RGlzYWJsZWQpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4Y2VwdGlvbiB3aGlsZSBkaXNhYmxpbmcgQ2Fu
dmFzQWdlbnQ6ICIgKyBlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LSAgICB9Ci19OwotCi1JbnNwZWN0b3JUZXN0LmR1bXBUcmFjZUxvZ0NhbGwgPSBmdW5jdGlvbihj
YWxsLCBpbmRlbnQpCi17Ci0gICAgaW5kZW50ID0gaW5kZW50IHx8ICIiOwotICAgIGZ1bmN0aW9u
IGZvcm1hdFNvdXJjZVVSTCh1cmwpCi0gICAgewotICAgICAgICByZXR1cm4gdXJsID8gIlwiIiAr
IHVybC5yZXBsYWNlKC9eLipcLyhbXlwvXSspXC8/JC8sICIkMSIpICsgIlwiIiA6ICJudWxsIjsK
LSAgICB9Ci0gICAgdmFyIGFyZ3MgPSAoY2FsbC5hcmd1bWVudHMgfHwgW10pLm1hcChmdW5jdGlv
bihhcmcpIHsKLSAgICAgICAgcmV0dXJuIGFyZy5kZXNjcmlwdGlvbjsKLSAgICB9KTsKLSAgICB2
YXIgcHJvcGVydGllcyA9IFsKLSAgICAgICAgIntDYWxsfSIsCi0gICAgICAgIGNhbGwuZnVuY3Rp
b25OYW1lID8gImZ1bmN0aW9uTmFtZTpcIiIgKyBjYWxsLmZ1bmN0aW9uTmFtZSArICJcIiIgOiAi
IiwKLSAgICAgICAgY2FsbC5hcmd1bWVudHMgPyAiYXJndW1lbnRzOlsiICsgYXJncy5qb2luKCIs
IikgKyAiXSIgOiAiIiwKLSAgICAgICAgY2FsbC5yZXN1bHQgPyAicmVzdWx0OiIgKyBjYWxsLnJl
c3VsdC5kZXNjcmlwdGlvbiA6ICIiLAotICAgICAgICBjYWxsLnByb3BlcnR5ID8gInByb3BlcnR5
OlwiIiArIGNhbGwucHJvcGVydHkgKyAiXCIiIDogIiIsCi0gICAgICAgIGNhbGwudmFsdWUgPyAi
dmFsdWU6IiArIGNhbGwudmFsdWUuZGVzY3JpcHRpb24gOiAiIiwKLSAgICAgICAgY2FsbC5pc0Ry
YXdpbmdDYWxsID8gImlzRHJhd2luZ0NhbGw6dHJ1ZSIgOiAiIiwKLSAgICAgICAgY2FsbC5pc0Zy
YW1lRW5kQ2FsbCA/ICJpc0ZyYW1lRW5kQ2FsbDp0cnVlIiA6ICIiLAotICAgICAgICAic291cmNl
VVJMOiIgKyBmb3JtYXRTb3VyY2VVUkwoY2FsbC5zb3VyY2VVUkwpLAotICAgICAgICAibGluZU51
bWJlcjoiICsgY2FsbC5saW5lTnVtYmVyLAotICAgICAgICAiY29sdW1uTnVtYmVyOiIgKyBjYWxs
LmNvbHVtbk51bWJlcgotICAgIF07Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoaW5kZW50
ICsgcHJvcGVydGllcy5maWx0ZXIoQm9vbGVhbikuam9pbigiICAiKSk7Ci19OwotCi1JbnNwZWN0
b3JUZXN0LmR1bXBUcmFjZUxvZyA9IGZ1bmN0aW9uKHRyYWNlTG9nLCBpbmRlbnQpCi17Ci0gICAg
aW5kZW50ID0gaW5kZW50IHx8ICIiOwotICAgIHZhciBjYWxscyA9IHRyYWNlTG9nLmNhbGxzOwot
ICAgIHZhciBwcm9wZXJ0aWVzID0gWwotICAgICAgICAie1RyYWNlTG9nfSIsCi0gICAgICAgICJh
bGl2ZToiICsgISF0cmFjZUxvZy5hbGl2ZSwKLSAgICAgICAgInN0YXJ0T2Zmc2V0OiIgKyAodHJh
Y2VMb2cuc3RhcnRPZmZzZXQgfHwgMCksCi0gICAgICAgICIjY2FsbHM6IiArIHRyYWNlTG9nLnRv
dGFsQXZhaWxhYmxlQ2FsbHMKLSAgICBdOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGlu
ZGVudCArIHByb3BlcnRpZXMuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAgIikpOwotICAgIGZvciAo
dmFyIGkgPSAwLCBuID0gY2FsbHMubGVuZ3RoOyBpIDwgbjsgKytpKQotICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBUcmFjZUxvZ0NhbGwoY2FsbHNbaV0sIGluZGVudCArICIgICIpOwotfTsKLQot
fTsKLQotZnVuY3Rpb24gY3JlYXRlV2ViR0xDb250ZXh0KG9wdF9jYW52YXMpCi17Ci0gICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0V2ViR0xFbmFibGVkIiwgIjEiKTsKLQotICAgIHZhciBjYW52YXMgPSBvcHRfY2Fu
dmFzIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwotICAgIHZhciBjb250ZXh0
SWRzID0gWyJleHBlcmltZW50YWwtd2ViZ2wiLCAid2Via2l0LTNkIiwgIjNkIl07Ci0gICAgZm9y
ICh2YXIgaSA9IDAsIGNvbnRleHRJZDsgY29udGV4dElkID0gY29udGV4dElkc1tpXTsgKytpKSB7
Ci0gICAgICAgIHZhciBnbCA9IGNhbnZhcy5nZXRDb250ZXh0KGNvbnRleHRJZCk7Ci0gICAgICAg
IGlmIChnbCkKLSAgICAgICAgICAgIHJldHVybiBnbDsKLSAgICB9Ci0gICAgcmV0dXJuIG51bGw7
Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNhbnZhczJEQ29udGV4dChvcHRfY2FudmFzKQotewotICAg
IHZhciBjYW52YXMgPSBvcHRfY2FudmFzIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZh
cyIpOwotICAgIHJldHVybiBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLX0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5z
dHJ1bWVudGVkLWNhbnZhc2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIxZDc3MDNjYjMxYmU5OTQ4
ZjhjMmNlYzUzODI4MjEzZWNmNWIyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2Fu
dmFzLWhhcy11bmluc3RydW1lbnRlZC1jYW52YXNlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw2ICswLDAgQEAKLVRlc3RzIENhbnZhcyBoYXNVbmluc3RydW1lbnRlZENhbnZhc2Vz
IHByb3RvY29sIG1ldGhvZC4KLQotQnVnIDEwNTcyMQotaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNl
czogZmFsc2UKLWhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXM6IHRydWUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0
cnVtZW50ZWQtY2FudmFzZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9j
YW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhMjZhODZhNjIwZGVlMzdmMjYzOTFkYzA1NTdjMzlkNTc0
NDdhNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVt
ZW50ZWQtY2FudmFzZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vY2FudmFz
LXByb2ZpbGVyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotdmFyIGNhbnZhczsKLQot
ZnVuY3Rpb24gY3JlYXRlQ2FudmFzRWxlbWVudCgpCi17Ci0gICAgY2FudmFzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gICAgY29uc29sZS5hc3NlcnQoY2FudmFzLCAiRmFp
bGVkIHRvIGNyZWF0ZSBhIGNhbnZhcyBlbGVtZW50Iik7Ci19Ci0KLWZ1bmN0aW9uIGdldENhbnZh
c0NvbnRleHQoKQotewotICAgIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7
Ci0gICAgY29uc29sZS5hc3NlcnQoY29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgYSBjYW52YXMg
Y29udGV4dCIpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5Db25zb2xlKCJjcmVhdGVDYW52YXNFbGVtZW50KCkiLCBzdGVwMSk7Ci0gICAgZnVu
Y3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5lbmFibGVDYW52YXNB
Z2VudChzdGVwMik7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAg
IENhbnZhc0FnZW50Lmhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoaGFzVW5pbnN0cnVtZW50ZWRD
YW52YXNlc0NhbGxiYWNrMSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGhhc1VuaW5zdHJ1bWVudGVk
Q2FudmFzZXNDYWxsYmFjazEoZXJyb3IsIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzOiAiICsgcmVzdWx0KTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJvciwgIlVuZXhwZWN0ZWQgZXJy
b3IiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZmFsc2UsIHJlc3VsdCwg
IlRoZXJlIHNob3VsZCBiZSBubyB1bmluc3RydW1lbnRlZCBjYW52YXNlcyIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmRpc2FibGVDYW52YXNBZ2VudChzdGVwMyk7Ci0gICAgfQotICAgIGZ1bmN0
aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNv
bGUoImdldENhbnZhc0NvbnRleHQoKSIsIHN0ZXA0KTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gc3Rl
cDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5lbmFibGVDYW52YXNBZ2VudChzdGVw
NSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIENhbnZhc0Fn
ZW50Lmhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0Nh
bGxiYWNrMik7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXND
YWxsYmFjazIoZXJyb3IsIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzOiAiICsgcmVzdWx0KTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJvciwgIlVuZXhwZWN0ZWQgZXJyb3IiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgcmVzdWx0LCAiVGhlcmUgaXMg
YW4gdW5pbnN0cnVtZW50ZWQgY2FudmFzISIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIENhbnZhcyBoYXNVbmluc3RydW1lbnRlZENhbnZhc2Vz
IHByb3RvY29sIG1ldGhvZC4KLTwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDU3MjEiPkJ1ZyAxMDU3MjE8L2E+Ci0KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9j
YW52YXMtcmVwbGF5LWxvZy1ncmlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtcmVwbGF5LWxvZy1ncmlkLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZlMjU1YzQ0MmI1M2Q0ZDlmOWIzNjA0MDY1
OTk5MzZlMGMxNTY5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXJlcGxh
eS1sb2ctZ3JpZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1U
ZXN0cyByZXBsYXkgbG9nIGdyaWQuCi0KLUJ1ZyAxMDk1OTIgCi0KLVRvdGFsIGZyYW1lczogMgot
VG90YWwgZHJhdyBjYWxsIGdyb3VwczogNQotVG90YWwgY2FsbHM6IDMwCi1Ub3RhbCBncmlkIG5v
ZGVzOiAzNwotCi1UZXN0aW5nIFJlcGxheUZpcnN0U3RlcENsaWNrCi1UZXN0aW5nIFJlcGxheU5l
eHRTdGVwQ2xpY2sKLVRlc3RpbmcgUmVwbGF5UHJldmlvdXNTdGVwQ2xpY2sKLVRlc3RpbmcgUmVw
bGF5TmV4dERyYXdpbmdDYWxsQ2xpY2sgc3RhcnRpbmcgb24gYSBmcmFtZSBub2RlCi1UZXN0aW5n
IFJlcGxheVByZXZpb3VzRHJhd2luZ0NhbGxDbGljayBzdGFydGluZyBvbiBhIGZyYW1lIG5vZGUK
LVRlc3RpbmcgUmVwbGF5TmV4dERyYXdpbmdDYWxsQ2xpY2sgc3RhcnRpbmcgb24gYSBkcmF3IGNh
bGwgZ3JvdXAKLVRlc3RpbmcgUmVwbGF5UHJldmlvdXNEcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5n
IG9uIGEgY2FsbCBub2RlCi1UZXN0aW5nIFJlcGxheU5leHREcmF3aW5nQ2FsbENsaWNrIHN0YXJ0
aW5nIG9uIGEgY2FsbCBub2RlCi0KLSAgIHwgICAgICAgICAgICAgICAgICAgRnJhbWUgIzEgfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8Ci0gICB8ICAgICAgICAgRHJhdyBjYWxs
IGdyb3VwICMxIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAotIDEgfCAgICAg
ICAgICAgICAgICAgICAgIHNhdmUoKSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyNiB8
IHwKLSAyIHwgICAgICAgICAgICAgICAgYmVnaW5QYXRoKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1n
cmlkLmh0bWw6MjcgfCB8Ci0gMyB8ICAgICAgIHJlY3QoMCwgMCwgMTAwLCAxMDApIHwgY2FudmFz
LXJlcGxheS1sb2ctZ3JpZC5odG1sOjI4IHwgfAotIDQgfCAgICBjb250ZXh0LmZpbGxTdHlsZSA9
IHJlZCB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyOSB8IHwKLSA1IHwgICAgICAgICAg
ICAgICAgICAgICBmaWxsKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MzAgfCB8Ci0g
ICB8ICAgICAgICAgRHJhdyBjYWxsIGdyb3VwICMyIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgfAotIDYgfCAgICAgICAgICAgICAgICAgIHJlc3RvcmUoKSB8IGNhbnZhcy1yZXBs
YXktbG9nLWdyaWQuaHRtbDozMSB8IHwKLSA3IHwgICAgICAgICAgICAgICAgICAgICBzYXZlKCkg
fCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MjYgfCB8Ci0gOCB8ICAgICAgICAgICAgICAg
IGJlZ2luUGF0aCgpIHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjI3IHwgfAotIDkgfCAg
ICAgICAgIHJlY3QoNSwgNSwgOTUsIDk1KSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoy
OCB8IHwKLTEwIHwgIGNvbnRleHQuZmlsbFN0eWxlID0gZ3JlZW4gfCBjYW52YXMtcmVwbGF5LWxv
Zy1ncmlkLmh0bWw6MjkgfCB8Ci0xMSB8ICAgICAgICAgICAgICAgICAgICAgZmlsbCgpIHwgY2Fu
dmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjMwIHwgfAotMTIgfCAgICAgICAgICAgICAgICAgIHJl
c3RvcmUoKSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDozMSB8IHwKLSAgIHwgICAgICAg
ICAgICAgICAgICAgRnJhbWUgIzIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8
Ci0gICB8ICAgICAgICAgRHJhdyBjYWxsIGdyb3VwICMzIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgfAotMTMgfCAgICAgICAgICAgICAgICAgICAgIHNhdmUoKSB8IGNhbnZhcy1y
ZXBsYXktbG9nLWdyaWQuaHRtbDoyNiB8IHwKLTE0IHwgICAgICAgICAgICAgICAgYmVnaW5QYXRo
KCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MjcgfCB8Ci0xNSB8ICAgICAgIHJlY3Qo
MTAsIDEwLCA5MCwgOTApIHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjI4IHwgfAotMTYg
fCAgIGNvbnRleHQuZmlsbFN0eWxlID0gYmx1ZSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRt
bDoyOSB8IHwKLTE3IHwgICAgICAgICAgICAgICAgICAgICBmaWxsKCkgfCBjYW52YXMtcmVwbGF5
LWxvZy1ncmlkLmh0bWw6MzAgfCB8Ci0gICB8ICAgICAgICAgRHJhdyBjYWxsIGdyb3VwICM0IHwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAotMTggfCAgICAgICAgICAgICAgICAg
IHJlc3RvcmUoKSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDozMSB8IHwKLTE5IHwgICAg
ICAgICAgICAgICAgICAgICBzYXZlKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MjYg
fCB8Ci0yMCB8ICAgICAgICAgICAgICAgIGJlZ2luUGF0aCgpIHwgY2FudmFzLXJlcGxheS1sb2ct
Z3JpZC5odG1sOjI3IHwgfAotMjEgfCAgICAgICByZWN0KDE1LCAxNSwgODUsIDg1KSB8IGNhbnZh
cy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyOCB8IHwKLTIyIHwgY29udGV4dC5maWxsU3R5bGUgPSB5
ZWxsb3cgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MjkgfCB8Ci0yMyB8ICAgICAgICAg
ICAgICAgICAgICAgZmlsbCgpIHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjMwIHwgfAot
ICAgfCAgICAgICAgIERyYXcgY2FsbCBncm91cCAjNSB8ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IHwKLTI0IHwgICAgICAgICAgICAgICAgICByZXN0b3JlKCkgfCBjYW52YXMtcmVw
bGF5LWxvZy1ncmlkLmh0bWw6MzEgfCB8Ci0yNSB8ICAgICAgICAgICAgICAgICAgICAgc2F2ZSgp
IHwgY2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sOjI2IHwgfAotMjYgfCAgICAgICAgICAgICAg
ICBiZWdpblBhdGgoKSB8IGNhbnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDoyNyB8IHwKLTI3IHwg
ICAgICAgcmVjdCgyMCwgMjAsIDgwLCA4MCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6
MjggfCB8Ci0yOCB8ICBjb250ZXh0LmZpbGxTdHlsZSA9IGJsYWNrIHwgY2FudmFzLXJlcGxheS1s
b2ctZ3JpZC5odG1sOjI5IHwgfAotMjkgfCAgICAgICAgICAgICAgICAgICAgIGZpbGwoKSB8IGNh
bnZhcy1yZXBsYXktbG9nLWdyaWQuaHRtbDozMCB8IHwKLTMwIHwgICAgICAgICAgICAgICAgICBy
ZXN0b3JlKCkgfCBjYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWw6MzEgfCB8Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtcmVwbGF5
LWxvZy1ncmlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQv
Y2FudmFzLXJlcGxheS1sb2ctZ3JpZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwODM3NTBjOTRhNjU5ZDVjNDYwMmMxMzIxNzg4NDg1ODY1ZjNhOWU2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9jYW52YXMyZC9jYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyMzggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52YXMtcHJvZmlsZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotCi12YXIgY2FudmFzOwotdmFyIGNvbnRleHQ7Ci12YXIgcm91bmQgPSAwOwotdmFy
IGNvbG9ycyA9IFsicmVkIiwgImdyZWVuIiwgImJsdWUiLCAieWVsbG93IiwgImJsYWNrIl07Ci0K
LWZ1bmN0aW9uIGNyZWF0ZUNhbnZhc0NvbnRleHQoKQotewotICAgIGNhbnZhcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLSAgICBjb250ZXh0ID0gY2FudmFzLmdldENvbnRl
eHQoIjJkIik7Ci0gICAgY29uc29sZS5hc3NlcnQoY29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUg
YSBjYW52YXMgY29udGV4dCIpOwotfQotCi1mdW5jdGlvbiBkb1NvbWVDYW52YXNDYWxscyhyZXBl
YXRzKQotewotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgY3JlYXRlQ2FudmFzQ29udGV4dCgp
OwotICAgIHJlcGVhdHMgPSByZXBlYXRzIHx8IDE7Ci0gICAgd2hpbGUgKHJlcGVhdHMtLSA+IDAp
IHsKLSAgICAgICAgdmFyIG9mZnNldCA9IDUgKiByb3VuZDsKLSAgICAgICAgY29udGV4dC5zYXZl
KCk7Ci0gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7Ci0gICAgICAgIGNvbnRleHQucmVjdChv
ZmZzZXQsIG9mZnNldCwgMTAwIC0gb2Zmc2V0LCAxMDAgLSBvZmZzZXQpOwotICAgICAgICBjb250
ZXh0LmZpbGxTdHlsZSA9IGNvbG9yc1tyb3VuZCAlIGNvbG9ycy5sZW5ndGhdOwotICAgICAgICBj
b250ZXh0LmZpbGwoKTsKLSAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7Ci0gICAgICAgICsrcm91
bmQ7Ci0gICAgfQotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBGSVhNRTogUmVtb3Zl
IG9uY2UgdGFrZW4gb3V0IG9mIGV4cGVyaW1lbnRzLgotICAgIFdlYkluc3BlY3Rvci5leHBlcmlt
ZW50c1NldHRpbmdzLmNhbnZhc0luc3BlY3Rpb24gPSB7fTsKLSAgICBXZWJJbnNwZWN0b3IuZXhw
ZXJpbWVudHNTZXR0aW5ncy5jYW52YXNJbnNwZWN0aW9uLmlzRW5hYmxlZCA9IGZ1bmN0aW9uKCkg
eyByZXR1cm4gdHJ1ZTsgfTsKLQotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVz
Iik7Ci0gICAgdmFyIHByb2ZpbGVzUGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVz
OwotICAgIHZhciBwcm9maWxlVHlwZSA9IHByb2ZpbGVzUGFuZWwuZ2V0UHJvZmlsZVR5cGUoV2Vi
SW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVUeXBlLlR5cGVJZCk7Ci0gICAgcHJvZmlsZXNQYW5lbC5f
b25Qcm9maWxlVHlwZVNlbGVjdGVkKHtkYXRhOiBwcm9maWxlVHlwZX0pOwotCi0gICAgSW5zcGVj
dG9yVGVzdC5vdmVycmlkZShwcm9maWxlVHlwZSwgIl9pc1NpbmdsZUZyYW1lTW9kZSIsIGZ1bmN0
aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0sIHRydWUgLypzdGlja3kqLyk7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVUeXBlLCAiX2RpZFN0YXJ0Q2FwdHVyaW5nRnJhbWUiLCBk
aWRTdGFydENhcHR1cmluZ0ZyYW1lKTsKLSAgICBwcm9maWxlc1BhbmVsLnRvZ2dsZVJlY29yZEJ1
dHRvbigpOwotCi0gICAgdmFyIHByb2ZpbGVIZWFkZXI7Ci0gICAgdmFyIHByb2ZpbGVWaWV3Owot
ICAgIHZhciBkYXRhR3JpZDsKLQotICAgIGZ1bmN0aW9uIGRpZFN0YXJ0Q2FwdHVyaW5nRnJhbWUo
ZnJhbWVJZCwgZXJyb3IsIHRyYWNlTG9nSWQpCi0gICAgewotICAgICAgICBwcm9maWxlSGVhZGVy
ID0gcHJvZmlsZVR5cGUuZ2V0UHJvZmlsZXMoKVswXQotICAgICAgICBwcm9maWxlc1BhbmVsLl9z
aG93UHJvZmlsZShwcm9maWxlSGVhZGVyKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKHByb2ZpbGVIZWFkZXIsICJfdXBkYXRlQ2FwdHVyaW5nU3RhdHVzIiwgZGlkUmVjZWl2ZUZp
cnN0RnJhbWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJkb1Nv
bWVDYW52YXNDYWxscygyKSIpOwotICAgIH0KLSAgICBmdW5jdGlvbiBkaWRSZWNlaXZlRmlyc3RG
cmFtZSh0cmFjZUxvZykKLSAgICB7Ci0gICAgICAgIGlmICghdHJhY2VMb2cgfHwgdHJhY2VMb2cu
Y2FsbHMubGVuZ3RoIDwgMikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KHByb2ZpbGVIZWFkZXIsICJfdXBkYXRlQ2FwdHVyaW5nU3RhdHVzIiwgZGlkUmVjZWl2ZUZpcnN0
RnJhbWUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImRvU29tZUNhbnZhc0NhbGxzKDMpIiwgZGlkU2Vjb25k
RnJhbWVDYWxscyk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGRpZFNlY29uZEZyYW1lQ2FsbHMoKQot
ICAgIHsKLSAgICAgICAgcHJvZmlsZVZpZXcgPSBwcm9maWxlc1BhbmVsLnZpc2libGVWaWV3Owot
ICAgICAgICBkYXRhR3JpZCA9IHByb2ZpbGVWaWV3Ll9sb2dHcmlkOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoQ2FudmFzQWdlbnQsICJyZXBsYXlUcmFjZUxvZyIsIG9uUmVwbGF5
VHJhY2VMb2cpOwotICAgICAgICBwcm9maWxlc1BhbmVsLnRvZ2dsZVJlY29yZEJ1dHRvbigpOwot
ICAgIH0KLSAgICBmdW5jdGlvbiBvblJlcGxheVRyYWNlTG9nKHRyYWNlTG9nSWQsIGluZGV4KQot
ICAgIHsKLSAgICAgICAgdGVzdENvbnRyb2xCdXR0b25zKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICBkdW1wVGFibGVEYXRhKGRhdGFHcmlkLmVsZW1l
bnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotCi0g
ICAgZnVuY3Rpb24gdGVzdENvbnRyb2xCdXR0b25zKCkKLSAgICB7Ci0gICAgICAgIHZhciByb290
Tm9kZSA9IGRhdGFHcmlkLnJvb3ROb2RlKCk7Ci0gICAgICAgIHZhciBmcmFtZU5vZGVzID0gW107
Ci0gICAgICAgIHZhciBkcmF3Q2FsbEdyb3VwcyA9IFtdOwotICAgICAgICB2YXIgbm9kZXMgPSBb
XTsKLSAgICAgICAgdmFyIGFsbE5vZGVzRmxhdCA9IFtdOwotCi0gICAgICAgIGZyYW1lTm9kZXMg
PSBmcmFtZU5vZGVzLmNvbmNhdChyb290Tm9kZS5jaGlsZHJlbik7Ci0gICAgICAgIGZyYW1lTm9k
ZXMuZm9yRWFjaChmdW5jdGlvbihmcmFtZU5vZGUpIHsKLSAgICAgICAgICAgIGRyYXdDYWxsR3Jv
dXBzID0gZHJhd0NhbGxHcm91cHMuY29uY2F0KGZyYW1lTm9kZS5jaGlsZHJlbik7Ci0gICAgICAg
IH0pOwotICAgICAgICBkcmF3Q2FsbEdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGRyYXdDYWxsR3Jv
dXApIHsKLSAgICAgICAgICAgIG5vZGVzID0gbm9kZXMuY29uY2F0KGRyYXdDYWxsR3JvdXAuY2hp
bGRyZW4pOwotICAgICAgICB9KTsKLSAgICAgICAgZm9yICh2YXIgbm9kZSA9IHJvb3ROb2RlOyBu
b2RlOyBub2RlID0gbm9kZS50cmF2ZXJzZU5leHROb2RlKGZhbHNlKSkgewotICAgICAgICAgICAg
aWYgKG5vZGUgIT09IHJvb3ROb2RlKQotICAgICAgICAgICAgICAgIGFsbE5vZGVzRmxhdC5wdXNo
KG5vZGUpOwotICAgICAgICB9Ci0gICAgICAgIGFsbE5vZGVzRmxhdC5mb3JFYWNoKGZ1bmN0aW9u
KG5vZGUpIHsKLSAgICAgICAgICAgIG5vZGUudG9TdHJpbmcgPSBmdW5jdGlvbigpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJOb2RleyIgKyB0aGlzLmVsZW1lbnQudGV4
dENvbnRlbnQgKyAifSI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlRvdGFsIGZyYW1lczogIiArIGZyYW1lTm9kZXMubGVuZ3RoKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlRvdGFsIGRyYXcgY2FsbCBncm91cHM6ICIgKyBkcmF3Q2FsbEdy
b3Vwcy5sZW5ndGgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVG90YWwgY2Fs
bHM6ICIgKyBub2Rlcy5sZW5ndGgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
VG90YWwgZ3JpZCBub2RlczogIiArIGFsbE5vZGVzRmxhdC5sZW5ndGgpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoZnJhbWVOb2Rlcy5wZWVrTGFzdCgpLCBkYXRhR3JpZC5zZWxlY3RlZE5vZGUsICJFeHBl
Y3RlZCBsYXN0IGZyYW1lIG5vZGUgYmVmb3JlIHRlc3RpbmcgY29udHJvbCBidXR0b25zIik7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3RpbmcgUmVwbGF5Rmlyc3RTdGVw
Q2xpY2siKTsKLSAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5Rmlyc3RTdGVwQ2xpY2soKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZnJhbWVOb2Rlc1swXSwgZGF0YUdy
aWQuc2VsZWN0ZWROb2RlKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVz
dGluZyBSZXBsYXlOZXh0U3RlcENsaWNrIik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwg
YWxsTm9kZXNGbGF0Lmxlbmd0aCArIDU7ICsraSkgewotICAgICAgICAgICAgcHJvZmlsZVZpZXcu
X29uUmVwbGF5U3RlcENsaWNrKHRydWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoYWxsTm9kZXNGbGF0W2ldIHx8IGFsbE5vZGVzRmxhdC5wZWVrTGFzdCgpLCBkYXRh
R3JpZC5zZWxlY3RlZE5vZGUsICJlcnJvciBvbiBpbmRleCAiICsgaSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdGluZyBSZXBsYXlQcmV2aW91c1N0
ZXBDbGljayIpOwotICAgICAgICBmb3IgKHZhciBpID0gYWxsTm9kZXNGbGF0Lmxlbmd0aCAtIDI7
IGkgPj0gLTU7IC0taSkgewotICAgICAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5U3RlcENs
aWNrKGZhbHNlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGFsbE5v
ZGVzRmxhdFtpXSB8fCBhbGxOb2Rlc0ZsYXRbMF0sIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgImVy
cm9yIG9uIGluZGV4ICIgKyBpKTsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJUZXN0aW5nIFJlcGxheU5leHREcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5nIG9u
IGEgZnJhbWUgbm9kZSIpOwotICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGZyYW1lTm9kZXMu
bGVuZ3RoICsgNTsgKytpKSB7Ci0gICAgICAgICAgICBwcm9maWxlVmlldy5fb25SZXBsYXlEcmF3
aW5nQ2FsbENsaWNrKHRydWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoZnJhbWVOb2Rlc1tpXSB8fCBhbGxOb2Rlc0ZsYXQucGVla0xhc3QoKSwgZGF0YUdyaWQuc2Vs
ZWN0ZWROb2RlLCAiZXJyb3Igb24gaW5kZXggIiArIGkpOwotICAgICAgICB9Ci0KLSAgICAgICAg
ZnJhbWVOb2Rlcy5wZWVrTGFzdCgpLnJldmVhbEFuZFNlbGVjdCgpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyhmcmFtZU5vZGVzLnBlZWtMYXN0KCksIGRhdGFHcmlkLnNlbGVj
dGVkTm9kZSwgIkV4cGVjdGVkIHRvIHNlbGVjdCBsYXN0IGZyYW1lIG5vZGUiKTsKLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdGluZyBSZXBsYXlQcmV2aW91c0RyYXdpbmdD
YWxsQ2xpY2sgc3RhcnRpbmcgb24gYSBmcmFtZSBub2RlIik7Ci0gICAgICAgIGZvciAodmFyIGkg
PSBmcmFtZU5vZGVzLmxlbmd0aCAtIDI7IGkgPj0gLTU7IC0taSkgewotICAgICAgICAgICAgcHJv
ZmlsZVZpZXcuX29uUmVwbGF5RHJhd2luZ0NhbGxDbGljayhmYWxzZSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmcmFtZU5vZGVzW2ldIHx8IGZyYW1lTm9kZXNbMF0s
IGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgImVycm9yIG9uIGluZGV4ICIgKyBpKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHByb2ZpbGVWaWV3Ll9vblJlcGxheVN0ZXBDbGljayh0cnVlKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZHJhd0NhbGxHcm91cHNbMF0sIGRhdGFHcmlk
LnNlbGVjdGVkTm9kZSwgIkV4cGVjdGVkIHRvIG1vdmUgdG8gdGhlIGZpcnN0IGRyYXcgY2FsbCBn
cm91cCIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIFJlcGxh
eU5leHREcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5nIG9uIGEgZHJhdyBjYWxsIGdyb3VwIik7Ci0g
ICAgICAgIHZhciBleHBlY3RlZCA9IFtkcmF3Q2FsbEdyb3Vwc1sxXSwgZnJhbWVOb2Rlc1sxXSwg
YWxsTm9kZXNGbGF0LnBlZWtMYXN0KCldOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4
cGVjdGVkLmxlbmd0aCArIDU7ICsraSkgewotICAgICAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVw
bGF5RHJhd2luZ0NhbGxDbGljayh0cnVlKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKGV4cGVjdGVkW2ldIHx8IGV4cGVjdGVkLnBlZWtMYXN0KCksIGRhdGFHcmlkLnNl
bGVjdGVkTm9kZSwgImVycm9yIG9uIGluZGV4ICIgKyBpKTsKLSAgICAgICAgfQotCi0gICAgICAg
IHByb2ZpbGVWaWV3Ll9vblJlcGxheUxhc3RTdGVwQ2xpY2soKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRFcXVhbHMoYWxsTm9kZXNGbGF0LnBlZWtMYXN0KCksIGRhdGFHcmlkLnNlbGVj
dGVkTm9kZSwgIkV4cGVjdGVkIHRvIG1vdmUgdG8gdGhlIGxhc3QgY2FsbCIpOwotCi0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIFJlcGxheVByZXZpb3VzRHJhd2luZ0Nh
bGxDbGljayBzdGFydGluZyBvbiBhIGNhbGwgbm9kZSIpOwotICAgICAgICB2YXIgZXhwZWN0ZWQg
PSBbZnJhbWVOb2Rlc1swXSwgZnJhbWVOb2Rlc1sxXSwgZHJhd0NhbGxHcm91cHNbMl0sIGRyYXdD
YWxsR3JvdXBzWzNdLCBkcmF3Q2FsbEdyb3Vwc1s0XSwgbm9kZXNbMjhdXTsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IGV4cGVjdGVkLmxlbmd0aCAtIDE7IGkgPj0gLTU7IC0taSkgewotICAgICAgICAg
ICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5RHJhd2luZ0NhbGxDbGljayhmYWxzZSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZFtpXSB8fCBleHBlY3RlZFsw
XSwgZGF0YUdyaWQuc2VsZWN0ZWROb2RlLCAiZXJyb3Igb24gaW5kZXggIiArIGkpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgbm9kZXNbMTVdLnJldmVhbEFuZFNlbGVjdCgpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscyhub2Rlc1sxNV0sIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwg
IkV4cGVjdGVkIHRvIHNlbGVjdCBub2RlICMyMCIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJUZXN0aW5nIFJlcGxheU5leHREcmF3aW5nQ2FsbENsaWNrIHN0YXJ0aW5nIG9u
IGEgY2FsbCBub2RlIik7Ci0gICAgICAgIHZhciBleHBlY3RlZCA9IFtub2Rlc1sxNl0sIGRyYXdD
YWxsR3JvdXBzWzNdLCBkcmF3Q2FsbEdyb3Vwc1s0XSwgYWxsTm9kZXNGbGF0LnBlZWtMYXN0KCld
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aCArIDU7ICsraSkg
ewotICAgICAgICAgICAgcHJvZmlsZVZpZXcuX29uUmVwbGF5RHJhd2luZ0NhbGxDbGljayh0cnVl
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkW2ldIHx8
IGV4cGVjdGVkLnBlZWtMYXN0KCksIGRhdGFHcmlkLnNlbGVjdGVkTm9kZSwgImVycm9yIG9uIGlu
ZGV4ICIgKyBpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBUYWJsZURh
dGEodGFibGVFbGVtZW50KQotICAgIHsKLSAgICAgICAgdmFyIHRleHRSb3dzID0gW107Ci0gICAg
ICAgIHZhciB0ZXh0V2lkdGhzID0gW107Ci0gICAgICAgIHZhciByb3dzID0gdGFibGVFbGVtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpOwotICAgICAgICBmb3IgKHZhciBpID0gMCwgcm93
OyByb3cgPSByb3dzW2ldOyArK2kpIHsKLSAgICAgICAgICAgIGlmICghcm93Lm9mZnNldEhlaWdo
dCB8fCAhcm93LnRleHRDb250ZW50KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgdmFyIHRleHRDb2xzID0gW107Ci0gICAgICAgICAgICB2YXIgY29scyA9IHJvdy5nZXRF
bGVtZW50c0J5VGFnTmFtZSgidGQiKTsKLSAgICAgICAgICAgIGZvciAodmFyIGogPSAwLCBjb2w7
IGNvbCA9IGNvbHNbal07ICsraikgewotICAgICAgICAgICAgICAgIGlmICghY29sLm9mZnNldEhl
aWdodCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgdmFy
IGluZGV4ID0gdGV4dENvbHMubGVuZ3RoOwotICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gY29s
LnRleHRDb250ZW50OwotICAgICAgICAgICAgICAgIHRleHRXaWR0aHNbaW5kZXhdID0gTWF0aC5t
YXgodGV4dFdpZHRoc1tpbmRleF0gfHwgMCwgdGV4dC5sZW5ndGgpOwotICAgICAgICAgICAgICAg
IHRleHRDb2xzW2luZGV4XSA9IHRleHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
dGV4dENvbHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRleHRSb3dzLnB1c2godGV4dENvbHMp
OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gYWxpZ25UZXh0KHRleHQsIHdpZHRoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gIiI7Ci0gICAgICAgICAgICB2YXIg
c3BhY2VzID0gd2lkdGggLSB0ZXh0Lmxlbmd0aDsKLSAgICAgICAgICAgIHdoaWxlIChzcGFjZXMt
LSA+IDApCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgIjsKLSAgICAgICAgICAgIHJlc3Vs
dCArPSB0ZXh0OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotCi0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dFJvd3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
ICAgIHZhciBsaW5lID0gIiI7Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRleHRS
b3dzW2ldLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGopCi0gICAgICAgICAg
ICAgICAgICAgIGxpbmUgKz0gIiB8ICI7Ci0gICAgICAgICAgICAgICAgbGluZSArPSBhbGlnblRl
eHQodGV4dFJvd3NbaV1bal0sIHRleHRXaWR0aHNbal0pOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbGluZSArPSAifCI7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChs
aW5lKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHJlcGxheSBsb2cgZ3JpZC4KLTwvcD4KLTxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1OTIiPkJ1
ZyAxMDk1OTI8L2E+Ci08Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJk
L2NhbnZhcy1zdGFjay10cmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXN0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RkNGE3ZTRmZjIyYTkxZjVmNWU1NzBkNWU1YWQzYTJj
NDcxYTI4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXN0YWNrLXRyYWNl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRlc3RzIHN0YWNr
IHRyYWNlcyBpbiB0aGUgQ2FudmFzIFRyYWNlTG9nIHJlc3VsdHMuCi0KLUJ1ZyAxMDc4MDUgCi0K
LXtUcmFjZUxvZ30gIGFsaXZlOnRydWUgIHN0YXJ0T2Zmc2V0OjAgICNjYWxsczo0Ci0gIHtDYWxs
fSAgZnVuY3Rpb25OYW1lOiJiZWdpblBhdGgiICBhcmd1bWVudHM6W10gIHNvdXJjZVVSTDoiY2Fu
dmFzLXN0YWNrLXRyYWNlLmh0bWwiICBsaW5lTnVtYmVyOjE5ICBjb2x1bW5OdW1iZXI6MTMKLSAg
e0NhbGx9ICBmdW5jdGlvbk5hbWU6InJlY3QiICBhcmd1bWVudHM6WzAsMCwxMDAsMTAwXSAgc291
cmNlVVJMOiJjYW52YXMtc3RhY2stdHJhY2UuaHRtbCIgIGxpbmVOdW1iZXI6MjAgIGNvbHVtbk51
bWJlcjoxMwotICB7Q2FsbH0gIHByb3BlcnR5OiJmaWxsU3R5bGUiICB2YWx1ZTpyZWQgIHNvdXJj
ZVVSTDoiY2FudmFzLXN0YWNrLXRyYWNlLmh0bWwiICBsaW5lTnVtYmVyOjIxICBjb2x1bW5OdW1i
ZXI6MjMKLSAge0NhbGx9ICBmdW5jdGlvbk5hbWU6ImZpbGwiICBhcmd1bWVudHM6W10gIGlzRHJh
d2luZ0NhbGw6dHJ1ZSAgaXNGcmFtZUVuZENhbGw6dHJ1ZSAgc291cmNlVVJMOiJjYW52YXMtc3Rh
Y2stdHJhY2UuaHRtbCIgIGxpbmVOdW1iZXI6MjIgIGNvbHVtbk51bWJlcjoxMwotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXN0YWNr
LXRyYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2Fu
dmFzLXN0YWNrLXRyYWNlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMzQx
NDcxZThjZDZhM2QzYjhlMThkNWI1MGM4NTJhNmI2MDg1MTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2NhbnZhczJkL2NhbnZhcy1zdGFjay10cmFjZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSIuLi9jYW52YXMtcHJvZmlsZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12
YXIgY2FudmFzOwotdmFyIGNvbnRleHQ7Ci0KLWZ1bmN0aW9uIGNyZWF0ZUNhbnZhc0NvbnRleHQo
KQotewotICAgIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKLSAg
ICBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAgY29uc29sZS5hc3NlcnQo
Y29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgYSBjYW52YXMgY29udGV4dCIpOwotfQotCi1mdW5j
dGlvbiBkb1NvbWVDYW52YXNDYWxscygpCi17Ci0gICAgY29udGV4dC5iZWdpblBhdGgoKTsKLSAg
ICBjb250ZXh0LnJlY3QoMCwgMCwgMTAwLCAxMDApOwotICAgIGNvbnRleHQuZmlsbFN0eWxlID0g
J3JlZCc7Ci0gICAgY29udGV4dC5maWxsKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciB0cmFjZUxvZ0lkOwotICAgIEluc3BlY3RvclRlc3QuZW5hYmxlQ2FudmFzQWdlbnQoc3Rl
cDEpOwotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJbkNvbnNvbGUoImNyZWF0ZUNhbnZhc0NvbnRleHQoKSIsIHN0ZXAyKTsKLSAgICB9
Ci0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgQ2FudmFzQWdlbnQuc3RhcnRD
YXB0dXJpbmcoZGlkU3RhcnRDYXB0dXJpbmcpOwotICAgIH0KLSAgICBmdW5jdGlvbiBkaWRTdGFy
dENhcHR1cmluZyhlcnJvciwgaWQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dFRydWUoIWVycm9yICYmICEhaWQsICJVbmV4cGVjdGVkIGVycm9yOiAiICsgZXJyb3IpOwotICAg
ICAgICB0cmFjZUxvZ0lkID0gaWQ7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNv
bnNvbGUoImRvU29tZUNhbnZhc0NhbGxzKCkiLCBkaWRTb21lQ2FudmFzQ2FsbHMpOwotICAgIH0K
LSAgICBmdW5jdGlvbiBkaWRTb21lQ2FudmFzQ2FsbHMoKQotICAgIHsKLSAgICAgICAgQ2FudmFz
QWdlbnQuZ2V0VHJhY2VMb2codHJhY2VMb2dJZCwgMCwgdW5kZWZpbmVkLCBkaWRSZWNlaXZlVHJh
Y2VMb2cpOwotICAgIH0KLSAgICBmdW5jdGlvbiBkaWRSZWNlaXZlVHJhY2VMb2coZXJyb3IsIHRy
YWNlTG9nKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJvciAm
JiAhIXRyYWNlTG9nLCAiVW5leHBlY3RlZCBlcnJvcjogIiArIGVycm9yKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBUcmFj
ZUxvZyh0cmFjZUxvZyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPgotVGVzdHMgc3RhY2sgdHJhY2VzIGluIHRoZSBDYW52YXMgVHJhY2VMb2cgcmVzdWx0cy4K
LTwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDc4MDUiPkJ1ZyAxMDc4MDU8L2E+Ci08Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2NhbnZhczJkL2NhbnZhczJkLWFwaS1jaGFuZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1hcGktY2hhbmdlcy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0N2RmNzk4ODViYmE3YWZjMzkx
YzA1OTBmYmFlZjY3ZjNkMmMxNWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZh
czJkLWFwaS1jaGFuZ2VzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBA
QAotVGVzdCB0byBjYXRjaCBDYW52YXMgMkQgQVBJIGNoYW5nZXMuIElmIHRoaXMgdGVzdCBzaG91
bGQgZXZlciBmYWlsLCB3ZSBzaG91bGQgcmUtZXhhbWluZSB0aGUgQ2FudmFzIDJEIHN0YXRlIHNh
dmluZy9yZXN0b3JpbmcgbG9naWMgaW4gdGhlIEluamVjdGVkU2NyaXB0TW9kdWxlIHRvIGluY2x1
ZGUgYW55IGxhdGVzdCBjaGFuZ2VzIHRvIHRoZSBBUEkuCi0KLU5ldyBwcm9wZXJ0aWVzIGFuZCBm
dW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgbWFudWFsbHkgZXhhbWluZWQgKHNob3VsZCBiZSBlbXB0
eSB0byBwYXNzIHRoZSB0ZXN0KToKLU5ldyBwcm9wZXJ0aWVzIGFuZCBmdW5jdGlvbnMgb2YgQ2Fu
dmFzR3JhZGllbnQgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIG1hbnVhbGx5IGV4YW1pbmVkIChzaG91
bGQgYmUgZW1wdHkgdG8gcGFzcyB0aGUgdGVzdCk6Ci1OZXcgcHJvcGVydGllcyBhbmQgZnVuY3Rp
b25zIG9mIENhbnZhc1BhdHRlcm4gb2JqZWN0IHRoYXQgc2hvdWxkIGJlIG1hbnVhbGx5IGV4YW1p
bmVkIChzaG91bGQgYmUgZW1wdHkgdG8gcGFzcyB0aGUgdGVzdCk6Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1hcGktY2hhbmdl
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJk
LWFwaS1jaGFuZ2VzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxZjc0NmUz
MzI1ZDE5Y2Q4NGZlMzQ2ZGExYjM5ZGQ2Yjg2OTIwNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2Nh
bnZhczJkL2NhbnZhczJkLWFwaS1jaGFuZ2VzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODQg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi12YXIg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UgPSB7fTsKLQotLyoqCi0gKiBAY29uc3QK
LSAqIEB0eXBlIHtBcnJheS48c3RyaW5nPn0KLSAqLwotQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
UmVzb3VyY2UuQXR0cmlidXRlUHJvcGVydGllcyA9IFsKLSAgICAiY3VycmVudFBhdGgiLAotICAg
ICJzdHJva2VTdHlsZSIsCi0gICAgImZpbGxTdHlsZSIsCi0gICAgImdsb2JhbEFscGhhIiwKLSAg
ICAibGluZVdpZHRoIiwKLSAgICAibGluZUNhcCIsCi0gICAgImxpbmVKb2luIiwKLSAgICAibWl0
ZXJMaW1pdCIsCi0gICAgInNoYWRvd09mZnNldFgiLAotICAgICJzaGFkb3dPZmZzZXRZIiwKLSAg
ICAic2hhZG93Qmx1ciIsCi0gICAgInNoYWRvd0NvbG9yIiwKLSAgICAiZ2xvYmFsQ29tcG9zaXRl
T3BlcmF0aW9uIiwKLSAgICAiZm9udCIsCi0gICAgInRleHRBbGlnbiIsCi0gICAgInRleHRCYXNl
bGluZSIsCi0gICAgImxpbmVEYXNoT2Zmc2V0IiwKLSAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHBy
b3BlcnRpZXMgaW1wbGVtZW50ZWQgaW4gSlNDLCBidXQgbm90IGluIFY4LgotICAgICJ3ZWJraXRM
aW5lRGFzaCIsCi0gICAgIndlYmtpdExpbmVEYXNoT2Zmc2V0IgotXTsKLQotLyoqCi0gKiBAY29u
c3QKLSAqIEB0eXBlIHtBcnJheS48c3RyaW5nPn0KLSAqLwotQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEUmVzb3VyY2UuUGF0aE1ldGhvZHMgPSBbCi0gICAgImJlZ2luUGF0aCIsCi0gICAgIm1vdmVU
byIsCi0gICAgImNsb3NlUGF0aCIsCi0gICAgImxpbmVUbyIsCi0gICAgInF1YWRyYXRpY0N1cnZl
VG8iLAotICAgICJiZXppZXJDdXJ2ZVRvIiwKLSAgICAiYXJjVG8iLAotICAgICJhcmMiLAotICAg
ICJyZWN0IgotXTsKLQotLyoqCi0gKiBAY29uc3QKLSAqIEB0eXBlIHtBcnJheS48c3RyaW5nPn0K
LSAqLwotQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuVHJhbnNmb3JtYXRpb25NYXRy
aXhNZXRob2RzID0gWwotICAgICJzY2FsZSIsCi0gICAgInJvdGF0ZSIsCi0gICAgInRyYW5zbGF0
ZSIsCi0gICAgInRyYW5zZm9ybSIsCi0gICAgInNldFRyYW5zZm9ybSIKLV07Ci0KLS8qKgotICog
QGNvbnN0Ci0gKiBAdHlwZSB7QXJyYXkuPHN0cmluZz59Ci0gKi8KLUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRFJlc291cmNlLklnbm9yZVByb3BlcnRpZXMgPSBbCi0gICAgImNhbnZhcyIsCi0gICAg
ImNyZWF0ZUxpbmVhckdyYWRpZW50IiwKLSAgICAiY3JlYXRlUmFkaWFsR3JhZGllbnQiLAotICAg
ICJjcmVhdGVQYXR0ZXJuIiwKLSAgICAic2F2ZSIsCi0gICAgInJlc3RvcmUiLAotICAgICJjbGlw
IiwKLSAgICAiZ2V0TGluZURhc2giLAotICAgICJzZXRMaW5lRGFzaCIsCi0gICAgLy8gSWdub3Jl
IHRoZSBwcm9wZXJ0aWVzIGJlbG93LgotICAgICJjbGVhclJlY3QiLAotICAgICJjbGVhclNoYWRv
dyIsCi0gICAgImNyZWF0ZUltYWdlRGF0YSIsCi0gICAgImRyYXdJbWFnZSIsCi0gICAgImRyYXdJ
bWFnZUZyb21SZWN0IiwKLSAgICAiZmlsbCIsCi0gICAgImZpbGxSZWN0IiwKLSAgICAiZmlsbFRl
eHQiLAotICAgICJnZXRJbWFnZURhdGEiLAotICAgICJpc1BvaW50SW5QYXRoIiwKLSAgICAiaXNQ
b2ludEluU3Ryb2tlIiwKLSAgICAibWVhc3VyZVRleHQiLAotICAgICJwdXRJbWFnZURhdGEiLAot
ICAgICJzZXRBbHBoYSIsCi0gICAgInNldENvbXBvc2l0ZU9wZXJhdGlvbiIsCi0gICAgInNldEZp
bGxDb2xvciIsCi0gICAgInNldExpbmVDYXAiLAotICAgICJzZXRMaW5lSm9pbiIsCi0gICAgInNl
dExpbmVXaWR0aCIsCi0gICAgInNldE1pdGVyTGltaXQiLAotICAgICJzZXRTaGFkb3ciLAotICAg
ICJzZXRTdHJva2VDb2xvciIsCi0gICAgInN0cm9rZSIsCi0gICAgInN0cm9rZVJlY3QiLAotICAg
ICJzdHJva2VUZXh0IiwKLSAgICAid2Via2l0QmFja2luZ1N0b3JlUGl4ZWxSYXRpbyIsCi0gICAg
IndlYmtpdEdldEltYWdlRGF0YUhEIiwKLSAgICAid2Via2l0SW1hZ2VTbW9vdGhpbmdFbmFibGVk
IiwKLSAgICAid2Via2l0UHV0SW1hZ2VEYXRhSEQiCi1dOwotCi1mdW5jdGlvbiBjb2xsZWN0UHJv
cGVydHlOYW1lcyhvYmopCi17Ci0gICAgdmFyIHByb3BlcnR5TmFtZXMgPSBbXTsKLSAgICBmb3Ig
KHZhciBwcm9wZXJ0eSBpbiBvYmopCi0gICAgICAgIHByb3BlcnR5TmFtZXMucHVzaChwcm9wZXJ0
eSk7Ci0gICAgcHJvcGVydHlOYW1lcy5zb3J0KCk7Ci0gICAgcmV0dXJuIHByb3BlcnR5TmFtZXM7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjYW52YXMiKTsKLSAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJk
Iik7Ci0gICAgaWYgKCFjdHgpIHsKLSAgICAgICAgb3V0cHV0KCJFUlJPUjogQ291bGQgbm90IGNy
ZWF0ZSBjYW52YXMgMkQgY29udGV4dC4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBv
dXRwdXQoIk5ldyBwcm9wZXJ0aWVzIGFuZCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgbWFudWFs
bHkgZXhhbWluZWQgKHNob3VsZCBiZSBlbXB0eSB0byBwYXNzIHRoZSB0ZXN0KToiKTsKLSAgICB2
YXIgcHJvcGVydHlOYW1lcyA9IGNvbGxlY3RQcm9wZXJ0eU5hbWVzKGN0eCk7Ci0gICAgdmFyIHRy
YWNrZWRQcm9wZXJ0aWVzID0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuQXR0cmli
dXRlUHJvcGVydGllcy5jb25jYXQoQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuUGF0
aE1ldGhvZHMsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFJlc291cmNlLlRyYW5zZm9ybWF0aW9u
TWF0cml4TWV0aG9kcywgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEUmVzb3VyY2UuSWdub3JlUHJv
cGVydGllcyk7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVzLmxlbmd0aDsg
KytpKSB7Ci0gICAgICAgIHZhciBwcm9wZXJ0eSA9IHByb3BlcnR5TmFtZXNbaV07Ci0gICAgICAg
IGlmICh0cmFja2VkUHJvcGVydGllcy5pbmRleE9mKHByb3BlcnR5KSAhPT0gLTEpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgb3V0cHV0KHByb3BlcnR5KTsKLSAgICB9Ci0KLSAgICB2
YXIgZ3JhZGllbnQgPSBjdHguY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgMSwgMSk7Ci0gICAg
aWYgKCFncmFkaWVudCkgewotICAgICAgICBvdXRwdXQoIkVSUk9SOiBDb3VsZCBub3QgY3JlYXRl
IGEgZ3JhZGllbnQgb2JqZWN0LiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG91dHB1
dCgiTmV3IHByb3BlcnRpZXMgYW5kIGZ1bmN0aW9ucyBvZiBDYW52YXNHcmFkaWVudCBvYmplY3Qg
dGhhdCBzaG91bGQgYmUgbWFudWFsbHkgZXhhbWluZWQgKHNob3VsZCBiZSBlbXB0eSB0byBwYXNz
IHRoZSB0ZXN0KToiKTsKLSAgICBwcm9wZXJ0eU5hbWVzID0gY29sbGVjdFByb3BlcnR5TmFtZXMo
Z3JhZGllbnQpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOYW1lcy5sZW5ndGg7
ICsraSkgewotICAgICAgICB2YXIgcHJvcGVydHkgPSBwcm9wZXJ0eU5hbWVzW2ldOwotICAgICAg
ICBpZiAocHJvcGVydHkgPT09ICJhZGRDb2xvclN0b3AiKQotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIG91dHB1dChwcm9wZXJ0eSk7Ci0gICAgfQotCi0gICAgdmFyIHBhdHRlcm4gPSBj
dHguY3JlYXRlUGF0dGVybihuZXcgSW1hZ2UoKSwgInJlcGVhdCIpOwotICAgIGlmICghcGF0dGVy
bikgewotICAgICAgICBvdXRwdXQoIkVSUk9SOiBDb3VsZCBub3QgY3JlYXRlIGEgcGF0dGVybiBv
YmplY3QuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgb3V0cHV0KCJOZXcgcHJvcGVy
dGllcyBhbmQgZnVuY3Rpb25zIG9mIENhbnZhc1BhdHRlcm4gb2JqZWN0IHRoYXQgc2hvdWxkIGJl
IG1hbnVhbGx5IGV4YW1pbmVkIChzaG91bGQgYmUgZW1wdHkgdG8gcGFzcyB0aGUgdGVzdCk6Iik7
Ci0gICAgZm9yICh2YXIgcHJvcGVydHkgaW4gcGF0dGVybikKLSAgICAgICAgb3V0cHV0KHByb3Bl
cnR5KTsKLX0KLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0gICAgdHJ5IHsKLSAgICAgICAgdGVzdCgpOwot
ICAgIH0gZmluYWxseSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3QgdG8gY2F0Y2ggQ2FudmFz
IDJEIEFQSSBjaGFuZ2VzLgotSWYgdGhpcyB0ZXN0IHNob3VsZCBldmVyIGZhaWwsIHdlIHNob3Vs
ZCByZS1leGFtaW5lIHRoZSBDYW52YXMgMkQgc3RhdGUgc2F2aW5nL3Jlc3RvcmluZyBsb2dpYyBp
biB0aGUKLUluamVjdGVkU2NyaXB0TW9kdWxlIHRvIGluY2x1ZGUgYW55IGxhdGVzdCBjaGFuZ2Vz
IHRvIHRoZSBBUEkuCi0KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1ncmFkaWVudC1jYXB0
dXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZh
czJkL2NhbnZhczJkLWdyYWRpZW50LWNhcHR1cmluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNhODVkMTk1ZWRiYzM4N2UzYjI5NmFkNzY1YzU4ODY2ZmFmYmQz
ZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLWdyYWRpZW50LWNhcHR1
cmluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3RzIENh
bnZhcyAyRCBjYXB0dXJpbmcgZm9yIENhbnZhc0dyYWRpZW50IG9iamVjdHMuCi0KLUJ1ZyAxMDE0
MzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9j
YW52YXMyZC1ncmFkaWVudC1jYXB0dXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1ncmFkaWVudC1jYXB0dXJpbmcuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEzYTkxYmMzMzJlMzliNDdhMWVjMmFiNDk5NDE2OGY1
ODg5YmY5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzMmQtZ3JhZGllbnQt
Y2FwdHVyaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL2NhbnZhcy1wcm9m
aWxlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLXZhciBjdHg7Ci12YXIgcmF3Q3R4
OwotdmFyIGN0eFJlc291cmNlOwotCi1mdW5jdGlvbiB0ZXN0Q2FudmFzR3JhZGllbnRDYXB0dXJp
bmcoKQotewotICAgIHZhciBncmFkaWVudCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAw
LCAxMCwgMTApOwotICAgIGNvbnNvbGUuYXNzZXJ0KGdyYWRpZW50LCAiRmFpbGVkIHRvIGNyZWF0
ZSBhIENhbnZhc0dyYWRpZW50IG9iamVjdCIpOwotICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgw
LCAnI2ZmZicpOwotICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLjMsICcjYWFhJyk7Ci0gICAg
Z3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsICcjMDAwJyk7Ci0KLSAgICB2YXIgZ3JhZGllbnRSZXNv
dXJjZSA9IGdyYWRpZW50WyJfX3Jlc291cmNlT2JqZWN0Il07Ci0gICAgY29uc29sZS5hc3NlcnQo
Z3JhZGllbnRSZXNvdXJjZSwgIkNhbnZhc0dyYWRpZW50IG9iamVjdCBpcyBub3Qgd3JhcHBlZCIp
OwotCi0gICAgdmFyIGNhbGxzID0gZ3JhZGllbnRSZXNvdXJjZS5jYWxscygpOwotICAgIHZhciBl
eHBlY3RlZExlbmd0aCA9IDQ7Ci0gICAgY29uc29sZS5hc3NlcnQoY2FsbHMubGVuZ3RoID09PSBl
eHBlY3RlZExlbmd0aCwgIkV4cGVjdGVkIGxlbmd0aCBvZiB0aGUgbG9nOiAiICsgZXhwZWN0ZWRM
ZW5ndGggKyAiLCBidXQgd2FzOiAiICsgY2FsbHMubGVuZ3RoKTsKLX0KLQotZnVuY3Rpb24gY3Jl
YXRlQW5kUnVuQ2FudmFzMkRQcm9ncmFtKCkKLXsKLSAgICBjdHggPSBjcmVhdGVDYW52YXMyRENv
bnRleHQoKTsKLSAgICBjb25zb2xlLmFzc2VydChjdHgsICJGYWlsZWQgdG8gY3JlYXRlIDJEIGNv
bnRleHQiKTsKLQotICAgIGN0eFJlc291cmNlID0gY3R4WyJfX3Jlc291cmNlT2JqZWN0Il07Ci0g
ICAgY29uc29sZS5hc3NlcnQoY3R4UmVzb3VyY2UsICIyRCBjb250ZXh0IGlzIG5vdCB3cmFwcGVk
Iik7Ci0KLSAgICByYXdDdHggPSBjdHhSZXNvdXJjZS53cmFwcGVkT2JqZWN0KCk7Ci0gICAgY29u
c29sZS5hc3NlcnQocmF3Q3R4LCAiTm8gcmF3IDJEIGNvbnRleHQgZm91bmQiKTsKLSAgICBjb25z
b2xlLmFzc2VydChjdHggIT09IHJhd0N0eCwgIlByb3h5IGFuZCBSQVcgY29udGV4dHMgc2hvdWxk
IG5vdCBiZSB0aGUgc2FtZSIpOwotCi0gICAgdGVzdENhbnZhc0dyYWRpZW50Q2FwdHVyaW5nKCk7
Ci0KLSAgICByZXR1cm4gIlNVQ0NFU1MiOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LmVuYWJsZUNhbnZhc0FnZW50KHN0ZXAxKTsKLSAgICBmdW5jdGlvbiBzdGVw
MSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJjcmVh
dGVBbmRSdW5DYW52YXMyRFByb2dyYW0oKSIsIHN0ZXAyKTsKLSAgICB9Ci0gICAgZnVuY3Rpb24g
c3RlcDIoZXJyb3IpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygi
XCJTVUNDRVNTXCIiLCBlcnJvcik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgQ2FudmFzIDJEIGNhcHR1cmluZyBmb3IgQ2FudmFzR3JhZGllbnQg
b2JqZWN0cy4KLTwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE0MzIiPkJ1ZyAxMDE0MzI8L2E+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1w
cm9maWxlci1jYXB0dXJpbmctYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMyZC1wcm9maWxlci1jYXB0dXJpbmctYmFzaWNz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI0YWY5ZTg0YTk3
NWJiMTY3NGE5N2JkNDRkNWFmNWYzZDU1ZmE0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFz
MmQvY2FudmFzMmQtcHJvZmlsZXItY2FwdHVyaW5nLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3RzIENhbnZhcyAyRCBjYXB0dXJpbmcgYmFzaWNz
LgotCi1CdWcgMTAwNzUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvY2FudmFzMmQvY2FudmFzMmQtcHJvZmlsZXItY2FwdHVyaW5nLWJhc2ljcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhczJkLXByb2ZpbGVyLWNh
cHR1cmluZy1iYXNpY3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y1MmI3
MGU3M2RlZjVlOGZhNGYzN2RiMDhhOTliYzY0NGIxNjU4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
Y2FudmFzMmQvY2FudmFzMmQtcHJvZmlsZXItY2FwdHVyaW5nLWJhc2ljcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjkyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vY2FudmFzLXByb2ZpbGVyLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotdmFyIGN0eDsKLXZhciByYXdDdHg7Ci12YXIgY3R4UmVzb3VyY2U7Ci0K
LXZhciBzYW1wbGVBdHRyaWJ1dGVzMSA9IHsKLSAgICAic3Ryb2tlU3R5bGUiOiAiIzAwMDAwMSIs
Ci0gICAgImZpbGxTdHlsZSI6ICIjMDAwMDAyIiwKLSAgICAiZ2xvYmFsQWxwaGEiOiAwLjUsCi0g
ICAgImxpbmVXaWR0aCI6IDIsCi0gICAgImxpbmVDYXAiOiAicm91bmQiLAotICAgICJsaW5lSm9p
biI6ICJiZXZlbCIsCi0gICAgIm1pdGVyTGltaXQiOiAxMiwKLSAgICAic2hhZG93T2Zmc2V0WCI6
IDEsCi0gICAgInNoYWRvd09mZnNldFkiOiAyLAotICAgICJzaGFkb3dCbHVyIjogMywKLSAgICAi
c2hhZG93Q29sb3IiOiAiIzAwMDAwMyIsCi0gICAgImdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiI6
ICJzb3VyY2UtaW4iLAotICAgICJmb250IjogIjEycHggc2Fucy1zZXJpZiIsCi0gICAgInRleHRB
bGlnbiI6ICJlbmQiLAotICAgICJ0ZXh0QmFzZWxpbmUiOiAidG9wIiwKLSAgICAibGluZURhc2hP
ZmZzZXQiOiAxCi19OwotCi12YXIgc2FtcGxlQXR0cmlidXRlczIgPSB7Ci0gICAgInN0cm9rZVN0
eWxlIjogIiMxMDAwMDEiLAotICAgICJmaWxsU3R5bGUiOiAiIzEwMDAwMiIsCi0gICAgImdsb2Jh
bEFscGhhIjogMCwKLSAgICAibGluZVdpZHRoIjogMywKLSAgICAibGluZUNhcCI6ICJzcXVhcmUi
LAotICAgICJsaW5lSm9pbiI6ICJyb3VuZCIsCi0gICAgIm1pdGVyTGltaXQiOiAxMSwKLSAgICAi
c2hhZG93T2Zmc2V0WCI6IDMsCi0gICAgInNoYWRvd09mZnNldFkiOiA0LAotICAgICJzaGFkb3dC
bHVyIjogMiwKLSAgICAic2hhZG93Q29sb3IiOiAiIzEwMDAwMyIsCi0gICAgImdsb2JhbENvbXBv
c2l0ZU9wZXJhdGlvbiI6ICJ4b3IiLAotICAgICJmb250IjogIjEzcHggc2Fucy1zZXJpZiIsCi0g
ICAgInRleHRBbGlnbiI6ICJsZWZ0IiwKLSAgICAidGV4dEJhc2VsaW5lIjogIm1pZGRsZSIsCi0g
ICAgImxpbmVEYXNoT2Zmc2V0IjogMgotfTsKLQotZnVuY3Rpb24gYXNzaWduQXR0cmlidXRlcyhh
dHRyaWJ1dGVzKQotewotICAgIGZvciAodmFyIGF0dHJpYnV0ZSBpbiBhdHRyaWJ1dGVzKQotICAg
ICAgICBjdHhbYXR0cmlidXRlXSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlXTsKLX0KLQotZnVuY3Rp
b24gYXNzZXJ0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotewotICAgIGZvciAodmFyIGF0dHJpYnV0
ZSBpbiBhdHRyaWJ1dGVzKQotICAgICAgICBjb25zb2xlLmFzc2VydChjdHhbYXR0cmlidXRlXSA9
PT0gYXR0cmlidXRlc1thdHRyaWJ1dGVdLCAiRXhwZWN0ZWQgdmFsdWUgZm9yIGF0dHJpYnV0ZSAi
ICsgYXR0cmlidXRlICsgIjogIiArIGF0dHJpYnV0ZXNbYXR0cmlidXRlXSArICIsIGJ1dCB3YXM6
ICIgKyBjdHhbYXR0cmlidXRlXSk7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydE51bWJlck9mQ2FsbHNJ
bkxvZyhleHBlY3RlZCkKLXsKLSAgICB2YXIgY2FsbHMgPSBjdHhSZXNvdXJjZS5jYWxscygpOwot
ICAgIGlmIChjYWxscy5sZW5ndGggIT09IGV4cGVjdGVkKSB7Ci0gICAgICAgIHZhciBuYW1lcyA9
IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwICYmIGNhbGxzW2ldOyArK2kpCi0g
ICAgICAgICAgICBuYW1lcy5wdXNoKGNhbGxzW2ldLmZ1bmN0aW9uTmFtZSgpKTsKLSAgICAgICAg
Y29uc29sZS5lcnJvcigiRXhwZWN0ZWQgc2l6ZSBvZiB0aGUgMkQgY29udGV4dCBjYWxsIGxvZzog
IiArIGV4cGVjdGVkICsgIiwgYnV0IHdhczogIiArIGNhbGxzLmxlbmd0aCArICIsIG5hbWVzOiAi
ICsgbmFtZXMpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdERyYXdpbmdBdHRyaWJ1dGVzKCkK
LXsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMCk7Ci0gICAgYXNzaWduQXR0cmlidXRl
cyhzYW1wbGVBdHRyaWJ1dGVzMSk7Ci0gICAgYXNzZXJ0QXR0cmlidXRlcyhzYW1wbGVBdHRyaWJ1
dGVzMSk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDApOwotCi0gICAgLy8gU2F2ZSBw
cmV2aW91cyBhdHRyaWJ1dGUgdmFsdWVzIGFuZCBzZXQgbmV3IHZhbHVlcy4KLSAgICBjdHguc2F2
ZSgpOwotICAgIGFzc2lnbkF0dHJpYnV0ZXMoc2FtcGxlQXR0cmlidXRlczIpOwotICAgIGFzc2Vy
dEF0dHJpYnV0ZXMoc2FtcGxlQXR0cmlidXRlczIpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJ
bkxvZygxKTsKLQotICAgIC8vIFJlc3RvcmUgcHJldmlvdXMgYXR0cmlidXRlIHZhbHVlcy4KLSAg
ICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydEF0dHJpYnV0ZXMoc2FtcGxlQXR0cmlidXRlczEp
OwotICAgIC8vIENhbGwgbG9nIHNob3VsZCBiZSBlbXB0eSBhZnRlciBzYXZlKCkgYW5kIHJlc3Rv
cmUoKSBjYWxscy4KLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMCk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3RTYXZlUmVzdG9yZVNlcXVlbmNlKCkKLXsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxz
SW5Mb2coMCk7Ci0gICAgY3R4LnJlc3RvcmUoKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFz
c2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGFzc2VydE51
bWJlck9mQ2FsbHNJbkxvZygxKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGFzc2VydE51bWJlck9m
Q2FsbHNJbkxvZygyKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJ
bkxvZygzKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxv
ZygyKTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygx
KTsKLSAgICBjdHgucmVzdG9yZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsK
LSAgICBjdHgucmVzdG9yZSgpOwotICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgYXNzZXJ0TnVtYmVy
T2ZDYWxsc0luTG9nKDApOwotfQotCi1mdW5jdGlvbiBjYWxsUGF0aE1ldGhvZHMoKQotewotICAg
IGN0eC5iZWdpblBhdGgoKTsKLSAgICBjdHgubGluZVdpZHRoID0gMjsKLSAgICBjdHgubW92ZVRv
KDExLCAxMik7Ci0gICAgY3R4LmxpbmVUbygxMTEsIDExMik7Ci0gICAgY3R4LnN0cm9rZSgpOwot
fQotCi1mdW5jdGlvbiBjbGVhckNvbnRleHRSZXNvdXJjZUxvZygpCi17Ci0gICAgd2hpbGUgKGN0
eFJlc291cmNlLmNhbGxzKCkubGVuZ3RoKQotICAgICAgICBjdHhSZXNvdXJjZS5jYWxscygpLnBv
cCgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLX0KLQotZnVuY3Rpb24gdGVz
dFBhdGhNZXRob2RzU2VxdWVuY2UoKQotewotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygw
KTsKLSAgICBjYWxsUGF0aE1ldGhvZHMoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2co
Myk7IC8vIFtiZWdpblBhdGgsbW92ZVRvLGxpbmVUb10KLSAgICBjYWxsUGF0aE1ldGhvZHMoKTsK
LSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMyk7IC8vIG9sZCBtZXRob2RzIHNob3VsZCBo
YXZlIGJlZW4gY2xlYXJlZAotICAgIGNsZWFyQ29udGV4dFJlc291cmNlTG9nKCk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3RDbGlwTWV0aG9kcygpCi17Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9n
KDApOwotICAgIGN0eC5zYXZlKCk7Ci0gICAgY2FsbFBhdGhNZXRob2RzKCk7Ci0gICAgYXNzZXJ0
TnVtYmVyT2ZDYWxsc0luTG9nKDQpOwotICAgIGN0eC5jbGlwKCk7Ci0gICAgYXNzZXJ0TnVtYmVy
T2ZDYWxsc0luTG9nKDUpOwotICAgIGNhbGxQYXRoTWV0aG9kcygpOwotICAgIGFzc2VydE51bWJl
ck9mQ2FsbHNJbkxvZyg4KTsKLSAgICBjYWxsUGF0aE1ldGhvZHMoKTsKLSAgICBhc3NlcnROdW1i
ZXJPZkNhbGxzSW5Mb2coOCk7IC8vIHRoZSBsYXN0IGNhbGxzIHNob3VsZCBoYXZlIGJlZW4gY2xl
YXJlZAotICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDUp
OyAvLyBbc2F2ZSxiZWdpblBhdGgsbW92ZVRvLGxpbmVUbyxyZXN0b3JlXQotICAgIGN0eC5iZWdp
blBhdGgoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMSk7IC8vIFtiZWdpblBhdGhd
Ci0gICAgY2xlYXJDb250ZXh0UmVzb3VyY2VMb2coKTsKLX0KLQotZnVuY3Rpb24gdGVzdE1hdHJp
eE1ldGhvZHMoKQotewotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHgu
c2F2ZSgpOwotICAgIGN0eC50cmFuc2xhdGUoMTAwLCAyMDApOwotICAgIGN0eC5zY2FsZSgwLjks
IDAuOSk7Ci0gICAgY3R4LnJvdGF0ZSgwLjIpOwotICAgIGN0eC50cmFuc2xhdGUoLTEwMCwgLTIw
MCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDUpOwotICAgIGN0eC5zZXRUcmFuc2Zv
cm0oMSwgMiwgMywgNCwgNSwgNik7Ci0gICAgY3R4LnJvdGF0ZSgwLjMpOwotICAgIGFzc2VydE51
bWJlck9mQ2FsbHNJbkxvZygzKTsgLy8gW3NhdmUsc2V0VHJhbnNmb3JtLHJvdGF0ZV0KLSAgICBj
dHgucmVzdG9yZSgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdE1hdHJpeE1ldGhvZHNXaXRoUGF0aE1ldGhvZHMoKQotewotICAgIGFzc2VydE51
bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGN0eC50cmFuc2xhdGUo
MTAwLCAyMDApOwotICAgIGN0eC5zY2FsZSgwLjksIDAuOSk7Ci0gICAgY3R4LnJvdGF0ZSgwLjIp
OwotICAgIGN0eC50cmFuc2xhdGUoLTEwMCwgLTIwMCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxs
c0luTG9nKDUpOwotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBjdHgucmVjdCgxLCAxLCAxMCwg
MTApOwotICAgIGN0eC50cmFuc2xhdGUoMSwgMik7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0lu
TG9nKDgpOwotICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9n
KDgpOyAvLyBbc2F2ZSx0cmFuc2xhdGUsc2NhbGUscm90YXRlLHRyYW5zbGF0ZSxiZWdpblBhdGgs
cmVjdCxyZXN0b3JlXQotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNh
bGxzSW5Mb2coMSk7IC8vIFtiZWdpblBhdGhdCi0gICAgY2xlYXJDb250ZXh0UmVzb3VyY2VMb2co
KTsKLX0KLQotZnVuY3Rpb24gdGVzdE5lc3RlZFNhdmVSZXN0b3JlQ2FsbHMoKQotewotICAgIGFz
c2VydE51bWJlck9mQ2FsbHNJbkxvZygwKTsKLSAgICBjdHguc2F2ZSgpOwotICAgIGN0eC50cmFu
c2xhdGUoMTAwLCAyMDApOwotICAgIGN0eC5iZWdpblBhdGgoKTsKLSAgICBjdHgucmVjdCgxLCAx
LCAxMCwgMTApOwotICAgIGN0eC5jbGlwKCk7Ci0gICAgY3R4LnNhdmUoKTsKLSAgICBjdHgucm90
YXRlKDAuMik7Ci0gICAgY2FsbFBhdGhNZXRob2RzKCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxs
c0luTG9nKDEwKTsgLy8gW3NhdmUsdHJhbnNsYXRlLGJlZ2luUGF0aCxyZWN0LGNsaXAsc2F2ZSxy
b3RhdGUsYmVnaW5QYXRoLG1vdmVUbyxsaW5lVG9dCi0gICAgY3R4LnJlc3RvcmUoKTsKLSAgICBh
c3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMTEpOwotICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgYXNz
ZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDkpOyAvLyBbc2F2ZSx0cmFuc2xhdGUsc2F2ZSxyb3RhdGUs
YmVnaW5QYXRoLG1vdmVUbyxsaW5lVG8scmVzdG9yZSxyZXN0b3JlXQotICAgIGN0eC5yZXN0b3Jl
KCk7Ci0gICAgYXNzZXJ0TnVtYmVyT2ZDYWxsc0luTG9nKDkpOyAvLyBubyBlZmZlY3QKLSAgICBj
dHguc2V0VHJhbnNmb3JtKDEsIDIsIDMsIDQsIDUsIDYpOwotICAgIGFzc2VydE51bWJlck9mQ2Fs
bHNJbkxvZygxMCk7IC8vIG5vdGhpbmcgdG8gcmVtb3ZlIGZyb20gdGhlIGxvZwotICAgIGN0eC5i
ZWdpblBhdGgoKTsKLSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMik7IC8vIFtzZXRUcmFu
c2Zvcm0sYmVnaW5QYXRoXQotICAgIGNsZWFyQ29udGV4dFJlc291cmNlTG9nKCk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3REZWVwTmVzdGVkU2F2ZVJlc3RvcmVDYWxscygpCi17Ci0gICAgYXNzZXJ0TnVt
YmVyT2ZDYWxsc0luTG9nKDApOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkgewot
ICAgICAgICBjdHguc2F2ZSgpOwotICAgICAgICBjdHgudHJhbnNsYXRlKDEsIDIpOwotICAgIH0K
LSAgICBhc3NlcnROdW1iZXJPZkNhbGxzSW5Mb2coMjApOwotICAgIGNhbGxQYXRoTWV0aG9kcygp
OwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJbkxvZygyMyk7Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDsgKytpKSB7Ci0gICAgICAgIGN0eC5yb3RhdGUoMSk7Ci0gICAgICAgIGN0eC5zY2Fs
ZSgyLCAyKTsKLSAgICAgICAgY3R4LmNsaXAoKTsKLSAgICAgICAgY3R4LnRyYW5zZm9ybSgzLCAz
LCAzLCAzLCAzLCAzKTsKLSAgICAgICAgY3R4LnJlc3RvcmUoKTsKLSAgICAgICAgYXNzZXJ0TnVt
YmVyT2ZDYWxsc0luTG9nKDI0ICsgaSk7Ci0gICAgfQotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJ
bkxvZygzMyk7Ci0gICAgY3R4LmJlZ2luUGF0aCgpOwotICAgIGFzc2VydE51bWJlck9mQ2FsbHNJ
bkxvZygxKTsgLy8gbm93IGNsZWFyIHVwIHRoZSBsb2cKLSAgICBjbGVhckNvbnRleHRSZXNvdXJj
ZUxvZygpOwotfQotCi1mdW5jdGlvbiBjcmVhdGVBbmRSdW5DYW52YXMyRFByb2dyYW0oKQotewot
ICAgIGN0eCA9IGNyZWF0ZUNhbnZhczJEQ29udGV4dCgpOwotICAgIGNvbnNvbGUuYXNzZXJ0KGN0
eCwgIkZhaWxlZCB0byBjcmVhdGUgMkQgY29udGV4dCIpOwotCi0gICAgY3R4UmVzb3VyY2UgPSBj
dHhbIl9fcmVzb3VyY2VPYmplY3QiXTsKLSAgICBjb25zb2xlLmFzc2VydChjdHhSZXNvdXJjZSwg
IjJEIGNvbnRleHQgaXMgbm90IHdyYXBwZWQiKTsKLQotICAgIHJhd0N0eCA9IGN0eFJlc291cmNl
LndyYXBwZWRPYmplY3QoKTsKLSAgICBjb25zb2xlLmFzc2VydChyYXdDdHgsICJObyByYXcgMkQg
Y29udGV4dCBmb3VuZCIpOwotICAgIGNvbnNvbGUuYXNzZXJ0KGN0eCAhPT0gcmF3Q3R4LCAiUHJv
eHkgYW5kIFJBVyBjb250ZXh0cyBzaG91bGQgbm90IGJlIHRoZSBzYW1lIik7Ci0KLSAgICB0ZXN0
RHJhd2luZ0F0dHJpYnV0ZXMoKTsKLSAgICB0ZXN0U2F2ZVJlc3RvcmVTZXF1ZW5jZSgpOwotICAg
IHRlc3RQYXRoTWV0aG9kc1NlcXVlbmNlKCk7Ci0gICAgdGVzdENsaXBNZXRob2RzKCk7Ci0gICAg
dGVzdE1hdHJpeE1ldGhvZHMoKTsKLSAgICB0ZXN0TWF0cml4TWV0aG9kc1dpdGhQYXRoTWV0aG9k
cygpOwotICAgIHRlc3ROZXN0ZWRTYXZlUmVzdG9yZUNhbGxzKCk7Ci0gICAgdGVzdERlZXBOZXN0
ZWRTYXZlUmVzdG9yZUNhbGxzKCk7Ci0KLSAgICByZXR1cm4gIlNVQ0NFU1MiOwotfQotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmVuYWJsZUNhbnZhc0FnZW50KHN0ZXAx
KTsKLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5Db25zb2xlKCJjcmVhdGVBbmRSdW5DYW52YXMyRFByb2dyYW0oKSIsIHN0ZXAyKTsK
LSAgICB9Ci0gICAgZnVuY3Rpb24gc3RlcDIoZXJyb3IpCi0gICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscygiXCJTVUNDRVNTXCIiLCBlcnJvcik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgQ2FudmFzIDJEIGNhcHR1cmlu
ZyBiYXNpY3MuCi08L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAwNzUyIj5CdWcgMTAwNzUyPC9hPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21w
YXJpc29uLWRvbS1ncm91cHMtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZG9tLWdyb3Vwcy1jaGFuZ2Ut
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjkwZThhY2Y1ODQ0
MjYwZWY3ZjIwOGViMmQ3MjAxOWE4ZjI4M2E5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWNvbXBhcmlzb24tZG9tLWdyb3Vwcy1jaGFuZ2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGVzdHMgdGhhdCBDb21wYXJpc29uIHZpZXcgb2YgaGVh
cCBzbmFwc2hvdHMgd2lsbCBjb250YWluIGFkZGVkIG5vZGVzIGV2ZW4gaWYgdGhlaXIgaWRzIGFy
ZSBsZXNzIHRoYW4gdGhlIG1heGltdW1tIEpTIG9iamVjdCBpZCBpbiB0aGUgYmFzZSBzbmFwc2hv
dC4KLQotUHJvZmlsZXIgd2FzIGVuYWJsZWQuCi1EZXRhaWxlZCBoZWFwIHByb2ZpbGVzIHdlcmUg
ZW5hYmxlZC4KLQotUnVubmluZzogdGVzdFNob3dBbGwKLURlbHRhOiArNCAtMQotRGVsZXRlZCBu
b2RlIGlkKHMpOiA0MAotQWRkZWQgbm9kZSBpZChzKTogMTUsMjUsMzUsNQotCi1Qcm9maWxlciB3
YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZG9tLWdyb3Vwcy1jaGFuZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZG9tLWdy
b3Vwcy1jaGFuZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc2YmE2Y2Qy
ZDM5ZmNmZDkyYzRkMmRjYWE3YjhjMjIwMDE2NjI0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1jb21wYXJpc29uLWRvbS1ncm91cHMtY2hhbmdlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxMzIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNj
cmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3RBKCkKLSAg
ICB7Ci0gICAgICAgIC8vIFJlcHJlc2VudHMgdGhlIGZvbGxvd2luZyBncmFwaDoKLSAgICAgICAg
Ly8gIHJvb3QgLSAwIC0+IDxjbGFzcyA9IEEsIGlkID0gMTA+Ci0gICAgICAgIC8vICByb290IC0g
MSAtPiA8Y2xhc3MgPSBBLCBpZCA9IDIwPgotICAgICAgICAvLyAgcm9vdCAtIDIgLT4gPGNsYXNz
ID0gQSwgaWQgPSAzMD4KLSAgICAgICAgLy8KLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAg
IHNuYXBzaG90OiB7Ci0gICAgICAgICAgICAgICAgbWV0YTogewotICAgICAgICAgICAgICAgICAg
ICBub2RlX2ZpZWxkczogWyJ0eXBlIiwgIm5hbWUiLCAiaWQiLCAic2VsZl9zaXplIiwgInJldGFp
bmVkX3NpemUiLCAiZG9taW5hdG9yIiwgImVkZ2VfY291bnQiXSwKLSAgICAgICAgICAgICAgICAg
ICAgbm9kZV90eXBlczogW1siaGlkZGVuIiwgIm9iamVjdCIsICJuYXRpdmUiXSwgIiIsICIiLCAi
IiwgIiIsICIiLCAiIl0sCi0gICAgICAgICAgICAgICAgICAgIGVkZ2VfZmllbGRzOiBbInR5cGUi
LCAibmFtZV9vcl9pbmRleCIsICJ0b19ub2RlIl0sCi0gICAgICAgICAgICAgICAgICAgIGVkZ2Vf
dHlwZXM6IFtbInNob3J0Y3V0Il0sICIiLCAiIl0KLSAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgIG5vZGVfY291bnQ6IDQsCi0gICAgICAgICAgICAgICAgZWRnZV9jb3VudDogM30s
Ci0gICAgICAgICAgICBub2RlczogWwotICAgICAgICAgICAgICAgIDAsIDAsICAxLCAwLCAyMSwg
MCwgMywKLSAgICAgICAgICAgICAgICAyLCAxLCAyMCwgNywgIDcsIDAsIDAsCi0gICAgICAgICAg
ICAgICAgMiwgMSwgMzAsIDcsICA3LCAwLCAwLAotICAgICAgICAgICAgICAgIDIsIDEsIDQwLCA3
LCAgNywgMCwgMF0sCi0gICAgICAgICAgICBlZGdlczogWwotICAgICAgICAgICAgICAgIDAsIDAs
IDcsCi0gICAgICAgICAgICAgICAgMCwgMSwgMTQsCi0gICAgICAgICAgICAgICAgMCwgMiwgMjFd
LAotICAgICAgICAgICAgc3RyaW5nczogWyIiLCAiQSJdCi0gICAgICAgIH07Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90QigpCi0gICAgewotICAgICAgICAvLyBSZXBy
ZXNlbnRzIHRoZSBmb2xsb3dpbmcgZ3JhcGg6Ci0gICAgICAgIC8vICBjb21wYXJlZCB0byBzbmFz
cGhvdCBBIG5vZGUgMTAgd2FzIGRlbGV0ZWQsIG5vZGVzIDUsIDE1LCAyNSwgMzUgd2VyZSBhZGRl
ZAotICAgICAgICAvLwotICAgICAgICAvLyAgcm9vdCAtIDEgLT4gPGNsYXNzID0gQSwgaWQgPSAy
MD4KLSAgICAgICAgLy8gIHJvb3QgLSAyIC0+IDxjbGFzcyA9IEEsIGlkID0gMzA+Ci0gICAgICAg
IC8vICByb290IC0gMyAtPiA8Y2xhc3MgPSBBLCBpZCA9IDU+Ci0gICAgICAgIC8vICByb290IC0g
NCAtPiA8Y2xhc3MgPSBBLCBpZCA9IDE1PgotICAgICAgICAvLyAgcm9vdCAtIDUgLT4gPGNsYXNz
ID0gQSwgaWQgPSAyNT4KLSAgICAgICAgLy8gIHJvb3QgLSA2IC0+IDxjbGFzcyA9IEEsIGlkID0g
MzU+Ci0gICAgICAgIC8vCi0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBzbmFwc2hvdDog
ewotICAgICAgICAgICAgICAgIG1ldGE6IHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZV9maWVs
ZHM6IFsidHlwZSIsICJuYW1lIiwgImlkIiwgInNlbGZfc2l6ZSIsICJyZXRhaW5lZF9zaXplIiwg
ImRvbWluYXRvciIsICJlZGdlX2NvdW50Il0sCi0gICAgICAgICAgICAgICAgICAgIG5vZGVfdHlw
ZXM6IFtbImhpZGRlbiIsICJvYmplY3QiLCAibmF0aXZlIl0sICIiLCAiIiwgIiIsICIiLCAiIiwg
IiJdLAotICAgICAgICAgICAgICAgICAgICBlZGdlX2ZpZWxkczogWyJ0eXBlIiwgIm5hbWVfb3Jf
aW5kZXgiLCAidG9fbm9kZSJdLAotICAgICAgICAgICAgICAgICAgICBlZGdlX3R5cGVzOiBbWyJz
aG9ydGN1dCJdLCAiIiwgIiJdCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBu
b2RlX2NvdW50OiA3LAotICAgICAgICAgICAgICAgIGVkZ2VfY291bnQ6IDZ9LAotICAgICAgICAg
ICAgbm9kZXM6IFsKLSAgICAgICAgICAgICAgICAwLCAwLCAgMSwgMCwgNDIsIDAsICA2LAotICAg
ICAgICAgICAgICAgIDIsIDEsIDIwLCA3LCAgNywgMCwgMCwKLSAgICAgICAgICAgICAgICAyLCAx
LCAzMCwgNywgIDcsIDAsIDAsCi0gICAgICAgICAgICAgICAgMiwgMSwgIDUsIDcsICA3LCAwLCAw
LAotICAgICAgICAgICAgICAgIDIsIDEsIDE1LCA3LCAgNywgMCwgMCwKLSAgICAgICAgICAgICAg
ICAyLCAxLCAyNSwgNywgIDcsIDAsIDAsCi0gICAgICAgICAgICAgICAgMiwgMSwgMzUsIDcsICA3
LCAwLCAwXSwKLSAgICAgICAgICAgIGVkZ2VzOiBbCi0gICAgICAgICAgICAgICAgMCwgMSwgIDcs
Ci0gICAgICAgICAgICAgICAgMCwgMiwgMTQsCi0gICAgICAgICAgICAgICAgMCwgMywgMjEsCi0g
ICAgICAgICAgICAgICAgMCwgNCwgMjgsCi0gICAgICAgICAgICAgICAgMCwgNSwgMzUsCi0gICAg
ICAgICAgICAgICAgMCwgNiwgNDJdLAotICAgICAgICAgICAgc3RyaW5nczogWyIiLCAiQSJdCi0g
ICAgICAgIH07Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd0FsbChuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgYWxsIG5vZGVzIGFyZSB2aXNpYmxlLgotICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZEYXRhR3JpZC5wcm90b3R5cGUuZGVmYXVs
dFBvcHVsYXRlQ291bnQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDEwMDsgfTsKLQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEEs
IGNyZWF0ZVNuYXBzaG90Qik7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVTbmFwc2hvdEIo
KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNy
ZWF0ZUhlYXBTbmFwc2hvdEIsIHN0ZXAxKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwgc3RlcDIpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgIkEiKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwi
QVwiIHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywg
c3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkRlbHRhOiArIiArIHJvdy5fYWRkZWRDb3VudCArICIgLSIgKyByb3cuX3JlbW92ZWRDb3VudCk7
Ci0gICAgICAgICAgICAgICAgdmFyIGFkZGVkID0gW107Ci0gICAgICAgICAgICAgICAgdmFyIHJl
bW92ZWQgPSBbXTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvdy5jaGls
ZHJlbi5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSByb3cu
Y2hpbGRyZW5baV07Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5faXNEZWxldGVkTm9k
ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQucHVzaChjaGlsZC5zbmFwc2hvdE5v
ZGVJZCk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFkZGVkLnB1c2goY2hpbGQuc25hcHNob3ROb2RlSWQpOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEZWxldGVkIG5vZGUgaWQo
cyk6ICIgKyByZW1vdmVkLnNvcnQoKSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkFkZGVkIG5vZGUgaWQocyk6ICIgKyBhZGRlZC5zb3J0KCkpOwotICAgICAgICAg
ICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
dGhhdCBDb21wYXJpc29uIHZpZXcgb2YgaGVhcCBzbmFwc2hvdHMgd2lsbCBjb250YWluIGFkZGVk
IG5vZGVzIGV2ZW4gaWYKLXRoZWlyIGlkcyBhcmUgbGVzcyB0aGFuIHRoZSBtYXhpbXVtbSBKUyBv
YmplY3QgaWQgaW4gdGhlIGJhc2Ugc25hcHNob3QuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1j
b21wYXJpc29uLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24t
ZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyN2UyMDc2Zjc1MGRhM2MyM2IyMjc2MDIwNmE1NjI1ZDcwNDA4
MzUwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tZXhwYW5z
aW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNCArMCwwIEBACi1UZXN0cyBDb21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFw
c2hvdHMuIEV4cGFuZGVkIG5vZGVzIG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi0K
LUhlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1leHBhbnNpb24tcHJlc2Vy
dmVkLXdoZW4tc29ydGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtY29tcGFyaXNvbi1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmQ4OGNhMDdmMjQ3NjNjYjQzYWQ3
ZDY2Y2FiNjUzYWFmN2E3OGMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNv
bXBhcmlzb24tZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDEyMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8
c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjQ7Ci0gICAgZnVu
Y3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90QSgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVj
dG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCwgNSk7Ci0gICAgfQotICAg
IGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdEIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIElu
c3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQgKyAxLCA1ICsgaW5z
dGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RU
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RXhwYW5zaW9uUHJlc2VydmVkV2hlblNv
cnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5k
T3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEEsIGNyZWF0ZVNuYXBzaG90Qik7Ci0gICAg
ICAgICAgICBmdW5jdGlvbiBjcmVhdGVTbmFwc2hvdEIoKSB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEIsIHN0ZXAx
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJDb21w
YXJpc29uIiwgc3RlcDIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3Rv
clRlc3QuZmluZFJvdygib2JqZWN0IiwgIkIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiQlwiIHJvdyIpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywgZXhwYW5kQik7Ci0gICAgICAgICAgICAg
ICAgZnVuY3Rpb24gZXhwYW5kQigpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cp
OwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAh
IWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5kISIpOwotICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dBbGwiLCBidXR0b25z
Tm9kZSwgc3RlcDQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgdmFyIGNvbHVtbnM7Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVt
bnMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNb
MF0sIHN0ZXA1KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0
LmZpbmRSb3coIm9iamVjdCIsICJCIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKLSAgICAgICAgICAgICAgICB2
YXIgYkluc3RhbmNlUm93ID0gcm93LmNoaWxkcmVuWzBdOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYkluc3RhbmNlUm93LCAiXCJCXCIgaW5zdGFu
Y2Ugcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3coYkluc3Rh
bmNlUm93LCBleHBhbmRBKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBleHBhbmRBKHJvdykK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHByb3BlcnR5
TWF0Y2hlcihkYXRhKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZGF0YS5uYW1lID09PSAiYSIgJiYgZGF0YS52YWx1ZS5jaGFyQXQoMCkgPT09
ICJBIjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB2YXIgYVJv
dyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgcHJvcGVydHlNYXRjaGVyLCByb3cp
OwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAh
IWFSb3csICJcImE6IEFcIiByb3ciKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBhbmRSb3coYVJvdywgc3RlcDYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDYoKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJCIik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3cs
ICJcIkJcIiByb3ciKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBkZWxldGVkTm9kZU1hdGNo
ZXIoZGF0YSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBk
YXRhLnJlbW92ZWRDb3VudCAmJiBkYXRhLm9iamVjdC52YWx1ZS5jaGFyQXQoMCkgPT09ICJCIjsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdmFyIGJJbnN0YW5jZVJvdyA9IElu
c3BlY3RvclRlc3QuZmluZFJvdzIoZGVsZXRlZE5vZGVNYXRjaGVyLCByb3cpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYkluc3RhbmNlUm93LCAi
XCJCXCIgaW5zdGFuY2Ugcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBh
bmRSb3coYkluc3RhbmNlUm93LCBleHBhbmRBKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBl
eHBhbmRBKHJvdykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIHByb3BlcnR5TWF0Y2hlcihkYXRhKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5uYW1lID09PSAiYSIgJiYgZGF0YS52YWx1ZS5j
aGFyQXQoMCkgPT09ICJBIjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB2YXIgYVJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgcHJvcGVydHlN
YXRjaGVyLCByb3cpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyh0cnVlLCAhIWFSb3csICJcImE6IEFcIiByb3ciKTsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBhbmRSb3coYVJvdywgc3RlcDcpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGNvbHVtbkNvbnRlbnRzOwotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDcoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNv
bHVtbkNvbnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1bW5zWzBdKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNs
aWNrVHdpY2UpOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQotICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVt
bihjb2x1bW5zWzBdLCBzdGVwOCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwOCgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgdmFyIG5ld0NvbHVtbkNvbnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5Db250ZW50
cyhjb2x1bW5zWzBdKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydENvbHVt
bkNvbnRlbnRzRXF1YWwoY29sdW1uQ29udGVudHMsIG5ld0NvbHVtbkNvbnRlbnRzKTsKLSAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0cyBDb21wYXJpc29uIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hv
dHMuCi1FeHBhbmRlZCBub2RlcyBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93LWFsbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNo
b3ctYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFkZGZj
NWUyYjJjMTg2YjM2ZDg4ODUzNjE0MjliOGUxMTgwZWExNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNob3ctYWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgQ29tcGFyaXNvbiB2aWV3IG9mIGRldGFpbGVkIGhl
YXAgc25hcHNob3RzLiBUaGUgIlNob3cgQWxsIiBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4K
LQotSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNob3ctYWxsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29u
LXNob3ctYWxsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNTU0ZGQ0OTgz
MTczOGUxYTlhNmYwNTFkOTA1NWY2ZjMwOTljNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtY29tcGFyaXNvbi1zaG93LWFsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODYg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Imhl
YXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI0OwotICAgIHZhciBmaXJzdElkID0gMTAw
OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdEEoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQsIGZpcnN0
SWQpOwotICAgIH0KLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3RCKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNv
dW50ICsgMSwgZmlyc3RJZCArIGluc3RhbmNlQ291bnQgKiAyKTsKLSAgICB9Ci0KLSAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RTaG93QWxsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFr
ZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3RBLCBjcmVhdGVTbmFwc2hvdEIpOwot
ICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlU25hcHNob3RCKCkgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3RCLCBz
dGVwMSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygi
Q29tcGFyaXNvbiIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNw
ZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJBIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkFcIiByb3ciKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAzKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgdmFyIGNvdW50QTsKLSAgICAgICAgICAgIHZhciBjb3VudEI7Ci0g
ICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgY291bnRBID0gcm93Ll9hZGRlZENvdW50OwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIGNvdW50QSA+IDAsICJjb3VudEEgPiAwIik7Ci0gICAg
ICAgICAgICAgICAgY291bnRCID0gcm93Ll9yZW1vdmVkQ291bnQ7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgY291bnRCID4gMCwgImNvdW50QiA+IDAi
KTsKLQotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmlu
ZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSAoYWRkZWQpIik7Ci0gICAg
ICAgICAgICAgICAgdmFyIHdvcmRzID0gYnV0dG9uc05vZGUuc2hvd0FsbC50ZXh0Q29udGVudC5z
cGxpdCgiICIpOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd29yZHMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIG1heWJlTnVtYmVyID0gcGFyc2VJ
bnQod29yZHNbaV0sIDEwKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFpc05hTihtYXliZU51
bWJlcikpCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyhjb3VudEEgKyBjb3VudEIgLSByb3cuX2RhdGFHcmlkLmRlZmF1bHRQb3B1bGF0ZUNvdW50KCks
IG1heWJlTnVtYmVyLCBidXR0b25zTm9kZS5zaG93QWxsLnRleHRDb250ZW50KTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0
dG9uKCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDQocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHZhciByb3dzU2hvd24gPSBJbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3Mocm93LCBmdW5j
dGlvbihub2RlKSB7IHJldHVybiBub2RlLmRhdGEuYWRkZWRDb3VudDsgfSk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoY291bnRBLCByb3dzU2hvd24sICJhZnRl
ciBzaG93QWxsIGNsaWNrIDEiKTsKLQotICAgICAgICAgICAgICAgIGNvdW50QiA9IHJvdy5fcmVt
b3ZlZENvdW50OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRy
dWUsIGNvdW50QiA+IDAsICJjb3VudEIgPiAwIik7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1dHRv
bnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgISFidXR0b25zTm9kZSwgImJ1
dHRvbnMgbm9kZSAoZGVsZXRlZCkiKTsKLQotICAgICAgICAgICAgICAgIHZhciBkZWxldGVkUm93
c1Nob3duID0gSW5zcGVjdG9yVGVzdC5jb3VudERhdGFSb3dzKHJvdywgZnVuY3Rpb24obm9kZSkg
eyByZXR1cm4gbm9kZS5kYXRhLnJlbW92ZWRDb3VudDsgfSk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoY291bnRCLCBkZWxldGVkUm93c1Nob3duLCAiZGVsZXRl
ZCByb3dzIHNob3duIik7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChuZXh0LCAwKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgQ29tcGFyaXNvbiB2aWV3IG9m
IGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotVGhlICZxdW90O1Nob3cgQWxsJnF1b3Q7IGJ1dHRv
biBtdXN0IHNob3cgYWxsIG5vZGVzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNv
bi1zaG93LW5leHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93LW5leHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTdlMWFiNDE5OTFmNGE4ZmVlODUxYzNlM2ZjNzIwYjBm
Y2M4NTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tc2hv
dy1uZXh0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMg
Q29tcGFyaXNvbiB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBSZXBlYXRlZCBjbGlj
a3Mgb24gIlNob3cgTmV4dCIgYnV0dG9uIG11c3Qgc2hvdyBhbGwgbm9kZXMuCi0KLUhlYXAgcHJv
ZmlsZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93LW5leHQuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tc2hvdy1uZXh0
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViMTY0ZTE2MTFjMDUwZDkzNjUw
OWE3OWZiMWM5Zjc0MzRmMjc4ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qt
Y29tcGFyaXNvbi1zaG93LW5leHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBz
aG90LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgdmFyIGluc3RhbmNlQ291bnQgPSAyNDsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNo
b3RBKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFw
c2hvdChpbnN0YW5jZUNvdW50LCA1KTsKLSAgICB9Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNu
YXBzaG90QigpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFw
U25hcHNob3QoaW5zdGFuY2VDb3VudCArIDEsIDUgKyBpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0K
LSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1
bmN0aW9uIHRlc3RTaG93TmV4dChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90QSwgY3JlYXRlU25h
cHNob3RCKTsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNuYXBzaG90QigpIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNu
YXBzaG90Qiwgc3RlcDEpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0
Y2hUb1ZpZXcoIkNvbXBhcmlzb24iLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIg
cm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQSIpOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJBXCIgcm93Iik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3cocm93LCBzdGVwMyk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJvdykKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRSb3dDb3VudEEgPSBwYXJzZUludChy
b3cuZGF0YVsiYWRkZWRDb3VudCJdKTsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0g
SW5zcGVjdG9yVGVzdC5jb3VudERhdGFSb3dzKHJvdywgZnVuY3Rpb24obm9kZSkgeyByZXR1cm4g
bm9kZS5kYXRhLmFkZGVkQ291bnQ7IH0pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsIHJvd3NTaG93biA8PSBleHBlY3RlZFJvd0NvdW50QSwgInNob3du
IG1vcmUgaW5zdGFuY2VzIHRoYW4gY3JlYXRlZDogIiArIHJvd3NTaG93biArICIgPiAiICsgZXhw
ZWN0ZWRSb3dDb3VudEEpOwotICAgICAgICAgICAgICAgIGlmIChyb3dzU2hvd24gPCBleHBlY3Rl
ZFJvd0NvdW50QSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNw
ZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2Rl
Iik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRv
bigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDMpOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAocm93c1Nob3duID09PSBleHBlY3RlZFJvd0NvdW50QSkKLSAgICAgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChzdGVwNC5iaW5kKG51bGwsIHJvdyksIDApOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIGV4cGVjdGVkUm93Q291bnRCID0gcGFyc2VJbnQocm93LmRhdGFbInJlbW92
ZWRDb3VudCJdKTsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5zcGVjdG9yVGVz
dC5jb3VudERhdGFSb3dzKHJvdywgZnVuY3Rpb24obm9kZSkgeyByZXR1cm4gbm9kZS5kYXRhLnJl
bW92ZWRDb3VudDsgfSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModHJ1ZSwgcm93c1Nob3duIDw9IGV4cGVjdGVkUm93Q291bnRCLCAic2hvd24gbW9yZSBpbnN0
YW5jZXMgdGhhbiBjcmVhdGVkOiAiICsgcm93c1Nob3duICsgIiA+ICIgKyBleHBlY3RlZFJvd0Nv
dW50Qik7Ci0gICAgICAgICAgICAgICAgaWYgKHJvd3NTaG93biA8IGV4cGVjdGVkUm93Q291bnRC
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3Qu
ZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUiKTsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93TmV4
dCIsIGJ1dHRvbnNOb2RlLCBzdGVwNCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyb3dz
U2hvd24gPT09IGV4cGVjdGVkUm93Q291bnRCKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBi
dXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGZhbHNlLCAhIWJ1dHRvbnNO
b2RlLCAiYnV0dG9ucyBub2RlIGZvdW5kIGFmdGVyIGFsbCByb3dzIHNob3duIik7Ci0gICAgICAg
ICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBDb21wYXJpc29uIHZpZXcgb2Yg
ZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1SZXBlYXRlZCBjbGlja3Mgb24gJnF1b3Q7U2hvdyBO
ZXh0JnF1b3Q7IGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtY29tcGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtY29tcGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzkwOTc2NDEwNWFiZTRk
OTkxNDFkMzhjMTZjODBkYWNhMjNkMGUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LWNvbXBhcmlzb24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgQ29tcGFyaXNv
biB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBTaG93biBub2RlIGNvdW50IG11c3Qg
YmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi0KLUhlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtY29tcGFyaXNvbi1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlz
b24tc2hvd24tbm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwYzI5YmY3ZjM2NmNjNmFmYzY3OWUwYmVjMmNlOGI2ZTk2
MDE3MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29tcGFyaXNvbi1zaG93
bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDk4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQg
c3JjPSJoZWFwLXNuYXBzaG90LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgdmFyIGluc3RhbmNlQ291bnQgPSAyNDsKLSAgICBmdW5jdGlvbiBj
cmVhdGVIZWFwU25hcHNob3RBKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50LCA1KTsKLSAgICB9Ci0gICAgZnVuY3Rp
b24gY3JlYXRlSGVhcFNuYXBzaG90QigpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9y
VGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCArIDEsIDUgKyBpbnN0YW5jZUNv
dW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0
ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFeHBhbnNpb25QcmVzZXJ2ZWRXaGVuU29ydGluZyhu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25h
cHNob3QoY3JlYXRlSGVhcFNuYXBzaG90QSwgY3JlYXRlU25hcHNob3RCKTsKLSAgICAgICAgICAg
IGZ1bmN0aW9uIGNyZWF0ZVNuYXBzaG90QigpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90Qiwgc3RlcDEpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkNvbXBhcmlzb24i
LCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5zOwotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwMyk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93
LCAiXCJCXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBhbmRSb3co
cm93LCBzaG93TmV4dCk7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvd05leHQocm93KQot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0g
SW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRv
bnMgbm9kZSBmb3VuZCEiKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlj
a1Nob3dNb3JlQnV0dG9uKCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA0KTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVzdC5m
aW5kUm93KCJvYmplY3QiLCAiQiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJCXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgZnVu
Y3Rpb24gZGVsZXRlZE5vZGVNYXRjaGVyKGRhdGEpCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZGF0YS5yZW1vdmVkQ291bnQgJiYgZGF0YS5vYmplY3QudmFs
dWUuY2hhckF0KDApID09PSAiQiI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IHZhciBiSW5zdGFuY2VSb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3cyKGRlbGV0ZWROb2RlTWF0
Y2hlciwgcm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0
cnVlLCAhIWJJbnN0YW5jZVJvdywgIlwiQlwiIGluc3RhbmNlIHJvdyIpOwotICAgICAgICAgICAg
ICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdywg
Ykluc3RhbmNlUm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyhmYWxzZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKLSAgICAgICAg
ICAgICAgICBzdGVwNSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgbm9kZUNv
dW50OwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUoKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIG5vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1u
c1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHRydWUsIG5vZGVDb3VudCA+IDAsICJub2RlQ291bnQgPiAwIik7Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2UpOwotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQotICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBz
dGVwNik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBm
dW5jdGlvbiBzdGVwNigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIG5ld05v
ZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3Ro
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG5vZGVDb3VudCwg
bmV3Tm9kZUNvdW50KTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBDb21wYXJpc29uIHZpZXcgb2Yg
ZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1TaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJlc2Vy
dmVkIGFmdGVyIHNvcnRpbmcuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNv
cnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtY29tcGFyaXNvbi1zb3J0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTM2ZDY1NGQ2OTY1M2ExZjQ0MDM4ZTI1MjMwYzVlYWU5MzgzNjdmOS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNvcnRpbmctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyBzb3J0aW5nIGlu
IENvbXBhcmlzb24gdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLQotSGVhcCBwcm9m
aWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1jb21wYXJpc29uLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBhcmlzb24tc29ydGluZy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjRlZDI2ZGQyMDVmZDU3ZDZiNTMwZDcx
N2IzNWM3NjQ3OTY3ZmMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbXBh
cmlzb24tc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIg
aW5zdGFuY2VDb3VudCA9IDI0OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdEEoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGlu
c3RhbmNlQ291bnQsIDUpOwotICAgIH0KLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3RC
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dChpbnN0YW5jZUNvdW50ICsgMSwgNSArIGluc3RhbmNlQ291bnQpOwotICAgIH0KLQotICAgIElu
c3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24g
dGVzdFNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50
YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEEsIGNyZWF0ZVNuYXBzaG90Qik7
Ci0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVTbmFwc2hvdEIoKSB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdEIs
IHN0ZXAxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c3dpdGNoVG9WaWV3KCJDb21wYXJpc29uIiwgc3RlcDIpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAgICAgIHZhciBjdXJyZW50Q29sdW1uOwotICAg
ICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW5PcmRlcjsKLQotICAgICAgICAgICAgZnVuY3Rpb24g
c3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0
b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVtbiA9IDA7
Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0gZmFsc2U7Ci0gICAgICAgICAg
ICAgICAgc2V0VGltZW91dChzdGVwMywgMCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vy
cmVudENvbHVtbiA+PSBjb2x1bW5zLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1
bW5zW2N1cnJlbnRDb2x1bW5dLCBzdGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXA0KG5ld0NvbHVtblN0YXRlKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGNvbHVtbnNbY3VycmVudENvbHVtbl0gPSBuZXdDb2x1bW5TdGF0ZTsKLSAgICAgICAg
ICAgICAgICB2YXIgY29udGVudHMgPSBJbnNwZWN0b3JUZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVt
bnNbY3VycmVudENvbHVtbl0pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKHRydWUsICEhY29udGVudHMubGVuZ3RoLCAiY29sdW1uIGNvbnRlbnRzIik7Ci0gICAg
ICAgICAgICAgICAgdmFyIHNvcnRUeXBlcyA9IHsgb2JqZWN0OiAidGV4dCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWRDb3VudDogIm51bWJlciIsIHJlbW92ZWRDb3Vu
dDogIm51bWJlciIsIGNvdW50RGVsdGE6ICJudW1iZXIiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFkZGVkU2l6ZTogInNpemUiLCByZW1vdmVkU2l6ZTogInNpemUiLCBzaXpl
RGVsdGE6ICJzaXplIiB9OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKHRydWUsICEhc29ydFR5cGVzW2NvbHVtbnNbY3VycmVudENvbHVtbl0uaWRlbnRpZmllcl0s
ICJzb3J0IGJ5IGlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNo
ZWNrQXJyYXlJc1NvcnRlZChjb250ZW50cywgc29ydFR5cGVzW2NvbHVtbnNbY3VycmVudENvbHVt
bl0uaWRlbnRpZmllcl0sIGNvbHVtbnNbY3VycmVudENvbHVtbl0uc29ydCk7Ci0KLSAgICAgICAg
ICAgICAgICBpZiAoIWN1cnJlbnRDb2x1bW5PcmRlcikKLSAgICAgICAgICAgICAgICAgICAgY3Vy
cmVudENvbHVtbk9yZGVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
ICAgICsrY3VycmVudENvbHVtbjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
c2V0VGltZW91dChzdGVwMywgMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsK
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHNvcnRpbmcgaW4gQ29tcGFyaXNvbiB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNo
b3RzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtZXhwYW5zaW9uLXByZXNl
cnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVu
LXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjEy
MmRlZTdiYjcwNjI5NDUzMTZkODM1NzE3NjA3MTIzOWRlZDhiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0
aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgQ29u
dGFpbm1lbnQgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gRXhwYW5kZWQgbm9kZXMg
bXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLQotSGVhcCBwcm9maWxlciBpcyBkaXNh
YmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1jb250YWlubWVudC1leHBhbnNpb24tcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1l
bnQtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjU2YjYyMjU2MTE2MjM1MTQ3ZDk3ZGNkYWRiNzE4OTRlZjkzNmUwZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1leHBhbnNpb24t
cHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25h
cHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFw
c2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFw
U25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RXhwYW5zaW9uUHJlc2Vy
dmVkV2hlblNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOwotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkNvbnRhaW5tZW50Iiwgc3RlcDIpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5zID0gSW5zcGVj
dG9yVGVzdC52aWV3Q29sdW1ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xp
Y2tDb2x1bW4oY29sdW1uc1swXSwgc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5maW5kQW5kRXhwYW5kV2luZG93KHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDQocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0
b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dBbGwiLCBidXR0b25zTm9kZSwgc3Rl
cDUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNShyb3cpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IHJvdy5jaGlsZHJlblswXTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywg
IlwiQlwiIGluc3RhbmNlIHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
YW5kUm93KHJvdywgZXhwYW5kQSk7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gZXhwYW5kQShy
b3cpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBwcm9w
ZXJ0eU1hdGNoZXIoZGF0YSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGRhdGEubmFtZSA9PT0gImEiICYmIGRhdGEudmFsdWUuY2hhckF0KDAp
ID09PSAiQSI7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdmFy
IGFSb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsIHByb3BlcnR5TWF0Y2hlciwg
cm93KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1
ZSwgISFhUm93LCAiXCJhOiBBXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwYW5kUm93KGFSb3csIHN0ZXA2KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5Db250ZW50czsKLSAgICAgICAgICAgIGZ1
bmN0aW9uIHN0ZXA2KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5Db250
ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSk7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBjbGlja1R3aWNl
KTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBjbGlja1R3aWNlKCkKLSAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1u
c1swXSwgc3RlcDcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDcoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZh
ciBuZXdDb2x1bW5Db250ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1u
c1swXSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRDb2x1bW5Db250ZW50
c0VxdWFsKGNvbHVtbkNvbnRlbnRzLCBuZXdDb2x1bW5Db250ZW50cyk7Ci0gICAgICAgICAgICAg
ICAgc2V0VGltZW91dChuZXh0LCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0p
OwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxw
PgotVGVzdHMgQ29udGFpbm1lbnQgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLUV4
cGFuZGVkIG5vZGVzIG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNvcnRpbmcuCi08L3A+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93LWFsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93LWFs
bC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzMDZjZTUyNDlk
YWUzMjZmNzQ3YWQ1YTQxODZjZjhkOWU0MzhkMTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtY29udGFpbm1lbnQtc2hvdy1hbGwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNCArMCwwIEBACi1UZXN0cyBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAg
c25hcHNob3RzLiBUaGUgIlNob3cgQWxsIiBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KLQot
SGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zaG93LWFsbC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQt
c2hvdy1hbGwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNiODZjNjIzNjAz
YzJhYTM1MjA5YTcxYjkzYTAxZTE5Nzk3MDRkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1jb250YWlubWVudC1zaG93LWFsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9Imhl
YXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhl
YXBTbmFwc2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVI
ZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5y
dW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd0FsbChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25h
cHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3
aXRjaFRvVmlldygiQ29udGFpbm1lbnQiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRXaW5kb3coc3RlcDMpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUo
cm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAh
IWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2RlIik7Ci0gICAgICAgICAgICAgICAgdmFyIHdvcmRz
ID0gYnV0dG9uc05vZGUuc2hvd0FsbC50ZXh0Q29udGVudC5zcGxpdCgiICIpOwotICAgICAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
ICAgICAgICAgICAgdmFyIG1heWJlTnVtYmVyID0gcGFyc2VJbnQod29yZHNbaV0sIDEwKTsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKCFpc05hTihtYXliZU51bWJlcikpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50IC0gcm93
Ll9kYXRhR3JpZC5kZWZhdWx0UG9wdWxhdGVDb3VudCgpLCBtYXliZU51bWJlciwgYnV0dG9uc05v
ZGUuc2hvd0FsbC50ZXh0Q29udGVudCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd0FsbCIsIGJ1dHRvbnNO
b2RlLCBzdGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0
KHJvdykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1Nob3duID0gSW5z
cGVjdG9yVGVzdC5jb3VudERhdGFSb3dzKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRFcXVhbHMoaW5zdGFuY2VDb3VudCwgcm93c1Nob3duLCAiYWZ0ZXIgc2hvd0Fs
bCBjbGljayIpOwotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRl
c3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoZmFsc2UsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUgZm91bmQgd2hl
biBhbGwgaW5zdGFuY2VzIGFyZSBzaG93biEiKTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBDb250
YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotVGhlICZxdW90O1Nob3cg
QWxsJnF1b3Q7IGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotPC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtY29udGFpbm1lbnQtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3ctbmV4dC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3OThiMGFiMzUwZmFiMDBj
YTUwODRlNjA3MzUwYTY0ZDg3MmViZGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtY29udGFpbm1lbnQtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDQgKzAsMCBAQAotVGVzdHMgQ29udGFpbm1lbnQgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBz
aG90cy4gUmVwZWF0ZWQgY2xpY2tzIG9uICJTaG93IE5leHQiIGJ1dHRvbiBtdXN0IHNob3cgYWxs
IG5vZGVzLgotCi1IZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNob3ct
bmV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qt
Y29udGFpbm1lbnQtc2hvdy1uZXh0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDUzZTk4MmVlYWRlOTk2Njk2YjQxMGRlYjliYzU0MTBjY2YzYmY0M2EuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtY29udGFpbm1lbnQtc2hvdy1uZXh0Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8
c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVu
Y3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3RTaG93TmV4dChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiQ29udGFpbm1lbnQiLCBzdGVwMik7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRXaW5kb3coc3RlcDMpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvd3NTaG93biA9IEluc3BlY3RvclRlc3QuY291
bnREYXRhUm93cyhyb3cpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKHRydWUsIHJvd3NTaG93biA8PSBpbnN0YW5jZUNvdW50LCAic2hvd24gbW9yZSBpbnN0YW5j
ZXMgdGhhbiBjcmVhdGVkOiAiICsgcm93c1Nob3duICsgIiA+ICIgKyBpbnN0YW5jZUNvdW50KTsK
LSAgICAgICAgICAgICAgICBpZiAocm93c1Nob3duIDwgaW5zdGFuY2VDb3VudCkgewotICAgICAg
ICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25z
Tm9kZShyb3cpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2RlIik7Ci0gICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd05leHQiLCBidXR0b25z
Tm9kZSwgc3RlcDMpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocm93c1Nob3duID09PSBp
bnN0YW5jZUNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IElu
c3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGZhbHNlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBu
b2RlIGZvdW5kIHdoZW4gYWxsIGluc3RhbmNlcyBhcmUgc2hvd24hIik7Ci0gICAgICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBDb250YWlubWVudCB2aWV3IG9mIGRldGFp
bGVkIGhlYXAgc25hcHNob3RzLgotUmVwZWF0ZWQgY2xpY2tzIG9uICZxdW90O1Nob3cgTmV4dCZx
dW90OyBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWNvbnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1j
b250YWlubWVudC1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjgwODk4Nzg4YWRhNmNhMzA5
OTAwMjE5OTUyNjVhM2ZlYTcyZDUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWNvbnRhaW5tZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIENvbnRhaW5tZW50
IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFNob3duIG5vZGUgY291bnQgbXVzdCBi
ZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLQotSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1jb250YWlubWVudC1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5t
ZW50LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjllZDA3NzA5NDQ0MWU5ZjQ5NzM0NmY2OTU0ZjUxZWEz
NjEzMGE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50LXNo
b3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlw
dCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9u
IGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVz
dC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVj
dG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0
U2hvd25Ob2RlQ291bnRQcmVzZXJ2ZWRXaGVuU29ydGluZyhuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBz
aG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiQ29udGFpbm1l
bnQiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5zOwot
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwMyk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRXaW5kb3coc3RlcDQpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5m
aW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNOb2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5kISIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd05l
eHQiLCBidXR0b25zTm9kZSwgc3RlcDUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2
YXIgbm9kZUNvdW50OwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUocm93KQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIC8vIFRoZXJlIG11c3QgYmUgZW5vdWdoIG5vZGVzIHRvIGhh
dmUgc29tZSB1bnJldmVhbGVkLgotICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IElu
c3BlY3RvclRlc3QuZmluZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9k
ZSBmb3VuZCEiKTsKLQotICAgICAgICAgICAgICAgIG5vZGVDb3VudCA9IEluc3BlY3RvclRlc3Qu
Y29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIG5vZGVDb3VudCA+IDAsICJub2RlQ291bnQgPiAw
Iik7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNb
MF0sIGNsaWNrVHdpY2UpOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlj
a0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwNik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNigpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgdmFyIG5ld05vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVu
dHMoY29sdW1uc1swXSkubGVuZ3RoOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKG5vZGVDb3VudCwgbmV3Tm9kZUNvdW50KTsKLSAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0
cyBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotU2hvd24gbm9k
ZSBjb3VudCBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotPC9wPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtY29udGFpbm1lbnQtc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zb3J0aW5nLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRmZmRhZTRlMDFmYTc0ZjE2
OGM4OTlkMWY2MjVjYThhYzc1MjQ1ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1jb250YWlubWVudC1zb3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQg
KzAsMCBAQAotVGVzdHMgc29ydGluZyBpbiBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhl
YXAgc25hcHNob3RzLgotCi1IZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWNvbnRhaW5tZW50
LXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LWNvbnRhaW5tZW50LXNvcnRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDExMTBmNmEwODE1N2Q1MDUyODA1ZDE5MzQ0ZDNmNWJiZmM3ZmQ4Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1jb250YWlubWVudC1zb3J0aW5nLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw4MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8
c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVu
Y3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3RTb3J0aW5nKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
dGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3QsIHN0ZXAxKTsKLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJDb250YWlubWVudCIsIHN0ZXAyKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgdmFyIGdjUm9vdHM7Ci0gICAgICAgICAgICB2YXIgY29sdW1u
czsKLSAgICAgICAgICAgIHZhciBjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgdmFyIGN1cnJl
bnRDb2x1bW5PcmRlcjsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZEdDUm9vdHMo
c3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhnY1Jv
b3RzUm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGdjUm9vdHMgPSBnY1Jvb3Rz
Um93OwotICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0LnZpZXdDb2x1bW5z
KCk7Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVtbiA9IDA7Ci0gICAgICAgICAgICAgICAg
Y3VycmVudENvbHVtbk9yZGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChz
dGVwNCwgMCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiA+PSBjb2x1
bW5zLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zW2N1cnJlbnRDb2x1bW5d
LCBzdGVwNSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA1KG5l
d0NvbHVtblN0YXRlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnNbY3Vy
cmVudENvbHVtbl0gPSBuZXdDb2x1bW5TdGF0ZTsKLSAgICAgICAgICAgICAgICB2YXIgY29udGVu
dHMgPSBJbnNwZWN0b3JUZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVtbnNbY3VycmVudENvbHVtbl0s
IGdjUm9vdHMpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRy
dWUsICEhY29udGVudHMubGVuZ3RoLCAiY29sdW1uIGNvbnRlbnRzIik7Ci0gICAgICAgICAgICAg
ICAgdmFyIHNvcnRUeXBlcyA9IHsgb2JqZWN0OiAibmFtZSIsIHNoYWxsb3dTaXplOiAic2l6ZSIs
IHJldGFpbmVkU2l6ZTogInNpemUiIH07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHModHJ1ZSwgISFzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVu
dGlmaWVyXSwgInNvcnQgYnkgaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tBcnJheUlzU29ydGVkKGNvbnRlbnRzLCBzb3J0VHlwZXNbY29sdW1uc1tjdXJy
ZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgY29sdW1uc1tjdXJyZW50Q29sdW1uXS5zb3J0KTsKLQot
ICAgICAgICAgICAgICAgIGlmICghY3VycmVudENvbHVtbk9yZGVyKQotICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICAgICAgKytjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBzZXRUaW1lb3V0KHN0ZXA0LCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgc29ydGluZyBpbiBDb250YWlubWVudCB2aWV3IG9mIGRldGFpbGVkIGhl
YXAgc25hcHNob3RzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1leHBhbnNp
b24tcHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2
ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWQ0MzRmNTMxNTBmODc5MGQ1ZjhiM2JiNjMyMDA4M2RmYjYzMTBjZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hl
bi1zb3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVz
dHMgRG9taW5hdG9ycyB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBFeHBhbmRlZCBu
b2RlcyBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotCi1IZWFwIHByb2ZpbGVyIGlz
IGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9o
ZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWlu
YXRvcnMtZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTI3ODQxOWQxYzZjYTJkZTgzNmYxNjg1ODY1YWY3ZjFlZmRiMDZm
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLWV4cGFuc2lv
bi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1z
bmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNu
YXBzaG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBT
bmFwc2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhl
YXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFeHBhbnNpb25QcmVz
ZXJ2ZWRXaGVuU29ydGluZyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiRG9taW5hdG9ycyIsIHN0ZXAyKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGNvbHVtbnM7Ci0gICAgICAgICAgICBmdW5jdGlv
biBzdGVwMigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29sdW1ucyA9IEluc3Bl
Y3RvclRlc3Qudmlld0NvbHVtbnMoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNs
aWNrQ29sdW1uKGNvbHVtbnNbMF0sIHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZmluZEFuZEV4cGFuZFdpbmRvdyhzdGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KHJvdykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0
dG9uc05vZGUsICJubyBidXR0b25zIG5vZGUgZm91bmQhIik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0
ZXA1KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUocm93KQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSByb3cuY2hpbGRyZW5bMF07
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3cs
ICJcIkJcIiBpbnN0YW5jZSByb3ciKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGFuZFJvdyhyb3csIHN0ZXA2KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGNv
bHVtbkNvbnRlbnRzOwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDYoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGNvbHVtbkNvbnRlbnRzID0gSW5zcGVjdG9yVGVzdC5jb2x1bW5D
b250ZW50cyhjb2x1bW5zWzBdKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNr
Q29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2UpOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IGNsaWNrVHdpY2UoKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVwNyk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNygpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIG5ld0NvbHVtbkNvbnRlbnRzID0gSW5zcGVj
dG9yVGVzdC5jb2x1bW5Db250ZW50cyhjb2x1bW5zWzBdKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydENvbHVtbkNvbnRlbnRzRXF1YWwoY29sdW1uQ29udGVudHMsIG5ld0Nv
bHVtbkNvbnRlbnRzKTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBEb21pbmF0b3JzIHZpZXcgb2Yg
ZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1FeHBhbmRlZCBub2RlcyBtdXN0IGJlIHByZXNlcnZl
ZCBhZnRlciBzb3J0aW5nLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93
LWFsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1kb21pbmF0b3JzLXNob3ctYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTY2ZjFiYmZmM2MyM2VmN2Y5YjhjZDIxMTQ3MDU2MjM5Y2JjZTlkNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctYWxsLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgRG9taW5hdG9y
cyB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBUaGUgIlNob3cgQWxsIiBidXR0b24g
bXVzdCBzaG93IGFsbCBub2Rlcy4KLQotSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21p
bmF0b3JzLXNob3ctYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctYWxsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVmMTg4YjM5Nzk2ZmEyYjIwY2M1YzY3MzIwYmRkN2RjNDlmZTU1NDMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93LWFsbC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDI1Owot
ICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAgewotICAgICAgICByZXR1cm4g
SW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAgfQot
Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAgICBm
dW5jdGlvbiB0ZXN0U2hvd0FsbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiRG9taW5hdG9ycyIsIHN0ZXAyKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZFdpbmRvdyhzdGVw
Myk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJvdykKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JU
ZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUiKTsKLSAgICAg
ICAgICAgICAgICB2YXIgd29yZHMgPSBidXR0b25zTm9kZS5zaG93QWxsLnRleHRDb250ZW50LnNw
bGl0KCIgIik7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3Jkcy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgbWF5YmVOdW1iZXIgPSBwYXJzZUlu
dCh3b3Jkc1tpXSwgMTApOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKG1heWJlTnVt
YmVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KGluc3RhbmNlQ291bnQgLSByb3cuX2RhdGFHcmlkLmRlZmF1bHRQb3B1bGF0ZUNvdW50KCksIG1h
eWJlTnVtYmVyLCBidXR0b25zTm9kZS5zaG93QWxsLnRleHRDb250ZW50KTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9u
KCJzaG93QWxsIiwgYnV0dG9uc05vZGUsIHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDQocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHZhciByb3dzU2hvd24gPSBJbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3Mocm93KTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50LCByb3dz
U2hvd24sICJhZnRlciBzaG93QWxsIGNsaWNrIik7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1dHRv
bnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgISFidXR0b25zTm9kZSwgImJ1
dHRvbnMgbm9kZSBmb3VuZCB3aGVuIGFsbCBpbnN0YW5jZXMgYXJlIHNob3duISIpOwotICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRlc3RzIERvbWluYXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90
cy4KLVRoZSAmcXVvdDtTaG93IEFsbCZxdW90OyBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4K
LTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0LWFjdHVhbC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3Jz
LXNob3ctbmV4dC1hY3R1YWwudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTdl
MWFiNDE5OTFmNGE4ZmVlODUxYzNlM2ZjNzIwYjBmY2M4NTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0LWFjdHVhbC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIENvbXBhcmlzb24gdmlldyBvZiBkZXRhaWxlZCBo
ZWFwIHNuYXBzaG90cy4gUmVwZWF0ZWQgY2xpY2tzIG9uICJTaG93IE5leHQiIGJ1dHRvbiBtdXN0
IHNob3cgYWxsIG5vZGVzLgotCi1IZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRv
cnMtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQwMjFjYTUxOGMyYTE5Njk1YjVmNjAzZmQyNTFjZDQ4
NTQ0MWQ3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNo
b3ctbmV4dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRlc3Rz
IERvbWluYXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gUmVwZWF0ZWQgY2xp
Y2tzIG9uICJTaG93IE5leHQiIGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotCi1IZWFwIHBy
b2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvdy1uZXh0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNob3ctbmV4
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTFjOWZjNTJlMTg5YmY3M2U4
YTg4NmMwZWU5MjYzNmIzN2VhMDlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWRvbWluYXRvcnMtc2hvdy1uZXh0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFw
c2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBz
aG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFw
c2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBT
bmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93TmV4dChuZXh0KQot
ICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3Qo
Y3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRv
VmlldygiRG9taW5hdG9ycyIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZmluZEFuZEV4cGFuZFJvdygiV2luZG93Iiwgc3RlcDMpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIHJvd3NTaG93biA9IEluc3BlY3RvclRlc3QuY291bnREYXRhUm93cyhyb3cp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIHJvd3NT
aG93biA8PSBpbnN0YW5jZUNvdW50LCAic2hvd24gbW9yZSBpbnN0YW5jZXMgdGhhbiBjcmVhdGVk
OiAiICsgcm93c1Nob3duICsgIiA+ICIgKyBpbnN0YW5jZUNvdW50KTsKLSAgICAgICAgICAgICAg
ICBpZiAocm93c1Nob3duIDwgaW5zdGFuY2VDb3VudCkgewotICAgICAgICAgICAgICAgICAgICB2
YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRv
bnNOb2RlLCAiYnV0dG9ucyBub2RlIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDMpOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocm93c1Nob3duID09PSBpbnN0YW5jZUNvdW50KSB7
Ci0gICAgICAgICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmlu
ZEJ1dHRvbnNOb2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKGZhbHNlLCAhIWJ1dHRvbnNOb2RlLCAiYnV0dG9ucyBub2RlIGZvdW5kIHdoZW4g
YWxsIGluc3RhbmNlcyBhcmUgc2hvd24hIik7Ci0gICAgICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQobmV4dCwgMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotPHA+Ci1UZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hv
dHMuCi1SZXBlYXRlZCBjbGlja3Mgb24gJnF1b3Q7U2hvdyBOZXh0JnF1b3Q7IGJ1dHRvbiBtdXN0
IHNob3cgYWxsIG5vZGVzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93
bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1u
b2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNTJhMzU2Yzk3MTIxZDY4M2Q4OTA3YjQ0NDk1YWY5MjhhNTIx
YzI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvd24t
bm9kZS1jb3VudC1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgRG9taW5hdG9ycyB2aWV3IG9mIGRldGFpbGVkIGhl
YXAgc25hcHNob3RzLiBTaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJlc2VydmVkIGFmdGVyIHNv
cnRpbmcuCi0KLUhlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1u
b2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc2hvd24tbm9kZS1jb3VudC1w
cmVzZXJ2ZWQtd2hlbi1zb3J0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI0ZGFlZWIxNjdiOWIwOTE5YmNlNzEwZmIwMzdhM2MzYzFkNWFiMDkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtZG9taW5hdG9ycy1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZl
ZC13aGVuLXNvcnRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90LXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFy
IGluc3RhbmNlQ291bnQgPSAyNTsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3QoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGlu
c3RhbmNlQ291bnQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90
VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNob3duTm9kZUNvdW50UHJlc2VydmVk
V2hlblNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50
YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOwotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIkRvbWluYXRvcnMiLCBzdGVwMik7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5zOwotICAgICAgICAgICAgZnVuY3Rpb24gc3Rl
cDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JU
ZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0Nv
bHVtbihjb2x1bW5zWzBdLCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1
bmN0aW9uIHN0ZXAzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmZpbmRBbmRFeHBhbmRXaW5kb3coc3RlcDQpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwNChyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
dmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJ1dHRvbnNO
b2RlLCAibm8gYnV0dG9ucyBub2RlIGZvdW5kISIpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd05leHQiLCBidXR0b25zTm9kZSwgc3RlcDUp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgbm9kZUNvdW50OwotICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDUocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8v
IFRoZXJlIG11c3QgYmUgZW5vdWdoIG5vZGVzIHRvIGhhdmUgc29tZSB1bnJldmVhbGVkLgotICAg
ICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNO
b2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1
ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKLQotICAgICAgICAg
ICAgICAgIG5vZGVDb3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1sw
XSkubGVuZ3RoOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRy
dWUsIG5vZGVDb3VudCA+IDAsICJub2RlQ291bnQgPiAwIik7Ci0KLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbMF0sIGNsaWNrVHdpY2UpOwotICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIGNsaWNrVHdpY2UoKQotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBzdGVw
Nik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBzdGVwNigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIG5ld05vZGVD
b3VudCA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSkubGVuZ3RoOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG5vZGVDb3VudCwgbmV3
Tm9kZUNvdW50KTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5leHQsIDApOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBEb21pbmF0b3JzIHZpZXcgb2YgZGV0
YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi1TaG93biBub2RlIGNvdW50IG11c3QgYmUgcHJlc2VydmVk
IGFmdGVyIHNvcnRpbmcuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNvcnRp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtZG9taW5hdG9ycy1zb3J0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzQ1MDg3MjRmYzc1NDM3Njc3NGUxZjM3MWFiYmViZTRkZjNmYTUzYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNvcnRpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyBzb3J0aW5nIGluIERv
bWluYXRvcnMgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLQotSGVhcCBwcm9maWxl
ciBpcyBkaXNhYmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1kb21pbmF0b3JzLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRvcnMtc29ydGluZy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWFmNDEyYWYxNjNlNjRiYzc0NDgyNzU5YjNm
YjJiODMwOGQ5YTY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWRvbWluYXRv
cnMtc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgaW5z
dGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAg
ewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFu
Y2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U29ydGluZyhuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNu
YXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiRG9taW5h
dG9ycyIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIGdjUm9vdHM7
Ci0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAgICAgIHZhciBjdXJyZW50Q29sdW1u
OwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW5PcmRlcjsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZmluZEFuZEV4cGFuZFdpbmRvdyhzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAzKGdjUm9vdHNSb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgZ2NSb290cyA9IGdjUm9vdHNSb3c7Ci0gICAgICAgICAgICAgICAgY29sdW1ucyA9IElu
c3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsKLSAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1u
ID0gMDsKLSAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSBmYWxzZTsKLSAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHN0ZXA0LCAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlm
IChjdXJyZW50Q29sdW1uID49IGNvbHVtbnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1u
KGNvbHVtbnNbY3VycmVudENvbHVtbl0sIHN0ZXA1KTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgZnVuY3Rpb24gc3RlcDUobmV3Q29sdW1uU3RhdGUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgY29sdW1uc1tjdXJyZW50Q29sdW1uXSA9IG5ld0NvbHVtblN0YXRlOwotICAg
ICAgICAgICAgICAgIHZhciBjb250ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMo
Y29sdW1uc1tjdXJyZW50Q29sdW1uXSwgZ2NSb290cyk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFjb250ZW50cy5sZW5ndGgsICJjb2x1bW4gY29u
dGVudHMiKTsKLSAgICAgICAgICAgICAgICB2YXIgc29ydFR5cGVzID0geyBvYmplY3Q6ICJpZCIs
IHNoYWxsb3dTaXplOiAic2l6ZSIsIHJldGFpbmVkU2l6ZTogInNpemUiIH07Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFzb3J0VHlwZXNbY29sdW1u
c1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgInNvcnQgYnkgaWRlbnRpZmllciIpOwotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tBcnJheUlzU29ydGVkKGNvbnRlbnRzLCBz
b3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgY29sdW1uc1tjdXJy
ZW50Q29sdW1uXS5zb3J0KTsKLQotICAgICAgICAgICAgICAgIGlmICghY3VycmVudENvbHVtbk9y
ZGVyKQotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSB0cnVlOwotICAg
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3Jk
ZXIgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50Q29sdW1uOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHN0ZXA0LCAwKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgc29ydGluZyBpbiBEb21pbmF0b3Jz
IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi08L3A+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViYWU3NzY0
ODhjNTBhMmRmMmQ0OGZjODEwYzU0OWY4MTE1ZTM4OGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAot
VGhpcyB0ZXN0IGNoZWNrcyBIZWFwU25hcHNob3RzIG1vZHVsZS4KLQotCi1SdW5uaW5nOiBoZWFw
U25hcHNob3ROb2RlU2ltcGxlVGVzdAotCi1SdW5uaW5nOiBoZWFwU25hcHNob3ROb2RlSXRlcmF0
b3JUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdEVkZ2VTaW1wbGVUZXN0Ci0KLVJ1bm5pbmc6
IGhlYXBTbmFwc2hvdEVkZ2VJdGVyYXRvclRlc3QKLQotUnVubmluZzogaGVhcFNuYXBzaG90Tm9k
ZUFuZEVkZ2VUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdFNpbXBsZVRlc3QKLQotUnVubmlu
ZzogaGVhcFNuYXBzaG90Q29udGFpbm1lbnRFZGdlSW5kZXhlc1Rlc3QKLQotUnVubmluZzogaGVh
cFNuYXBzaG90UG9zdE9yZGVySW5kZXhUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdERvbWlu
YXRvcnNUcmVlVGVzdAotCi1SdW5uaW5nOiBoZWFwU25hcHNob3RSZXRhaW5lZFNpemVUZXN0Ci0K
LVJ1bm5pbmc6IGhlYXBTbmFwc2hvdERvbWluYXRlZE5vZGVzVGVzdAotCi1SdW5uaW5nOiBoZWFw
U25hcHNob3RQYWdlT3duZWRUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdFJldGFpbmVyc1Rl
c3QKLQotUnVubmluZzogaGVhcFNuYXBzaG90QWdncmVnYXRlc1Rlc3QKLQotUnVubmluZzogaGVh
cFNuYXBzaG90RmxhZ3NUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdEFycmF5U2xpY2VUZXN0
Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXJUZXN0Ci0KLVJ1bm5pbmc6IGhl
YXBTbmFwc2hvdEVkZ2VzUHJvdmlkZXJUZXN0Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1w
cm9maWxlLWNyYXNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmM2NzRiOTdhNzBkMTMyMTRiOTFiOTZiZDRmZDBiM2RiMzFlZTExMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgSGVhcFNuYXBzaG90cyBt
b2R1bGUuCi0KLQotUnVubmluZzogZ2V0SGVhcFNuYXBzaG90RG9lc250Q3Jhc2gKLWxvZzogUHJv
ZmlsZSB3YXNuJ3QgZm91bmQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0NGNiMTIyMTg4ZjMzZDE0NzUxNDg0OTJm
ZGM1ZGRmZWM5ZjNkYzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXBy
b2ZpbGUtY3Jhc2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIGdldEhlYXBTbmFwc2hvdERvZXNu
dENyYXNoKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChlcnJv
clN0cmluZywgcHJvZmlsZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb25zb2xl
LmxvZyhlcnJvclN0cmluZyk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KC0xLCBmaW5p
c2gpOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRoaXMgdGVzdCBjaGVja3MgSGVhcFNuYXBzaG90
cyBtb2R1bGUuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtaW5zcGVjdC1kb20td3JhcHBlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDYxZTA3YjdlMTk3OTMyZjI0YmZkZDcyNjE5ODI0Y2I3NTg3M2YzNjMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVRlc3QgdGhhdCByZXNvbHZpbmcg
aGVhcCBzbmFwaG90IG9iamVjdCB0byBhIEpTIG9iamVjdCB3aWxsIG5vdCBjcmFzaCBvbiBET00g
d3JhcHBlciBib2lsZXJwbGF0ZS4gVGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KLQot
ZmluaXNoSGVhcFNuYXBzaG90IDEKLV9jYWxsTG9hZENhbGxiYWNrcwotRXJyb3IgcmVzb2x2aW5n
IGhlYXAgc25hcHNob3Qgb2JqZWN0OiBPYmplY3QgaXMgbm90IGF2YWlsYWJsZQotRXJyb3IgcmVz
b2x2aW5nIGhlYXAgc25hcHNob3Qgb2JqZWN0OiBPYmplY3QgaXMgbm90IGF2YWlsYWJsZQotY2xl
YXJQcm9maWxlcwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzODA4NDhmYjgzODA0NzRlMDE4M2YxODBmYTdi
ZDcxNzk1NzM0NTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1k
b20td3JhcHBlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGhhbmRsZUxvYWQoKQotewotICAgIC8vIE1h
a2Ugc3VyZSB0aGVyZSBpcyBhIGJvZHkgd3JhcHBlci4KLSAgICBkb2N1bWVudC5ib2R5LmZpZWxk
T25Eb21XcmFwcGVyID0gMjAxMjsKLSAgICBydW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0gICAgSGVhcFBy
b2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdChzdGVwMCk7Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MCgpCi0gICAgewotICAgICAgICB2YXIgaGVhcFByb2ZpbGVUeXBlID0gIFdlYkluc3BlY3Rvci5w
YW5lbHMucHJvZmlsZXMuZ2V0UHJvZmlsZVR5cGUoIkhFQVAiKTsKLSAgICAgICAgdmFyIHByb2Zp
bGVzID0gaGVhcFByb2ZpbGVUeXBlLmdldFByb2ZpbGVzKCk7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5wYW5lbHMucHJvZmlsZXMuX3Nob3dQcm9maWxlKHByb2ZpbGVzW3Byb2ZpbGVzLmxlbmd0aCAt
IDFdKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKGhlYXBQcm9maWxlVHlwZSwg
ImZpbmlzaEhlYXBTbmFwc2hvdCIsIHN0ZXAxKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MSh1aWQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZmluaXNoSGVh
cFNuYXBzaG90ICIgKyB1aWQpOwotICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFu
ZWxzLnByb2ZpbGVzOwotICAgICAgICB2YXIgcHJvZmlsZSA9IHBhbmVsLmdldFByb2ZpbGUoV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCwgdWlkKTsKLSAgICAgICAg
cHJvZmlsZS5sb2FkKHN0ZXAyLmJpbmQodGhpcykpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0
ZXAyKHNuYXBzaG90UHJveHkpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiX2NhbGxMb2FkQ2FsbGJhY2tzIik7Ci0gICAgICAgIHZhciBzbmFwc2hvdCA9IHNuYXBzaG90
UHJveHkuX3dvcmtlci5fd29ya2VyLl9kaXNwYXRjaGVyLl9vYmplY3RzW3NuYXBzaG90UHJveHku
X29iamVjdElkXTsKLQotICAgICAgICB2YXIgYm9keVdyYXBwZXJJZHMgPSBbXTsKLSAgICAgICAg
Zm9yICh2YXIgaXQgPSBzbmFwc2hvdC5fYWxsTm9kZXM7IGl0Lmhhc05leHQoKTsgaXQubmV4dCgp
KSB7Ci0gICAgICAgICAgICBpZiAoaXQubm9kZS5jbGFzc05hbWUgPT09ICJIVE1MQm9keUVsZW1l
bnQiKQotICAgICAgICAgICAgICAgIGJvZHlXcmFwcGVySWRzLnB1c2goaXQubm9kZS5pZCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib2R5V3JhcHBlcklkcy5sZW5n
dGg7IGkrKykKLSAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9i
amVjdElkKGJvZHlXcmFwcGVySWRzW2ldLCB1bmRlZmluZWQsIGRpZEdldE9iamVjdEJ5SGVhcE9i
amVjdElkKTsKLQotICAgICAgICB2YXIgcmVzb2x2ZWRPYmplY3RzQ291bnQgPSAwOwotICAgICAg
ICB2YXIgcmVtb3RlT2JqZWN0cyA9IFtdOwotICAgICAgICBmdW5jdGlvbiBkaWRHZXRPYmplY3RC
eUhlYXBPYmplY3RJZChlcnJvciwgb2JqZWN0KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
ZXJyb3IpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yIHJl
c29sdmluZyBoZWFwIHNuYXBzaG90IG9iamVjdDogIiArIGVycm9yKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICByZW1vdGVPYmplY3RzLnB1c2goV2ViSW5zcGVjdG9yLlJlbW90
ZU9iamVjdC5mcm9tUGF5bG9hZChvYmplY3QpKTsKLQotICAgICAgICAgICAgaWYgKCsrcmVzb2x2
ZWRPYmplY3RzQ291bnQgID09PSBib2R5V3JhcHBlcklkcy5sZW5ndGgpCi0gICAgICAgICAgICAg
ICAgcmVxdWVzdFByb3BlcnRpZXNPZlJlc29sdmVkT2JqZWN0cygpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gcmVxdWVzdFByb3BlcnRpZXNPZlJlc29sdmVkT2JqZWN0cygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVtb3RlT2JqZWN0cy5sZW5n
dGg7IGkrKykKLSAgICAgICAgICAgICAgICByZW1vdGVPYmplY3RzW2ldLmdldE93blByb3BlcnRp
ZXMoZGlkR2V0T3duUHJvcGVydGllcyk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgZGlkR2V0
T3duUHJvcGVydGllc0NvdW50ID0gMDsKLSAgICAgICAgZnVuY3Rpb24gZGlkR2V0T3duUHJvcGVy
dGllcygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICgrK2RpZEdldE93blByb3BlcnRpZXND
b3VudCAhPT0gcmVtb3RlT2JqZWN0cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jbGVhclByb2ZpbGVzKGRvbmUpOwotICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5fcmVzZXQoKTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGRvbmUoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoImNsZWFyUHJvZmlsZXMiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9ImhhbmRsZUxvYWQoKSI+Ci08cD4KLVRlc3QgdGhhdCByZXNvbHZpbmcgaGVhcCBzbmFw
aG90IG9iamVjdCB0byBhIEpTIG9iamVjdCB3aWxsIG5vdCBjcmFzaCBvbiBET00gd3JhcHBlciBi
b2lsZXJwbGF0ZS4gVGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KLTwvcD4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3QtbG9hZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDc2Zjg5NzhiMmM4OTY0NTBhODM1M2Q2NmY0MWYyZDc3NDcwYzZk
NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgSGVhcFNu
YXBzaG90cyBsb2FkZXIuCi0KLQotUnVubmluZzogaGVhcFNuYXBzaG90TG9hZGVyVGVzdAotCi1S
dW5uaW5nOiBoZWFwU25hcHNob3RTYXZlVG9GaWxlVGVzdAotCi1SdW5uaW5nOiBoZWFwU25hcHNo
b3RMb2FkRnJvbUZpbGVUZXN0Ci0KLVJ1bm5pbmc6IGhlYXBTbmFwc2hvdFJlamVjdFRvU2F2ZVRv
RmlsZVRlc3QKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtbG9hZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTU4ZjMwODAyN2Q4ZDRmMDFkYzQzMjAzNDZjODE2N2U4NGE0YjFhOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJoZWFwLXNu
YXBzaG90LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRTbmFwc2hvdEVxdWFscyA9IGZ1bmN0aW9uKHJlZmVy
ZW5jZSwgYWN0dWFsKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
SlNPTi5zdHJpbmdpZnkocmVmZXJlbmNlKSwgSlNPTi5zdHJpbmdpZnkoYWN0dWFsKSk7Ci0gICAg
fQotCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKTsKLSAgICB2YXIgc291
cmNlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrUmF3KCk7Ci0gICAgdmFy
IHNvdXJjZVN0cmluZ2lmaWVkID0gSlNPTi5zdHJpbmdpZnkoc291cmNlKTsKLSAgICB2YXIgcGFy
dFNpemUgPSBzb3VyY2VTdHJpbmdpZmllZC5sZW5ndGggPj4gMzsKLQotICAgIGZ1bmN0aW9uIGlu
amVjdE1vY2tQcm9maWxlKG92ZXJyaWRlR2V0UHJvZmlsZSwgY2FsbGJhY2spIHsKLSAgICAgICAg
dmFyIGRpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siSGVh
cFByb2ZpbGVyIl07Ci0gICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMucHJv
ZmlsZXM7Ci0gICAgICAgIHBhbmVsLl9yZXNldCgpOwotCi0gICAgICAgIGRpc3BhdGNoZXIuYWRk
UHJvZmlsZUhlYWRlcih7Ci0gICAgICAgICAgICB0eXBlSWQ6IFdlYkluc3BlY3Rvci5IZWFwU25h
cHNob3RQcm9maWxlVHlwZS5UeXBlSWQsCi0gICAgICAgICAgICB0aXRsZTogImhlYXBTbmFwc2hv
dFNhdmVUb0ZpbGVUZXN0IiwKLSAgICAgICAgICAgIHVpZDogNDIsCi0gICAgICAgICAgICBtYXhK
U09iamVjdElkOiA2Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHZhciBwcm9maWxlSGVhZGVyID0g
cGFuZWwuZ2V0UHJvZmlsZVR5cGUoIkhFQVAiKS5nZXRQcm9maWxlcygpWzBdOwotCi0gICAgICAg
IGZ1bmN0aW9uIGdldEhlYXBTbmFwc2hvdE1vY2sodWlkKSB7Ci0gICAgICAgICAgICBmb3IgKHZh
ciBpID0gMCwgbCA9IHNvdXJjZVN0cmluZ2lmaWVkLmxlbmd0aDsgaSA8IGw7IGkgKz0gcGFydFNp
emUpCi0gICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5hZGRIZWFwU25hcHNob3RDaHVuayh1aWQs
IHNvdXJjZVN0cmluZ2lmaWVkLnNsaWNlKGksIGkgKyBwYXJ0U2l6ZSkpOwotICAgICAgICAgICAg
ZGlzcGF0Y2hlci5maW5pc2hIZWFwU25hcHNob3QodWlkKTsKLSAgICAgICAgfQotCi0gICAgICAg
IGZ1bmN0aW9uIHNuYXBzaG90TG9hZGVkKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG92
ZXJyaWRlR2V0UHJvZmlsZSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRl
KEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9j
ayk7Ci0gICAgICAgICAgICBjYWxsYmFjayhwcm9maWxlSGVhZGVyKTsKLSAgICAgICAgfQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIocHJvZmlsZUhlYWRlciwgIl9zbmFwc2hvdFJl
Y2VpdmVkIiwgc25hcHNob3RMb2FkZWQpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJp
ZGUoSGVhcFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RN
b2NrKTsKLSAgICAgICAgcGFuZWwuX3Nob3dQcm9maWxlKHByb2ZpbGVIZWFkZXIpOwotICAgIH0K
LQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gaGVh
cFNuYXBzaG90TG9hZGVyVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbG9h
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RMb2FkZXIoKTsKLSAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwLCBsID0gc291cmNlU3RyaW5naWZpZWQubGVuZ3RoOyBpIDwgbDsgaSAr
PSBwYXJ0U2l6ZSkKLSAgICAgICAgICAgICAgICBsb2FkZXIud3JpdGUoc291cmNlU3RyaW5naWZp
ZWQuc2xpY2UoaSwgaSArIHBhcnRTaXplKSk7Ci0gICAgICAgICAgICBsb2FkZXIuY2xvc2UoKTsK
LSAgICAgICAgICAgIHZhciByZXN1bHQgPSBsb2FkZXIuYnVpbGRTbmFwc2hvdCgiSlNIZWFwU25h
cHNob3QiKTsKLSAgICAgICAgICAgIHJlc3VsdC5fbm9kZXMgPSBuZXcgVWludDMyQXJyYXkocmVz
dWx0Ll9ub2Rlcyk7Ci0gICAgICAgICAgICByZXN1bHQuX2NvbnRhaW5tZW50RWRnZXMgPSBuZXcg
VWludDMyQXJyYXkocmVzdWx0Ll9jb250YWlubWVudEVkZ2VzKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0U25hcHNob3RFcXVhbHMobmV3IFdlYkluc3BlY3Rvci5KU0hlYXBTbmFw
c2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1vY2soKSksIHJlc3VsdCk7Ci0g
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gaGVhcFNu
YXBzaG90U2F2ZVRvRmlsZVRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rp
b24gc25hcHNob3RMb2FkZWQocHJvZmlsZUhlYWRlcikKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICB2YXIgc2F2ZWRTbmFwc2hvdERhdGE7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24g
c2F2ZU1vY2sodXJsLCBkYXRhKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgc2F2ZWRTbmFwc2hvdERhdGEgPSBkYXRhOwotICAgICAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZmlsZU1hbmFnZXIuc2F2ZWRVUkwodXJsKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShJbnNwZWN0b3JGcm9udGVuZEhvc3Qs
ICJzYXZlIiwgc2F2ZU1vY2spOwotCi0gICAgICAgICAgICAgICAgdmFyIG9sZEFwcGVuZCA9IElu
c3BlY3RvckZyb250ZW5kSG9zdC5hcHBlbmQ7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmFwcGVuZCA9IGZ1bmN0aW9uIGFwcGVuZE1vY2sodXJsLCBkYXRhKQotICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgc2F2ZWRTbmFwc2hvdERhdGEgKz0gZGF0
YTsKLSAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYW5hZ2VyLmFwcGVuZGVk
VG9VUkwodXJsKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBwcm9maWxl
SGVhZGVyLnNhdmVUb0ZpbGUoKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dEVxdWFscyhzb3VyY2VTdHJpbmdpZmllZCwgc2F2ZWRTbmFwc2hvdERhdGEsICJTYXZlZCBzbmFw
c2hvdCBkYXRhIik7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuYXBw
ZW5kID0gb2xkQXBwZW5kOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgaW5qZWN0TW9ja1Byb2ZpbGUodHJ1ZSwgc25hcHNob3RMb2FkZWQpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdExvYWRGcm9tRmlsZVRl
c3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9y
LnBhbmVscy5wcm9maWxlczsKLQotICAgICAgICAgICAgdmFyIGZpbGVNb2NrID0gewotICAgICAg
ICAgICAgICAgIG5hbWU6ICJtb2NrLmhlYXBzbmFwc2hvdCIsCi0gICAgICAgICAgICAgICAgc2l6
ZTogc291cmNlU3RyaW5naWZpZWQubGVuZ3RoCi0gICAgICAgICAgICB9OwotCi0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5w
cm90b3R5cGUsICdfY3JlYXRlRmlsZVJlYWRlcicsIGZ1bmN0aW9uKGZpbGVNb2NrLCBkZWxlZ2F0
ZSkgewotICAgICAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXJ0
OiBmdW5jdGlvbihyZWNlaXZlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUu
b25UcmFuc2ZlclN0YXJ0ZWQodGhpcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZl
ci53cml0ZShzb3VyY2VTdHJpbmdpZmllZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkZWxl
Z2F0ZS5vbkNodW5rVHJhbnNmZXJyZWQodGhpcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZWNlaXZlci5jbG9zZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUub25UcmFu
c2ZlckZpbmlzaGVkKHRoaXMpOwotICAgICAgICAgICAgICAgICAgICB9LAotCi0gICAgICAgICAg
ICAgICAgICAgIGxvYWRlZFNpemU6IGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVNb2NrLnNpemU7Ci0gICAgICAgICAg
ICAgICAgICAgIH0sCi0KLSAgICAgICAgICAgICAgICAgICAgZmlsZVNpemU6IGZ1bmN0aW9uKCkK
LSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZp
bGVNb2NrLnNpemU7Ci0gICAgICAgICAgICAgICAgICAgIH0sCi0KLSAgICAgICAgICAgICAgICAg
ICAgZmlsZU5hbWU6IGZ1bmN0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVNb2NrLm5hbWU7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3Rv
dHlwZSwgIl9zbmFwc2hvdFJlY2VpdmVkIiwgZnVuY3Rpb24oKSB7IG5leHQoKTsgfSk7Ci0gICAg
ICAgICAgICBwYW5lbC5fbG9hZEZyb21GaWxlKGZpbGVNb2NrKTsKLSAgICAgICAgfSwKLQotICAg
ICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3RSZWplY3RUb1NhdmVUb0ZpbGVUZXN0KG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIHNuYXBzaG90TG9hZGVkKHByb2ZpbGVIZWFk
ZXIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2F2ZU1vY2sodXJs
LCBkYXRhKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRUcnVlKHByb2ZpbGVIZWFkZXIuY2FuU2F2ZVRvRmlsZSgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEluc3BlY3RvckZyb250ZW5kSG9zdCwgInNhdmUiLCBzYXZl
TW9jayk7Ci0gICAgICAgICAgICAgICAgcHJvZmlsZUhlYWRlci5zYXZlVG9GaWxlKCk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGluamVjdE1vY2tQcm9maWxlKGZhbHNlLCBzbmFwc2hv
dExvYWRlZCk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyBIZWFwU25h
cHNob3RzIGxvYWRlci4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtcmV2ZWFsLWluLWRvbWlu
YXRvcnMtdmlldy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1yZXZlYWwtaW4tZG9taW5hdG9ycy12aWV3LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM2ZTQ0M2M2NWYyMjk4ZDZiOTcyNTk1YzdmNWJh
ZGExYTI0MGYwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1yZXZlYWwtaW4t
ZG9taW5hdG9ycy12aWV3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAg
QEAKLVRlc3RzIHRoYXQgYW4gb2JqZWN0IGNhbiBiZSByZXZlYWxlZCBpbiB0aGUgRG9taW5hdG9y
cyB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgotCi1Qcm9maWxlciB3YXMgZW5hYmxl
ZC4KLURldGFpbGVkIGhlYXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0
U2hvd0FsbAotUmV2ZWFsaW5nIG5vZGUuLi4KLU5vZGUgcmV2ZWFsZWQuCi0KLVByb2ZpbGVyIHdh
cyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3QtcmV2ZWFsLWluLWRvbWluYXRvcnMtdmlldy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtcmV2ZWFsLWluLWRvbWluYXRvcnMt
dmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDdiZjk0OTI4OGFiNjhi
OTMzMTViOWRiMmZiMjhhNWE0ODI5YzVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LXJldmVhbC1pbi1kb21pbmF0b3JzLXZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJo
ZWFwLXNuYXBzaG90LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgdmFyIGluc3RhbmNlQ291bnQgPSAyNTsKLSAgICBmdW5jdGlvbiBjcmVhdGVI
ZWFwU25hcHNob3QoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRl
SGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Qu
cnVuSGVhcFNuYXBzaG90VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNob3dBbGwo
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNu
YXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwgc3RlcDEpOwotICAgICAgICAgICAgdmFyIG5vZGVB
SGVhcFNuYXBzaG90T2JqZWN0SWQgPSA1ICsgMioxNSA7IC8vIElkIG9mIHRoZSAxNnRoIEEgbm9k
ZS4KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90RG9taW5hdG9yc0RhdGFHcmlkLnByb3RvdHlwZSwgImhpZ2hsaWdodE5vZGUiLCBkaWRIaWdo
bGlnaHROb2RlKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVz
LnNob3dPYmplY3Qobm9kZUFIZWFwU25hcHNob3RPYmplY3RJZCwgIkRvbWluYXRvcnMiKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmV2ZWFsaW5nIG5vZGUuLi4i
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkSGlnaGxpZ2h0Tm9k
ZShub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKG5vZGVBSGVhcFNuYXBzaG90T2JqZWN0SWQsIG5vZGUuc25hcHNob3ROb2RlSWQs
ICJVbnhwZWN0ZWQgbm9kZSBoaWdobGlnaHRlZC4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiTm9kZSByZXZlYWxlZC4iKTsKLSAgICAgICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgYW4gb2Jq
ZWN0IGNhbiBiZSByZXZlYWxlZCBpbiB0aGUgRG9taW5hdG9ycyB2aWV3IG9mIGRldGFpbGVkIGhl
YXAgc25hcHNob3RzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1leHBhbnNpb24t
cHJlc2VydmVkLXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hl
bi1zb3J0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQx
YTg4MGI3ZjcyNDM5MjdlMDY4NjA4ZjJlNWE2YmI4ODU4NGQwMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0aW5n
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGVzdHMgU3VtbWFy
eSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLiBFeHBhbmRlZCBub2RlcyBtdXN0IGJl
IHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotCi1IZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LXN1bW1hcnktZXhwYW5zaW9uLXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktZXhwYW5zaW9uLXBy
ZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
M2VmNDAzODMwMjQ1NWE2Y2IyNWFjOTA4NzAyZDcwZjhjYTI3MTg5MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LWV4cGFuc2lvbi1wcmVzZXJ2ZWQtd2hlbi1zb3J0
aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
ICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBpbnN0YW5jZUNv
dW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdChpbnN0YW5jZUNvdW50
KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFwc2hvdFRlc3RTdWl0ZShb
Ci0gICAgICAgIGZ1bmN0aW9uIHRlc3RFeHBhbnNpb25QcmVzZXJ2ZWRXaGVuU29ydGluZyhuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNo
b3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRj
aFRvVmlldygiU3VtbWFyeSIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cg
PSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJCIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkJcIiByb3ciKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIGV4cGFuZEIpOwotICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIGV4cGFuZEIoKQotICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9u
c05vZGUocm93KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModHJ1ZSwgISFidXR0b25zTm9kZSwgIm5vIGJ1dHRvbnMgbm9kZSBmb3VuZCEiKTsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93QWxs
IiwgYnV0dG9uc05vZGUsIHN0ZXAzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5zOwotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JUZXN0
LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVt
bihjb2x1bW5zWzBdLCBzdGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXA0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93ID0gSW5z
cGVjdG9yVGVzdC5maW5kUm93KCJvYmplY3QiLCAiQiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJCXCIgcm93Iik7Ci0gICAgICAg
ICAgICAgICAgdmFyIGJJbnN0YW5jZVJvdyA9IHJvdy5jaGlsZHJlblswXTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIWJJbnN0YW5jZVJvdywgIlwi
QlwiIGluc3RhbmNlIHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5k
Um93KGJJbnN0YW5jZVJvdywgZXhwYW5kQSk7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb24gZXhw
YW5kQShyb3cpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBmdW5jdGlv
biBwcm9wZXJ0eU1hdGNoZXIoZGF0YSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubmFtZSA9PT0gImEiICYmIGRhdGEudmFsdWUuY2hh
ckF0KDApID09PSAiQSI7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgdmFyIGFSb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsIHByb3BlcnR5TWF0
Y2hlciwgcm93KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModHJ1ZSwgISFhUm93LCAiXCJhOiBBXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwYW5kUm93KGFSb3csIHN0ZXA1KTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5Db250ZW50czsKLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1
bW5Db250ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1swXSk7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zWzBdLCBjbGlj
a1R3aWNlKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBjbGlja1R3aWNlKCkKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4o
Y29sdW1uc1swXSwgc3RlcDYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDYoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHZhciBuZXdDb2x1bW5Db250ZW50cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMo
Y29sdW1uc1swXSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRDb2x1bW5D
b250ZW50c0VxdWFsKGNvbHVtbkNvbnRlbnRzLCBuZXdDb2x1bW5Db250ZW50cyk7Ci0gICAgICAg
ICAgICAgICAgc2V0VGltZW91dChuZXh0LCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3RzLgot
RXhwYW5kZWQgbm9kZXMgbXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLTwvcD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LXN1bW1hcnktcmV0YWluZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktcmV0YWluZXJzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjhmMDhhN2MwZjFhMzQ1
MjMzYWRmMGIwMTZhMmU1ZGIzZTM2YWQxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1zdW1tYXJ5LXJldGFpbmVycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
NiArMCwwIEBACi1UZXN0cyByZXRhaW5lcnMgdmlldy4KLS0gTnVtYmVyIG9mIHJldGFpbmVycyBv
ZiBhbiBBIG9iamVjdCBtdXN0IGJlIDIgKEEgaXRzZWxmIGFuZCBCKS4KLS0gV2hlbiBhbiBvYmpl
Y3QgaGFzIGp1c3Qgb25lIHJldGFpbmVyIGl0IG11c3QgYmUgZXhwYW5kZWQgYXV0b21hdGljYWxs
eSB1bnRpbAotICB0aGVyZSdzIGFuIG9iamVjdCBoYXZpbmcgdHdvIG9yIG1vcmUgcmV0YWluZXJz
LgotLSBUZXN0IHRoZSBleHBhbnNpb24gb2YgYSBsb25nIHJldGFpbm1lbnQgY2hhaW4gaXMgbGlt
aXRlZCBieSBhIGNlcnRhaW4gbGV2ZWwuCi1Qcm9maWxlciB3YXMgZW5hYmxlZC4KLURldGFpbGVk
IGhlYXAgcHJvZmlsZXMgd2VyZSBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0UmV0YWluZXJzVmll
dwotCi1SdW5uaW5nOiB0ZXN0UmV0YWluZXJzQXV0b0V4cGFuZFNpbmdsZVJldGFpbmVyCi0KLVJ1
bm5pbmc6IHRlc3RSZXRhaW5lcnNBdXRvRXhwYW5kU2luZ2xlUmV0YWluZXJMaW1pdAotCi1Qcm9m
aWxlciB3YXMgZGlzYWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktcmV0YWluZXJzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXJldGFpbmVycy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWNjMzQ3Y2IyMzA0NzIzY2E3OWY0YzY4
NzRiNjU4ZWMyMTFmODU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1h
cnktcmV0YWluZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTEgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIg
aW5zdGFuY2VDb3VudCA9IDI1OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5z
dGFuY2VDb3VudCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RU
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0UmV0YWluZXJzVmlldyhuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3Jl
YXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmll
dygiU3VtbWFyeSIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNw
ZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJBIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkFcIiByb3ciKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAzKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMocm93KQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHZhciBjb3VudCA9IHJvdy5kYXRhWyJjb3VudCJdOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGluc3RhbmNlQ291bnQudG9TdHJpbmcoKSwg
Y291bnQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tSb3dBbmRHZXRSZXRh
aW5lcnMocm93LmNoaWxkcmVuWzBdLCBzdGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXA0KHJldGFpbmVyc1Jvb3QpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdmFyIHJvd3NTaG93biA9IEluc3BlY3RvclRlc3QuY291bnREYXRhUm93cyhyZXRh
aW5lcnNSb290KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygy
LCByb3dzU2hvd24sICJyZXRhaW5pbmcgb2JqZWN0cyIpOwotICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdFJldGFpbmVyc0F1dG9FeHBhbmRTaW5nbGVSZXRhaW5lcihuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3QoKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIC8vIE1vY2tpbmcgcmVzdWx0cyBvZiBydW5uaW5nIHRoZSBm
b2xsb3dpbmcgY29kZToKLSAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAgICAgIC8vIGZ1
bmN0aW9uIEwxKHgpIHsgdGhpcy54ID0geDsgfQotICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9u
IEwyKHkpIHsgdGhpcy55ID0geTsgfQotICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9uIEwzKCkg
eyB9Ci0gICAgICAgICAgICAgICAgLy8gdmFyIGwxID0gbmV3IEwxKG5ldyBMMihuZXcgTDMoKSkp
OwotICAgICAgICAgICAgICAgIC8vIHZhciByb290ID0geyBsMWE6IGwxLCBsMWI6IGwxIH07Ci0g
ICAgICAgICAgICAgICAgLy8gbDEgPSBudWxsOwotCi0gICAgICAgICAgICAgICAgdmFyIHNpemVP
ZkwzID0gMTAwMDAwMDsKLSAgICAgICAgICAgICAgICB2YXIgYnVpbGRlciA9IG5ldyBJbnNwZWN0
b3JUZXN0LkhlYXBTbmFwc2hvdEJ1aWxkZXIoKTsKLSAgICAgICAgICAgICAgICB2YXIgcm9vdE5v
ZGUgPSBidWlsZGVyLnJvb3ROb2RlOwotCi0gICAgICAgICAgICAgICAgdmFyIGdjUm9vdHNOb2Rl
ID0gbmV3IEluc3BlY3RvclRlc3QuSGVhcE5vZGUoIihHQyByb290cykiKTsKLSAgICAgICAgICAg
ICAgICByb290Tm9kZS5saW5rTm9kZShnY1Jvb3RzTm9kZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRn
ZS5UeXBlLmVsZW1lbnQpOwotCi0gICAgICAgICAgICAgICAgdmFyIHdpbmRvd05vZGUgPSBuZXcg
SW5zcGVjdG9yVGVzdC5IZWFwTm9kZSgiV2luZG93IiwgMjApOwotICAgICAgICAgICAgICAgIHJv
b3ROb2RlLmxpbmtOb2RlKHdpbmRvd05vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5z
aG9ydGN1dCk7Ci0gICAgICAgICAgICAgICAgZ2NSb290c05vZGUubGlua05vZGUod2luZG93Tm9k
ZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLmVsZW1lbnQpOwotCi0gICAgICAgICAgICAg
ICAgdmFyIGwzTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCJMMyIsIHNpemVPZkwz
KTsKLSAgICAgICAgICAgICAgICB2YXIgbDJOb2RlID0gbmV3IEluc3BlY3RvclRlc3QuSGVhcE5v
ZGUoIkwyIiwgMzIpOwotICAgICAgICAgICAgICAgIHZhciBsMU5vZGUgPSBuZXcgSW5zcGVjdG9y
VGVzdC5IZWFwTm9kZSgiTDEiLCAzMik7Ci0gICAgICAgICAgICAgICAgdmFyIHJvb3ROb2RlID0g
bmV3IEluc3BlY3RvclRlc3QuSGVhcE5vZGUoIk9iamVjdCIsIDMyKTsKLSAgICAgICAgICAgICAg
ICB3aW5kb3dOb2RlLmxpbmtOb2RlKHJvb3ROb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5
cGUucHJvcGVydHksICJyb290Iik7Ci0gICAgICAgICAgICAgICAgcm9vdE5vZGUubGlua05vZGUo
bDFOb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUucHJvcGVydHksICJsMWEiKTsKLSAg
ICAgICAgICAgICAgICByb290Tm9kZS5saW5rTm9kZShsMU5vZGUsIEluc3BlY3RvclRlc3QuSGVh
cEVkZ2UuVHlwZS5wcm9wZXJ0eSwgImwxYiIpOwotICAgICAgICAgICAgICAgIGwxTm9kZS5saW5r
Tm9kZShsMk5vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5wcm9wZXJ0eSwgIngiKTsK
LSAgICAgICAgICAgICAgICBsMk5vZGUubGlua05vZGUobDNOb2RlLCBJbnNwZWN0b3JUZXN0Lkhl
YXBFZGdlLlR5cGUucHJvcGVydHksICJ5Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxk
ZXIuZ2VuZXJhdGVTbmFwc2hvdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiU3VtbWFyeSIsIHN0ZXAyKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVj
dCIsICJMMyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRy
dWUsICEhcm93LCAiXCJMM1wiIHJvdyIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwYW5kUm93KHJvdywgc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5j
dGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIGNvdW50
ID0gcm93LmRhdGFbImNvdW50Il07Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoIjEiLCBjb3VudCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlj
a1Jvd0FuZEdldFJldGFpbmVycyhyb3cuY2hpbGRyZW5bMF0sIHN0ZXA0KTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQocmV0YWluZXJzUm9vdCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICByZXRhaW5lcnNSb290LmRhdGFHcmlkLmFkZEV2ZW50TGlz
dGVuZXIoCi0gICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RSZXRh
aW5tZW50RGF0YUdyaWQuRXZlbnRzLkV4cGFuZFJldGFpbmVyc0NvbXBsZXRlLAotICAgICAgICAg
ICAgICAgICAgICBzdGVwNS5iaW5kKHRoaXMsIHJldGFpbmVyc1Jvb3QpKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUocmV0YWluZXJzUm9vdCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgbDMgPSByZXRhaW5lcnNSb290OwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIGwzLmNoaWxkcmVuLmxlbmd0aCwg
Ik9uZSByZXRhaW5lciBvZiBMMyIpOwotICAgICAgICAgICAgICAgIHZhciBsMiA9IGwzLmNoaWxk
cmVuWzBdOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ5Iiwg
bDIuZGF0YS5vYmplY3QubmFtZSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoMSwgbDIuY2hpbGRyZW4ubGVuZ3RoLCAiT25lIHJldGFpbmVyIG9mIEwyIik7Ci0g
ICAgICAgICAgICAgICAgdmFyIGwxID0gbDIuY2hpbGRyZW5bMF07Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIngiLCBsMS5kYXRhLm9iamVjdC5uYW1lKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygyLCBsMS5jaGlsZHJlbi5s
ZW5ndGgsICJUd28gcmV0YWluZXJzIG9mIEwxIik7Ci0gICAgICAgICAgICAgICAgdmFyIGwxcmV0
YWluZXJzID0gW2wxLmNoaWxkcmVuWzBdLmRhdGEub2JqZWN0Lm5hbWUsIGwxLmNoaWxkcmVuWzFd
LmRhdGEub2JqZWN0Lm5hbWVdOwotICAgICAgICAgICAgICAgIGwxcmV0YWluZXJzLnNvcnQoKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygibDFhIiwgbDFyZXRh
aW5lcnNbMF0pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJs
MWIiLCBsMXJldGFpbmVyc1sxXSk7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChuZXh0LCAw
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmV0
YWluZXJzQXV0b0V4cGFuZFNpbmdsZVJldGFpbmVyTGltaXQobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90KCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAvLyBNb2NraW5nIHJlc3VsdHMgb2YgcnVubmluZyB0aGUgZm9sbG93aW5n
IGNvZGU6Ci0gICAgICAgICAgICAgICAgLy8KLSAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBU
YWlsKCkge30KLSAgICAgICAgICAgICAgICAvLyB2YXIgaGVhZCA9IG5ldyBUYWlsKCk7Ci0gICAg
ICAgICAgICAgICAgLy8gZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCi0gICAgICAgICAg
ICAgICAgLy8gICBoZWFkID0geyBuZXh0OiBoZWFkIH07Ci0KLSAgICAgICAgICAgICAgICB2YXIg
YnVpbGRlciA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBTbmFwc2hvdEJ1aWxkZXIoKTsKLSAgICAg
ICAgICAgICAgICB2YXIgcm9vdE5vZGUgPSBidWlsZGVyLnJvb3ROb2RlOwotCi0gICAgICAgICAg
ICAgICAgdmFyIGdjUm9vdHNOb2RlID0gbmV3IEluc3BlY3RvclRlc3QuSGVhcE5vZGUoIihHQyBy
b290cykiKTsKLSAgICAgICAgICAgICAgICByb290Tm9kZS5saW5rTm9kZShnY1Jvb3RzTm9kZSwg
SW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLmVsZW1lbnQpOwotCi0gICAgICAgICAgICAgICAg
dmFyIHdpbmRvd05vZGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9kZSgiV2luZG93IiwgMjAp
OwotICAgICAgICAgICAgICAgIHJvb3ROb2RlLmxpbmtOb2RlKHdpbmRvd05vZGUsIEluc3BlY3Rv
clRlc3QuSGVhcEVkZ2UuVHlwZS5zaG9ydGN1dCk7Ci0gICAgICAgICAgICAgICAgZ2NSb290c05v
ZGUubGlua05vZGUod2luZG93Tm9kZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLmVsZW1l
bnQpOwotCi0gICAgICAgICAgICAgICAgdmFyIGhlYWROb2RlID0gbmV3IEluc3BlY3RvclRlc3Qu
SGVhcE5vZGUoIk9iamVjdCIsIDMyKTsKLSAgICAgICAgICAgICAgICB3aW5kb3dOb2RlLmxpbmtO
b2RlKGhlYWROb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUucHJvcGVydHksICJoZWFk
Iik7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCAxMDAwOyArK2kpIHsKLSAg
ICAgICAgICAgICAgICAgIHZhciBuZXh0Tm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2Rl
KCJPYmplY3QiLCAzMik7Ci0gICAgICAgICAgICAgICAgICBoZWFkTm9kZS5saW5rTm9kZShuZXh0
Tm9kZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLnByb3BlcnR5LCAibmV4dCIpOwotICAg
ICAgICAgICAgICAgICAgaGVhZE5vZGUgPSBuZXh0Tm9kZTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgdmFyIHRhaWxOb2RlID0gbmV3IEluc3BlY3RvclRlc3QuSGVhcE5vZGUo
IlRhaWwiLCAzMik7Ci0gICAgICAgICAgICAgICAgaGVhZE5vZGUubGlua05vZGUodGFpbE5vZGUs
IEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5wcm9wZXJ0eSwgIm5leHQiKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gYnVpbGRlci5nZW5lcmF0ZVNuYXBzaG90KCk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVI
ZWFwU25hcHNob3QsIHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNoVG9WaWV3KCJT
dW1tYXJ5Iiwgc3RlcDIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3Rv
clRlc3QuZmluZFJvdygib2JqZWN0IiwgIlRhaWwiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiVGFpbFwiIHJvdyIpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywgc3RlcDMpOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMyhyb3cpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgdmFyIGNvdW50ID0gcm93LmRhdGFbImNvdW50Il07Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIjEiLCBjb3VudCk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Jvd0FuZEdldFJldGFpbmVycyhyb3cuY2hpbGRyZW5b
MF0sIHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQo
cmV0YWluZXJzUm9vdCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXRhaW5lcnNS
b290LmRhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RSZXRhaW5tZW50RGF0YUdyaWQuRXZlbnRzLkV4cGFuZFJldGFp
bmVyc0NvbXBsZXRlLAotICAgICAgICAgICAgICAgICAgICBzdGVwNS5iaW5kKHRoaXMsIHJldGFp
bmVyc1Jvb3QpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDUo
cmV0YWluZXJzUm9vdCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93c1No
b3duID0gSW5zcGVjdG9yVGVzdC5jb3VudERhdGFSb3dzKHJldGFpbmVyc1Jvb3QpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDIwLCByb3dzU2hvd24sICJyZXRh
aW5pbmcgb2JqZWN0cyIpOwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cHJlPgotVGVzdHMgcmV0YWluZXJzIHZpZXcu
Ci0tIE51bWJlciBvZiByZXRhaW5lcnMgb2YgYW4gQSBvYmplY3QgbXVzdCBiZSAyIChBIGl0c2Vs
ZiBhbmQgQikuPC91bD4KLS0gV2hlbiBhbiBvYmplY3QgaGFzIGp1c3Qgb25lIHJldGFpbmVyIGl0
IG11c3QgYmUgZXhwYW5kZWQgYXV0b21hdGljYWxseSB1bnRpbAotICB0aGVyZSdzIGFuIG9iamVj
dCBoYXZpbmcgdHdvIG9yIG1vcmUgcmV0YWluZXJzLgotLSBUZXN0IHRoZSBleHBhbnNpb24gb2Yg
YSBsb25nIHJldGFpbm1lbnQgY2hhaW4gaXMgbGltaXRlZCBieSBhIGNlcnRhaW4gbGV2ZWwuCi08
L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1hbGwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93
LWFsbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiMjNhODFk
ZTJmNzdkYzBjMTkxMjZhYjY5M2FkNTc1ODBlZjc5NDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LWFsbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw0ICswLDAgQEAKLVRlc3RzIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBz
aG90cy4gVGhlICJTaG93IEFsbCIgYnV0dG9uIG11c3Qgc2hvdyBhbGwgbm9kZXMuCi0KLUhlYXAg
cHJvZmlsZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LWFsbC5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LWFsbC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTU4YzNhNTc0ZWM1MzIzNDBjM2JlZWUx
NzUzYjkzZjFmOWVhZGIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1h
cnktc2hvdy1hbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90LXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGlu
c3RhbmNlQ291bnQgPSAyNTsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3QoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGluc3Rh
bmNlQ291bnQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90VGVz
dFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNob3dBbGwobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBT
bmFwc2hvdCwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1bW1h
cnkiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAy
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93ID0gSW5zcGVjdG9yVGVz
dC5maW5kUm93KCJvYmplY3QiLCAiQSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJBXCIgcm93Iik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBhbmRSb3cocm93LCBzdGVwMyk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJvdykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICB2YXIgY291bnQgPSByb3cuZGF0YVsiY291bnQiXTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50LnRvU3RyaW5nKCksIGNvdW50KTsK
LSAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0
b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHRydWUsICEhYnV0dG9uc05vZGUsICJidXR0b25zIG5vZGUiKTsKLSAgICAgICAgICAgICAgICB2
YXIgd29yZHMgPSBidXR0b25zTm9kZS5zaG93QWxsLnRleHRDb250ZW50LnNwbGl0KCIgIik7Ci0g
ICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3Jkcy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgICAgICAgICB2YXIgbWF5YmVOdW1iZXIgPSBwYXJzZUludCh3b3Jkc1tpXSwg
MTApOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKG1heWJlTnVtYmVyKSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKGluc3RhbmNlQ291
bnQgLSByb3cuX2RhdGFHcmlkLmRlZmF1bHRQb3B1bGF0ZUNvdW50KCksIG1heWJlTnVtYmVyLCBi
dXR0b25zTm9kZS5zaG93QWxsLnRleHRDb250ZW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja1Nob3dNb3JlQnV0dG9uKCJzaG93QWxsIiwg
YnV0dG9uc05vZGUsIHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDQocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3dzU2hv
d24gPSBJbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3Mocm93KTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50LCByb3dzU2hvd24sICJhZnRl
ciBzaG93QWxsIGNsaWNrIik7Ci0gICAgICAgICAgICAgICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5z
cGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSBm
b3VuZCB3aGVuIGFsbCBpbnN0YW5jZXMgYXJlIHNob3duISIpOwotICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQobmV4dCwgMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4KLVRoZSAmcXVvdDtT
aG93IEFsbCZxdW90OyBidXR0b24gbXVzdCBzaG93IGFsbCBub2Rlcy4KLTwvcD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LXN1bW1hcnktc2hvdy1uZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1uZXh0LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y1NWFhZWUwODBjNjMxOTlmZTJm
MDUzMTJmMDA3NjQ3ODI2ZTExZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1z
dW1tYXJ5LXNob3ctbmV4dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAg
QEAKLVRlc3RzIFN1bW1hcnkgdmlldyBvZiBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cy4gUmVwZWF0
ZWQgY2xpY2tzIG9uICJTaG93IE5leHQiIGJ1dHRvbiBtdXN0IHNob3cgYWxsIG5vZGVzLgotCi1I
ZWFwIHByb2ZpbGVyIGlzIGRpc2FibGVkCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1uZXh0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3ctbmV4
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzRhZGM1NWQ2ZDlkMDAxN2Q2
MDk2MWJjZTA0MzFmYTAyZDZkMmU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LXN1bW1hcnktc2hvdy1uZXh0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hv
dC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciBpbnN0YW5jZUNvdW50ID0gMjU7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNuYXBzaG90
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhlYXBTbmFw
c2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93TmV4dChuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3Jl
YXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmll
dygiU3VtbWFyeSIsIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNw
ZWN0b3JUZXN0LmZpbmRSb3coIm9iamVjdCIsICJBIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFyb3csICJcIkFcIiByb3ciKTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAzKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMocm93KQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHZhciByb3dzU2hvd24gPSBJbnNwZWN0b3JUZXN0LmNvdW50RGF0YVJvd3Mo
cm93KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCBy
b3dzU2hvd24gPD0gaW5zdGFuY2VDb3VudCwgInNob3duIG1vcmUgaW5zdGFuY2VzIHRoYW4gY3Jl
YXRlZDogIiArIHJvd3NTaG93biArICIgPiAiICsgaW5zdGFuY2VDb3VudCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKHJvd3NTaG93biA8IGluc3RhbmNlQ291bnQpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdmFyIGJ1dHRvbnNOb2RlID0gSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUocm93KTsK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFi
dXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNsaWNrU2hvd01vcmVCdXR0b24oInNob3dOZXh0IiwgYnV0dG9uc05vZGUsIHN0ZXAz
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJvd3NTaG93biA9PT0gaW5zdGFuY2VDb3Vu
dCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgYnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0
LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyhmYWxzZSwgISFidXR0b25zTm9kZSwgImJ1dHRvbnMgbm9kZSBmb3VuZCB3
aGVuIGFsbCBpbnN0YW5jZXMgYXJlIHNob3duISIpOwotICAgICAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KG5leHQsIDApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNo
b3RzLgotUmVwZWF0ZWQgY2xpY2tzIG9uICZxdW90O1Nob3cgTmV4dCZxdW90OyBidXR0b24gbXVz
dCBzaG93IGFsbCBub2Rlcy4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hvdy1y
YW5nZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3Qtc3VtbWFyeS1zaG93LXJhbmdlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGU0NDkyNWMzODRlMDA1OGQ4MmY1ZTkyMGYzNzU4NmI3ZjA0ZmUzOGYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LXJhbmdlcy1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVRlc3RzIHNob3dpbmcg
c2V2ZXJhbCBub2RlIHJhbmdlcyBpbiB0aGUgU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAg
c25hcHNob3QuCi0KLVByb2ZpbGVyIHdhcyBlbmFibGVkLgotRGV0YWlsZWQgaGVhcCBwcm9maWxl
cyB3ZXJlIGVuYWJsZWQuCi0KLVJ1bm5pbmc6IHRlc3RTaG93QWxsCi0KLVByb2ZpbGVyIHdhcyBk
aXNhYmxlZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LXJhbmdlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93LXJhbmdlcy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzQ5YjkzNWY5NzE4YmZiYzE4NjY0M2MzM2E2MmQ4
NmNlNzRmM2E1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc2hv
dy1yYW5nZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1zbmFwc2hvdC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0KLSAgICB2YXIgaW5zdGFuY2VDb3VudCA9IDUw
OwotICAgIGZ1bmN0aW9uIGNyZWF0ZUhlYXBTbmFwc2hvdCgpCi0gICAgewotICAgICAgICByZXR1
cm4gSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3QoaW5zdGFuY2VDb3VudCk7Ci0gICAg
fQotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5IZWFwU25hcHNob3RUZXN0U3VpdGUoWwotICAgICAg
ICBmdW5jdGlvbiB0ZXN0U2hvd0FsbChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QoY3JlYXRlSGVhcFNuYXBzaG90LCBzdGVwMSk7
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnN3aXRjaFRvVmlldygiU3VtbWFyeSIsIHN0ZXAyKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHZhciByb3cgPSBJbnNwZWN0b3JUZXN0LmZpbmRSb3coIm9iamVj
dCIsICJBIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1
ZSwgISFyb3csICJcIkFcIiByb3ciKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGFuZFJvdyhyb3csIHN0ZXAzKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rp
b24gY2hlY2tTaG93TW9yZUJ1dHRvbihzaG93TW9yZUJ1dHRvbiwgZXhwZWN0ZWRTdGFydFBvc2l0
aW9uLCBleHBlY3RlZEVuZFBvc2l0aW9uKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUgLCBzaG93TW9yZUJ1dHRvbiBpbnN0YW5j
ZW9mIFdlYkluc3BlY3Rvci5TaG93TW9yZURhdGFHcmlkTm9kZSwgIlNob3cgbW9yZSBidXR0b24g
bm9kZSBub3QgZm91bmQiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyhleHBlY3RlZFN0YXJ0UG9zaXRpb24gLCBzaG93TW9yZUJ1dHRvbi5fc3RhcnRQb3NpdGlv
biwgIkluY29ycmVjdCBzdGFydCBwb3NpdGlvbiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkRW5kUG9zaXRpb24gLCBzaG93TW9yZUJ1dHRvbi5f
ZW5kUG9zaXRpb24sICJJbmNvcnJlY3QgZW5kIHBvc2l0aW9uIik7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKHJvdykKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAvLyBfcG9zaXRpb25SYW5nZXM6IFswLCAxMCkKLSAgICAgICAgICAgICAgICB2YXIg
Y291bnQgPSByb3cuZGF0YVsiY291bnQiXTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50LnRvU3RyaW5nKCksIGNvdW50KTsKLQotICAgICAg
ICAgICAgICAgIHZhciBkZWZhdWx0Q2h1bmtTaXplID0gcm93Ll9kYXRhR3JpZC5kZWZhdWx0UG9w
dWxhdGVDb3VudCgpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KDEwLCBkZWZhdWx0Q2h1bmtTaXplKTsKLQotCi0gICAgICAgICAgICAgICAgdmFyIHNob3dNb3Jl
QnV0dG9uID0gcm93LmNoaWxkcmVuW2RlZmF1bHRDaHVua1NpemVdOwotICAgICAgICAgICAgICAg
IGNoZWNrU2hvd01vcmVCdXR0b24oc2hvd01vcmVCdXR0b24sIGRlZmF1bHRDaHVua1NpemUsIGlu
c3RhbmNlQ291bnQpOwotCi0gICAgICAgICAgICAgICAgcm93Ll9wb3B1bGF0ZUNoaWxkcmVuKDMw
LCA0MCwgc3RlcDQuYmluZCh0aGlzLCByb3cpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDQocm93KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8v
IF9wb3NpdGlvblJhbmdlczogWzAsIDEwKSBbMzAsIDQwKQotICAgICAgICAgICAgICAgIGNoZWNr
U2hvd01vcmVCdXR0b24ocm93LmNoaWxkcmVuWzEwXSwgMTAsIDMwKTsKLSAgICAgICAgICAgICAg
ICBjaGVja1Nob3dNb3JlQnV0dG9uKHJvdy5jaGlsZHJlblsoMTAgLSAwKSArIDEgKyAoNDAgLSAz
MCldLCA0MCwgaW5zdGFuY2VDb3VudCk7Ci0KLSAgICAgICAgICAgICAgICByb3cuX3BvcHVsYXRl
Q2hpbGRyZW4oMjAsIDI1LCBzdGVwNS5iaW5kKHRoaXMsIHJvdykpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwNShyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgLy8gX3Bvc2l0aW9uUmFuZ2VzOiBbMCwgMTApIFsyMCwgMjUpIFszMCwgNDApCi0g
ICAgICAgICAgICAgICAgY2hlY2tTaG93TW9yZUJ1dHRvbihyb3cuY2hpbGRyZW5bMTBdLCAxMCwg
MjApOwotICAgICAgICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24ocm93LmNoaWxkcmVuWygx
MCAtIDApICsgMSArICgyNSAtIDIwKV0sIDI1LCAzMCk7Ci0gICAgICAgICAgICAgICAgY2hlY2tT
aG93TW9yZUJ1dHRvbihyb3cuY2hpbGRyZW5bKDEwIC0gMCkgKyAxICsgKDI1IC0gMjApICsgMSAr
ICg0MCAtIDMwKV0sIDQwLCBpbnN0YW5jZUNvdW50KTsKLQotICAgICAgICAgICAgICAgIHJvdy5f
cG9wdWxhdGVDaGlsZHJlbigyOCwgMzUsIHN0ZXA2LmJpbmQodGhpcywgcm93KSk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA2KHJvdykKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAvLyBfcG9zaXRpb25SYW5nZXM6IFswLCAxMCkgWzIwLCAyNSkgWzI4
LCA0MCkKLSAgICAgICAgICAgICAgICBjaGVja1Nob3dNb3JlQnV0dG9uKHJvdy5jaGlsZHJlblsx
MF0sIDEwLCAyMCk7Ci0gICAgICAgICAgICAgICAgY2hlY2tTaG93TW9yZUJ1dHRvbihyb3cuY2hp
bGRyZW5bKDEwIC0gMCkgKyAxICsgKDI1IC0gMjApXSwgMjUsIDI4KTsKLSAgICAgICAgICAgICAg
ICBjaGVja1Nob3dNb3JlQnV0dG9uKHJvdy5jaGlsZHJlblsoMTAgLSAwKSArIDEgKyAoMjUgLSAy
MCkgKyAxICsgKDQwIC0gMjgpXSwgNDAsIGluc3RhbmNlQ291bnQpOwotCi0gICAgICAgICAgICAg
ICAgcm93Ll9wb3B1bGF0ZUNoaWxkcmVuKDE4LCAyNiwgc3RlcDcuYmluZCh0aGlzLCByb3cpKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDcocm93KQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIC8vIF9wb3NpdGlvblJhbmdlczogWzAsIDEwKSBbMTgs
IDI2KSBbMjgsIDQwKQotICAgICAgICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24ocm93LmNo
aWxkcmVuWzEwXSwgMTAsIDE4KTsKLSAgICAgICAgICAgICAgICBjaGVja1Nob3dNb3JlQnV0dG9u
KHJvdy5jaGlsZHJlblsoMTAgLSAwKSArIDEgKyAoMjYgLSAxOCldLCAyNiwgMjgpOwotICAgICAg
ICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24ocm93LmNoaWxkcmVuWygxMCAtIDApICsgMSAr
ICgyNiAtIDE4KSArIDEgKyAoNDAgLSAyOCldLCA0MCwgaW5zdGFuY2VDb3VudCk7Ci0KLSAgICAg
ICAgICAgICAgICByb3cuX3BvcHVsYXRlQ2hpbGRyZW4oMTUsIDQ1LCBzdGVwOC5iaW5kKHRoaXMs
IHJvdykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwOChyb3cp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLy8gX3Bvc2l0aW9uUmFuZ2VzOiBbMCwg
MTApIFsxNSwgNDUpCi0gICAgICAgICAgICAgICAgY2hlY2tTaG93TW9yZUJ1dHRvbihyb3cuY2hp
bGRyZW5bMTBdLCAxMCwgMTUpOwotICAgICAgICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24o
cm93LmNoaWxkcmVuWygxMCAtIDApICsgMSArICg0NSAtIDE1KV0sIDQ1LCBpbnN0YW5jZUNvdW50
KTsKLQotICAgICAgICAgICAgICAgIHJvdy5fcG9wdWxhdGVDaGlsZHJlbigxMCwgMTUsIHN0ZXA5
LmJpbmQodGhpcywgcm93KSk7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChuZXh0LCAwKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDkocm93KQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIC8vIF9wb3NpdGlvblJhbmdlczogWzAsIDQ1KQotICAg
ICAgICAgICAgICAgIGNoZWNrU2hvd01vcmVCdXR0b24ocm93LmNoaWxkcmVuWzQ1XSwgNDUsIGlu
c3RhbmNlQ291bnQpOwotICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHNob3dpbmcgc2V2ZXJhbCBub2Rl
IHJhbmdlcyBpbiB0aGUgU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3QuCi08
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVk
LXdoZW4tc29ydGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4t
c29ydGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyZjBh
NWYxNzZkMWU2NjZhODNkZDNkZWQ1NzdjNmI2MTM5Y2ZmYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNv
cnRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyBT
dW1tYXJ5IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuIFNob3duIG5vZGUgY291bnQg
bXVzdCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc29ydGluZy4KLQotSGVhcCBwcm9maWxlciBpcyBkaXNh
YmxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1zdW1tYXJ5LXNob3duLW5vZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFy
eS1zaG93bi1ub2RlLWNvdW50LXByZXNlcnZlZC13aGVuLXNvcnRpbmcuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNGEwMWMwYWY1MzRlMjdkZWIyMDBkZmIzNjAyNTRmNjdmNmU0
ZTU4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNob3duLW5v
ZGUtY291bnQtcHJlc2VydmVkLXdoZW4tc29ydGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
ODIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLSAgPHNjcmlwdCBzcmM9
ImhlYXAtc25hcHNob3QtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJwcm9maWxlcyIpOwotCi0gICAg
dmFyIGluc3RhbmNlQ291bnQgPSAyNTsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3Qo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90
KGluc3RhbmNlQ291bnQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBz
aG90VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdEV4cGFuc2lvblByZXNlcnZlZFdo
ZW5Tb3J0aW5nKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFr
ZUFuZE9wZW5TbmFwc2hvdChjcmVhdGVIZWFwU25hcHNob3QsIHN0ZXAxKTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc3dpdGNoVG9WaWV3KCJTdW1tYXJ5Iiwgc3RlcDIpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb2x1bW5zID0gSW5zcGVjdG9yVGVzdC52
aWV3Q29sdW1ucygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1bW4o
Y29sdW1uc1swXSwgc3RlcDMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmdW5jdGlv
biBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3Bl
Y3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgIkIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiQlwiIHJvdyIpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywgc2hvd05leHQpOwotICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIHNob3dOZXh0KHJvdykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciBidXR0b25zTm9kZSA9IEluc3BlY3RvclRlc3QuZmluZEJ1dHRvbnNO
b2RlKHJvdyk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHRydWUsICEhYnV0dG9uc05vZGUsICJubyBidXR0b25zIG5vZGUgZm91bmQhIik7Ci0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tTaG93TW9yZUJ1dHRvbigic2hvd05leHQi
LCBidXR0b25zTm9kZSwgc3RlcDQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgdmFyIG5vZGVDb3VudDsKLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0
KHJvdykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBUaGVyZSBtdXN0IGJlIGVu
b3VnaCBub2RlcyB0byBoYXZlIHNvbWUgdW5yZXZlYWxlZC4KLSAgICAgICAgICAgICAgICB2YXIg
YnV0dG9uc05vZGUgPSBJbnNwZWN0b3JUZXN0LmZpbmRCdXR0b25zTm9kZShyb3cpOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhYnV0dG9uc05vZGUs
ICJubyBidXR0b25zIG5vZGUgZm91bmQhIik7Ci0KLSAgICAgICAgICAgICAgICBub2RlQ291bnQg
PSBJbnNwZWN0b3JUZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVtbnNbMF0pLmxlbmd0aDsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCBub2RlQ291bnQgPiAw
LCAibm9kZUNvdW50ID4gMCIpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlj
a0NvbHVtbihjb2x1bW5zWzBdLCBjbGlja1R3aWNlKTsKLSAgICAgICAgICAgICAgICBmdW5jdGlv
biBjbGlja1R3aWNlKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY2xpY2tDb2x1bW4oY29sdW1uc1swXSwgc3RlcDYpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDYoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBuZXdOb2RlQ291bnQgPSBJbnNwZWN0b3JU
ZXN0LmNvbHVtbkNvbnRlbnRzKGNvbHVtbnNbMF0pLmxlbmd0aDsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhub2RlQ291bnQsIG5ld05vZGVDb3VudCk7Ci0gICAg
ICAgICAgICAgICAgc2V0VGltZW91dChuZXh0LCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGVzdHMgU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNob3Rz
LgotU2hvd24gbm9kZSBjb3VudCBtdXN0IGJlIHByZXNlcnZlZCBhZnRlciBzb3J0aW5nLgotPC9w
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MzA3NjAxMTk0ZGJm
MzVkMDUxYTIzNjBlY2I1MzgwMzkyOTZiZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3Qtc3VtbWFyeS1zb3J0aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQg
KzAsMCBAQAotVGVzdHMgc29ydGluZyBpbiBTdW1tYXJ5IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBz
bmFwc2hvdHMuCi0KLUhlYXAgcHJvZmlsZXIgaXMgZGlzYWJsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5n
LWZpZWxkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmctZmllbGRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2RhMGRhMWEzYTg1MzdhN2U2NTU2NmYyYjEzYTMyMDBlYWMy
OWFmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmct
ZmllbGRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotVGVzdHMg
c29ydGluZyBpbiBTdW1tYXJ5IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi0KLVBy
b2ZpbGVyIHdhcyBlbmFibGVkLgotRGV0YWlsZWQgaGVhcCBwcm9maWxlcyB3ZXJlIGVuYWJsZWQu
Ci0KLVJ1bm5pbmc6IHRlc3RTb3J0aW5nCi0KLVByb2ZpbGVyIHdhcyBkaXNhYmxlZC4KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3Vt
bWFyeS1zb3J0aW5nLWZpZWxkcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLWZpZWxkcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMzJlZDQ1ODZlNTE3NGU5MzEzMDQ3Y2NmNTE1OTgyZjc2NGFkODc3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1maWVs
ZHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0g
IDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90LXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGluc3RhbmNlQ291
bnQgPSAxMDsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3QoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGluc3RhbmNlQ291bnQp
OwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90VGVzdFN1aXRlKFsK
LSAgICAgICAgZnVuY3Rpb24gdGVzdFNvcnRpbmcobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhlYXBTbmFwc2hvdCwg
c3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1bW1hcnkiLCBzdGVw
MWEpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgY29sdW1uczsKLSAgICAgICAg
ICAgIHZhciBjdXJyZW50Q29sdW1uOwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW5PcmRl
cjsKLSAgICAgICAgICAgIHZhciB3aW5kb3dSb3c7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0
ZXAxYSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3Rv
clRlc3QuZmluZFJvdygib2JqZWN0IiwgIldpbmRvdyIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhcm93LCAiXCJXaW5kb3dcIiBjbGFzcyByb3ci
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyhyb3csIHN0ZXAxYik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxYihyb3cpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwg
cm93LmNoaWxkcmVuLmxlbmd0aCwgInNpbmdsZSBXaW5kb3cgb2JqZWN0Iik7Ci0gICAgICAgICAg
ICAgICAgd2luZG93Um93ID0gcm93LmNoaWxkcmVuWzBdOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsICEhd2luZG93Um93LCAiXCJXaW5kb3dcIiBpbnN0
YW5jZSByb3ciKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGFuZFJvdyh3aW5k
b3dSb3csIHN0ZXAyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3Rl
cDIoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnMgPSBJbnNwZWN0b3JU
ZXN0LnZpZXdDb2x1bW5zKCk7Ci0gICAgICAgICAgICAgICAgY3VycmVudENvbHVtbiA9IDA7Ci0g
ICAgICAgICAgICAgICAgY3VycmVudENvbHVtbk9yZGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAg
ICAgc3RlcDMoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uID49IGNv
bHVtbnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGlja0NvbHVtbihjb2x1bW5zW2N1cnJlbnRDb2x1bW5d
LCBzdGVwNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXA0KG5l
d0NvbHVtblN0YXRlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbHVtbnNbY3Vy
cmVudENvbHVtbl0gPSBuZXdDb2x1bW5TdGF0ZTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1u
TmFtZSA9IGNvbHVtbnNbY3VycmVudENvbHVtbl0uaWRlbnRpZmllcjsKLSAgICAgICAgICAgICAg
ICB2YXIgY29udGVudHMgPSB3aW5kb3dSb3cuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKG9iaikgeyBy
ZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLmRhdGFbY29sdW1uTmFtZV0pOyB9KTsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhpbnN0YW5jZUNvdW50LCBjb250ZW50
cy5sZW5ndGgsICJjb2x1bW4gY29udGVudHMiKTsKLSAgICAgICAgICAgICAgICB2YXIgc29ydFR5
cGVzID0geyBvYmplY3Q6ICJ0ZXh0IiwgZGlzdGFuY2U6ICJudW1iZXIiLCBjb3VudDogIm51bWJl
ciIsIHNoYWxsb3dTaXplOiAic2l6ZSIsIHJldGFpbmVkU2l6ZTogInNpemUiIH07Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFzb3J0VHlwZXNbY29s
dW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgInNvcnQgYnkgaWRlbnRpZmllciIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tBcnJheUlzU29ydGVkKGNvbnRlbnRz
LCBzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgY29sdW1uc1tj
dXJyZW50Q29sdW1uXS5zb3J0KTsKLQotICAgICAgICAgICAgICAgIGlmICghY3VycmVudENvbHVt
bk9yZGVyKQotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSB0cnVlOwot
ICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1u
T3JkZXIgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50Q29sdW1uOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdGVwMygpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgXSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyBzb3J0aW5nIGluIFN1bW1hcnkgdmlldyBvZiBkZXRh
aWxlZCBoZWFwIHNuYXBzaG90cy4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29y
dGluZy1pbnN0YW5jZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLWluc3RhbmNlcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYTBkYTFhM2E4NTM3YTdlNjU1NjZmMmIx
M2EzMjAwZWFjMjlhZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFy
eS1zb3J0aW5nLWluc3RhbmNlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICsw
LDAgQEAKLVRlc3RzIHNvcnRpbmcgaW4gU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25h
cHNob3RzLgotCi1Qcm9maWxlciB3YXMgZW5hYmxlZC4KLURldGFpbGVkIGhlYXAgcHJvZmlsZXMg
d2VyZSBlbmFibGVkLgotCi1SdW5uaW5nOiB0ZXN0U29ydGluZwotCi1Qcm9maWxlciB3YXMgZGlz
YWJsZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1pbnN0YW5jZXMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXN1bW1hcnktc29ydGluZy1pbnN0YW5jZXMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGEyNTU1OTIzOGY1NTU5OTJmMWUy
ZjkwMTI4MWJlOGYzODg5MzVjNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1z
dW1tYXJ5LXNvcnRpbmctaW5zdGFuY2VzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotICA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICA8c2NyaXB0IHNyYz0iaGVhcC1z
bmFwc2hvdC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIHZhciBpbnN0YW5jZUNvdW50ID0gMTA7Ci0gICAgZnVuY3Rpb24gY3JlYXRlSGVhcFNu
YXBzaG90KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBT
bmFwc2hvdChpbnN0YW5jZUNvdW50KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1bkhl
YXBTbmFwc2hvdFRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTb3J0aW5nKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hv
dChjcmVhdGVIZWFwU25hcHNob3QsIHN0ZXAxKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gc3Rl
cDEoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc3dpdGNo
VG9WaWV3KCJTdW1tYXJ5Iiwgc3RlcDFhKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
dmFyIGNvbHVtbnM7Ci0gICAgICAgICAgICB2YXIgY3VycmVudENvbHVtbjsKLSAgICAgICAgICAg
IHZhciBjdXJyZW50Q29sdW1uT3JkZXI7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxYSgp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3Qu
ZmluZFJvdygib2JqZWN0IiwgIkIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscyh0cnVlLCAhIXJvdywgIlwiQlwiIHJvdyIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywgc3RlcDIpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMihyb3cpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMoKTsKLSAgICAgICAgICAgICAg
ICBjdXJyZW50Q29sdW1uID0gMDsKLSAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgICBzdGVwMygpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
aWYgKGN1cnJlbnRDb2x1bW4gPj0gY29sdW1ucy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChuZXh0LCAwKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2xpY2tDb2x1
bW4oY29sdW1uc1tjdXJyZW50Q29sdW1uXSwgc3RlcDQpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwNChuZXdDb2x1bW5TdGF0ZSkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBjb2x1bW5zW2N1cnJlbnRDb2x1bW5dID0gbmV3Q29sdW1uU3RhdGU7Ci0g
ICAgICAgICAgICAgICAgdmFyIGNvbHVtbk5hbWUgPSBjb2x1bW5zW2N1cnJlbnRDb2x1bW5dLmlk
ZW50aWZpZXI7Ci0gICAgICAgICAgICAgICAgdmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJv
dygib2JqZWN0IiwgIkIiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyh0cnVlLCAhIXJvdywgIlwiQlwiIHJvdyIpOwotICAgICAgICAgICAgICAgIHZhciBjb250
ZW50cyA9IHJvdy5jaGlsZHJlbi5tYXAoZnVuY3Rpb24ob2JqKSB7IHJldHVybiBKU09OLnN0cmlu
Z2lmeShvYmouZGF0YVtjb2x1bW5OYW1lXSk7IH0pOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKGluc3RhbmNlQ291bnQsIGNvbnRlbnRzLmxlbmd0aCwgImNvbHVt
biBjb250ZW50cyIpOwotICAgICAgICAgICAgICAgIHZhciBzb3J0VHlwZXMgPSB7IG9iamVjdDog
InRleHQiLCBkaXN0YW5jZTogIm51bWJlciIsIGNvdW50OiAibnVtYmVyIiwgc2hhbGxvd1NpemU6
ICJzaXplIiwgcmV0YWluZWRTaXplOiAic2l6ZSIgfTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXNvcnRUeXBlc1tjb2x1bW5zW2N1cnJlbnRDb2x1
bW5dLmlkZW50aWZpZXJdLCAic29ydCBieSBpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jaGVja0FycmF5SXNTb3J0ZWQoY29udGVudHMsIHNvcnRUeXBlc1tjb2x1
bW5zW2N1cnJlbnRDb2x1bW5dLmlkZW50aWZpZXJdLCBjb2x1bW5zW2N1cnJlbnRDb2x1bW5dLnNv
cnQpOwotCi0gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50Q29sdW1uT3JkZXIpCi0gICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW5PcmRlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW5PcmRlciA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRDb2x1bW47Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIHN0ZXAzKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBd
KTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD4KLVRlc3RzIHNvcnRpbmcgaW4gU3VtbWFyeSB2aWV3IG9mIGRldGFpbGVkIGhlYXAgc25hcHNo
b3RzLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3Qtc3VtbWFyeS1zb3J0aW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmcu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRhZjI2OTc2Y2M4ZDM3NDgxNGFm
NDg1NzZkZjFhYzVhNThiMjhmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1z
dW1tYXJ5LXNvcnRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci0gIDxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90LXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFy
IGluc3RhbmNlQ291bnQgPSAyNTsKLSAgICBmdW5jdGlvbiBjcmVhdGVIZWFwU25hcHNob3QoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90KGlu
c3RhbmNlQ291bnQpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QucnVuSGVhcFNuYXBzaG90
VGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdFNvcnRpbmcobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90KGNyZWF0ZUhl
YXBTbmFwc2hvdCwgc3RlcDEpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zd2l0Y2hUb1ZpZXcoIlN1
bW1hcnkiLCBzdGVwMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhciBjb2x1bW5z
OwotICAgICAgICAgICAgdmFyIGN1cnJlbnRDb2x1bW47Ci0gICAgICAgICAgICB2YXIgY3VycmVu
dENvbHVtbk9yZGVyOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgY29sdW1ucyA9IEluc3BlY3RvclRlc3Qudmlld0NvbHVtbnMo
KTsKLSAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uID0gMDsKLSAgICAgICAgICAgICAgICBj
dXJyZW50Q29sdW1uT3JkZXIgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHN0
ZXAzLCAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uID49IGNvbHVt
bnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgMCk7Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uKGNvbHVtbnNbY3VycmVudENvbHVtbl0s
IHN0ZXA0KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDQobmV3
Q29sdW1uU3RhdGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29sdW1uc1tjdXJy
ZW50Q29sdW1uXSA9IG5ld0NvbHVtblN0YXRlOwotICAgICAgICAgICAgICAgIHZhciBjb250ZW50
cyA9IEluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMoY29sdW1uc1tjdXJyZW50Q29sdW1uXSk7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFjb250
ZW50cy5sZW5ndGgsICJjb2x1bW4gY29udGVudHMiKTsKLSAgICAgICAgICAgICAgICB2YXIgc29y
dFR5cGVzID0geyBvYmplY3Q6ICJ0ZXh0IiwgZGlzdGFuY2U6ICJudW1iZXIiLCBjb3VudDogIm51
bWJlciIsIHNoYWxsb3dTaXplOiAic2l6ZSIsIHJldGFpbmVkU2l6ZTogInNpemUiIH07Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgISFzb3J0VHlwZXNb
Y29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgInNvcnQgYnkgaWRlbnRpZmllciIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tBcnJheUlzU29ydGVkKGNvbnRl
bnRzLCBzb3J0VHlwZXNbY29sdW1uc1tjdXJyZW50Q29sdW1uXS5pZGVudGlmaWVyXSwgY29sdW1u
c1tjdXJyZW50Q29sdW1uXS5zb3J0KTsKLQotICAgICAgICAgICAgICAgIGlmICghY3VycmVudENv
bHVtbk9yZGVyKQotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uT3JkZXIgPSB0cnVl
OwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29s
dW1uT3JkZXIgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50Q29sdW1uOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHN0ZXAzLCAwKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgc29ydGluZyBpbiBTdW1t
YXJ5IHZpZXcgb2YgZGV0YWlsZWQgaGVhcCBzbmFwc2hvdHMuCi08L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzdhNzdiYmE4NDNlMDQw
ZTlhNTI0ZDM3ZTEwZTFjNTQzMjBmZDg3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC10ZXN0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzc0ICswLDAgQEAKLXZhciBpbml0aWFs
aXplX0hlYXBTbmFwc2hvdFRlc3QgPSBmdW5jdGlvbigpIHsKLQotSW5zcGVjdG9yVGVzdC5jcmVh
dGVKU0hlYXBTbmFwc2hvdE1vY2tPYmplY3QgPSBmdW5jdGlvbigpCi17Ci0gICAgcmV0dXJuIHsK
LSAgICAgICAgX3Jvb3ROb2RlSW5kZXg6IDAsCi0gICAgICAgIF9ub2RlVHlwZU9mZnNldDogMCwK
LSAgICAgICAgX25vZGVOYW1lT2Zmc2V0OiAxLAotICAgICAgICBfbm9kZUVkZ2VDb3VudE9mZnNl
dDogMiwKLSAgICAgICAgX25vZGVGaWVsZENvdW50OiAzLAotICAgICAgICBfZWRnZUZpZWxkc0Nv
dW50OiAzLAotICAgICAgICBfZWRnZVR5cGVPZmZzZXQ6IDAsCi0gICAgICAgIF9lZGdlTmFtZU9m
ZnNldDogMSwKLSAgICAgICAgX2VkZ2VUb05vZGVPZmZzZXQ6IDIsCi0gICAgICAgIF9ub2RlVHlw
ZXM6IFsiaGlkZGVuIiwgIm9iamVjdCJdLAotICAgICAgICBfZWRnZVR5cGVzOiBbImVsZW1lbnQi
LCAicHJvcGVydHkiLCAic2hvcnRjdXQiXSwKLSAgICAgICAgX2VkZ2VTaG9ydGN1dFR5cGU6IC0x
LAotICAgICAgICBfZWRnZUhpZGRlblR5cGU6IC0xLAotICAgICAgICBfZWRnZUVsZW1lbnRUeXBl
OiAwLAotICAgICAgICBfcmVhbE5vZGVzTGVuZ3RoOiAxOCwKLSAgICAgICAgLy8gUmVwcmVzZW50
cyB0aGUgZm9sbG93aW5nIGdyYXBoOgotICAgICAgICAvLyAgIChudW1iZXJzIGluIHBhcmVudGhl
c2VzIGluZGljYXRlIG5vZGUgb2Zmc2V0KQotICAgICAgICAvLyAKLSAgICAgICAgLy8gICAgICAg
ICAtPiBBICgzKSAtLWFjLSBDICg5KSAtY2UtIEUoMTUpCi0gICAgICAgIC8vICAgICAgIGEvICAg
fCAgICAgICAgICAvCi0gICAgICAgIC8vICAiIiAoMCkgICAgMSAgICAtIGJjIC0KLSAgICAgICAg
Ly8gICAgICAgYlwgICB2ICAgLwotICAgICAgICAvLyAgICAgICAgIC0+IEIgKDYpIC1iZC0gRCAo
MTIpCi0gICAgICAgIC8vCi0gICAgICAgIF9ub2RlczogWwotICAgICAgICAgICAgMCwgMCwgMiwg
ICAgLy8gIDA6IHJvb3QKLSAgICAgICAgICAgIDEsIDEsIDIsICAgIC8vICAzOiBBCi0gICAgICAg
ICAgICAxLCAyLCAyLCAgICAvLyAgNjogQgotICAgICAgICAgICAgMSwgMywgMSwgICAgLy8gIDk6
IEMKLSAgICAgICAgICAgIDEsIDQsIDAsICAgIC8vIDEyOiBECi0gICAgICAgICAgICAxLCA1LCAw
XSwgICAvLyAxNTogRQotICAgICAgICBfY29udGFpbm1lbnRFZGdlczogWwotICAgICAgICAgICAg
MiwgIDYsIDMsICAgLy8gIDA6IHNob3J0Y3V0ICdhJyB0byBub2RlICdBJwotICAgICAgICAgICAg
MSwgIDcsIDYsICAgLy8gIDM6IHByb3BlcnR5ICdiJyB0byBub2RlICdCJwotICAgICAgICAgICAg
MCwgIDEsIDYsICAgLy8gIDY6IGVsZW1lbnQgJzEnIHRvIG5vZGUgJ0InCi0gICAgICAgICAgICAx
LCAgOCwgOSwgICAvLyAgOTogcHJvcGVydHkgJ2FjJyB0byBub2RlICdDJwotICAgICAgICAgICAg
MSwgIDksIDksICAgLy8gMTI6IHByb3BlcnR5ICdiYycgdG8gbm9kZSAnQycKLSAgICAgICAgICAg
IDEsIDEwLCAxMiwgIC8vIDE1OiBwcm9wZXJ0eSAnYmQnIHRvIG5vZGUgJ0QnCi0gICAgICAgICAg
ICAxLCAxMSwgMTVdLCAvLyAxODogcHJvcGVydHkgJ2NlJyB0byBub2RlICdFJwotICAgICAgICBf
c3RyaW5nczogWyIiLCAiQSIsICJCIiwgIkMiLCAiRCIsICJFIiwgImEiLCAiYiIsICJhYyIsICJi
YyIsICJiZCIsICJjZSJdLAotICAgICAgICBfZmlyc3RFZGdlSW5kZXhlczogWzAsIDYsIDEyLCAx
OCwgMjEsIDIxLCAyMV0sCi0gICAgICAgIGNyZWF0ZU5vZGU6IFdlYkluc3BlY3Rvci5KU0hlYXBT
bmFwc2hvdC5wcm90b3R5cGUuY3JlYXRlTm9kZSwKLSAgICAgICAgY3JlYXRlRWRnZTogV2ViSW5z
cGVjdG9yLkpTSGVhcFNuYXBzaG90LnByb3RvdHlwZS5jcmVhdGVFZGdlLAotICAgICAgICBjcmVh
dGVSZXRhaW5pbmdFZGdlOiBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3QucHJvdG90eXBlLmNy
ZWF0ZVJldGFpbmluZ0VkZ2UKLSAgICB9OwotfTsKLQotSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFw
U25hcHNob3RNb2NrUmF3ID0gZnVuY3Rpb24oKQotewotICAgIC8vIEVmZmVjdGl2ZWx5IHRoZSBz
YW1lIGdyYXBoIGFzIGluIGNyZWF0ZUpTSGVhcFNuYXBzaG90TW9ja09iamVjdCwKLSAgICAvLyBi
dXQgaGF2aW5nIGZ1bGwgc2V0IG9mIGZpZWxkcy4KLSAgICAvLwotICAgIC8vIEEgdHJpcGxlIGlu
IHBhcmVudGhlc2VzIGluZGljYXRlcyBub2RlIGluZGV4LCBzZWxmIHNpemUgYW5kCi0gICAgLy8g
cmV0YWluZWQgc2l6ZS4KLSAgICAvLwotICAgIC8vICAgICAgICAgIC0tLSBBICgxNCwyLDIpIC0t
YWMtIEMgKDQwLDQsMTApIC1jZS0gRSg1Nyw2LDYpCi0gICAgLy8gICAgICAgICAvICAgIHwgICAg
ICAgICAgICAgICAgLwotICAgIC8vICAiIiAoMSwwLDIwKSAxICAgICAgIC0tYmMtLS0tLQotICAg
IC8vICAgICAgICAgXCAgICB2ICAgICAgLwotICAgIC8vICAgICAgICAgIC0tLSBCICgyNywzLDgp
IC0tYmQtIEQgKDUwLDUsNSkKLSAgICAvLwotICAgIHJldHVybiB7Ci0gICAgICAgIHNuYXBzaG90
OiB7Ci0gICAgICAgICAgICBtZXRhOiB7Ci0gICAgICAgICAgICAgICAgbm9kZV9maWVsZHM6IFsi
dHlwZSIsICJuYW1lIiwgImlkIiwgInNlbGZfc2l6ZSIsICJyZXRhaW5lZF9zaXplIiwgImRvbWlu
YXRvciIsICJlZGdlX2NvdW50Il0sCi0gICAgICAgICAgICAgICAgbm9kZV90eXBlczogW1siaGlk
ZGVuIiwgIm9iamVjdCJdLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiXSwKLSAgICAgICAgICAgICAg
ICBlZGdlX2ZpZWxkczogWyJ0eXBlIiwgIm5hbWVfb3JfaW5kZXgiLCAidG9fbm9kZSJdLAotICAg
ICAgICAgICAgICAgIGVkZ2VfdHlwZXM6IFtbImVsZW1lbnQiLCAicHJvcGVydHkiLCAic2hvcnRj
dXQiXSwgIiIsICIiXQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIG5vZGVfY291bnQ6IDYs
Ci0gICAgICAgICAgICBlZGdlX2NvdW50OiA3fSwKLSAgICAgICAgbm9kZXM6IFsKLSAgICAgICAg
ICAgIDAsIDAsIDEsIDAsIDIwLCAgMCwgMiwgIC8vIHJvb3QgKDApCi0gICAgICAgICAgICAxLCAx
LCAyLCAyLCAgMiwgIDAsIDIsICAvLyBBICg3KQotICAgICAgICAgICAgMSwgMiwgMywgMywgIDgs
ICAwLCAyLCAgLy8gQiAoMTQpCi0gICAgICAgICAgICAxLCAzLCA0LCA0LCAxMCwgIDAsIDEsICAv
LyBDICgyMSkKLSAgICAgICAgICAgIDEsIDQsIDUsIDUsICA1LCAxNCwgMCwgIC8vIEQgKDI4KQot
ICAgICAgICAgICAgMSwgNSwgNiwgNiwgIDYsIDIxLCAwXSwgLy8gRSAoMzUpCi0gICAgICAgIGVk
Z2VzOiBbCi0gICAgICAgICAgICAvLyByb290IG5vZGUgZWRnZXMKLSAgICAgICAgICAgIDIsICA2
LCAgNywgLy8gc2hvcnRjdXQgJ2EnIHRvIG5vZGUgJ0EnCi0gICAgICAgICAgICAxLCAgNywgMTQs
IC8vIHByb3BlcnR5ICdiJyB0byBub2RlICdCJwotCi0gICAgICAgICAgICAvLyBBIG5vZGUgZWRn
ZXMKLSAgICAgICAgICAgIDAsICAxLCAxNCwgLy8gZWxlbWVudCAxIHRvIG5vZGUgJ0InCi0gICAg
ICAgICAgICAxLCAgOCwgMjEsIC8vIHByb3BlcnR5ICdhYycgdG8gbm9kZSAnQycKLQotICAgICAg
ICAgICAgLy8gQiBub2RlIGVkZ2VzCi0gICAgICAgICAgICAxLCAgOSwgMjEsIC8vIHByb3BlcnR5
ICdiYycgdG8gbm9kZSAnQycKLSAgICAgICAgICAgIDEsIDEwLCAyOCwgLy8gcHJvcGVydHkgJ2Jk
JyB0byBub2RlICdEJwotCi0gICAgICAgICAgICAvLyBDIG5vZGUgZWRnZXMKLSAgICAgICAgICAg
IDEsIDExLCAzNV0sIC8vIHByb3BlcnR5ICdjZScgdG8gbm9kZSAnRScKLSAgICAgICAgc3RyaW5n
czogWyIiLCAiQSIsICJCIiwgIkMiLCAiRCIsICJFIiwgImEiLCAiYiIsICJhYyIsICJiYyIsICJi
ZCIsICJjZSJdCi0gICAgfTsKLX07Ci0KLUluc3BlY3RvclRlc3QuX3Bvc3Rwcm9jZXNzSGVhcFNu
YXBzaG90TW9jayA9IGZ1bmN0aW9uKG1vY2spCi17Ci0gICAgbW9jay5ub2RlcyA9IG5ldyBVaW50
MzJBcnJheShtb2NrLm5vZGVzKTsKLSAgICBtb2NrLmVkZ2VzID0gbmV3IFVpbnQzMkFycmF5KG1v
Y2suZWRnZXMpOwotICAgIHJldHVybiBtb2NrOwotfTsKLQotSW5zcGVjdG9yVGVzdC5jcmVhdGVI
ZWFwU25hcHNob3RNb2NrID0gZnVuY3Rpb24oKQotewotICAgIHJldHVybiBJbnNwZWN0b3JUZXN0
Ll9wb3N0cHJvY2Vzc0hlYXBTbmFwc2hvdE1vY2soSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3RNb2NrUmF3KCkpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RN
b2NrV2l0aERPTSA9IGZ1bmN0aW9uKCkKLXsKLSAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5fcG9z
dHByb2Nlc3NIZWFwU25hcHNob3RNb2NrKHsKLSAgICAgICAgc25hcHNob3Q6IHsKLSAgICAgICAg
ICAgIG1ldGE6IHsKLSAgICAgICAgICAgICAgICBub2RlX2ZpZWxkczogWyJ0eXBlIiwgIm5hbWUi
LCAiaWQiLCAiZWRnZV9jb3VudCJdLAotICAgICAgICAgICAgICAgIG5vZGVfdHlwZXM6IFtbImhp
ZGRlbiIsICJvYmplY3QiXSwgIiIsICIiLCAiIl0sCi0gICAgICAgICAgICAgICAgZWRnZV9maWVs
ZHM6IFsidHlwZSIsICJuYW1lX29yX2luZGV4IiwgInRvX25vZGUiXSwKLSAgICAgICAgICAgICAg
ICBlZGdlX3R5cGVzOiBbWyJlbGVtZW50IiwgImhpZGRlbiIsICJpbnRlcm5hbCJdLCAiIiwgIiJd
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgbm9kZV9jb3VudDogMTMsCi0gICAgICAgICAg
ICBlZGdlX2NvdW50OiAxMwotICAgICAgICB9LAotICAgICAgICBub2RlczogWwotICAgICAgICAg
ICAgLy8gQSB0cmVlIHdpdGggV2luZG93IG9iamVjdHMuCi0gICAgICAgICAgICAvLwotICAgICAg
ICAgICAgLy8gICAgfC0tLS0tPldpbmRvdy0tLT5BCi0gICAgICAgICAgICAvLyAgICB8ICAgICAg
ICAgICAgIFwKLSAgICAgICAgICAgIC8vICAgIHwtLS0tLT5XaW5kb3ctLS0+Qi0tLT5DCi0gICAg
ICAgICAgICAvLyAgICB8ICAgICAgICB8ICAgICBcCi0gICAgICAgICAgICAvLyAgKHJvb3QpICAg
aGlkZGVuICAgLS0tPkQtLWludGVybmFsIC8gIm5hdGl2ZSItLT5OCi0gICAgICAgICAgICAvLyAg
ICB8ICAgICAgICAgXCAgICAgICAgIHwKLSAgICAgICAgICAgIC8vICAgIHwtLS0tLT5FICAgSCAg
ICAgaW50ZXJuYWwKLSAgICAgICAgICAgIC8vICAgIHwgICAgICAgICAgICAgICAgICAgdgotICAg
ICAgICAgICAgLy8gICAgfC0tLS0tPkYtLS0+RyAgICAgICBNCi0gICAgICAgICAgICAvLwotICAg
ICAgICAgICAgLyogKHJvb3QpICovICAgIDAsICAwLCAgMSwgNCwKLSAgICAgICAgICAgIC8qIFdp
bmRvdyAqLyAgICAxLCAxMSwgIDIsIDIsCi0gICAgICAgICAgICAvKiBXaW5kb3cgKi8gICAgMSwg
MTEsICAzLCAzLAotICAgICAgICAgICAgLyogRSAqLyAgICAgICAgIDEsICA1LCAgNCwgMCwKLSAg
ICAgICAgICAgIC8qIEYgKi8gICAgICAgICAxLCAgNiwgIDUsIDEsCi0gICAgICAgICAgICAvKiBB
ICovICAgICAgICAgMSwgIDEsICA2LCAwLAotICAgICAgICAgICAgLyogQiAqLyAgICAgICAgIDEs
ICAyLCAgNywgMSwKLSAgICAgICAgICAgIC8qIEQgKi8gICAgICAgICAxLCAgNCwgIDgsIDIsCi0g
ICAgICAgICAgICAvKiBIICovICAgICAgICAgMSwgIDgsICA5LCAwLAotICAgICAgICAgICAgLyog
RyAqLyAgICAgICAgIDEsICA3LCAxMCwgMCwKLSAgICAgICAgICAgIC8qIEMgKi8gICAgICAgICAx
LCAgMywgMTEsIDAsCi0gICAgICAgICAgICAvKiBOICovICAgICAgICAgMSwgMTAsIDEyLCAwLAot
ICAgICAgICAgICAgLyogTSAqLyAgICAgICAgIDEsICA5LCAxMywgMAotICAgICAgICAgICAgXSwK
LSAgICAgICAgZWRnZXM6IFsKLSAgICAgICAgICAgIC8qIGZyb20gKHJvb3QpICovICAwLCAgMSwg
IDQsIDAsIDIsICA4LCAwLCAzLCAxMiwgMCwgNCwgMTYsCi0gICAgICAgICAgICAvKiBmcm9tIFdp
bmRvdyAqLyAgMCwgIDEsIDIwLCAwLCAyLCAyNCwKLSAgICAgICAgICAgIC8qIGZyb20gV2luZG93
ICovICAwLCAgMSwgMjQsIDAsIDIsIDI4LCAxLCAzLCAzMiwKLSAgICAgICAgICAgIC8qIGZyb20g
RiAqLyAgICAgICAwLCAgMSwgMzYsCi0gICAgICAgICAgICAvKiBmcm9tIEIgKi8gICAgICAgMCwg
IDEsIDQwLAotICAgICAgICAgICAgLyogZnJvbSBEICovICAgICAgIDIsIDEyLCA0NCwgMiwgMSwg
NDgKLSAgICAgICAgICAgIF0sCi0gICAgICAgIHN0cmluZ3M6IFsiIiwgIkEiLCAiQiIsICJDIiwg
IkQiLCAiRSIsICJGIiwgIkciLCAiSCIsICJNIiwgIk4iLCAiV2luZG93IiwgIm5hdGl2ZSJdCi0g
ICAgfSk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LnN0YXJ0UHJvZmlsZXJUZXN0ID0gZnVuY3Rpb24o
Y2FsbGJhY2spCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKTsKLSAg
ICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd0hlYXBTbmFwc2hvdE9iamVjdHNIaWRkZW5Qcm9w
ZXJ0aWVzLnNldCh0cnVlKTsKLQotICAgIGZ1bmN0aW9uIHByb2ZpbGVyRW5hYmxlZCgpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUHJvZmlsZXIgd2FzIGVuYWJsZWQu
Iik7Ci0gICAgICAgIC8vIFdlIG1vY2sgb3V0IEhlYXBQcm9maWxlckFnZW50IC0tIGFzIERSVCBy
dW5zIGluIHNpbmdsZS1wcm9jZXNzIG1vZGUsIEluc3BlY3RvcgotICAgICAgICAvLyBhbmQgdGVz
dCBzaGFyZSB0aGUgc2FtZSBoZWFwLiBUYWtpbmcgYSBzbmFwc2hvdCB0YWtlcyB0b28gbG9uZyBm
b3IgYSB0ZXN0LAotICAgICAgICAvLyBzbyB3ZSBwcm92aWRlIHN5bnRoZXRpYyBzbmFwc2hvdHMu
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX3BhbmVsUmVzZXQgPSBJbnNwZWN0b3JUZXN0Lm92ZXJy
aWRlKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcmVzZXQiLCBmdW5jdGlvbigpe30s
IHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFZpZXcucHJvdG90eXBlLCAic2hvdyIsIEluc3BlY3RvclRlc3QuX3NuYXBzaG90
Vmlld1Nob3duLCB0cnVlKTsKLQotICAgICAgICBkZXRhaWxlZEhlYXBQcm9maWxlc0VuYWJsZWQo
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkZXRhaWxlZEhlYXBQcm9maWxlc0VuYWJsZWQoKQot
ICAgIHsKLSAgICAgICAgLy8gUmVkdWNlIHRoZSBudW1iZXIgb2YgcG9wdWxhdGVkIG5vZGVzIHRv
IHNwZWVkIHVwIHRlc3RpbmcuCi0gICAgICAgIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RDb250
YWlubWVudERhdGFHcmlkLnByb3RvdHlwZS5kZWZhdWx0UG9wdWxhdGVDb3VudCA9IGZ1bmN0aW9u
KCkgeyByZXR1cm4gMTA7IH07Ci0gICAgICAgIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RDb25z
dHJ1Y3RvcnNEYXRhR3JpZC5wcm90b3R5cGUuZGVmYXVsdFBvcHVsYXRlQ291bnQgPSBmdW5jdGlv
bigpIHsgcmV0dXJuIDEwOyB9OwotICAgICAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlm
ZkRhdGFHcmlkLnByb3RvdHlwZS5kZWZhdWx0UG9wdWxhdGVDb3VudCA9IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gNTsgfTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERvbWluYXRvcnNE
YXRhR3JpZC5wcm90b3R5cGUuZGVmYXVsdFBvcHVsYXRlQ291bnQgPSBmdW5jdGlvbigpIHsgcmV0
dXJuIDM7IH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRldGFpbGVkIGhlYXAg
cHJvZmlsZXMgd2VyZSBlbmFibGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNhZmVXcmFw
KGNhbGxiYWNrKSgpOwotICAgIH0KLQotICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLnByb2Zp
bGVzLl9wcm9maWxlckVuYWJsZWQpCi0gICAgICAgIHByb2ZpbGVyRW5hYmxlZCgpOwotICAgIGVs
c2UgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLnBhbmVs
cy5wcm9maWxlcywgIl9wcm9maWxlcldhc0VuYWJsZWQiLCBwcm9maWxlckVuYWJsZWQpOwotICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl90b2dnbGVQcm9maWxpbmcoZmFsc2Up
OwotICAgIH0KLX07Ci0KLUluc3BlY3RvclRlc3QuY29tcGxldGVQcm9maWxlclRlc3QgPSBmdW5j
dGlvbigpCi17Ci0gICAgLy8gVGhlcmUgaXMgbm8gd2F5IHRvIGRpc2FibGUgZGV0YWlsZWQgaGVh
cCBwcm9maWxlcy4KLQotICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpCi0gICAgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJQcm9maWxlciB3YXMgZGlzYWJsZWQuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgdmFyIHByb2ZpbGVzUGFuZWwgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnByb2ZpbGVzOwotICAgIGlmICghcHJvZmlsZXNQYW5lbC5fcHJvZmlsZXJF
bmFibGVkKQotICAgICAgICBjb21wbGV0ZVRlc3QoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcHJv
ZmlsZXJXYXNEaXNhYmxlZCIsIGNvbXBsZXRlVGVzdCk7Ci0gICAgICAgIHByb2ZpbGVzUGFuZWwu
X3RvZ2dsZVByb2ZpbGluZyhmYWxzZSk7Ci0gICAgfQotfTsKLQotSW5zcGVjdG9yVGVzdC5ydW5I
ZWFwU25hcHNob3RUZXN0U3VpdGUgPSBmdW5jdGlvbih0ZXN0U3VpdGUpCi17Ci0gICAgaWYgKCFD
YXBhYmlsaXRpZXMuaGVhcFByb2ZpbGVyUHJlc2VudCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiSGVhcCBwcm9maWxlciBpcyBkaXNhYmxlZCIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgSW5z
cGVjdG9yVGVzdC5fbmV4dFVpZCA9IDE7Ci0gICAgdmFyIHRlc3RTdWl0ZVRlc3RzID0gdGVzdFN1
aXRlLnNsaWNlKCk7Ci0KLSAgICBmdW5jdGlvbiBydW5uZXIoKQotICAgIHsKLSAgICAgICAgaWYg
KCF0ZXN0U3VpdGVUZXN0cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVQcm9maWxlclRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0g
ICAgICAgIHZhciBuZXh0VGVzdCA9IHRlc3RTdWl0ZVRlc3RzLnNoaWZ0KCk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlJ1bm5pbmc6ICIgKyAvZnVuY3Rpb25ccyhbXihdKikvLmV4ZWMobmV4dFRlc3QpWzFdKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5fcGFuZWxSZXNldC5jYWxsKFdlYkluc3BlY3Rvci5wYW5l
bHMucHJvZmlsZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKG5leHRUZXN0KShy
dW5uZXIsIHJ1bm5lcik7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zdGFydFByb2ZpbGVy
VGVzdChydW5uZXIpOwotfTsKLQotSW5zcGVjdG9yVGVzdC5hc3NlcnRDb2x1bW5Db250ZW50c0Vx
dWFsID0gZnVuY3Rpb24ocmVmZXJlbmNlLCBhY3R1YWwpCi17Ci0gICAgdmFyIGxlbmd0aCA9IE1h
dGgubWluKHJlZmVyZW5jZS5sZW5ndGgsIGFjdHVhbC5sZW5ndGgpOwotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KHJlZmVyZW5jZVtpXSwgYWN0dWFsW2ldLCAicm93ICIgKyBpKTsKLSAgICBpZiAocmVmZXJlbmNl
Lmxlbmd0aCA+IGxlbmd0aCkKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImV4dHJh
IHJvd3MgaW4gcmVmZXJlbmNlIGFycmF5OlxuIiArIHJlZmVyZW5jZS5zbGljZShsZW5ndGgpLmpv
aW4oIlxuIikpOwotICAgIGVsc2UgaWYgKGFjdHVhbC5sZW5ndGggPiBsZW5ndGgpCi0gICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJleHRyYSByb3dzIGluIGFjdHVhbCBhcnJheTpcbiIg
KyBhY3R1YWwuc2xpY2UobGVuZ3RoKS5qb2luKCJcbiIpKTsKLX07Ci0KLUluc3BlY3RvclRlc3Qu
Y2hlY2tBcnJheUlzU29ydGVkID0gZnVuY3Rpb24oY29udGVudHMsIHNvcnRUeXBlLCBzb3J0T3Jk
ZXIpCi17Ci0gICAgZnVuY3Rpb24gc2ltcGxlQ29tcGFyYXRvcihhLCBiKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGEgPCBiID8gLTEgOiAoYSA+IGIgPyAxIDogMCk7Ci0gICAgfQotICAgIGZ1bmN0
aW9uIHBhcnNlU2l6ZShzaXplKQotICAgIHsKLSAgICAgICAgaWYgKHNpemUuc3Vic3RyKDAsIDEp
ID09PSAnIicpIHNpemUgPSBKU09OLnBhcnNlKHNpemUpOwotICAgICAgICAvLyBSZW1vdmUgdGhv
dXNhbmRzIHNlcGFyYXRvci4KLSAgICAgICAgcmV0dXJuIHBhcnNlSW50KHNpemUucmVwbGFjZSgv
W1x1MjAwOSxdL2csICIiKSk7Ci0gICAgfQotICAgIGZ1bmN0aW9uIGV4dHJhY3RGaWVsZChkYXRh
LCBmaWVsZCkKLSAgICB7Ci0gICAgICAgIGlmIChkYXRhLnN1YnN0cigwLCAxKSAhPT0gInsiKSBy
ZXR1cm4gZGF0YTsKLSAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7Ci0gICAgICAgIGlm
ICghZGF0YVtmaWVsZF0pCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTm8g
IiArIGZpZWxkICsgIiBmaWVsZCBpbiAiICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwotICAgICAg
ICByZXR1cm4gZGF0YVtmaWVsZF07Ci0gICAgfQotICAgIGZ1bmN0aW9uIGV4dHJhY3RJZChkYXRh
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHBhcnNlSW50KGV4dHJhY3RGaWVsZChkYXRhLCAibm9k
ZUlkIikpOwotICAgIH0KLSAgICB2YXIgZXh0cmFjdG9yID0gewotICAgICAgICB0ZXh0OiBmdW5j
dGlvbiAoZGF0YSkgeyByZXR1cm4gZXh0cmFjdEZpZWxkKGRhdGEsICJ2YWx1ZSIpOyB9LAotICAg
ICAgICBudW1iZXI6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBwYXJzZUludChkYXRhLCAxMCk7
IH0sCi0gICAgICAgIHNpemU6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBwYXJzZVNpemUoZGF0
YSk7IH0sCi0gICAgICAgIG5hbWU6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBleHRyYWN0Rmll
bGQoZGF0YSwgIm5hbWUiKTsgfSwKLSAgICAgICAgaWQ6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVy
biBleHRyYWN0SWQoZGF0YSk7IH0KLSAgICB9W3NvcnRUeXBlXTsKLSAgICB2YXIgYWNjZXB0YWJs
ZUNvbXBhcmlzb25SZXN1bHQgPSB7Ci0gICAgICAgIGFzY2VuZGluZzogLTEsCi0gICAgICAgIGRl
c2NlbmRpbmc6IDEKLSAgICB9W3NvcnRPcmRlcl07Ci0KLSAgICBpZiAoIWV4dHJhY3Rvcikgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSW52YWxpZCBzb3J0IHR5cGU6ICIgKyBz
b3J0VHlwZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFhY2NlcHRhYmxlQ29t
cGFyaXNvblJlc3VsdCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSW52YWxp
ZCBzb3J0IG9yZGVyOiAiICsgc29ydE9yZGVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29udGVudHMubGVuZ3RoIC0gMTsgKytpKSB7Ci0gICAg
ICAgIHZhciBhID0gZXh0cmFjdG9yKGNvbnRlbnRzW2ldKTsKLSAgICAgICAgdmFyIGIgPSBleHRy
YWN0b3IoY29udGVudHNbaSArIDFdKTsKLSAgICAgICAgdmFyIHJlc3VsdCA9IHNpbXBsZUNvbXBh
cmF0b3IoYSwgYik7Ci0gICAgICAgIGlmIChyZXN1bHQgIT09IDAgJiYgcmVzdWx0ICE9PSBhY2Nl
cHRhYmxlQ29tcGFyaXNvblJlc3VsdCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJFbGVtZW50cyAiICsgaSArICIgYW5kICIgKyAoaSArIDEpICsgIiBhcmUgb3V0IG9mIG9y
ZGVyOiAiICsgYSArICIgIiArIGIgKyAiICgiICsgc29ydE9yZGVyICsgIikiKTsKLSAgICB9Ci19
OwotCi1JbnNwZWN0b3JUZXN0LmNsaWNrQ29sdW1uID0gZnVuY3Rpb24oY29sdW1uLCBjYWxsYmFj
aykKLXsKLSAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwot
ICAgIHZhciBjZWxsID0gdGhpcy5fY3VycmVudEdyaWQoKS5faGVhZGVyVGFibGVIZWFkZXJzW2Nv
bHVtbi5pZGVudGlmaWVyXTsKLSAgICB2YXIgZXZlbnQgPSB7IHRhcmdldDogeyBlbmNsb3NpbmdO
b2RlT3JTZWxmV2l0aE5vZGVOYW1lOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbGw7IH0gfSB9Owot
Ci0gICAgZnVuY3Rpb24gc29ydGluZ0NvbXBsZXRlKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuX2N1cnJlbnRHcmlkKCkucmVtb3ZlRXZlbnRMaXN0ZW5lcigic29ydGluZyBjb21wbGV0
ZSIsIHNvcnRpbmdDb21wbGV0ZSwgdGhpcyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKGNvbHVtbi5pZGVudGlmaWVyLCB0aGlzLl9jdXJyZW50R3JpZCgpLnNvcnRDb2x1bW5J
ZGVudGlmaWVyKCksICJ1bmV4cGVjdGVkIHNvcnRpbmciKTsKLSAgICAgICAgY29sdW1uLnNvcnQg
PSB0aGlzLl9jdXJyZW50R3JpZCgpLnNvcnRPcmRlcigpOwotICAgICAgICBmdW5jdGlvbiBjYWxs
Q2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBjYWxsYmFjayhjb2x1bW4pOwotICAg
ICAgICB9Ci0gICAgICAgIHNldFRpbWVvdXQoY2FsbENhbGxiYWNrLCAwKTsKLSAgICB9Ci0gICAg
SW5zcGVjdG9yVGVzdC5fY3VycmVudEdyaWQoKS5hZGRFdmVudExpc3RlbmVyKCJzb3J0aW5nIGNv
bXBsZXRlIiwgc29ydGluZ0NvbXBsZXRlLCB0aGlzKTsKLSAgICB0aGlzLl9jdXJyZW50R3JpZCgp
Ll9jbGlja0luSGVhZGVyQ2VsbChldmVudCk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmNsaWNrUm93
QW5kR2V0UmV0YWluZXJzID0gZnVuY3Rpb24ocm93LCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFj
ayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwotICAgIHZhciBldmVudCA9IHsK
LSAgICAgICAgdGFyZ2V0OiB7Ci0gICAgICAgICAgICBlbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5v
ZGVOYW1lOiBmdW5jdGlvbigpIHsgcmV0dXJuIHJvdy5fZWxlbWVudDsgfSwKLSAgICAgICAgICAg
IHNlbGVjdGVkTm9kZTogcm93Ci0gICAgICAgIH0KLSAgICB9OwotICAgIHRoaXMuX2N1cnJlbnRH
cmlkKCkuX21vdXNlRG93bkluRGF0YVRhYmxlKGV2ZW50KTsKLSAgICB2YXIgcm9vdE5vZGUgPSBJ
bnNwZWN0b3JUZXN0Ll9jdXJyZW50UHJvZmlsZVZpZXcoKS5yZXRhaW5tZW50RGF0YUdyaWQucm9v
dE5vZGUoKTsKLSAgICBmdW5jdGlvbiBwb3B1bGF0ZUNvbXBsZXRlKCkKLSAgICB7Ci0gICAgICAg
IHJvb3ROb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdy
aWROb2RlLkV2ZW50cy5Qb3B1bGF0ZUNvbXBsZXRlLCBwb3B1bGF0ZUNvbXBsZXRlLCB0aGlzKTsK
LSAgICAgICAgY2FsbGJhY2socm9vdE5vZGUpOwotICAgIH0KLSAgICByb290Tm9kZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHcmlkTm9kZS5FdmVudHMuUG9wdWxh
dGVDb21wbGV0ZSwgcG9wdWxhdGVDb21wbGV0ZSwgdGhpcyk7Ci19OwotCi1JbnNwZWN0b3JUZXN0
LmNsaWNrU2hvd01vcmVCdXR0b24gPSBmdW5jdGlvbihidXR0b25OYW1lLCByb3csIGNhbGxiYWNr
KQotewotICAgIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7Ci0g
ICAgdmFyIHBhcmVudCA9IHJvdy5wYXJlbnQ7Ci0gICAgZnVuY3Rpb24gcG9wdWxhdGVDb21wbGV0
ZSgpCi0gICAgewotICAgICAgICBwYXJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUuRXZlbnRzLlBvcHVsYXRlQ29tcGxldGUsIHBvcHVsYXRl
Q29tcGxldGUsIHRoaXMpOwotICAgICAgICBmdW5jdGlvbiBjYWxsQ2FsbGJhY2soKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBjYWxsYmFjayhwYXJlbnQpOwotICAgICAgICB9Ci0gICAgICAgIHNl
dFRpbWVvdXQoY2FsbENhbGxiYWNrLCAwKTsKLSAgICB9Ci0gICAgcGFyZW50LmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdyaWROb2RlLkV2ZW50cy5Qb3B1bGF0ZUNv
bXBsZXRlLCBwb3B1bGF0ZUNvbXBsZXRlLCB0aGlzKTsKLSAgICByb3dbYnV0dG9uTmFtZV0uY2xp
Y2soKTsKLX07Ci0KLUluc3BlY3RvclRlc3QuY29sdW1uQ29udGVudHMgPSBmdW5jdGlvbihjb2x1
bW4sIHJvdykKLXsKLSAgICAvLyBNYWtlIHN1cmUgaW52aXNpYmxlIG5vZGVzIGFyZSByZW1vdmVk
IGZyb20gdGhlIHZpZXcgcG9ydC4KLSAgICB0aGlzLl9jdXJyZW50R3JpZCgpLnVwZGF0ZVZpc2li
bGVOb2RlcygpOwotICAgIHZhciByZXN1bHQgPSBbXTsKLSAgICB2YXIgcGFyZW50ID0gcm93IHx8
IHRoaXMuX2N1cnJlbnRHcmlkKCkucm9vdE5vZGUoKTsKLSAgICBmb3IgKHZhciBub2RlID0gcGFy
ZW50LmNoaWxkcmVuWzBdOyBub2RlOyBub2RlID0gbm9kZS50cmF2ZXJzZU5leHROb2RlKHRydWUs
IHBhcmVudCwgdHJ1ZSkpIHsKLSAgICAgICAgaWYgKCFub2RlLnNlbGVjdGFibGUpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgdmFyIGRhdGEgPSBub2RlLmRhdGFbY29sdW1uLmlkZW50
aWZpZXJdOwotICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICJvYmplY3QiKQotICAgICAgICAg
ICAgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOwotICAgICAgICByZXN1bHQucHVzaChkYXRh
KTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX07Ci0KLUluc3BlY3RvclRlc3QuY291bnRE
YXRhUm93cyA9IGZ1bmN0aW9uKHJvdywgZmlsdGVyKQotewotICAgIHZhciByZXN1bHQgPSAwOwot
ICAgIGZpbHRlciA9IGZpbHRlciB8fCBmdW5jdGlvbihub2RlKSB7IHJldHVybiBub2RlLnNlbGVj
dGFibGU7IH07Ci0gICAgZm9yICh2YXIgbm9kZSA9IHJvdy5jaGlsZHJlblswXTsgbm9kZTsgbm9k
ZSA9IG5vZGUudHJhdmVyc2VOZXh0Tm9kZSh0cnVlLCByb3csIHRydWUpKSB7Ci0gICAgICAgIGlm
IChmaWx0ZXIobm9kZSkpCi0gICAgICAgICAgICArK3Jlc3VsdDsKLSAgICB9Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX07Ci0KLUluc3BlY3RvclRlc3QuSGVhcE5vZGUgPSBmdW5jdGlvbihuYW1lLCBz
ZWxmU2l6ZSwgdHlwZSwgaWQpCi17Ci0gICAgdGhpcy5fdHlwZSA9IHR5cGUgfHwgSW5zcGVjdG9y
VGVzdC5IZWFwTm9kZS5UeXBlLm9iamVjdDsKLSAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICB0
aGlzLl9zZWxmU2l6ZSA9IHNlbGZTaXplIHx8IDA7Ci0gICAgdGhpcy5fYnVpbGRlciA9IG51bGw7
Ci0gICAgdGhpcy5fZWRnZXMgPSB7fTsKLSAgICB0aGlzLl9lZGdlc0NvdW50ID0gMDsKLSAgICB0
aGlzLl9pZCA9IGlkOwotfQotCi1JbnNwZWN0b3JUZXN0LkhlYXBOb2RlLlR5cGUgPSB7Ci0gICAg
ImhpZGRlbiI6ICJoaWRkZW4iLAotICAgICJhcnJheSI6ICJhcnJheSIsCi0gICAgInN0cmluZyI6
ICJzdHJpbmciLAotICAgICJvYmplY3QiOiAib2JqZWN0IiwKLSAgICAiY29kZSI6ICJjb2RlIiwK
LSAgICAiY2xvc3VyZSI6ICJjbG9zdXJlIiwKLSAgICAicmVnZXhwIjogInJlZ2V4cCIsCi0gICAg
Im51bWJlciI6ICJudW1iZXIiLAotICAgICJuYXRpdmUiOiAibmF0aXZlIgotfTsKLQotSW5zcGVj
dG9yVGVzdC5IZWFwTm9kZS5wcm90b3R5cGUgPSB7Ci0gICAgbGlua05vZGU6IGZ1bmN0aW9uKG5v
ZGUsIHR5cGUsIG5hbWVPckluZGV4KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9idWlsZGVy
KQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJwYXJlbnQgbm9kZSBpcyBub3QgY29ubmVj
dGVkIHRvIGEgc25hcHNob3QiKTsKLQotICAgICAgICBpZiAoIW5vZGUuX2J1aWxkZXIpCi0gICAg
ICAgICAgICBub2RlLl9zZXRCdWlsZGVyKHRoaXMuX2J1aWxkZXIpOwotCi0gICAgICAgIGlmIChu
YW1lT3JJbmRleCA9PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgbmFtZU9ySW5kZXggPSB0aGlz
Ll9lZGdlc0NvdW50OwotICAgICAgICArK3RoaXMuX2VkZ2VzQ291bnQ7Ci0KLSAgICAgICAgaWYg
KG5hbWVPckluZGV4IGluIHRoaXMuX2VkZ2VzKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJDYW4ndCBhZGQgZWRnZSB3aXRoIHRoZSBzYW1lIG5hbWVPckluZGV4LiBuYW1lT3JJbmRleDog
IiArIG5hbWVPckluZGV4ICsgIiBvbGROb2RlTmFtZTogIiArIHRoaXMuX2VkZ2VzW25hbWVPcklu
ZGV4XS5fbmFtZSArICIgbmV3Tm9kZU5hbWU6ICIgKyBub2RlLl9uYW1lKTsKLSAgICAgICAgdGhp
cy5fZWRnZXNbbmFtZU9ySW5kZXhdID0gbmV3IEluc3BlY3RvclRlc3QuSGVhcEVkZ2Uobm9kZSwg
dHlwZSwgbmFtZU9ySW5kZXgpOwotICAgIH0sCi0KLSAgICBfc2V0QnVpbGRlcjogZnVuY3Rpb24o
YnVpbGRlcikKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9idWlsZGVyKQotICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJub2RlIHJldXNpbmcgaXMgcHJvaGliaXRlZCIpOwotCi0gICAgICAg
IHRoaXMuX2J1aWxkZXIgPSBidWlsZGVyOwotICAgICAgICB0aGlzLl9vcmRpbmFsID0gdGhpcy5f
YnVpbGRlci5fcmVnaXN0ZXJOb2RlKHRoaXMpOwotICAgIH0sCi0KLSAgICBfc2VyaWFsaXplOiBm
dW5jdGlvbihyYXdTbmFwc2hvdCkKLSAgICB7Ci0gICAgICAgIHJhd1NuYXBzaG90Lm5vZGVzLnB1
c2godGhpcy5fYnVpbGRlci5sb29rdXBOb2RlVHlwZSh0aGlzLl90eXBlKSk7Ci0gICAgICAgIHJh
d1NuYXBzaG90Lm5vZGVzLnB1c2godGhpcy5fYnVpbGRlci5sb29rdXBPckFkZFN0cmluZyh0aGlz
Ll9uYW1lKSk7Ci0gICAgICAgIC8vIEpTIGVuZ2luZSBzbmFwc2hvdCBpbXBlbWVudGF0aW9uIGdl
bmVyYXRlcyBtb25vdG9uaWNhbHkgaW5jcmVhc2luZyBvZGQgaWQgZm9yIEpTIG9iamVjdHMsCi0g
ICAgICAgIC8vIGFuZCBldmVuIGlkcyBiYXNlZCBvbiBhIGhhc2ggZm9yIG5hdGl2ZSBET01PYmpl
Y3QgZ3JvdXBzLgotICAgICAgICByYXdTbmFwc2hvdC5ub2Rlcy5wdXNoKHRoaXMuX2lkIHx8IHRo
aXMuX29yZGluYWwgKiAyICsgMSk7Ci0gICAgICAgIHJhd1NuYXBzaG90Lm5vZGVzLnB1c2godGhp
cy5fc2VsZlNpemUpOwotICAgICAgICByYXdTbmFwc2hvdC5ub2Rlcy5wdXNoKDApOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyByZXRhaW5lZF9zaXplCi0gICAgICAgIHJhd1NuYXBz
aG90Lm5vZGVzLnB1c2goMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbWlu
YXRvcgotICAgICAgICByYXdTbmFwc2hvdC5ub2Rlcy5wdXNoKE9iamVjdC5rZXlzKHRoaXMuX2Vk
Z2VzKS5sZW5ndGgpOyAvLyBlZGdlX2NvdW50Ci0KLSAgICAgICAgZm9yICh2YXIgaSBpbiB0aGlz
Ll9lZGdlcykKLSAgICAgICAgICAgIHRoaXMuX2VkZ2VzW2ldLl9zZXJpYWxpemUocmF3U25hcHNo
b3QpOwotICAgIH0KLX0KLQotSW5zcGVjdG9yVGVzdC5IZWFwRWRnZSA9IGZ1bmN0aW9uKHRhcmdl
dE5vZGUsIHR5cGUsIG5hbWVPckluZGV4KQotewotICAgIHRoaXMuX3RhcmdldE5vZGUgPSB0YXJn
ZXROb2RlOwotICAgIHRoaXMuX3R5cGUgPSB0eXBlOwotICAgIHRoaXMuX25hbWVPckluZGV4ID0g
bmFtZU9ySW5kZXg7Ci19Ci0KLUluc3BlY3RvclRlc3QuSGVhcEVkZ2UucHJvdG90eXBlID0gewot
ICAgIF9zZXJpYWxpemU6IGZ1bmN0aW9uKHJhd1NuYXBzaG90KQotICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl90YXJnZXROb2RlLl9idWlsZGVyKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJJbmNvbnNpc3RlbnQgc3RhdGUgb2Ygbm9kZTogIiArIHRoaXMuX25hbWUgKyAiIG5vIGJ1aWxk
ZXIgYXNzaWduZWQiKTsKLSAgICAgICAgdmFyIGJ1aWxkZXIgPSB0aGlzLl90YXJnZXROb2RlLl9i
dWlsZGVyOwotICAgICAgICByYXdTbmFwc2hvdC5lZGdlcy5wdXNoKGJ1aWxkZXIubG9va3VwRWRn
ZVR5cGUodGhpcy5fdHlwZSkpOwotICAgICAgICByYXdTbmFwc2hvdC5lZGdlcy5wdXNoKHR5cGVv
ZiB0aGlzLl9uYW1lT3JJbmRleCA9PT0gInN0cmluZyIgPyBidWlsZGVyLmxvb2t1cE9yQWRkU3Ry
aW5nKHRoaXMuX25hbWVPckluZGV4KSA6IHRoaXMuX25hbWVPckluZGV4KTsKLSAgICAgICAgcmF3
U25hcHNob3QuZWRnZXMucHVzaCh0aGlzLl90YXJnZXROb2RlLl9vcmRpbmFsICogYnVpbGRlci5u
b2RlRmllbGRzQ291bnQpOyAvLyBpbmRleAotICAgIH0KLX0KLQotSW5zcGVjdG9yVGVzdC5IZWFw
RWRnZS5UeXBlID0gewotICAgICJjb250ZXh0IjogImNvbnRleHQiLAotICAgICJlbGVtZW50Ijog
ImVsZW1lbnQiLAotICAgICJwcm9wZXJ0eSI6ICJwcm9wZXJ0eSIsCi0gICAgImludGVybmFsIjog
ImludGVybmFsIiwKLSAgICAiaGlkZGVuIjogImhpZGRlbiIsCi0gICAgInNob3J0Y3V0IjogInNo
b3J0Y3V0IgotfTsKLQotSW5zcGVjdG9yVGVzdC5IZWFwU25hcHNob3RCdWlsZGVyID0gZnVuY3Rp
b24oKQotewotICAgIHRoaXMuX25vZGVzID0gW107Ci0gICAgdGhpcy5fc3RyaW5nMmlkID0ge307
Ci0gICAgdGhpcy5fc3RyaW5ncyA9IFtdOwotICAgIHRoaXMubm9kZUZpZWxkc0NvdW50ID0gNzsK
LQotICAgIHRoaXMuX25vZGVUeXBlc01hcCA9IHt9OwotICAgIHRoaXMuX25vZGVUeXBlc0FycmF5
ID0gW107Ci0gICAgZm9yICh2YXIgbm9kZVR5cGUgaW4gSW5zcGVjdG9yVGVzdC5IZWFwTm9kZS5U
eXBlKSB7Ci0gICAgICAgIHRoaXMuX25vZGVUeXBlc01hcFtub2RlVHlwZV0gPSB0aGlzLl9ub2Rl
VHlwZXNBcnJheS5sZW5ndGgKLSAgICAgICAgdGhpcy5fbm9kZVR5cGVzQXJyYXkucHVzaChub2Rl
VHlwZSk7Ci0gICAgfQotCi0gICAgdGhpcy5fZWRnZVR5cGVzTWFwID0ge307Ci0gICAgdGhpcy5f
ZWRnZVR5cGVzQXJyYXkgPSBbXTsKLSAgICBmb3IgKHZhciBlZGdlVHlwZSBpbiBJbnNwZWN0b3JU
ZXN0LkhlYXBFZGdlLlR5cGUpIHsKLSAgICAgICAgdGhpcy5fZWRnZVR5cGVzTWFwW2VkZ2VUeXBl
XSA9IHRoaXMuX2VkZ2VUeXBlc0FycmF5Lmxlbmd0aAotICAgICAgICB0aGlzLl9lZGdlVHlwZXNB
cnJheS5wdXNoKGVkZ2VUeXBlKTsKLSAgICB9Ci0KLSAgICB0aGlzLnJvb3ROb2RlID0gbmV3IElu
c3BlY3RvclRlc3QuSGVhcE5vZGUoInJvb3QiLCAwLCAib2JqZWN0Iik7Ci0gICAgdGhpcy5yb290
Tm9kZS5fc2V0QnVpbGRlcih0aGlzKTsKLX0KLQotSW5zcGVjdG9yVGVzdC5IZWFwU25hcHNob3RC
dWlsZGVyLnByb3RvdHlwZSA9IHsKLSAgICBnZW5lcmF0ZVNuYXBzaG90OiBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICB2YXIgcmF3U25hcHNob3QgPSB7Ci0gICAgICAgICAgICAic25hcHNob3Qi
OiB7Ci0gICAgICAgICAgICAgICAgIm1ldGEiOiB7Ci0gICAgICAgICAgICAgICAgICAgICJub2Rl
X2ZpZWxkcyI6IFsidHlwZSIsIm5hbWUiLCJpZCIsInNlbGZfc2l6ZSIsInJldGFpbmVkX3NpemUi
LCJkb21pbmF0b3IiLCJlZGdlX2NvdW50Il0sCi0gICAgICAgICAgICAgICAgICAgICJub2RlX3R5
cGVzIjogWwotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9kZVR5cGVzQXJyYXksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJudW1iZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgIm51bWJlciIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAibnVtYmVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJudW1iZXIi
LAotICAgICAgICAgICAgICAgICAgICAgICAgIm51bWJlciIKLSAgICAgICAgICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgICAgICAgICAgImVkZ2VfZmllbGRzIjogWyJ0eXBlIiwibmFtZV9vcl9p
bmRleCIsInRvX25vZGUiXSwKLSAgICAgICAgICAgICAgICAgICAgImVkZ2VfdHlwZXMiOiBbCi0g
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lZGdlVHlwZXNBcnJheSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJzdHJpbmdfb3JfbnVtYmVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJub2RlIgotICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICJub2RlcyI6IFtdLAotICAgICAgICAgICAgImVkZ2VzIjpb
XSwKLSAgICAgICAgICAgICJzdHJpbmdzIjogW10sCi0gICAgICAgICAgICBtYXhKU09iamVjdElk
OiB0aGlzLl9ub2Rlcy5sZW5ndGggKiAyICsgMQotICAgICAgICB9OwotCi0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fbm9kZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlz
Ll9ub2Rlc1tpXS5fc2VyaWFsaXplKHJhd1NuYXBzaG90KTsKLQotICAgICAgICByYXdTbmFwc2hv
dC5zdHJpbmdzID0gdGhpcy5fc3RyaW5ncy5zbGljZSgpOwotCi0gICAgICAgIHZhciBtZXRhID0g
cmF3U25hcHNob3Quc25hcHNob3QubWV0YTsKLSAgICAgICAgcmF3U25hcHNob3Quc25hcHNob3Qu
ZWRnZV9jb3VudCA9IHJhd1NuYXBzaG90LmVkZ2VzLmxlbmd0aCAvIG1ldGEuZWRnZV9maWVsZHMu
bGVuZ3RoOwotICAgICAgICByYXdTbmFwc2hvdC5zbmFwc2hvdC5ub2RlX2NvdW50ID0gcmF3U25h
cHNob3Qubm9kZXMubGVuZ3RoIC8gbWV0YS5ub2RlX2ZpZWxkcy5sZW5ndGg7Ci0KLSAgICAgICAg
cmV0dXJuIHJhd1NuYXBzaG90OwotICAgIH0sCi0KLSAgICBfcmVnaXN0ZXJOb2RlOiBmdW5jdGlv
bihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fbm9kZXMucHVzaChub2RlKTsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX25vZGVzLmxlbmd0aCAtIDE7Ci0gICAgfSwKLQotICAgIGxvb2t1cE5vZGVU
eXBlOiBmdW5jdGlvbih0eXBlTmFtZSkKLSAgICB7Ci0gICAgICAgIGlmICh0eXBlTmFtZSA9PT0g
dW5kZWZpbmVkKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBub2RlIHR5cGU6
ICIgKyB0eXBlTmFtZSk7Ci0gICAgICAgIGlmICghdHlwZU5hbWUgaW4gdGhpcy5fbm9kZVR5cGVz
TWFwKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBub2RlIHR5cGUgbmFtZTog
IiArIHR5cGVOYW1lKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVUeXBlc01hcFt0eXBlTmFt
ZV07Ci0gICAgfSwKLQotICAgIGxvb2t1cEVkZ2VUeXBlOiBmdW5jdGlvbih0eXBlTmFtZSkKLSAg
ICB7Ci0gICAgICAgIGlmICghdHlwZU5hbWUgaW4gdGhpcy5fZWRnZVR5cGVzTWFwKQotICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBlZGdlIHR5cGUgbmFtZTogIiArIHR5cGVOYW1l
KTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2VkZ2VUeXBlc01hcFt0eXBlTmFtZV07Ci0gICAgfSwK
LQotICAgIGxvb2t1cE9yQWRkU3RyaW5nOiBmdW5jdGlvbihzdHJpbmcpCi0gICAgewotICAgICAg
ICBpZiAoc3RyaW5nIGluIHRoaXMuX3N0cmluZzJpZCkKLSAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9zdHJpbmcyaWRbc3RyaW5nXTsKLSAgICAgICAgdGhpcy5fc3RyaW5nMmlkW3N0cmluZ10gPSB0
aGlzLl9zdHJpbmdzLmxlbmd0aDsKLSAgICAgICAgdGhpcy5fc3RyaW5ncy5wdXNoKHN0cmluZyk7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9zdHJpbmdzLmxlbmd0aCAtIDE7Ci0gICAgfQotfQotCi1J
bnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdCA9IGZ1bmN0aW9uKGluc3RhbmNlQ291bnQs
IGZpcnN0SWQpCi17Ci0gICAgLy8gTW9ja2luZyByZXN1bHRzIG9mIHJ1bm5pbmcgdGhlIGZvbGxv
d2luZyBjb2RlOgotICAgIC8vIAotICAgIC8vIGZ1bmN0aW9uIEEoKSB7IHRoaXMuYSA9IHRoaXM7
IH0KLSAgICAvLyBmdW5jdGlvbiBCKHgpIHsgdGhpcy5hID0gbmV3IEEoeCk7IH0KLSAgICAvLyBm
b3IgKHZhciBpID0gMDsgaSA8IGluc3RhbmNlQ291bnQ7ICsraSkgbmV3IEIoKTsKLSAgICAvLyAK
LSAgICAvLyBTZXQgQSBhbmQgQiBvYmplY3Qgc2l6ZXMgdG8gcHNldWRvIHJhbmRvbSBudW1iZXJz
LiBJdCBpcyB1c2VkIGluIHNvcnRpbmcgdGVzdHMuCi0KLSAgICB2YXIgc2VlZCA9IDg4MTY2OTsK
LSAgICBmdW5jdGlvbiBwc2V1ZG9SYW5kb20obGltaXQpIHsKLSAgICAgICAgc2VlZCA9ICgoc2Vl
ZCAqIDM1NTEwOSArIDE1Mzc2MykgPj4gMikgJiAweGZmZmY7Ci0gICAgICAgIHJldHVybiBzZWVk
ICUgbGltaXQ7Ci0gICAgfQotCi0gICAgdmFyIGJ1aWxkZXIgPSBuZXcgSW5zcGVjdG9yVGVzdC5I
ZWFwU25hcHNob3RCdWlsZGVyKCk7Ci0gICAgdmFyIHJvb3ROb2RlID0gYnVpbGRlci5yb290Tm9k
ZTsKLQotICAgIHZhciBnY1Jvb3RzTm9kZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCIo
R0Mgcm9vdHMpIik7Ci0gICAgcm9vdE5vZGUubGlua05vZGUoZ2NSb290c05vZGUsIEluc3BlY3Rv
clRlc3QuSGVhcEVkZ2UuVHlwZS5lbGVtZW50KTsKLQotICAgIHZhciB3aW5kb3dOb2RlID0gbmV3
IEluc3BlY3RvclRlc3QuSGVhcE5vZGUoIldpbmRvdyIsIDIwKTsKLSAgICByb290Tm9kZS5saW5r
Tm9kZSh3aW5kb3dOb2RlLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUuc2hvcnRjdXQpOwot
ICAgIGdjUm9vdHNOb2RlLmxpbmtOb2RlKHdpbmRvd05vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVk
Z2UuVHlwZS5lbGVtZW50KTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5zdGFuY2VDb3Vu
dDsgKytpKSB7Ci0gICAgICAgIHZhciBzaXplT2ZCID0gcHNldWRvUmFuZG9tKDIwKSArIDE7Ci0g
ICAgICAgIHZhciBub2RlQiA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCJCIiwgc2l6ZU9m
QiwgdW5kZWZpbmVkLCBmaXJzdElkKyspOwotICAgICAgICB3aW5kb3dOb2RlLmxpbmtOb2RlKG5v
ZGVCLCBJbnNwZWN0b3JUZXN0LkhlYXBFZGdlLlR5cGUuZWxlbWVudCk7Ci0gICAgICAgIHZhciBz
aXplT2ZBID0gcHNldWRvUmFuZG9tKDUwKSArIDE7Ci0gICAgICAgIHZhciBub2RlQSA9IG5ldyBJ
bnNwZWN0b3JUZXN0LkhlYXBOb2RlKCJBIiwgc2l6ZU9mQSwgdW5kZWZpbmVkLCBmaXJzdElkKysp
OwotICAgICAgICBub2RlQi5saW5rTm9kZShub2RlQSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5U
eXBlLnByb3BlcnR5LCAiYSIpOwotICAgICAgICBub2RlQS5saW5rTm9kZShub2RlQSwgSW5zcGVj
dG9yVGVzdC5IZWFwRWRnZS5UeXBlLnByb3BlcnR5LCAiYSIpOwotICAgIH0KLSAgICByZXR1cm4g
YnVpbGRlci5nZW5lcmF0ZVNuYXBzaG90KCk7Ci19Ci0KLUluc3BlY3RvclRlc3QuZXhwYW5kUm93
ID0gZnVuY3Rpb24ocm93LCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFjayA9IEluc3BlY3RvclRl
c3Quc2FmZVdyYXAoY2FsbGJhY2spOwotICAgIGZ1bmN0aW9uIHBvcHVsYXRlQ29tcGxldGUoKQot
ICAgIHsKLSAgICAgICAgcm93LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkhlYXBT
bmFwc2hvdEdyaWROb2RlLkV2ZW50cy5Qb3B1bGF0ZUNvbXBsZXRlLCBwb3B1bGF0ZUNvbXBsZXRl
LCB0aGlzKTsKLSAgICAgICAgZnVuY3Rpb24gY2FsbENhbGxiYWNrKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgY2FsbGJhY2socm93KTsKLSAgICAgICAgfQotICAgICAgICBzZXRUaW1lb3V0KGNh
bGxDYWxsYmFjaywgMCk7Ci0gICAgfQotICAgIHJvdy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RHcmlkTm9kZS5FdmVudHMuUG9wdWxhdGVDb21wbGV0ZSwgcG9wdWxh
dGVDb21wbGV0ZSwgdGhpcyk7Ci0gICAgKGZ1bmN0aW9uIGV4cGFuZCgpCi0gICAgewotICAgICAg
ICBpZiAocm93Lmhhc0NoaWxkcmVuKQotICAgICAgICAgICAgcm93LmV4cGFuZCgpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGV4cGFuZCwgMCk7Ci0gICAgfSkoKTsKLX07
Ci0KLUluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZEdDUm9vdHMgPSBmdW5jdGlvbihjYWxsYmFj
aykKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRSb3coIihHQyByb290cykiLCBj
YWxsYmFjayk7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRXaW5kb3cgPSBmdW5j
dGlvbihjYWxsYmFjaykKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmZpbmRBbmRFeHBhbmRSb3coIldp
bmRvdyIsIGNhbGxiYWNrKTsKLX07Ci0KLUluc3BlY3RvclRlc3QuZmluZEFuZEV4cGFuZFJvdyA9
IGZ1bmN0aW9uKG5hbWUsIGNhbGxiYWNrKQotewotICAgIGNhbGxiYWNrID0gSW5zcGVjdG9yVGVz
dC5zYWZlV3JhcChjYWxsYmFjayk7Ci0gICAgZnVuY3Rpb24gcHJvcGVydHlNYXRjaGVyKGRhdGEp
Ci0gICAgewotICAgICAgICByZXR1cm4gZGF0YS52YWx1ZSA9PT0gbmFtZTsKLSAgICB9Ci0gICAg
dmFyIHJvdyA9IEluc3BlY3RvclRlc3QuZmluZFJvdygib2JqZWN0IiwgcHJvcGVydHlNYXRjaGVy
KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCAhIXJvdywgJyInICsgbmFt
ZSArICciIHJvdycpOwotICAgIEluc3BlY3RvclRlc3QuZXhwYW5kUm93KHJvdywgY2FsbGJhY2sp
OwotfTsKLQotSW5zcGVjdG9yVGVzdC5maW5kQnV0dG9uc05vZGUgPSBmdW5jdGlvbihyb3csIHN0
YXJ0Tm9kZSkKLXsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBub2RlID0gc3Rh
cnROb2RlIHx8IHJvdy5jaGlsZHJlblswXTsgbm9kZTsgbm9kZSA9IG5vZGUudHJhdmVyc2VOZXh0
Tm9kZSh0cnVlLCByb3csIHRydWUpKSB7Ci0gICAgICAgIGlmICghbm9kZS5zZWxlY3RhYmxlICYm
IG5vZGUuc2hvd05leHQpCi0gICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci0gICAgcmV0
dXJuIG51bGw7Ci19OwotCi1JbnNwZWN0b3JUZXN0LmZpbmRSb3cgPSBmdW5jdGlvbihjb2x1bW5J
ZGVudGlmaWVyLCBtYXRjaGVyLCBwYXJlbnQpCi17Ci0gICAgcGFyZW50ID0gcGFyZW50IHx8IHRo
aXMuX2N1cnJlbnRHcmlkKCkucm9vdE5vZGUoKTsKLSAgICBpZiAodHlwZW9mIG1hdGNoZXIgIT09
ICJmdW5jdGlvbiIpIHsKLSAgICAgICAgdmFyIHZhbHVlID0gbWF0Y2hlcjsKLSAgICAgICAgbWF0
Y2hlciA9IGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHggPT09IHZhbHVlOyB9OwotICAgIH0KLSAgICBm
b3IgKHZhciBub2RlID0gcGFyZW50LmNoaWxkcmVuWzBdOyBub2RlOyBub2RlID0gbm9kZS50cmF2
ZXJzZU5leHROb2RlKHRydWUsIHBhcmVudCwgdHJ1ZSkpIHsKLSAgICAgICAgaWYgKG1hdGNoZXIo
bm9kZS5kYXRhW2NvbHVtbklkZW50aWZpZXJdKSkKLSAgICAgICAgICAgIHJldHVybiBub2RlOwot
ICAgIH0KLSAgICByZXR1cm4gbnVsbDsKLX07Ci0KLUluc3BlY3RvclRlc3QuZmluZFJvdzIgPSBm
dW5jdGlvbihtYXRjaGVyLCBwYXJlbnQpCi17Ci0gICAgcGFyZW50ID0gcGFyZW50IHx8IHRoaXMu
X2N1cnJlbnRHcmlkKCkucm9vdE5vZGUoKTsKLSAgICBmb3IgKHZhciBub2RlID0gcGFyZW50LmNo
aWxkcmVuWzBdOyBub2RlOyBub2RlID0gbm9kZS50cmF2ZXJzZU5leHROb2RlKHRydWUsIHBhcmVu
dCwgdHJ1ZSkpIHsKLSAgICAgICAgaWYgKG1hdGNoZXIobm9kZS5kYXRhKSkKLSAgICAgICAgICAg
IHJldHVybiBub2RlOwotICAgIH0KLSAgICByZXR1cm4gbnVsbDsKLX07Ci0KLUluc3BlY3RvclRl
c3Quc3dpdGNoVG9WaWV3ID0gZnVuY3Rpb24odGl0bGUsIGNhbGxiYWNrKQotewotICAgIGNhbGxi
YWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7Ci0gICAgdmFyIHZpZXcgPSBX
ZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLnZpc2libGVWaWV3OwotICAgIHZpZXcuY2hhbmdl
Vmlldyh0aXRsZSwgY2FsbGJhY2spOwotfTsKLQotSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNu
YXBzaG90ID0gZnVuY3Rpb24oZ2VuZXJhdG9yLCBjYWxsYmFjaykKLXsKLSAgICBjYWxsYmFjayA9
IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOwotICAgIHZhciB1aWQgPSBJbnNwZWN0
b3JUZXN0Ll9uZXh0VWlkKys7Ci0gICAgdmFyIHNuYXBzaG90ID0gZ2VuZXJhdG9yKCk7Ci0gICAg
dmFyIHByb2ZpbGVUeXBlID0gV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5nZXRQcm9maWxl
VHlwZShXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKTsKLSAgICB2
YXIgcHJvZmlsZSA9IHByb2ZpbGVUeXBlLmNyZWF0ZVByb2ZpbGUoewotICAgICAgICB0aXRsZTog
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWxEZXNjcmlwdG9yLlVzZXJJbml0aWF0ZWRQcm9maWxl
TmFtZSArICIuIiArIHVpZCwKLSAgICAgICAgdWlkOiB1aWQsCi0gICAgICAgIG1heEpTT2JqZWN0
SWQ6IHNuYXBzaG90Lm1heEpTT2JqZWN0SWQKLSAgICB9KTsKLSAgICBkZWxldGUgc25hcHNob3Qu
bWF4SlNPYmplY3RJZDsKLSAgICBmdW5jdGlvbiBwdXNoR2VuZXJhdGVkU25hcHNob3QodWlkKQot
ICAgIHsKLSAgICAgICAgc25hcHNob3Quc25hcHNob3QudHlwZUlkID0gIkhFQVAiOwotICAgICAg
ICBzbmFwc2hvdC5zbmFwc2hvdC50aXRsZSA9IHByb2ZpbGUudGl0bGU7Ci0gICAgICAgIHNuYXBz
aG90LnNuYXBzaG90LnVpZCA9IHByb2ZpbGUudWlkOwotICAgICAgICBwcm9maWxlVHlwZS5hZGRI
ZWFwU25hcHNob3RDaHVuayh1aWQsIEpTT04uc3RyaW5naWZ5KHNuYXBzaG90KSk7Ci0gICAgICAg
IHByb2ZpbGVUeXBlLmZpbmlzaEhlYXBTbmFwc2hvdCh1aWQpOwotICAgIH0KLSAgICBJbnNwZWN0
b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgcHVz
aEdlbmVyYXRlZFNuYXBzaG90KTsKLSAgICBJbnNwZWN0b3JUZXN0Ll90YWtlQW5kT3BlblNuYXBz
aG90Q2FsbGJhY2sgPSBjYWxsYmFjazsKLSAgICBwcm9maWxlVHlwZS5hZGRQcm9maWxlKHByb2Zp
bGUpOwotICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX3Nob3dQcm9maWxlKHByb2Zp
bGUpOwotfTsKLQotSW5zcGVjdG9yVGVzdC52aWV3Q29sdW1ucyA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICByZXR1cm4gSW5zcGVjdG9yVGVzdC5fY3VycmVudEdyaWQoKS5fY29sdW1uc0FycmF5OwotfTsK
LQotSW5zcGVjdG9yVGVzdC5fY3VycmVudFByb2ZpbGVWaWV3ID0gZnVuY3Rpb24oKQotewotICAg
IHJldHVybiBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLnZpc2libGVWaWV3OwotfTsKLQot
SW5zcGVjdG9yVGVzdC5fY3VycmVudEdyaWQgPSBmdW5jdGlvbigpCi17Ci0gICAgcmV0dXJuIHRo
aXMuX2N1cnJlbnRQcm9maWxlVmlldygpLmRhdGFHcmlkOwotfTsKLQotSW5zcGVjdG9yVGVzdC5f
c25hcHNob3RWaWV3U2hvd24gPSBmdW5jdGlvbigpCi17Ci0gICAgaWYgKEluc3BlY3RvclRlc3Qu
X3Rha2VBbmRPcGVuU25hcHNob3RDYWxsYmFjaykgewotICAgICAgICB2YXIgY2FsbGJhY2sgPSBJ
bnNwZWN0b3JUZXN0Ll90YWtlQW5kT3BlblNuYXBzaG90Q2FsbGJhY2s7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuX3Rha2VBbmRPcGVuU25hcHNob3RDYWxsYmFjayA9IG51bGw7Ci0gICAgICAgIHZh
ciBkYXRhR3JpZCA9IHRoaXMuZGF0YUdyaWQ7Ci0gICAgICAgIGZ1bmN0aW9uIHNvcnRpbmdDb21w
bGV0ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRhdGFHcmlkLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoInNvcnRpbmcgY29tcGxldGUiLCBzb3J0aW5nQ29tcGxldGUsIG51bGwpOwotICAgICAgICAg
ICAgY2FsbGJhY2soKTsKLSAgICAgICAgfQotICAgICAgICBkYXRhR3JpZC5hZGRFdmVudExpc3Rl
bmVyKCJzb3J0aW5nIGNvbXBsZXRlIiwgc29ydGluZ0NvbXBsZXRlLCBudWxsKTsKLSAgICB9Ci19
OwotCi19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViYWY4NTc2YjM3NmQzYjAx
ZmM1YjU0MzRlYmIwNjA4NDBlODU5NTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJoZWFwLXNuYXBzaG90LXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQ
YW5lbCgicHJvZmlsZXMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAg
ICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdE5vZGVTaW1wbGVUZXN0KG5leHQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IEluc3BlY3RvclRlc3QuY3JlYXRlSlNIZWFwU25h
cHNob3RNb2NrT2JqZWN0KCk7Ci0gICAgICAgICAgICB2YXIgbm9kZVJvb3QgPSBzbmFwc2hvdC5j
cmVhdGVOb2RlKHNuYXBzaG90Ll9yb290Tm9kZUluZGV4KTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKCIiLCBub2RlUm9vdC5uYW1lKCksICJyb290IG5hbWUiKTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJoaWRkZW4iLCBub2RlUm9vdC50
eXBlKCksICJyb290IHR5cGUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKDIsIG5vZGVSb290LmVkZ2VzQ291bnQoKSwgInJvb3QgZWRnZXMiKTsKLSAgICAgICAgICAg
IHZhciBub2RlRSA9IHNuYXBzaG90LmNyZWF0ZU5vZGUoMTUpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHMoIkUiLCBub2RlRS5uYW1lKCksICJFIG5hbWUiKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJvYmplY3QiLCBub2RlRS50eXBlKCks
ICJFIHR5cGUiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDAsIG5v
ZGVFLmVkZ2VzQ291bnQoKSwgIkUgZWRnZXMiKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3ROb2RlSXRlcmF0b3JUZXN0KG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IEluc3BlY3RvclRlc3Qu
Y3JlYXRlSlNIZWFwU25hcHNob3RNb2NrT2JqZWN0KCk7Ci0gICAgICAgICAgICB2YXIgbm9kZVJv
b3QgPSBzbmFwc2hvdC5jcmVhdGVOb2RlKHNuYXBzaG90Ll9yb290Tm9kZUluZGV4KTsKLSAgICAg
ICAgICAgIHZhciBpdGVyYXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Tm9kZUl0
ZXJhdG9yKG5vZGVSb290KTsKLSAgICAgICAgICAgIHZhciBuYW1lcyA9IFtdOwotICAgICAgICAg
ICAgZm9yIChpdGVyYXRvci5yZXdpbmQoKTsgaXRlcmF0b3IuaGFzTmV4dCgpOyBpdGVyYXRvci5u
ZXh0KCkpCi0gICAgICAgICAgICAgICAgbmFtZXMucHVzaChpdGVyYXRvci5pdGVtKCkubmFtZSgp
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCIsQSxCLEMsRCxFIiwg
bmFtZXMuam9pbigiLCIpLCAibm9kZSBpdGVyYXRvciIpOwotICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdEVkZ2VTaW1wbGVUZXN0
KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IEluc3BlY3RvclRl
c3QuY3JlYXRlSlNIZWFwU25hcHNob3RNb2NrT2JqZWN0KCk7Ci0gICAgICAgICAgICB2YXIgbm9k
ZVJvb3QgPSBzbmFwc2hvdC5jcmVhdGVOb2RlKHNuYXBzaG90Ll9yb290Tm9kZUluZGV4KTsKLSAg
ICAgICAgICAgIHZhciBlZGdlc1Jvb3QgPSBub2RlUm9vdC5yYXdFZGdlcygpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMobm9kZVJvb3QuZWRnZXNDb3VudCgpICogc25h
cHNob3QuX2VkZ2VGaWVsZHNDb3VudCwgZWRnZXNSb290Lmxlbmd0aCwgInJhd0VkZ2VzIGxlbmd0
aCIpOwotICAgICAgICAgICAgdmFyIGVkZ2UgPSBzbmFwc2hvdC5jcmVhdGVFZGdlKGVkZ2VzUm9v
dCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygic2hvcnRjdXQiLCBl
ZGdlLnR5cGUoKSwgImVkZ2UgdHlwZSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoImEiLCBlZGdlLm5hbWUoKSwgImVkZ2UgbmFtZSIpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIkEiLCBlZGdlLm5vZGUoKS5uYW1lKCksICJlZGdlIG5v
ZGUgbmFtZSIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1
bmN0aW9uIGhlYXBTbmFwc2hvdEVkZ2VJdGVyYXRvclRlc3QobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdmFyIHNuYXBzaG90ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVKU0hlYXBTbmFwc2hv
dE1vY2tPYmplY3QoKTsKLSAgICAgICAgICAgIHZhciBub2RlUm9vdCA9IHNuYXBzaG90LmNyZWF0
ZU5vZGUoc25hcHNob3QuX3Jvb3ROb2RlSW5kZXgpOwotICAgICAgICAgICAgdmFyIG5hbWVzID0g
W107Ci0gICAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBub2RlUm9vdC5lZGdlcygpOwotICAgICAg
ICAgICAgZm9yIChpdGVyYXRvci5yZXdpbmQoKTsgaXRlcmF0b3IuaGFzTmV4dCgpOyBpdGVyYXRv
ci5uZXh0KCkpCi0gICAgICAgICAgICAgICAgbmFtZXMucHVzaChpdGVyYXRvci5pdGVtKCkubmFt
ZSgpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJhLGIiLCBuYW1l
cy5qb2luKCIsIiksICJlZGdlIGl0ZXJhdG9yIik7Ci0gICAgICAgICAgICB2YXIgbm9kZUUgPSBz
bmFwc2hvdC5jcmVhdGVOb2RlKDE1KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKGZhbHNlLCBub2RlRS5lZGdlcygpLmhhc05leHQoKSwgImVtcHR5IGVkZ2UgaXRlcmF0
b3IiKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biBoZWFwU25hcHNob3ROb2RlQW5kRWRnZVRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgdmFyIHNuYXBzaG90TW9jayA9IEluc3BlY3RvclRlc3QuY3JlYXRlSlNIZWFwU25hcHNob3RN
b2NrT2JqZWN0KCk7Ci0gICAgICAgICAgICB2YXIgbm9kZVJvb3QgPSBzbmFwc2hvdE1vY2suY3Jl
YXRlTm9kZShzbmFwc2hvdE1vY2suX3Jvb3ROb2RlSW5kZXgpOwotICAgICAgICAgICAgdmFyIG5h
bWVzID0gW107Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRlcHRoRmlyc3RU
cmF2ZXJzYWwobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYW1lcy5wdXNo
KG5vZGUubmFtZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBlZGdlcyA9IG5vZGUuZWRn
ZXMoKTsgZWRnZXMuaGFzTmV4dCgpOyBlZGdlcy5uZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZXMucHVzaChlZGdlcy5pdGVtKCkubmFtZSgpKTsKLSAgICAgICAgICAgICAgICAgICAg
ZGVwdGhGaXJzdFRyYXZlcnNhbChlZGdlcy5pdGVtKCkubm9kZSgpKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAKLSAgICAgICAgICAgIGRlcHRoRmlyc3RUcmF2
ZXJzYWwobm9kZVJvb3QpOwotICAgICAgICAgICAgdmFyIHJlZmVyZW5jZSA9ICIsYSxBLDEsQixi
YyxDLGNlLEUsYmQsRCxhYyxDLGNlLEUsYixCLGJjLEMsY2UsRSxiZCxEIjsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHJlZmVyZW5jZSwgbmFtZXMuam9pbigiLCIpLCAi
bW9jayB0cmF2ZXJzYWwiKTsKLSAgICAgICAgIAotICAgICAgICAgICAgLy8gTm93IGNoZWNrIGFn
YWluc3QgYSByZWFsIEhlYXBTbmFwc2hvdCBpbnN0YW5jZS4KLSAgICAgICAgICAgIG5hbWVzID0g
W107Ci0gICAgICAgICAgICB2YXIgc25hcHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNu
YXBzaG90KEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAg
ICAgIGRlcHRoRmlyc3RUcmF2ZXJzYWwoc25hcHNob3Qucm9vdE5vZGUoKSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhyZWZlcmVuY2UsIG5hbWVzLmpvaW4oIiwiKSwg
InNuYXBzaG90IHRyYXZlcnNhbCIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAot
Ci0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdFNpbXBsZVRlc3QobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdlYkluc3BlY3Rvci5KU0hlYXBTbmFw
c2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hvdE1vY2soKSk7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyg2LCBzbmFwc2hvdC5ub2RlQ291bnQsICJub2Rl
IGNvdW50Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygyMCwgc25h
cHNob3QudG90YWxTaXplLCAidG90YWwgc2l6ZSIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hvdENvbnRhaW5tZW50RWRnZUlu
ZGV4ZXNUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IG5l
dyBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3QoSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25h
cHNob3RNb2NrKCkpOwotICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHNuYXBzaG90Ll9maXJzdEVk
Z2VJbmRleGVzOwotICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gWzAsIDYsIDEyLCAxOCwgMjEs
IDIxLCAyMV07Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3Rl
ZC5sZW5ndGgsIGFjdHVhbC5sZW5ndGgsICJFZGdlIGluZGV4ZXMgc2l6ZSIpOwotICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZFtpXSwgYWN0dWFsW2ldLCAi
RWRnZSBpbmRleGVzIik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90UG9zdE9yZGVySW5kZXhUZXN0KG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IG5ldyBXZWJJbnNwZWN0b3IuSlNIZWFwU25h
cHNob3QoSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrKCkpOwotICAgICAgICAg
ICAgdmFyIHBvc3RPcmRlckluZGV4Mk5vZGVPcmRpbmFsID0gc25hcHNob3QuX2J1aWxkUG9zdE9y
ZGVySW5kZXgoKS5wb3N0T3JkZXJJbmRleDJOb2RlT3JkaW5hbDsKLSAgICAgICAgICAgIHZhciBl
eHBlY3RlZCA9IFs0LDUsMywyLDEsMF07Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGV4cGVjdGVkLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKGV4cGVjdGVkW2ldLCBwb3N0T3JkZXJJbmRleDJOb2RlT3JkaW5hbFtpXSwgIlBv
c3Qgb3JkZXJlZCBpbmRleGVzIik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90RG9taW5hdG9yc1RyZWVUZXN0KG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hvdCA9IG5ldyBXZWJJbnNwZWN0b3IuSlNI
ZWFwU25hcHNob3QoSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrKCkpOwotICAg
ICAgICAgICAgdmFyIHJlc3VsdCA9IHNuYXBzaG90Ll9idWlsZFBvc3RPcmRlckluZGV4KCk7Ci0g
ICAgICAgICAgICB2YXIgZG9taW5hdG9yc1RyZWUgPSBzbmFwc2hvdC5fYnVpbGREb21pbmF0b3JU
cmVlKHJlc3VsdC5wb3N0T3JkZXJJbmRleDJOb2RlT3JkaW5hbCwgcmVzdWx0Lm5vZGVPcmRpbmFs
MlBvc3RPcmRlckluZGV4KTsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IFswLCAwLCAwLCAw
LCAyLCAzXTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3Ro
OyArK2kpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0
ZWRbaV0sIGRvbWluYXRvcnNUcmVlW2ldLCAiRG9taW5hdG9ycyBUcmVlIik7Ci0gICAgICAgICAg
ICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90UmV0
YWluZWRTaXplVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc25hcHNob3Qg
PSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90KEluc3BlY3RvclRlc3QuY3JlYXRlSGVh
cFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAgICAgIHZhciBhY3R1YWxSZXRhaW5lZFNpemVzID0g
bmV3IEFycmF5KHNuYXBzaG90Lm5vZGVDb3VudCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBub2Rl
T3JkaW5hbCA9IDA7IG5vZGVPcmRpbmFsIDwgc25hcHNob3Qubm9kZUNvdW50OyArK25vZGVPcmRp
bmFsKQotICAgICAgICAgICAgICAgIGFjdHVhbFJldGFpbmVkU2l6ZXNbbm9kZU9yZGluYWxdID0g
c25hcHNob3QuX25vZGVzW25vZGVPcmRpbmFsICogc25hcHNob3QuX25vZGVGaWVsZENvdW50ICsg
c25hcHNob3QuX25vZGVSZXRhaW5lZFNpemVPZmZzZXRdOwotICAgICAgICAgICAgdmFyIGV4cGVj
dGVkUmV0YWluZWRTaXplcyA9IFsyMCwgMiwgOCwgMTAsIDUsIDZdOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRSZXRhaW5lZFNp
emVzKSwgSlNPTi5zdHJpbmdpZnkoYWN0dWFsUmV0YWluZWRTaXplcyksICJSZXRhaW5lZCBzaXpl
cyIpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9u
IGhlYXBTbmFwc2hvdERvbWluYXRlZE5vZGVzVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICB2YXIgc25hcHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90KEluc3Bl
Y3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jaygpKTsKLQotICAgICAgICAgICAgdmFyIGV4
cGVjdGVkRG9taW5hdGVkTm9kZXMgPSBbMjEsIDE0LCA3LCAyOCwgMzVdOwotICAgICAgICAgICAg
dmFyIGFjdHVhbERvbWluYXRlZE5vZGVzID0gc25hcHNob3QuX2RvbWluYXRlZE5vZGVzOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0ZWREb21pbmF0ZWROb2Rl
cy5sZW5ndGgsIGFjdHVhbERvbWluYXRlZE5vZGVzLmxlbmd0aCwgIkRvbWluYXRlZCBOb2RlcyBs
ZW5ndGgiKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWREb21pbmF0
ZWROb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dEVxdWFscyhleHBlY3RlZERvbWluYXRlZE5vZGVzW2ldLCBhY3R1YWxEb21pbmF0ZWROb2Rlc1tp
XSwgIkRvbWluYXRlZCBOb2RlcyIpOwotCi0gICAgICAgICAgICB2YXIgZXhwZWN0ZWREb21pbmF0
ZWROb2RlSW5kZXggPSBbMCwgMywgMywgNCwgNSwgNSwgNV07Ci0gICAgICAgICAgICB2YXIgYWN0
dWFsRG9taW5hdGVkTm9kZUluZGV4ID0gc25hcHNob3QuX2ZpcnN0RG9taW5hdGVkTm9kZUluZGV4
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0ZWREb21pbmF0
ZWROb2RlSW5kZXgubGVuZ3RoLCBhY3R1YWxEb21pbmF0ZWROb2RlSW5kZXgubGVuZ3RoLCAiRG9t
aW5hdGVkIE5vZGVzIEluZGV4IGxlbmd0aCIpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBleHBlY3RlZERvbWluYXRlZE5vZGVJbmRleC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZERvbWluYXRlZE5vZGVJbmRl
eFtpXSwgYWN0dWFsRG9taW5hdGVkTm9kZUluZGV4W2ldLCAiRG9taW5hdGVkIE5vZGVzIEluZGV4
Iik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
aGVhcFNuYXBzaG90UGFnZU93bmVkVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgYnVpbGRlciA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBTbmFwc2hvdEJ1aWxkZXIoKTsKLSAg
ICAgICAgICAgIHZhciByb290Tm9kZSA9IGJ1aWxkZXIucm9vdE5vZGU7Ci0KLSAgICAgICAgICAg
IHZhciBkZWJ1Z2dlck5vZGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5IZWFwTm9kZSgiRGVidWdnZXIi
KTsKLSAgICAgICAgICAgIHJvb3ROb2RlLmxpbmtOb2RlKGRlYnVnZ2VyTm9kZSwgSW5zcGVjdG9y
VGVzdC5IZWFwRWRnZS5UeXBlLmVsZW1lbnQpOwotCi0gICAgICAgICAgICB2YXIgd2luZG93Tm9k
ZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkhlYXBOb2RlKCJXaW5kb3ciKTsKLSAgICAgICAgICAgIHJv
b3ROb2RlLmxpbmtOb2RlKHdpbmRvd05vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5z
aG9ydGN1dCk7Ci0KLSAgICAgICAgICAgIHZhciBwYWdlT3duZWROb2RlID0gbmV3IEluc3BlY3Rv
clRlc3QuSGVhcE5vZGUoIlBhZ2VPd25lZE5vZGUiKTsKLSAgICAgICAgICAgIHdpbmRvd05vZGUu
bGlua05vZGUocGFnZU93bmVkTm9kZSwgSW5zcGVjdG9yVGVzdC5IZWFwRWRnZS5UeXBlLmVsZW1l
bnQpOwotICAgICAgICAgICAgZGVidWdnZXJOb2RlLmxpbmtOb2RlKHBhZ2VPd25lZE5vZGUsIElu
c3BlY3RvclRlc3QuSGVhcEVkZ2UuVHlwZS5wcm9wZXJ0eSwgImRlYnVnZ2VyMnBhZ2VPd25lZE5v
ZGUiKTsKLQotICAgICAgICAgICAgdmFyIGRlYnVnZ2VyT3duZWROb2RlID0gbmV3IEluc3BlY3Rv
clRlc3QuSGVhcE5vZGUoImRlYnVnZ2VyT3duZWROb2RlIik7Ci0gICAgICAgICAgICBkZWJ1Z2dl
ck5vZGUubGlua05vZGUoZGVidWdnZXJPd25lZE5vZGUsIEluc3BlY3RvclRlc3QuSGVhcEVkZ2Uu
VHlwZS5lbGVtZW50KTsKLQotICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdlYkluc3Bl
Y3Rvci5KU0hlYXBTbmFwc2hvdChidWlsZGVyLmdlbmVyYXRlU25hcHNob3QoKSk7Ci0gICAgICAg
ICAgICBzbmFwc2hvdC5fZmxhZ3MgPSBuZXcgQXJyYXkoc25hcHNob3Qubm9kZUNvdW50KTsKLSAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc25hcHNob3Qubm9kZUNvdW50OyArK2kpCi0g
ICAgICAgICAgICAgICAgc25hcHNob3QuX2ZsYWdzW2ldID0gMDsKLSAgICAgICAgICAgIHNuYXBz
aG90Ll9tYXJrUGFnZU93bmVkTm9kZXMoKTsKLQotICAgICAgICAgICAgdmFyIGV4cGVjdGVkRmxh
Z3MgPSBbMCwgMCwgNCwgNCwgMF07Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygKLSAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShleHBlY3RlZEZsYWdzKSwKLSAg
ICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShzbmFwc2hvdC5fZmxhZ3MpLAotICAgICAgICAg
ICAgICAgICJXZSBhcmUgZXhwZWN0aW5nIHRoYXQgb25seSB3aW5kb3codGhpcmQgZWxlbWVudCkg
YW5kIFBhZ2VPd25lZE5vZGUoZm9ydGggZWxlbWVudCkgaGF2ZSBmbGFnID09PSA0LiIpOwotCi0g
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gaGVhcFNu
YXBzaG90UmV0YWluZXJzVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc25h
cHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90KEluc3BlY3RvclRlc3QuY3Jl
YXRlSGVhcFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZFJldGFpbmVy
cyA9IHsKLSAgICAgICAgICAgICAgICAiIjogW10sCi0gICAgICAgICAgICAgICAgIkEiOiBbIiJd
LAotICAgICAgICAgICAgICAgICJCIjogWyIiLCAiQSJdLAotICAgICAgICAgICAgICAgICJDIjog
WyJBIiwgIkIiXSwKLSAgICAgICAgICAgICAgICAiRCI6IFsiQiJdLAotICAgICAgICAgICAgICAg
ICJFIjogWyJDIl19OwotICAgICAgICAgICAgZm9yICh2YXIgbm9kZXMgPSBzbmFwc2hvdC5fYWxs
Tm9kZXMoKTsgbm9kZXMuaGFzTmV4dCgpOyBub2Rlcy5uZXh0KCkpIHsKLSAgICAgICAgICAgICAg
ICB2YXIgbmFtZXMgPSBbXTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciByZXRhaW5lcnMgPSBu
b2Rlcy5pdGVtKCkucmV0YWluZXJzKCk7IHJldGFpbmVycy5oYXNOZXh0KCk7IHJldGFpbmVycy5u
ZXh0KCkpCi0gICAgICAgICAgICAgICAgICAgIG5hbWVzLnB1c2gocmV0YWluZXJzLml0ZW0oKS5u
b2RlKCkubmFtZSgpKTsKLSAgICAgICAgICAgICAgICBuYW1lcy5zb3J0KCk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRSZXRhaW5lcnNbbm9kZXMu
aXRlbSgpLm5hbWUoKV0uam9pbigiLCIpLCBuYW1lcy5qb2luKCIsIiksICJyZXRhaW5lcnMgb2Yg
XCIiICsgbm9kZXMuaXRlbSgpLm5hbWUoKSArICJcIiIpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hv
dEFnZ3JlZ2F0ZXNUZXN0KG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzbmFwc2hv
dCA9IG5ldyBXZWJJbnNwZWN0b3IuSlNIZWFwU25hcHNob3QoSW5zcGVjdG9yVGVzdC5jcmVhdGVI
ZWFwU25hcHNob3RNb2NrKCkpOwotICAgICAgICAgICAgdmFyIGV4cGVjdGVkQWdncmVnYXRlcyA9
IHsKLSAgICAgICAgICAgICAgICAiQSI6IHsgY291bnQ6IDEsIHNlbGY6IDIsIG1heFJldDogMiwg
dHlwZTogIm9iamVjdCIsIG5hbWU6ICJBIiB9LAotICAgICAgICAgICAgICAgICJCIjogeyBjb3Vu
dDogMSwgc2VsZjogMywgbWF4UmV0OiA4LCB0eXBlOiAib2JqZWN0IiwgbmFtZTogIkIiIH0sCi0g
ICAgICAgICAgICAgICAgIkMiOiB7IGNvdW50OiAxLCBzZWxmOiA0LCBtYXhSZXQ6IDEwLCB0eXBl
OiAib2JqZWN0IiwgbmFtZTogIkMiIH0sCi0gICAgICAgICAgICAgICAgIkQiOiB7IGNvdW50OiAx
LCBzZWxmOiA1LCBtYXhSZXQ6IDUsIHR5cGU6ICJvYmplY3QiLCBuYW1lOiAiRCIgfSwKLSAgICAg
ICAgICAgICAgICAiRSI6IHsgY291bnQ6IDEsIHNlbGY6IDYsIG1heFJldDogNiwgdHlwZTogIm9i
amVjdCIsIG5hbWU6ICJFIiB9Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgdmFyIGFnZ3Jl
Z2F0ZXMgPSBzbmFwc2hvdC5hZ2dyZWdhdGVzKGZhbHNlKTsKLSAgICAgICAgICAgIGZvciAodmFy
IG5hbWUgaW4gYWdncmVnYXRlcykgewotICAgICAgICAgICAgICAgIHZhciBhZ2dyZWdhdGUgPSBh
Z2dyZWdhdGVzW25hbWVdOwotICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZEFnZ3JlZ2F0ZSA9
IGV4cGVjdGVkQWdncmVnYXRlc1tuYW1lXTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBwYXJh
bWV0ZXIgaW4gZXhwZWN0ZWRBZ2dyZWdhdGUpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkQWdncmVnYXRlW3BhcmFtZXRlcl0sIGFnZ3JlZ2F0
ZVtwYXJhbWV0ZXJdLCAicGFyYW1ldGVyICIgKyBwYXJhbWV0ZXIgKyAiIG9mIFwiIiArIG5hbWUg
KyAiXCIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciBleHBlY3RlZEluZGV4ZXMg
PSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluZGV4IG9mIGNvcnJlc3BvbmRpbmcg
bm9kZSBpbiB0aGUgcmF3IHNuYXBzaG90OgotICAgICAgICAgICAgICAgIkEiOiBbN10sICAvLyAx
NAotICAgICAgICAgICAgICAgIkIiOiBbMTRdLCAvLyAyNwotICAgICAgICAgICAgICAgIkMiOiBb
MjFdLCAvLyA0MAotICAgICAgICAgICAgICAgIkQiOiBbMjhdLCAvLyA1MAotICAgICAgICAgICAg
ICAgIkUiOiBbMzVdICAvLyA1NwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHZhciBpbmRl
eGVzID0gc25hcHNob3QuYWdncmVnYXRlcyh0cnVlKTsKLSAgICAgICAgICAgIGZvciAodmFyIG5h
bWUgaW4gYWdncmVnYXRlcykgewotICAgICAgICAgICAgICAgIHZhciBhZ2dyZWdhdGUgPSBhZ2dy
ZWdhdGVzW25hbWVdOwotICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZEluZGV4ID0gZXhwZWN0
ZWRJbmRleGVzW25hbWVdOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKGV4cGVjdGVkSW5kZXguam9pbigiLCIpLCBhZ2dyZWdhdGUuaWR4cy5qb2luKCIsIiksICJp
bmRleGVzIG9mIFwiIiArIG5hbWUgKyAiXCIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3RGbGFn
c1Rlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNuYXBzaG90ID0gbmV3IFdl
Ykluc3BlY3Rvci5KU0hlYXBTbmFwc2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dE1vY2tXaXRoRE9NKCkpOwotICAgICAgICAgICAgdmFyIGV4cGVjdGVkQ2FuQmVRdWVyaWVkID0g
ewotICAgICAgICAgICAgICAgICIiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICJBIjogdHJ1ZSwK
LSAgICAgICAgICAgICAgICJCIjogdHJ1ZSwKLSAgICAgICAgICAgICAgICJDIjogdHJ1ZSwKLSAg
ICAgICAgICAgICAgICJEIjogdHJ1ZSwKLSAgICAgICAgICAgICAgICJFIjogZmFsc2UsCi0gICAg
ICAgICAgICAgICAiRiI6IGZhbHNlLAotICAgICAgICAgICAgICAgIkciOiBmYWxzZSwKLSAgICAg
ICAgICAgICAgICJIIjogZmFsc2UsCi0gICAgICAgICAgICAgICAiTSI6IGZhbHNlLAotICAgICAg
ICAgICAgICAgIk4iOiBmYWxzZSwKLSAgICAgICAgICAgICAgICJXaW5kb3ciOiB0cnVlCi0gICAg
ICAgICAgICB9OwotICAgICAgICAgICAgZm9yICh2YXIgbm9kZXMgPSBzbmFwc2hvdC5fYWxsTm9k
ZXMoKTsgbm9kZXMuaGFzTmV4dCgpOyBub2Rlcy5uZXh0KCkpIHsKLSAgICAgICAgICAgICAgICB2
YXIgbm9kZSA9IG5vZGVzLml0ZW0oKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscyhleHBlY3RlZENhbkJlUXVlcmllZFtub2RlLm5hbWUoKV0sIG5vZGUuY2FuQmVR
dWVyaWVkKCksICJjYW5CZVF1ZXJpZWQgb2YgXCIiICsgbm9kZS5uYW1lKCkgKyAiXCIiKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiBoZWFwU25hcHNob3RBcnJheVNsaWNlVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgc25hcHNob3QgPSBuZXcgV2ViSW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90KElu
c3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jaygpKTsKLSAgICAgICAgICAgIHZhciBy
b290ID0gc25hcHNob3Qucm9vdE5vZGUoKTsKLSAgICAgICAgICAgIHZhciByYXdFZGdlcyA9IHJv
b3QucmF3RWRnZXMoKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDYs
IHJhd0VkZ2VzLmxlbmd0aCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyg2LCByYXdFZGdlcy5zbGljZSgwKS5sZW5ndGgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnRFcXVhbHMoMywgcmF3RWRnZXMuc2xpY2UoMykubGVuZ3RoKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDMsIHJhd0VkZ2VzLnNsaWNlKDMsIDYpLmxlbmd0
aCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygzLCByYXdFZGdlcy5z
bGljZSgwLCAzKS5sZW5ndGgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoMCwgcmF3RWRnZXMuc2xpY2UoMywgMykubGVuZ3RoKTsKLSAgICAgICAgICAgIG5leHQoKTsK
LSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiBoZWFwU25hcHNob3ROb2Rlc1Byb3ZpZGVy
VGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc25hcHNob3QgPSBuZXcgV2Vi
SW5zcGVjdG9yLkpTSGVhcFNuYXBzaG90KEluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90
TW9jaygpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZnVuY3Rpb24gbm9kZUZpbHRlcihu
b2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBub2RlLnR5cGUoKSA9
PT0gIm9iamVjdCIgJiYgbm9kZS5uYW1lKCkgIT09ICJCIiAmJiBub2RlLm5hbWUoKSAhPT0gIkQi
OwotICAgICAgICAgICAgfQotICAgICAgICAgCi0gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE5vZGVzUHJvdmlkZXIoc25hcHNob3QsIG5vZGVG
aWx0ZXIpOwotICAgICAgICAgICAgLy8gU29ydCBieSBuYW1lcyBpbiByZXZlcnNlIG9yZGVyLgot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMywgcHJvdmlkZXIubGVuZ3Ro
LCAibm9kZXMgcHJvdmlkZXIgbGVuZ3RoIik7Ci0gICAgICAgICAgICBwcm92aWRlci5zb3J0KFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RGaWx0ZXJlZE9yZGVyZWRJdGVyYXRvci5wcm90b3R5cGUu
Y3JlYXRlQ29tcGFyYXRvcihbIm5hbWUiLCBmYWxzZSwgImlkIiwgZmFsc2VdKSwgMCwgMiwgMyk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygzLCBwcm92aWRlci5sZW5n
dGgsICJub2RlcyBwcm92aWRlciBsZW5ndGgiKTsKLSAgICAgICAgICAgIHZhciBuYW1lcyA9IFtd
OwotICAgICAgICAgICAgZm9yIChwcm92aWRlci5yZXdpbmQoKTsgcHJvdmlkZXIuaGFzTmV4dCgp
OyBwcm92aWRlci5uZXh0KCkpCi0gICAgICAgICAgICAgICAgbmFtZXMucHVzaChwcm92aWRlci5p
dGVtKCkubmFtZSgpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJF
LEMsQSIsIG5hbWVzLmpvaW4oIiwiKSwgIm5vZGVzIHByb3ZpZGVyIG5hbWVzIik7Ci0gICAgICAg
ICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gaGVhcFNuYXBzaG90
RWRnZXNQcm92aWRlclRlc3QobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNuYXBz
aG90ID0gbmV3IFdlYkluc3BlY3Rvci5KU0hlYXBTbmFwc2hvdChJbnNwZWN0b3JUZXN0LmNyZWF0
ZUhlYXBTbmFwc2hvdE1vY2soKSk7Ci0gICAgICAgICAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGVk
Z2VGaWx0ZXIoZWRnZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZWRn
ZS5uYW1lKCkgPT09ICJiIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgIAotICAgICAgICAgICAg
dmFyIHByb3ZpZGVyID0gc25hcHNob3QuY3JlYXRlRWRnZXNQcm92aWRlckZvclRlc3Qoc25hcHNo
b3Qucm9vdE5vZGVJbmRleCwgZWRnZUZpbHRlcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscygxLCBwcm92aWRlci5sZW5ndGgsICJlZGdlcyBwcm92aWRlciBsZW5ndGgi
KTsKLSAgICAgICAgICAgIHByb3ZpZGVyLnNvcnQoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEZp
bHRlcmVkT3JkZXJlZEl0ZXJhdG9yLnByb3RvdHlwZS5jcmVhdGVDb21wYXJhdG9yKFsiIWVkZ2VO
YW1lIiwgZmFsc2UsICJpZCIsIGZhbHNlXSksIDAsIDAsIDEpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgcHJvdmlkZXIubGVuZ3RoLCAiZWRnZXMgcHJvdmlkZXIg
bGVuZ3RoIik7Ci0gICAgICAgICAgICB2YXIgbmFtZXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAo
cHJvdmlkZXIucmV3aW5kKCk7IHByb3ZpZGVyLmhhc05leHQoKTsgcHJvdmlkZXIubmV4dCgpKQot
ICAgICAgICAgICAgICAgIG5hbWVzLnB1c2gocHJvdmlkZXIuaXRlbSgpLm5hbWUoKSk7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiYiIsIG5hbWVzLmpvaW4oIiwiKSwg
ImVkZ2VzIHByb3ZpZGVyIG5hbWVzIik7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0K
LSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPgotVGhpcyB0ZXN0IGNoZWNrcyBIZWFwU25hcHNob3RzIG1vZHVsZS4KLTwvcD4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL3Jlc291cmNlcy9pbWFnZS5qcGVnIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL3Jlc291cmNlcy9pbWFnZS5qcGVnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
OTNmYTgxYjRmMjMzZWI5Y2I1YTg5YTViYmRkYzliYmM0YmZiMmIzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpsaXRlcmFsIDQ3MTAyCnpjbWRxSzNxVFdCK0F3XzFXRzNiVThYKCthWWh6ajxNREJ0
WXRVM3s1MGw3PmRwaW83bUFefmVmWWg4PDBocDMzNQp6ektlb19DXnw7S2ZaQyEkd1hXMnQqcm5L
TjFoa2ZSVTlgRmRTOWk1YlUyREMzJmpmNFI/T3h3Ky1+WmszS01CZDEKemJETUt7PyQweWZAdWtQ
VE5FU0NXYn1HVWNCUyg2Q01lPjRmUz44Tl41KXpPR2liUDApaGF0anxMI1A8YjlDPkhCCnp7eDly
YDFuYGFGZ3xHcnFqeXl1IUAkamVsVEM5SDMyMWRZUGo9cGtld351aTlxM15tcExfWDxqRUFqYjBG
TmoybAp6ZF5LZ3hnNGZAOEVmPjhzPWhacE8tYyU7JEVQTGExWGdpcG0lb3pwXzJAUSkzODViRWNS
djlgekdBdWtZVmhsbikKenJ0MHRLTDZ9VDZQeEl5eSlzdVV9PmBWTHtkQl9vKSRgQmQ/MUN0P1BW
SWdJTEA4P1FYbTYxPkxgIT9kaUhiXzk9CnpqbHxQMlpKUktYS3dwPjwoWjE9MmF7REkxKUFDRTMk
Zng8PFAxTXVBZVZjPyZeUzN0KmNgYFRIa3hpbH1jYEBZMAp6UHgzT3pPUDtwQiQzMi1kemFib2Mo
Z3RTMTUjUjVsTTlCJWgma3cxeE5XYnFaS288OT5kNkM4UU5uYmRwLUdnZyUKej5+OElrIztoZnR3
MUlvbzNWeEkpcE49RHw3NT1GRmB9eTxqem4/IyFtOzkpVyh+dDU+JDNCbGxOWjx2e0FTSTRLCnoh
PX0pJXQhezhKN2xwd21gc3JEUmdoeiZpe25hd1FFaEpjbGAoX3hpQDk4S3slTi1kd3dJYCFMRXE0
YSE9aTU3eQp6Vjs3JDA7M2BTMGl3X0JYUXYyN3gjQmYoMFZ+OWspZWg/WX0hVVgkWnQmVmFYVXB9
fk5lMGR3fUFBZ18wZHAoNSkKeiE1MDgpSlhZfi11QSQpJCRlUm9LMmsyU0hJOHFvUzMrbmthMHNp
PkA7fDlNO2Vgdj9BVlpAVmlfcmRRaGZTO2VOCnpaUD00fnhRQztFQXBmbVJpSGVQZE9ycCooSnQ9
dF88b15CWGhqV0NuTUtKYTZYI2ZZYj09PU9LezVfbHJWT21kVgp6NEI3YnVqVWp0fU9rOz9yZWFX
bERReWlkeG1OLSVqZURiXkdfPHNDamBwMV87JkV3QmU2bmNFUHl9eTBXPE5uWTMKekFPSDZmNDEp
aUFKJTd+OGhGbkNiOUpMOXMzSzE/PztEUjV3cTMyK3A2ajFBQDFSSmdpMFo5cG1oe09ecEctdj89
CnpqUmdYTjZpXmZpK2xiJFNkUEtUVnR8TFJXTE8xPUtBKngwNHUlZUItTTkpdC1hS2IoTHtPdVA7
WEQ+RjFCXzV0JAp6LVU9VUlLZWZMbUpZdmspYXBOUFNxSUZZV2lpd1ImRntHd1ZwT0sjTiVHe2lK
eHlIUXcqTyREcF5jVHpDRUxePjIKelpTbEkyXzJ5MEc2YFF3SVImQX1lPzU/ZT0tKHppUEpiMCtO
PC1ObTQtYW1Uc1JOTHRmZjhHOTNNYHVefWdeUW5GCnpgbUU+NSlpMUFJfEpfJTh7V3REPntpbEkl
Pyo5NFN4QSp5VjBpNzlLKjMqXiEja3lRelQ/OSFBJFJZZj9GITJrMQp6O1Z2WEtHRjBmUSllbzdv
JFcwWWlCJDd8cnhhK19QQCQ7alRaQFh0Tkp9PmNqQV5lS1o5ZSF6IW1IbCVJR3lTKCMKel9IPCFD
dGc4bigzNGojMTJ3YyEpdzheYUloPTJJIXVmfTw1M29INWxGWEpgaUNuKGJWVDMobkQ1MlU8NCly
aCt0CnpwTHUhaj8rITtke0QxVHI3a3xEUVclIVNOPX1USXc4KTshWiUmIUBfQTw2U0xaRE9DKGps
RS1HaGMrTG58RWd5VAp6RD5wOSklOX4pdmFsXnVVR0VoZTdPTDMhVk8wSXskV0lMaFAkPGFLUkUy
QClNeiE7RmpxVFRZaj1WX3QodzRBfGEKemVxI1Bjal53X25zfGBvbHQ1MTheYT9+SFNCTC1edmpw
JkA1P2QpV1QtQFY8TFl7JTdOJU89KmQjajYmMjZ4M2c+CnpVe0stdCVqSzs/KjBjNTV7XnM1TGte
az90emtqSlBhUkFrdUJoUztQY1pZdmB6TTdtNnpPfE5QMj1oJEZJbW4xawp6ZCtrPGpJTFErSiY4
PWB4JWEqY0V0USVRSm42ckc7d1Ujb2VQRmBWfig1WmxwdCQzcmhQTDZLRz4jTm5zMCZ9aj0Kej55
V3pjdn5teF91WldIRkZZRndzJDM1bWFle15LR2R8cVdzaCRMUlcxTkxAZ0VvYipmX3cpNyl0Pn1z
O0V0fHxKCnpMd3xXJlZyRFRyd0EpZz9VKUBpaTNReUxAMishLX1aUikhRVBDSUBuQmVYaVIwPTQ/
OUVvRnt2aSE1VWJRP1N9JQp6cmJrK35ZK3w0QmNQNiR9SWF7YHIlVGRMWiZQXjJ6P3d8SGpWTkBz
VUROb0xvR1hpN1hDbkk2VCR0aE07Y05LMHAKelpucyVvT1diKSRVTGlwbD5lX211SCN5dHZrTkFf
byhfKktebGl7ISFBOWE2aG9IR2cobVdSSz0/fVM8QzE0bX1zCnowJjcqKil6JVd7JkhqMDtLMzFw
bkZ2bjNMNjh9N0JyOT0lITE1QHJvO1Q2cGxGckUoejN7PSlaWj9vRGZgTWl6Kgp6Q0BUfWshSEln
NW8hNW9AYUFqODRKSyV0eTBie2hWISp5YC0pOEx8NnVUeEhie01tbVBsXmp3ZlFUfktWZGghQS0K
elB2P0l+S3JEZEZzQVlVUGFBNj1lanQ/T0VFPGhMd3ozWkghTU4/RV44K1Y7SmY4YUs+XiFWOGJL
eVViUm0la2h0CnpNdEotYU1FX29OX35HWE5LZ28meV9CeXp+VUc8K3shflZePXZsZTllZCRhJFc5
c2dkWnxBOyEjO01DMm1NKlh3LQp6czd5YUFgYm9pSCpQaiZxemtXZ1JuKHA2QSt+MkdHZjMzfnwp
KXIqX05BdTx0Kzgre3V4RjBWNTw4eDF0bm4wRjgKejBCMHJhS1JNXjB1M0V7ZHtASVRJPG9OJUMm
NHxJZGkjUjAkeWtAUHxlfHBne3NoX1U8ZXtoIW5WPylFTHwzMUNgCnpgSks3SEN9TiswJVU9fSMy
Vk1kJWhSRmtiQk1FTyhfP0hzKik3RFJ6IUF9ZVNTRmlwaXQkfGUhcmhpRGh6SGoqUwp6bnxxb1kl
c2ZHc3piTzZSeUVMPGl1Jl9WQnxJO1BeeXlfcDl7OWh2Vnw1eFkkWVhvOTd4RSFUSyNWWV50JUtt
UFAKenBEJnZyKnVVSDNmMkVRQHs5NkFOQks+ISMkXkc1aHxCT25KTUVQJT4yPjB7UnsrZGt0Xkh4
N0FBcWIqYGRvdFYoCno2Wl5DSnxCQ3twYHJrMyFQbXVCNzJGQHpCU1IoI0B4cWdqTDxSKmxhNSls
QlcydElqKXtCSkZ1TWdRaSplbWFaNAp6IWxuN3lLQ1M7KEdkPkJ6R1BeclQ4OEZqcWNYWERebjhE
WS1JdXhTeXw4a2RxKm56fislK0RMU0JmVDgrLVpWJWcKejwzYyshZ0M5UytfKSs8akVULXJ1e1JS
dGdYaz8hSDF3JjE8eFRHc3cpRykjNT1KZG47TmFYJkwjKHl5IU10b0QrCno5cX1IOXxFV1pGWD0k
KSF0MTtySWYrKyskTGViUDstY0M7UUZONiUzWnwoUlAlPlBBMEBgdSRTQiFmUD5wRWlpVAp6RnhP
KmcqWFp9eTl+WGJXciFxPUxlVl9sSy1pNHYpQUZsb19Jb1ojKUp1YlIrVSFOU3dhOX5eS1VIME99
b2YmSysKenQyUUc5IVVMcCNmKyFIMmdXV2d+NkVNYnNHYnxNSHNFIUNWY3chdiZqdUlBLUE0WE01
JXNmPzR5JUhsZnQ1cF5qCnppaz43VDtgcDRJOW14bzJfaGRDYzZHc0FxcnZ9OzdOXm5tS3s/Xngh
ZjdJYVQ5Zl5mYkolVSVscy0yeDR5PnhCeAp6TDtQZjtjd35zMVE2VT82Zng0VTtWdzt1cFEzJnhI
OWk1UiFyJF4pYyNmTUl3Sndkfk9iXit+aHRObmNKQUQzOEMKelMlaHxRO2lLPXxHTzltRypHfkN5
PHpNN3N3TGNfU15hJDJVbG5eRD0mZj1nYSR+SkZGdlVxWjtMJXx2I3NLRTB2CnpFQS0tZ0M5TEwk
aig7dHVfPWBldXR5UkZwYUQxc2FIUTA8Q2NVRyM9NkImTDRpX3FYNV5TSVBJWUR3a3BYP0N9fAp6
NyRjbT1kYioyTk00UkRjbTY5LUViXk1HekAhJHYoJDA8M3QxYTQkPTRfWXZXOWlEKX5BRiN2UD9T
Y2RwQXQkZm8KejtEaVlFTlJEZ29sJGcyXmM3RnJTaXJDQl5IRFc3dFF5NV9AfDlUP3dJMTRrWnt+
XmtwKUhjbD9iU2ZSXlQ7RCYzCnpeTE43MG0jVUA3Y2E3dyYjKmVyWm57WkU1cSVuTVNiQzB2cnR1
ZD5vI0Jvb0QxR1VDUVBzMWY/SF5AOF9Yb01MWQp6amR6dFBXUzFucSklQEdCKWBtV1N2cCNtenMw
UXt4eCl+TkhsS0FxaGxIR1RLUl47VUxAfnshWGNNTnhve1FaUFUKejJJSl4oSz5hOCFXOU53JW1R
elV5JFFlWmQjZlZ9US1aS0N2O0dGb2dCNmgpVURHYnprUGk9NChWZTYqNF50b0J9CnpZcHxUJHdM
KjxQQWRJRCkkUVY+WV5zUyp0QVBxOFZvYV5lQ00wVzYyb0xDT0RMQ3JTbFAocnV8aFlyYUFuXlkh
dQp6biNOSzU+ZmpIa2tzVUh9WFU3YTM2di1XRjg0M3UxM29Wej8qeDthUkZ4NUkqJENJQ2dIMD1A
PFlpMzc/YCtgZCYKej1lY280NntGdj5ocHhfSkpXXnhlYTc2JXFidmlxfTc2d0J2Y0x0SWFJWkck
ZCg+a1FuIUEoZiFIcVlJdDVASm9HCnpOS0dpJUJTXnZxZDlneU1iMERuPEZxQHwtKihNRmsoa19m
c0Q2SzJzaTEqMjtIay1mKHQoWWh6dW4lQmJPREExMQp6NkxaVzA0TFZmcjhaSXUoJHRNREk2cygz
cGxSND1fOFg9eDhoNjl5X1VnMzZSQ21GJE43RXZ5XioxPzBXcHBAKlYKenJZTVYxXjd7SEs/Zno+
SFUkRG9JWS1tPyt1Y0FpSVkxYl5NWXIqZnpabkkpZkgxV21COUFAMVBjQHp3cCo2P1B5CnpROzZO
d04rPnd4OTJUS15CMEZOO1JrNzJ8NUU7QkB4MUdEQkpkJTQ7Kz9vMDV1cn1GK1ErTndZQmt5RFQ4
KzA9bwp6PE4jVmErRmNGe2ktJmlsMG9lcGoyRW90XilzaVptei1nNTdxSismdGg3Mk9oRHBHNEMj
THIkVlFpOUZJIzdRPVkKek47KDt4UWNaM3prKFN4JG5YSVctQjQ7cnQwcGRESjg3UU49MlMlZWx4
ZDsqWUhyUnJ9Nm9PPC00bE9mSyRSKmhkCnpNSmtTYHcxZXBZTnt2Q3JFSlh1dG4zYUkhR1B3KjE3
QTxpdHAkJjQ4IXBQSFR6OytRZyhxeGloOFkzcTsyYGB2Rgp6TFF5dTxOfFkyek1ydT1OYDNaSHpg
dEA+ODtuSG98Zyl2NXE2bUhvakZTWTlHdEJmdzhuRHU/ZmJUeFRhYUYmVWEKelQyVkhLN0U2bkx5
Ui0kVG1lRGhIRWdeYFpMdlJXKkZjPXxFNTtYI3FeNHh1YktUMWwrQkZzYFRoYmBFUUlPR2R+CnpD
aS1NazVifDVvcFAkSEBIdil0YSRmeG5pUXIwNG1yM21IVWN5QEpFKmdHY0hRTXk/eykxKyU+bD9L
fWFMfGhkfAp6V1YyPUAtbl5MSWNSa0VoWjBMfTkkOCpBekdEJUpWMl5pfWNqZyExKjxLLW9YWTd4
KVIyTlR4MSRYUTgrWXpFaWYKejt3YUl9JHIpQG90OF5BVEE0Xyt3aXRnN3NgJWUoOG5yYW1SdjJ8
OWQpdlNpNVQhVkBfaykpSkVBYE1aKjMwV2EpCnpSM0liRDB+KG1jZyQyP3VrYEI7S2olY2k+OVVf
OWBCZkotREZAcHIhPXc4ZyY4RHQmMjxxdEIwM25LQE44bDBKSAp6QlFyN2hyOUdAQ2NZQiFTRT9W
XnZQKF89fVN+Knt9c0J9NS1vdHZqP1A/ZCVsdzdWMFFkZ1JYe2FsZTVwc21HcGYKekwkd1MmO3xU
NCM3VkVSS0J4V00+IVVSK3RLdzcjMVg7I3NNdzR5XjRHPCRjalVIU2dYdz5pXzUzZTx0SnhKcnY+
CnpaRHJafmAoYzd0KDNyUWAmVnlDWHlUPUokYzdCXn16VSs0STJzeGBIWXEmRWpKVm0+YElTYVhL
aC0jRSlDSG1vZwp6MWVpeFlDc34kez5kfSY7Q0MrYmBZaj9AOV5Lc2dgO0N8QVgwaTN2O1BGfUIt
cGFhUWpAcXJjZDk7MThHMTJnZ3EKekNHKndAb0VWVDAtSkNMYXNlT1RxIVB+UGdQSzNsQSslcWgw
JElhSyF3UUphYy11JGklT15tVmxQMTteREZqUishCno4aWNRdkdLaXYoNHF5dn13MFZ9WlpEOXwk
VFNiZEU4MndiLUd1dDw2JEF1eVlhYWFhNDN3ZTxKY3U2LS1OTVBjdQp6QUsoWFpNPUx6PEUkajwt
LURsO0Y8e1FOdzljRD5CYHFsbGgxSiZSKTdpNWVxPE80XkxPdkg7VXBuai1LOFVSdT0Kem9WM08k
QHdGb01zSU9hLXA0Sjlqdm9TU2xyQnhhITslbjxvPnc2YGBYKmVwPEtxVnk3XlFUVFAzLTcjUDRC
RH1hCnpZZHEmYCs4ZyRjJXtlJG12aFFwVUtSaERNQkF7anJScy10NzRHMDR4TC18WFQ0IUxrcEdJ
VVIkTVp0I01KaTNGZQp6VmIjUyVITEtCdWNxWTk0RX1mI01FOXx6M3Z1TXYwK0Y1fTcqQWokezxe
dVh0NS03ST5xVVYkTV9GcGVjfE5QfU0KemxhIUg4PXVAdzBod0VkVTRJZzthZT1STHV7NDJMTj9L
OSZ1VTRLSikxR29YOD5kY2pfTEhDZllZLSEkWjNiPWAqCnopZV5ISFAmdEFFJSF5fFomS2hwPks/
RzkhREskYShBIyM0Vz9LP0V+dHtKR0FYV2NZPW5BWmBoeVVMV2c+RihqJAp6UiNSZDNwQzg3NHA3
TCVWVnVtdSp3ZD1fOWZzWDchMFV9KUkkfDRhQHI2M1dVMV9UP0wwcklZK29scHBOMEBtcS0Kel51
VmtyblM7K3AxRnRQO0JVNEVHT3QlQ29nd2d8I2J0KyFEUmB+a0JEXnBGYEdkZ0Y4dUxreWBUN1Q0
OVJ0dCNzCnooY1I0fTkjeSFWJFZaJldOO0JBaDAkfWIxNlV7S0xqWXRWKGsmcjFoOHZmcEQ1JHR3
d2lCZmEqOFBpRCkxUWB+Zwp6Jlg/RCVXdmxhd2lIPn1vS3BVYmMwKio8eURtNX0zdVR+KG40fFRO
SWkpZ1EhSGRsQnM+Sj5TNHhGMj1+Qi1WfUUKemwlYUhKaWh0IXpkSG0/UnhQSWx3VHdaO09Te0Ft
SS1jXml5PVR2eWdJdT11WD4tXmg7SWlqIWAhSlM0ezJqUGtjCnp4KmI/dXR7dW4qUCh1TVBsS15+
Jip5NDZJSXFBQm8kMCFjMGMjbCFCZyo5Xn5tVmQzZzEzWXI+ezVmMl4tS2pLUAp6WHNLb05waWct
cFAqXzNoRSl7cCFjLWd+WEsqO3FzbGNMI30ke1ZaRjkhOEI1WDRMb3dedHNEUF4lbTJPTHBOP3gK
ejVvN1lNUS17fENLU25JXllQZFhzO2ZXNTwlYihDNDA3P1U7cWdBWld2XlZvWSNCWmpiWFRfO0p0
QU9LfHh7cE15CnpBY2czKVdrXm5YSFkzSSppQUU0eGZNKFRtcyN7fD9YPiZKVFN+NGl2MUhGVlV1
cyhATUVyTS1WQEdCKSlzVXFmTwp6bzZvVSNQakM1M0NoYnl1K0hxKCtfdng9Szd2QFVMU3ReI2w1
NlZKVDNeYHRnSUxaZFU0TG0+JWYrQD9ISURuYyQKeiFlVC1+R3BwaFZtUmtsdnJEbDxXbzNnZiM7
SDBxcEdfQlJ8Rz53TE5YV0JoOUl2aE5JLShfdEEmQzZpTz19WCR6CnpsV1A/eTM2OGo3QnU+dUBH
UyQ+SjNhZTRXMG1oakhGcUJiS2tWUT9YYVJWPyNWRzU0RSMjMH4zR2R1MCMtO1MqQwp6c05kSiFB
JC1Aa25Dazc/TEBPNypzMHtiNTdXYlF0cyVgaGpRJkh0KkR2ckUpP0RwY3RMYSQ/TilrQDdhYGpx
bj8KejwoemZDY0taNCV3c2hVKHNySGFsbzNGViEmMSQqe15lKUJkSFJxI3R1VTVFO3ojVG5VbTN3
dlpWaTV7M2xwZzBtCnpVTEdAaWxGaXlPaio1R0E+O09eIWolal88WExyJTdXNipHQ0RyIX0xdnF4
UEpydlBIaE4kVntwQlBkN18tPiUkPAp6UnxUSXhzem01bEN4TVFza1VjKkdUTGxAPHIqSndZY3FO
fWBQKng3ZThOWlM2SCk2Kyo5azkoeyZ7Vk5OTmlvUFUKejR2YFF8Rz8/TF9LcntCPiV0JlJpMGRi
OCtscjApJFBEaGUjZlNBflJrb2ZDQilZWntBaT0yczV1R1ExSVV3KXB+Cno3VmRyUTtzPkw8K21H
RiZhJWhDKUV+OD8jTTN1Q2kzblF1VVI7NDx6KUpfRVNrcnhLREZna0BAOHJ2bUVPZ3F6Wgp6Qn1r
MTgoMkxIUzc9aVR3bjRXRWNBa053ZVA1IyNzMi0qeVkycDRXYHR1X1lTTzBRYHFtVWtSbEY1SlhQ
Sj0xYWkKekdwclpxZ0A4TnpfbGdTPnpuZHg0d0duMzhoMVB7b0VFd3BgMWR2bmdqPGFmcHBGPHA1
WEpLWWs5eSpFWlRXc1JgCnpjWkd6Sl5RfGA2WFghU1UlYGJTK1BAT2dXKSVja3FQVUF5RTxnTjh5
eFpgP1FRRG8hUmMmPWYyU1VxdCUqSGYqbwp6JUF3cisrME19dzluUnUqJC1hOFZtfEx6Nj1QI1lF
aHBtbnBLT0hWUTdDUmYoUzZveDFqVU8tRXs5bFJNMU1ydVcKenZpWHwpKG03dlg3OCo0bG48QGpq
JXBlZExXWE5lR2phOyhXQmQ/QHpVTTl7WmhEUjA/czdBYUMmUChsTldyTDcmCnptPnNhem1QRXkm
Pkwkd2R3cSpUWXF7cT0rR3tPNHI8MjBVfUE7SChxXmRaQXpNQzs7bEtJfFF3KnxISVl0e1glIQp6
N3I9MGtze3FrT0dEI3NyMUo9VlM2SXtTZWNORCNnX0U1MTUmLUF7aiZzfjYhLSR4I0kqQGpmTCUy
dTtfZFZMel8KelRgQ2k8IU9KcWU+NGpecnUpfjkwS0dEKmtlQj1mRCQ2ZzlZS0dWOFcjITwrLWI/
MW5TY2d2Z2R3cnIocDB7Y35+CnpNQDh6YGVhLUN3MkQ4Jlg5YX4+UVhvd1BDX3lWSH5VSUpfI1JG
aU15bEcwK0RZUl4pPj8qI0phakxjMDRXU3JBVQp6K0dYU1g4dCZabVQ8IUwjbm1weFJMIUN9d1Q8
PG4kSiM3Ul9YY3pfPGhxbDF4e1leZlRTeChFX1N1Yz80SlhFJDIKejtHb1d+Y1pKbiMoQjRzOyly
ZzBRcT1pIShmbDtZQm87fXhfczwmYFJweEBTV2szQ2N1IUArYGAyQU1HK0p6VCkkCnplVTh0dHs3
MUU5Xm9fR3hUSHU2dSsxfk08U0N4dnhHX3o1PVRqemk8c1VgTGNDVDNCOHIyM2grX0pXbVhuel9Q
aAp6WE1UQUwqfUE+M2E1bWJzdFJiP2xaPmFtJEZOYGh8NEZpZlYwJUBSeTlBYmVQaUlDRE4rMUhI
Rlc7d0EkRSRaWSsKenRrXigpR3s2ejVhWUxTcTdEPE0lK3V3M35RQ0NBKT5pWFAlUy0xNlNjSkdp
bWxacUJrOEYmXnxGR2JJPTNUNG08CnpJZiEhenQ/ZzRRKFVCd1Zwa3RhJEsrRU1rPHJSVCtQd0JL
ayt1QFcpeTJITTZBXkB0PmJITz9wb1coTzktcHIhTgp6NSpHRWpxPkstZCRIIzsxKHhvOX4lKTN7
ZSZMOThxSWhNRz5uJjVxUDYoQiRUQVJmV2lAKEJtJFMyaDgyTH52dDEKemZ1YyZ8eGxAM0xAb1Yk
cEdGVDlvNHNHeTNaNEchfCs4ZG5MZi0qJThoc2NKI2pLPm5OMHBUbF53PDI8YFFCaEBpCno8YTxU
UV5ySXJjYlI4TnlhOCY0dCNHWDU/PWFoa3VsPSM4cUI1c3ZyIUZjM0VyVTBYSkUjbzJ6YiQxe0wr
YTJqewp6bFFWVChnJk87NSohT059KDFDUWtzfm1MeWRiPT88TDBHJjV6VmJOeCopQT5VX307dnRB
M1lBSXRZLUQmOSZUVEcKekI2YTdacSh8RTUkTEpjQnd6T0taNH56dmQrWStlTEtrckVnRjlAQFg0
UiR9blpNJG90cEAmRTs2P2dXJVArNkVfCnpCeGNteFZ9bHgrJD0xcX5jTXFCcGU8PiVUWFZHcEts
QylZYWFOcytEOTF9c1RCajdCNkR9aldFczVBcX1GU0ktIQp6TX5BcXB2JURIdUhUJXE0NXxIMlZ4
X2tJTCtTd2c1IUwmeTBHbGtSQ2YoY043TE4jcHJyKCV8Y0dyUGlDYEpEI0kKell4R19JeWRQfWAw
QENGNGtvRXA8RzZ4a3loUVA8RnEmQF50MFNZKlJIamh+Mz45VlJtc21Ydm0oKCs5dT80RyZUCnoz
KDNCOV5YJm4+SF9kX3g4UGhJM19wRCg5cEB5RDdpeEFyWStWXkhVX2c7OWA9K19rUTwqIXV3NyZz
KT49Uj5fQwp6c20lb1BLWiExR15UenVsJGBtY1k/T1R2RHFJN35oMytCLUFQM1UtSy0pfXE3KGVE
MUB1VnxrbTRQVz1VQ0Q1TW4KelFgdThXOUBMMGJJXjtCbGNXNDIyeUk1YD83VzxvdGczaWgjajMj
ci16JXVjVEhzSH5hZH5SeHRAP3JSMG1sWlR6Cnp5JEkzQWIxN09lYW1yRkB2Mk5hN3ExT2dGZXI2
aDh3OChGUFV8ZT4kZkxQS2IzKGdBU2IlITEwTyoyRTIyWlVaewp6WDNPfEhveDBXQFFTNFIrI0FC
em5welJ3akp+VW42XnJSYkFeTWIlaEVldWpTVGA4SSVhN3JFITduMUB8ejV0ZTgKencwPzJyOTAq
MlcpP3QjT3kwcE9pTldWRmxDSnBIUlY+SW5JZShTaXklQGQoOGooY0hIWGJPJiVjR35wdlZYMSFr
CnokaygqS2cobUkjRiVNRGdGOyE3VkhwbE5VNTxsWGpEM3E5e1h4Q0NFKmBHSHFCamhHMFBzeFJe
UFRpfSM9JXd9QAp6e1c4ZFJQUXJydU5+YUNwYylRe2gtcEZ8P0I4OVgodzR0LSlMdWJfOUJZMig7
MzsrSU9ebEhiJlI4VXBmKWliaWYKekI4bW1pUFpqdTk1S0NMVCF4ZzhCbSRJR25IcUQ9ZiYtWnw9
VEprPlFRRT5GITMmUEVFPytxJUBsLVZhdlZpaWx8Cno5cH1SUXR7IXslJTwzX1FoMj4/aHJ5Wjlj
ZTlNRmdQeXwkKklgYlV6QERncUN5RGlJTHJPUG59MDAmVGZBfS0+Rgp6dUR9KEEpVT9qSjg+Pn1u
PVZmUDdJSXg9MnotPDhaRnw2PUhRdWV4KjtROVR6JUQzYzw0I2dxSWMyc0RIYCN5Z2QKelZMSDJ9
aX15JWlkNk5yQnBtMXZHdDw5Z1hufiQ2Zzdlc2NBWitDbGRZeCRPPDtNbDkodylGRU5kZktJQ1VA
YCtjCnp6d18/K3NOS0klWTlEPWxfQWdeZz9ALTk/K1BNdVklNWlSN0JKMkg0e2oxbDhXI289RzNT
V3U7aCtVQnAhKV5COQp6MHtZaFVrKiZwRSZkOH59c2IrTy1wYG4kSyV8T2FnOFo0MiEpRWgqbFh6
RTZxekQ/PUtaIz9heSZCO1pJY31xRTIKempJKXdvP08rbXRyb2lVe1pZOFZUdz5ecWpmNnFRfD1L
aHRqeCE+Uy07JmIxclR6UF9+OTQjOWo2fTRNPWhabilZCnpIM2Qya1NrWCt0WSFUcXBud3UwRFFO
Qi1QQld2bTxOK2YxdlZwUyRKTk19fHNWcmlhS1NPM1p6YjlmX3ozJj4yRgp6WlR7Q2dybVhuRFpr
d05kcGZwXk9AYj1lUFY7bENkcEkpbmViKTR7NmJjS0NaTDxCekdGfF9kRD5mQmZKYF5KUlUKenVQ
KXI/e2FeIWt2SElOZ3E+an1ZaV9jdzg7TGdBTyRENl88VzVOV3BIPzUyPENUPUIhWUYoUmMhNHxa
fk81OV9tCnpHLWRBUzB9XlgoITMqY215OEJWPlhjPDJsRTJyV2RsbHRgNl4lP2k+T0VRN3MzaXJn
Zkx7aFl0MFlmSnYqTW1DJgp6VktybHJFfjB+OVYjT1c9Sml9QUlERSlCUnRifXAoY28qeG4wckJ6
LUJIbiZ5YnhifW1EMEVjbTRCfjZgUTY2YTsKemsqYGY4bGFGO35mJGpiWkQoJiFtMkBSczRKXzY3
UXRSYDhhMjI5JT5fN049fFo5cWo/cCF4JW9vSSFCNzdkNUMlCnolVlc+P3ZwJFRnOGZ7R0dfbkpA
R1NSbl4tMH5qS3Q4SGNaS1Q7bFl3Rl59NmtkPlk8KWQqJiY7YEx+QkFtM35LRQp6bjc4V29GezhU
cFFQQ1U3VTB7UUBqKmxsX1B4MShpUmBCQjBFSUU4WE1GRD4zcndJXiZMPDsxeCRSUkcydlFSOyYK
eiNmMV9raVh1PGpGcCVea3l0QlM5QzxeZnchd19fdVhBMGQmNShoJCFqRzszYE5EVSRvRlVkWH5R
ekMrRiZXemxmCnpHTmdGPi1Dc0FRWXtvMl8wYnF8Mmk/eV44NmRLU0dNR1FBdmRWV1E0Kz12bXJg
fSRscEcoaWZ0JmNZIUVnaT5mJgp6UkglWmNMZmxxT2VQcGZ6cGA5T0dffVJBX1g2bXQ9Y1I+VDZu
NzE+N1l6X05PS2IhOXxYJXphX1B4fCVUO1djRVIKekYhc2ArcnNNKENAaiQ7KSRxXzVJZSVQMjxs
cDl4R2hrPmY1PyEwZGwmZHVCVSQ5cSF1TmdEQ2pJcSNNJHlCJnpPCnpfVTM+QmRDdz9zVkgqayEt
ITJneUBTNnJWRzI4QHA3XzJQPmp0Si1MRV9iYD4kM2FmKT9ubEc3VW5Bc15pYlk3Tgp6TDI2JFV1
aTFQc3EocXQ9ZCpkRzdYKmhGdCR4LW9SdzVnRnVlcEYkYmBAMDRYSTMySUtnQTlaNjBnTUxVM247
Z3wKeldfZTx3SG82MDNea0hyQ2MjdiR1T25iLTJiQyNTaTZFQmQxJkx2TiU9U2xTTmB4Tlg1TlFF
fjJuQm19MDtEfWMjCnp3PmVHbmd5SlUhYTAldj1HKTluWSpHR1U/VlpqJl5peipZZiQkTllta0xY
aV9CTENZOUNUcERFZXE/eDF2fTxRTwp6ZGB3b2FXYUxSNXtEODBHM0EwTDI1UnFTMUM1Z3VNdWcq
OW9jenk8M21DYklYb3heRnBUb1JZTGlIRnQ5bDRQX3cKejhIYE45QzIqU2UlNURTTXhMdzF6V1RT
dlM4e08oeUJgQ2dAZ0FqUCR4PVEhaWZLdz8kLU1kPmwwZ1I2ZWpmYjFACnolODhiPEN1KHs1OWJs
YkM2aXNIWm5ZIytwP1VwSTlPPT5oWkRSbS1zM09SK0t3JHRibzhyRWs5QWFvRG1gU0lYOAp6UjU1
UkxZI1FSdHM5b0FubyM0WW9vR1RELXk2SDVrTEU+VUhycmtpZ0JRb1ByeCpkKCktYzAwMWFANCM2
eUk3N2oKekQrQUZFbXQ+KzQkWWJiKXtIMl9Aa255ZXdLd3hZIXZqO1M3b1VXQ2thX1d0NEVsRm45
JXVkfkVDY3A3MFdEZistCnprRFBZTjEjRShtJHhIWiZtc2RZUVRPYyg9LUElT2k3SEVMIT1qVEsr
TmQkMXdVbHFnU0E/OXI+Rk44U3oqb3AzKgp6WDBtNiZja3wyM2xLTE1xWmoqRHJwJVcqYW8lRT5f
YFFePWFGeEk8YHtQbkVAXjJAc2c/fCZDQl9+cV9aKHs+KVQKekJ8SHB6d0RsNER0Tlk9blAqOzQy
Yk56MlM9ZGl6OF5eIWp1SmI3TjE+S2ZUb3thekZ2diZ+PXx2O0FSSiktdztjCnpLZVQqPXpQa0M8
dHBaem97cF4tZ0lQQnJwbF49JlYpcTc9bVduWTFGPj1vWkRVclVGYUN+JihJM1Q7OVEkV3hqdAp6
P0FHfGIjWTlmbko3e1pTZTh8d21DQD4/T0xmNVZyKmI9OTJnIzJtSmt4IWlOIyNka3hZKiN2NyRp
LVI7JT04fVEKek9jRHY0T0Y4cXxNYCFXPWdjNzI5VGNVUEpIIyRGWXpGbyZze2k8M0RIY1FGRjMl
X2ZTcSpwJiRidzZoQWNTUEtWCnpNUihmKzJMNXpePDIjZDFZYGIqMGQ5WiUpNlh6Tn5TV09HWUhx
V2ohNUAqbG5XXnFjfk4ybj1SdDNARkpiQWwxSAp6diRKYiUqUWlQSyZCV1BePVk9RjVPLVRjMUo+
ck5NKzBqQHkjS1E5VDI5dkFtXll0REBkeUkhVHd+SmNgb0h2QVYKekFOWENEYmBvZHkpWlFITVRy
fGNWYjJYP3NLaHRLRStJe3lPP1hXU1pxM0smPyMzZGpjVkA4Y19ucUB3PkE4cXAoCnpYYik7az5+
e1NFK1NrXiYpditjPTJpM3R0Ty14ZG1MUz1LSXFmPGI4Vkt7S1hzbWljQkdOVDxOc0Ric00tUzlk
Qwp6XjI/aSQ/IU5fU0VaU3FhYjYzT0BPMGNBWU1kWW1jUCVYRHFIYkNafl5UK19ZOWQrfXYxcDZD
X3dxfjUyZmV6SlAKemheRz19IVhKdGx2ITktbzA2WFJKSUB1X1NZZiVRPkYyOD00cD8xQ3lxVWhj
ayM4M0B0cU1pK15YVVN0YDMwUkIxCnpVQ0JDIStubUYzTzA9KiUrTHJSQj5yIVhtJkE5ZUZQTExA
UVBUKis7Ym1vfT9JKD1GKzYpNXhZRDNKemo+MUJfOwp6WSRERm8pelkmZiZAMzVzVU0+cDwtbFBx
O1c0I3M7OFhaWE1MYUBScElkSmZ+Jn5hQUw7cFU4fFZKSG1PNG0hSjwKelFQSyM9IXVNJD1tXmYm
LTBIQ29WYlAxak5OYiY4bWNJZ0NxSUVnMTNranhxQzQwc252ZEw/ZF9CfnpBZ0x4Nio4Cno5MEg3
MjdTI1FhaCQjYkhTYSpNRCl+Sz1YWkVhO2N2clU7PkhgRWc9cmd1aSFIRyMjJVNyaHU/PH5JZWw8
Tj4qTgp6c2hlRG1rflU9Py15MlVYc1lVYmRmey0/JXhyKW9JZFRybj1AbkVeWkVTXiN8cT9EezdH
RWRuUks8YjVRT0d8TmIKekJjbShmUko8eGYwWFZeWUEjSUVXNHYpa2ojVVp0ZDRlRVpjMVRKfTIy
NDVnYURBbE1sSElBSCErOz42ezI3TDxZCnpZQG5PVjFXLXdWQmtSa1h6MngyI0hmNGlOXzNuYDh2
ZGplcVZxSV5xaT13d3ptTUoze2F4VypWdU8+YTdkQ01nSQp6Xj1DSGF2MWdRfko5aTUjUXN7RSp0
P2ZgY20/NU0ja3Z8bEheYVphSHJLTG0tOHV8fmZBZCZLakstczhsMDJSKC0KemdoPjwzTE5FZlNR
SHpZa3VIX1VCPmBkLUBjWXspT3VRWlk+Zn5pNHJ7ZWxYUDR5TX15TF49TENAZj9rYXo3SV54Cnpw
MzU0c3FvUzJQbjIjPXducVpLKyQtJTVKKjlabiR1aVRyaXlKeT9ve0xQdSNUeH0ldy1eYykrTWx1
PVM5aE4obAp6USZrYSNCaU87UFBHSSNXbUw+UkRnZWhwdCpZSVZoaTd6REx6MUFpVyRebDM4NWpr
S294VCl+JkZeMm9DWiZvRDUKekUqWCRkSkducTtUN3JDeilnRF8tcXRTYlZPZX03QSYzQ21IO2Nh
Z1UqRjJ+fE4kdjkzSCl6KXtDTXlsNFM3fTNfCno0K1UxR088LTduOCFNJDlzQ0xxTnlaZmw9XzFi
dDVyRTVpQWcmej14ajIrbHJJYmBxcDh6eX18IUVuSDYqdW5Efgp6b0g/KWRJamgpYFBWRDtiYE13
YmZyQ1JMXkk3PVYlY0kjQEl4bFgoWGF4KDMqZGJjYCMkV0BKRD11byVCaWNCUikKektLYGNAYUde
XnNFZz4+cVVWbFQ3K2ByRW5jeDFrWUklKn5zXlJeTiVqZEdqRXdZbUMraitZMTZYU08jSUghalBs
Cno/ZSp0c0Aha3tUYX5pLW89bDdDJElpM2R8O1pNRUYpJWV4WTU1dEglaThBNGwqb3FsS0ZOP1Rz
K19hd2ooaTNnOAp6Oz50TGckQ1o7eWp8eHdMZDIzdzQzfjRiejZkYk14QUV9fEg1Z2chMV5afnla
JHVjNmxaNykqcTFTMzR7RnM4WD0KeihhWnB0eWpEKzF0WiolPj9RYGVOQkkpKS1jQ0hpTzBTP2VG
N2JNZHhYPn1GeFMmdnMlUCtsJG96SD5DSUVeJjVaCno/ZHtJdTdRQWI3NHxObHpjaD5nUHk0S08w
V2tFUUktdSR0SHNnbE1HPXxLTGtCUnlqNTJ3bGtHXmJuPjZ5cSZQegp6JjNZanYjMiMwZU1IKDJY
SnlXfldXOWJ9UjMkJUttYndxYFd3Wm9QTStXcXRLJXxjNXp3WFN2fFZkKW1gblc3X0cKekV0ZGYm
WTJGbWE1ciF8dmRKSSYpK1pUPyskTSVrR250bEl0KHRYQT9eUFp1R1FQbmJXWjtxUTNUZ1owbVZ1
bXl2Cnp8OGBGUVY+SGB0WV5DfktXaV8qSipBUjZfOHRCYDgzOzxnZzh7Qnp6RUF3KCExUzI7c21L
TUBmJkFWQEpUTTE0Vwp6SCVsVHRFTEVteDw9e1hlTWcqS0xrZSo3bDY0aCREIVd8N3VJeWVJTmp4
WWd2c0tYLUc1YD9fNjJ6NFZAOyokcGEKeiRtKjVGVylyTzFZRyp9WllAQCVicjBQaUp3VXF7XiY+
WHorUmMpJCU3aW5sIXdvNUVtMjVXWWZNWFdFP3RYNXhtCnorWj11ZD8yfTR+bCZ7I2J2bjxHMCFM
PnRpTH1aUnRWcGZlX3U0fWJlcEtWZERGQWhCRGNUTVAoenh3JFo/TlMlMwp6bmkhZCRlLUk4ezE/
WXdsRk9WZEhnXm5hRmQpUFdlaGVNPThSVypkMXAhcnwjakl8MTRteWFBb1M/UEo0ZTZLOzkKejMp
Pjg8MWNpayoqZVJWMkpSPnJ5RDt0KjBMOHVFVkttfSRIIz58QVhRaShxT2J6UmFnOD4jKitUZTE1
QDNTQDBrCnpwYXg0JVE4RHQkQXdCdEVHSmVBbHVGdFNoO0xmNzNxPTgtK1MjOHVQbVYhY0ElcE8l
O0V8VEZsNzt5ZFR3Vl5jRwp6U2pvKjQoQDQ8T3o0PE00Zjx9RGs5Uy00UD00cnhXZktSeGQlcCNM
JTYralokQXsjZFg9b3JBMzxifll2d0RTXkYKellfaTxqTW5mTnBVJl88OEQrVzl5QzVNe3dHPjVk
SFRjQztsSHdleWhEMS1LazlZMCVhZjdiOCV2YF5eQ24obXxSCnomTkRXUVVNXihtZENpflBueFo9
X3E8YT5pYDNLd1gtTDszUTs5UkROOGh8YVJQTlooanhFS3didWJXcHVFPiQtOQp6RWZfcl5QWXch
SC0mOX40IUlKJT5eTTlgcmFuNGdTWUVXZk14NzdsfGhoZVVWcX5ZdG1gITJVPlh+byt1a3l2dngK
em1fOEgjOXpxP2AzR1E8UFBYdVImc1lUdUtHbl97UVY0VHIhO1coP3hATiRwRDB2YXwtKVhHOFQj
XzAkR0JlLVdxCnphdC14ZEk0a0Ntdl9keFhBI2R3TTUpaTZSc0VQXz50UDs+ZmQ9UWA7UDZrOCRH
cTYpfGgqb2ZqQWZsRiR3RSN6awp6eElwO3V5eEtLK0w9V0R3bTklakZSXnBHVTAxNnpZQSY1NGhR
R3VDVEYmcXloO2FCbHZCZiYpaD02dEtqOXJLKDYKemZ4JiVVQlNhOWEyZ0F7M21hQX5kNCF+LTNK
Zl90KURgIyNTZWs9QyM9fXAxMDl+SUwxT0IoTDxZcXgjWTQ5cjxXCnpFU09Rb2FAPn5zM2s/Z31y
SUNnandiU1FzKUd5M2hhQj1KOTN9V0VpXnxTJUA7RWc/fXdTakZIdGtOckJmVWlGSQp6SEpIWVh0
PlF4UiFJb0szK0d6IXcpejU5WmNaUHZiUGp7UmhLK2tBRSE0UVgkei0+KFhuQVFaK0dsRzl6KkQ4
PiEKekRHQmBPMU1pazVPI0IqOXZmfnE2TXtNWj9AdWwhOEJVSD1pSiNgWmlCZ35qKntsTkRePmtC
dHNANF5tc2I7MW92Cnp1ejVFUUtOWXhhSX5zekhrTkJoKFZtb3ZCR25WbVo/MlN7aTFIS3tBQlhw
c0UlZSE8dHZGfSM+RD4wX2pjXyEzJgp6QVQtLXBFTXp5X0oyUmImSG5gYDRNTGsrLXVkSXtkdzU2
Wml2WU0zS15STCV1KzsoeE4oemV6I0Q9VD55R31gTlcKel9yVGJWUFAjN0VXNkFjMk5Lek5BdWde
ZigpeHohS3RoSTlRKzIjUEUmRGJnYzk8SGgqbUdsZzJsZWU2NyQ2OVNqCnp1VHxQJEMybFA2TF9L
LU14VzNCP0c+ZSYmNn5nKXByJT16YWh4T3A8SHZsI3sjV2ZnSmQ+Q15VKGM4ZnlNRkg1Kgp6M3lr
PXtRbCskaDduYF5EVUpjPlRBdEpBcjw0dmFzKjQjNjFzYTwzaFhqbW1XO0lSfX5wXms9ZipNVCRC
PnVDeXQKejN+dkt1SmVuQUNhQ0o3YTd6dXMyR2dPMXc1bD4mSEJhXj1YNU9QTnpOQCtDb0xGdFVK
VyNiYXBySnB2KVRgZktBCnohRTNZVFFtckxOQ0ZsaGV0MG9Ld3VSVFQ/KmU/IStFYFJNJSkzQSZq
WmQldnFgYzA7QCFzI0B9Pyk5RjMpd0pTUQp6ZSlBYnFQanlCbk1BfkwtPGRTcVckLUptangoc2lo
RTZqYztgV1QqJj0+bkYhLTBOUWtVVk4yTXl1WSFVKCM8My0KelkoVCVxT3VAQ2FONVM3U3NCaVEw
Zm0xJW4zRTY7fk8xMDhJWnEqfGtJa01YP0UyWEZLRXpydzVfQjAwZWBfMkQ0CnpNbnBzNDR0MkFw
XjVEYEB2YFU9MSo+eGJlMW9zalQtcU9fPTVGQlMkWHN0Rmx0XiVNVEhgVE1GZFN2ZjFxZjZ0Kgp6
YEt5KFoxR1ZPbyhIWm1aaXFQSnghNm52WkJUJDZpNylFSCRVUW1fejcjZnd0SntVckZgJGQjTGFL
XytgUWZyeiYKemMwaVdDakc5cEBuPSp0MlZgUWQ0c2R+M0BWPkNvRkRKOTYtLTRfR3F3Pj9+NEFL
dFBqKSZxJmUlVDxAez95cDF8Cnopakw9cnM7e1hNPi1SYmRyej5vMzR4JXxoeW9+ZzBhKjZ5bGU5
TUFmaDNpVFBUTzFZMGNxe1A2U2BHPWxiWVEkQwp6UGNTSDQ8aCRMVElxWWdYUzU7WTx4OXQrSmp3
N09gKTUzKndtWlBgXlRDMWgjXnZfPW49REdxJEZVT2lIQ28+eXgKejMhbmtRLUxpODdlWU9gQj52
KUBaKm1HfitYV1pfcnp0PTM3e0w3bVU9Rl8zfnk2emxMczI9Kn0lSG10T2J9ZW04CnpRY0M7S21m
SmdUVCU9KzlidUA0ViM1MmB7MSFCYHhhSV5EdiM7YTJ+VSsydU5Qem5qPigyQ3BadWlCaFhYV3c7
Ugp6OFQrallqREZ8SnI0eGt2RkhYUFNPLUptWHYpQXJYJnEtdXBMYTdQcy1vXnlTcmlFIzlCVWFB
eEpHfkdCNmdWcTsKemtwdU5vUipDbzVmMVVZP141U35BQWUhcD5kTT8kKVAlVmZtSW9LUUl3VVlT
X05uUWhPO3txUSlYNGZ2Xnp1QEowCnpaeHRBZUx1djArcS0rd3toX3hVUHZHTis5KG55KmohNXFQ
U0U5M211NjxiRzZATDxIM25vX1lXTTwzUDN4Yjg2JQp6PU57QEEySVhzWChjYiQ8RkRHJjhpZy1O
Q3NUYmBDak03Rl5gQWhiN2JTZ2kmMV5SRX0yUCRxfCo9P0wjVjEzVm8Kek1sbXJ+USktK0FZMz4h
OTAmbj1EZlpLZXI9RUpSS1JoPXRqekdkdURyKTxRTTNwb28mbHhwNm5Da0F8QWJYbz4rCno5QlBB
Yk9ed19vVE9sI24oTSkwTEJKSzg2I0gkPFZsOGhVfDUtVD1rSUQtZkFBbUA0dyVtO1FSSmBWeVBH
PVR9fAp6SXpSdnB4NmtIMUtPSTQpbUE9N0JGVzVEb1RQZ09DKTZnQnYqNypibnsjR1IxOF8zTDwh
dikxO0hYPlVLTzdCN2EKek8mN0NHe1JoemVza0N2ZnV6MCNReD1XanErKWNITi1KQz88aUNfcHV4
Rj5Hc2h6ZkZaTntGa3VMU3tmQUhuNWZ0CnokbUMkKDtrWSNobDx0WUVfTkw9eVoyJUNTalBPYGcw
Kk4zZi13fVM2SzUoZGNkbTBOYG56RXo/Jkh3VEBrQ0FzZQp6dDszJDxrUVUtVS1OQXhILWE3WDdX
N0socmBaKHVaPypUPVB1dz1BOHxHX0khTntBUlpmbEBjNld2fj9pWk5qVmYKektifDN9ZFZUIV8z
fnBnWURKXk18Jjh9UjhLSEwqeVNGeWYlOHxrREVnSnxLKDZxbDg9SU9uLUpPPF9LUHZ8QWkzCnpw
Nkt9MUtLNWRpX1hZZFJrUEFHJSp3OTRyQn5OYjhYMkhxRFo7RjR6XnBPO2VRPGhwUW80QE1jLT82
aVRPbnREYwp6TnBea0peSXd4NDNBNVluajRhTik/WT0mSSk8Y0NUenlDTz17bCZuLUtBOSlJeCZE
bitaU0xFOCtGR3FGU2pfbnAKemtnTzQlaUR3QmJaKkolS1l0ZD82ckxgaXBScGZYflM8X3g/aEBT
UiZ7Ti0rJWE+c0hTbzswOUJmekFORVc7S24tCnp5cEtKYT88RmpUU2hQazZzdTRafG1jX09HU2BS
VSUzQ3dOVXg5X1R7bnRpczQ4d3BZWGZgQjxRZHtAQEsrQCp2Xwp6ajEjOWAxbzdjJERGbnRhVV5H
Tnk2aHdXU0ojUys4QTMyWmBXRHt9TzA1NDVZPEBEKlpMcEtPNjxYJld2Y01HYFoKejFeUSQpUXR8
XkxASFZwPVAma3diTjQlKyZIVzxNZjVPOVBJVVJTfl5sTXU5fG1hdXtHSiR1S295NnpXc0ZYa3xT
CnpOSDkyclA0T3krNCFoXigrO24rRUV9S2NhJj47d2Q5fXUydmp+ZXluUD9kUG48b1RVPmgxJUNm
RkhlfkxRUGU1JQp6OEBnJWRvbGl4X2VWUlBfSH45bGptKFN+RDJIWV58R2JVNElXWiUwWGshdFJA
Sk1XSWYlbFZLSDxheGFaSWxwamoKeitIY1dyVTtDP0kjcSZLNDBrfUFqd0RLVlg1S2hmZEdHU2ZY
RTN+RE1UaTFOPzdpR3FwYXRsZzFGWmxmZnpnLWlfCnpoWWhzNVQkbnEqRiF0b3lufkQ5R3s5enxq
LSlAMVItezY9UWN7dGQ9Y31XVzRJbT1aSCohPnxPNlY4UVZ3QjcoJQp6YSRMYTI7RFZpbGpgcSZt
ajNfPzc3OChtVmtALX0tOEY0fXM8T05odmtpeWw3T3FteWd2c2xlTEROWjMjUDllNj8Kek1JcEFD
WmNmeT1jbkYhUk1eIzU0UWNzOGtsZE5RS19lPTwwcVdQUEd7e28wVD44RmpQa1o/SGduO2xrQkh1
JVFeCnpiVHl7K29DYmpkI3VFZWNTSmkqYnlMNkQlPkdIfERhND84Q1F6RHFYQCFLJE5WUE1FYlE7
RT9CbV4teTA0Nk1pRAp6YUBkdFAmUUY3T3V0UWsyNjA5MDUwcndoQWopeCRFYjdHVnFBZE4pQ2ZA
S3hTY0BzWnpjNE0+fnIyfDM9R296VXQKekVlSHI2M0VZWiMlfWNoSkdWJmNVP0NDY2FgYz1AYT55
RHEkOXFPSiVrNmtsNm9hQzFQTS0yJWdKb3RVJjZIVnpVCno4ZX58YGFScjAzSzt6S3xGMWIyLVZC
JG4jWEFaS1lScGA5Q3JFZXgmMzE8d00/XjlRWWQqZ1RmLSk7JUFQMkNmbAp6d25SZEo/Xm93RUNp
LXhqQGM4clojaHctKFEwIXc3ZnRxfTVHTFRGMVdSJj54bkYzQW5RZkhDWEN1ZVYkR0dQNkwKekpu
aUhjNGx8eDxZNG1+cylvUDg0SjF4dHBIKClOaHZ6eGtia3pPRjtJeEo+Ujw8d0dgTCpGIX14TWdS
VUJJKndjCnpeNDJoT2FSJCk7ZEw3USpPK1Q0M2U0UFVlS2NPfjQ0I0s9UnV1cm5RemdvPTVpJEZh
dHt1SUFHUzx5NFFnNUEwUAp6LWJjVGdfTlJUVCg7bnBOJExiNF8lc20rLUt1PEs5TVFLYThxa2lr
TWVzIWBpMnUzTGB4PyEtcEBeT24yLXFqIWwKenNnSHJeZHgkfHEybmdeUjk0KnNScSFYSG5KKU1B
e0JBZCEyOHNmbHE8ZjVmOzhPVWJRajV8YSVPSGV+PGFMZnBACnpqeylCKCU8bHUkSnJtK0dTcVBP
ZkFVWEkqJEB5UCkyQUBgXnl9Uz5+UmN5QSteJHAhKnReIzxMUkZsPSs9ZEN5Wgp6SytZVE1kNDFv
Jj0kdWhGMEFvKElYaXZ3UEYxMT9YJnchejlOWFpBRmBiLTRmNThDaj9DTyNybl5KajE0dSV1e34K
eiE+SyMjYypPJXokMUZ1QWJtVU9VblV1JGZuYml4dHlxYGpAKWRxYkNFcE5tN3pvUXspZHVRYDgy
ci1CaFAmQ3xqCnpoSEVkO19KViE+KWNLanAlXnNJc2JkP3AmYlA1RkpjY0FZNkh+ZUN4RntMZ0Jr
ZXg0WSlVRTl3MjcwfiQ7ISt6VAp6PjVSbSNgLWN0fiRTSiVDbzA9QmJ6cTd4V0g8fEhAaCUoVTZf
X1NeWDUmcUhENEhoc3xsXl9tbzJzKkNAQXVvVksKekdaPUJmPUUoITNpMSpDOzQrRWdoejVlRXtg
Ym8xKTN2VWtPMyZ2LWg+fDh0fkh2ZytwPmB1MmtkMV4xOytwbjNSCnpJZVNERF5laUA0WitTPm1w
TWA1YUB5fUo1SU1rPi12SVQ4ZXZGZzxJdX5rbXMrM3IqR2dxWmlQbFhDNyUzPDI2Vgp6a0FQcyRr
JSVeZ0E8KTd8MUZsVmdBTUY4eXN9XygzVmp6b0FkREFmbHVvckU9M2xeX2xCdCgpTyRmZHZ+JHFx
fGsKemclTkdxN2N3Xz5jWUFiR3E8LXIzSUpQP31aPHUhRio3XlAwc3IhY2VPdzx9aWd1WkNWP0Z7
MCFXVkxQKXNMVj0hCnpoOS1fXnFtYXxvYXtHOC1JVXduUTdvM0RoMUhlJmQ8amgtbFBUdUNIIz4m
UWUrUjU0SWQ/PFkla3E3OGBtWXlCNwp6PWZqYzkxKj10cyUqPnRoemw/WlNgRiM5KUVFK3hLP3dm
fCh3Tlc8Y24/eEolcyV7PlgwRE00dCRGWW0jbzwxJl4KemZ3KFdwJFZscHg4K3ZXWXgpUCNvaE01
eT5fT010cEU4aHM3TElrczNZPFRIYTJgYDlCPXNQWnhWJjBOaUc9Zi0wCnpyVzlsWEREVCM5Nzhi
OW5VdTZtWU5QMD1WakUjSzRxMkwoUnUjcGh4MTQxciVjUjByJXhIeF5MdlByfGhWJlZQbQp6dmQo
bUZRK3txPnRsOD02QEEhREhoQ2wzQ3cxVHtxbyFkeE12QVlfSzNVRiNLcGtjPDJXQnx+RFNndVAo
aChKa0kKejJZZnJYdCh6fk9RSHBvKnJpKkQxZSEmNk5mczxCcEBGYF5UamoobHE0LTdDWUpxLWJF
QitxPlcqT3NOJmZjXm8zCnpQSnRMc0B6cys+cylIWX00UlZaPFJxUGZNe1BeZiteSS1PZEpYQisw
bFUhPDFFMn0oYHo1fEFZNWNZaCswI1hEZAp6Ul5wPFNoc2JLKVE5fCZZMS0lRDY5JXpMTXMxVlRg
N1M2N3dSY2RLS2tPNmRKWCNVb3x7dWs0R1JjKHgwVDB4ZHUKelElIzkqUk9EX1lhcV9PdSYwJmUr
Ji0kTDNwRS01bWc0dVhAUEEhJnV4OS1gekZ0MVNtcVQkWDhhdWBvQzlMYjhaCno7RWUmYlo4WjJm
d2c+WTt5JEkhcDlqWi01KEc2KkwmQVdFZEZZMGIraGx6ZU1YPz0qdGhaJEQmZmh+Ml53RFMjMQp6
cnJjSmxoMWtUQndrZWg/K3MmbyoraX45VS1LIXA+cm8oaXhWWlByYlJuR2o7eVJ7dFlWMDdSKTJU
QksrNENuYHoKej18SyNISXEqVVpVQDJfP2AlJUpKTzxhTGd6MzZVJWJrRip4T1hQJXZTP21XY1cx
aDNXb0lhVUQtOW5uNUdjY1RKCnp4ant9MndNb0NvNUVZXiRTd3cwdSY3WUFjN3BrWH5WNT9GeXok
I1Q3WSRDSzUtPnxTZV87OFJudnEofmVoNUA2NQp6M3BtNUxMLWg7dTNJQVJ0SmNeaW9rWlVrd2lI
fjZTbmAoJlY8IT1PP1BhTmVOTFEtLTV1VVhVPEpgfnVJMnRNb3sKeiF+ITFkd2FJXiQmJDRQQFMh
VWpOWjtgOyRoZX4pZlpWaj9BSSs8TEBFPDVsZEwqQn16aHF2UkVVREZTdGkqTXxVCno3c0FzU1Qh
TjwpYEVxPVNUU29Xa0hzfDZ+cCFibmI7eUlFbldrc2Q9eEhwaFFvPGw+TyhKVlMtODB8Un07TGVV
Ygp6WGxXY1A5ZXdlKm15YDNuMysreEQ5d1VfWFJlektCd0Z+WHN4dl8wJF9UVCgyX3Y+bjUlQUd5
ZXdpbiVkYmd1dGkKeipMWmkyezV6cHpgKmJIMCQwemp1WTIpPE81NjBiPSNiNVlzWE0rM2BYc0tV
cyYqU1FmRTxMTjVRfDZmeFQ+TU4/CnpXelFVJkBWU1JWI3hNQEFURURhOUczeHNhYk5yU0pDaCEh
MmUtNDZuY30pLXE4Ml5NRG9IR1FQaVMweVlnKW8kYwp6YzVhQHw+eSFuaGtFKF5fdT5mfD5xKipL
ckB4Q1B4cEdSMHReKD5QNChlOF9hWCVUQU5zMTNMPlM4VnEoNlM9RFUKeko2SHhNcmBrbkVpQkFJ
ODlIaisyMGRgamRNekJhIWNNfmgoTmdjUnNffiEjNUxDQmhmSFc8TEgzNWojTS0+QDhKCnpHWW81
Yks/YWRnKHxRPzRoMjxGKkxQKyotS2c3MjFzO2s0a3U3UTNLaXt2bTchJVcwQ1YzTFU3cGl+MkZV
cyNPUgp6OFhQPGVYUkN2WXVIaEdKYDtAYCtZWDR2KmpGSz9wYjN0flR5UF9xTzE/aCM0X1VsQGVX
IzlIKSFvJF4zJTd9KU8Kej0pSmRJdW5KfXNSPHBQbFUhc0dgS3UrWHYmSytLUXBeLUR5fDdMV0xn
cTQxXztBNTMoJD8/cmBeSCRIXmJZTEJRCno+RW15TVl6eitiU2xtITNEMCVJaFZGUUFTdik/Uj85
bEhadm9xaEc7c2BhYmhuRVZ+RnJ9VyU7VXZ1ODBjYW9aYQp6JnlEYENwLX5TNz4tJSFnKD5IRFFx
MDwraHVlfEI5Pk8xKHd5JCojP19+XmdyM3BzUDttLTRecm9feGZxclI+czkKeitwRUJQMF4xJWBV
aGhKbVVPUUJFWVNvQSQ4a1AqRnNUPSZgPE1QNCMzWSkxenU2RHp+Yj0rWHoyKz9VfTlGZil9Cnp5
TWB5YEFKai1IRjV+UnFNOz5uVDgySUdZLWVxJXteZVVEQihrIStWP2N2QmpIMENOTCNFUWIlJCVS
fklgTj92UQp6TSl7LVY/bit0QDgwZH5mNE08UEFaYHI4elU9UTlfdXx9bWxQNnt4QXFVQTQ3UGo4
Z2diRChsU21APXk2PHdgVVIKem9OaEQ5bl4tIyUzNHA+VC1zbTB1XntrfUkre2VoNE58TyttITM4
JlZuQmI4UHFFM1MxR20mOCY8K2lwTGp+aG5+Cno5ZzQoaktmJiZrUDl6UTszSSplVypAQSoyUypt
fm1Rb3ExSFNIbUFRQUJoVCZ1Rj1EeSM/S2BFPTdSfHdXYWNVKgp6OXxhP1VMeFcjekoldk5BVUR0
K0g5V0BkUWArQTJhZ3hKRW5LP35RX3V6Y3tKUGhOMT1Ua2V5IzZrVWJiJnw9RiYKekxKQmRkZik4
eHE5Uj1ZRFVQdnl+VmV1dHdocnlIKFVjJm1yTihVMlIzV3VuKnhaQCk+NElDZCleYjZwPHE1RTtv
CnpmdD5IYUopR3ZqNy1wZ00rdyFAOWR1Xys5MlhDdyVvNG1DMXQpaVhHKiRIRXx0fj9RN0pFbS0w
KnBuc0EoUkdifAp6MlZNQVdaQWJjakxFY0FQdX4ofXY+JnIkPWojKzVtZCt5JVdoRUhicTE/O1Nn
ZWNnS09KajQleUdiV0BiRC0ydSEKejRgTV4kb0ZSY2dMWCpKSkxGeWxiMEE0I3FaZVgzQXp+RkZj
ans/UCtJRGIxWENPb29GeE5tdjFeK3JvMWBFQSZSCno+dCo+UGp7c2pKaTI9e0w4bHRlX0NnWE50
QkQralB7JFUtXjN6djleRm8oekBTcWdTTXRNND9Hb2pXc19IcDghOwp6IXJseHVra2BQVlJtLTs5
TWQxUnEtRCE2IXpndCQrTEBFPCl3OzVSbTBUMGJedFZIQipfT2YjNCZhfStDJU4rIy0KejlrSV5C
MHNgd25iT3FxeHJ3QC1qKWoqc1UxKSpCVmIkN2dwRk5CYTRqa2dUfTgtUzw1YE5LNEU1flpmdnlp
MFFrCnolP2J5XzJQTzVsTHArOXpHSzdOYERJWkY7QSZKeXxYREt+O0lUK0doUl9KYV4mdEZOeEpK
YXFTbjI2TXBQWWhndgp6aTczS1JiREY/dkt0cTJONHYpI0FrWkBMWWkzUW1iM3YzYE08N2klNTdC
dTBOWUpwK0IjYE58ZDFDPlpKdmVCI1IKekM/VSE2VUMtYDRaIzcxXnkma2ozOyhPc3Q4aGR1R1Zw
Xn1TX25GelJVY044eT4rKXl3OXhYMEYmKSY2K0ViVW49CnpKQHwmKGZ7QEE9LU5XQWZhPUt5YT4k
bW41dz4/STlTSXl5cF95NFNnREZGTjdDeFU+dDV9PT9zQndPKEV1bkw0Owp6TCV3fkt3SDlUbmkw
WTA7UlVKZHgtTiRhdUAkX3RRN302JF55T0x4fHFoaSt8ZUhzaWREQEpCJTA8Z3l0KlcxKHwKek1u
JXYtSVN+cGlhNEVvaSskNWl7QkxFI1RaWEo2cjRjVzdmO3xtP2gwe1hJIVM1bUtkYURFNC1eQHty
XiV1WmYpCno+bWx7c2krOzZ6dTUwbSY1WFVMZjFaVlNsPm5EYzJrdndtOyFINU48JlQyV35wfGx7
NW1rTnxKX2xYOXxYe09eeQp6VEAtQytqYlQje2d2Y0JlOTMoSjY5WE0wUjlnJDMqRG59UCswcWox
YXZDZjZ8WSh+ZCg9dm0oPkAldT5+S0VIY0cKel8hejBUZGBRcEFDX21DWCUteTNYR0FWN3o0aTxS
K3l3WkZhZzZMPWZOZTV6VDgoOWBWZzF2JFMmWDZpYzF8cGhpCnp7Kk9XRmRWMjJeVipTOzdFT0p8
YCl3eVY7YV5XSGNsQG17PXIoKmZ0N1hxJCVUK09AcDR4TzhAY2J6QCN7anxjagp6ajE0PXBLT2E5
PWFWaE0kSnZfOSlQNG1edygqbS1xVEpeajdFMHNOU2cpQSZQKDU4MDtZM2NhaVk9QmtLezdmaSMK
ekpseEozNjB8OUxFcD9oYUBrVXY0Y1dOfSRUdnwlS05FIT8/c2hvRlpCQzhUZVJTYGp+THEwUjdi
KDtSRHsoeX4mCno/S0RFWDlnREppZWJ1fis9cUpld3UwVzthNlBWPl9ONT1LQys7eU8ja2VQUDE/
b1NWeXIyQ0lYRlZGdztnTCF3SQp6bGFpTXAjQ0NyP20tI1l2JEtLQEl5cTMhMTckfGV9TCpeTn5k
VEF0TUk8bVkjJSl4OD17MDBZdjRQOT43UU1CKiMKentmMDhQYVpeNyNHQGtUJGkrNT1pXipiSjxM
M31lSEYjSVU7blUrVHxBXzdxZjRwV2BLek8jUkNaeH4zO0I2QWl6CnpseUltKnNreFV+PUNLMzxl
eE5aZmdGVWZQe0Y1VUh5VlFiRyNYX013VUlLRTVUcW0lPjZoKC1zV21qPXY0LTwoYgp6Wlg5QX02
c353bkV4VD1TSjYlSFNmd2tiRXFEQmFzZkpZd0c2MCRGYEc4KEB+bWFxTSZ3KGtLcSF1ekFjcnZr
fjMKejJieGN4KXh9UCktWlEmKkpzZVg/N1AwWEJJbEYmRDwqbWlNbHB2VndsVC07bzY8X294Rlgy
PWklemcrKilVIXMmCnpSSV43eGUtMTRxTnBxPXs4K29KTkcqRiVRTkZzTk9xVEUxVCYpWnpYajtI
e0MrYHZSK3BrZis4WF4zbThKeDFLbQp6PVNsNXBhOzY5bD91UjdkcEglflpodXo/Skw9Q25lS0h2
aGhJUVUhfTlOWCh6Y1BEc1N1VE92U3p6NCthJHJxLTUKemIpTn0tXzQyM1ArJTZEfF80PXI1RTdK
YnQtS1JoVDI4YHI5b2BLZDRUMWYmZVomaX1WZkA9R3leVD9RRSZedHBnCnpzYkIwdUApJUxmc3Jr
KT9kbHZmcjhjNjg4Wnh1PVIwVUFrayp0QkdgSGtwdCVhSj08fmY4TDllPGIlM0EzcnVHNgp6KzBv
eUNzMH5qOyhFUT1QenwyNWRFdlV3MXIlfGZ+Jl8keylmQTFLY3hOOVFCZTxKUyNUZlFsUy0hYk1O
IUcjO0MKejB7ZFk/KUQpSl9mNWFKUE0pRXVkalA9bnNob3h+fkBraH1hPzRqRChVYEo2MF96JENO
Rz5KRjNMWH5MKnRGQ047CnpBT18wV3V3NmFVRUVzakVoUFdEPnJUVmpzKDYhZzNCRGJBUTZOXjZ5
RFJhSkdkaFZXOFQ+NjZhJiZjaVRWJCtINwp6ZCVuQzI8TzV+MFpnKGNUcXdOd0AwYXU2cz9gIT1i
RjMzX1BJP2BiRFlwZWlxQ3UjYmthUUREI0NuZjIxI1VSS04KenNJIyF6RHlMa2NEZSRGRzVabEQ8
U351WG42VCVzaF5nSSRrU1N7R1E4R2JhTFVwbG1ZSWlMQVMwJFpwSnAkTkF4CnpGRUdLV0ZUUS0/
TWVfTGxjaF41Z3F1P017ekBmVlApNFp7aUpTenV9amd9OFdyIUpGYjBCcG90amA8ZkA4ZXFCegp6
ZkZxfmBlaGdvUjQ2NCRgR21pVmxRT0VvfnliZUVTZm8zSnF1I0tlUTh2YDUoV1M9STJibXlNfTBr
Xk9XJCEyTCYKenI9WjEpayh6KkNnZG5hS0FZSkE1RDBAYio1amtSNWdFdyFjaHRYJnBSaWxCUXpI
cSFWSHw3cngxd0Q/Y1NmSkZoCnpTfmFRYV5ZVWRpM1dAS0lCM2ZXVz0yRVZeVXZzd0hLM2EzJVNJ
SEZ1Pj9SeyE0NlVDQ0VJRX5PND9zeiYwbUAoewp6MGduc2xibDlnVnk8dzhfYypXJUJAMDZCI192
R3hDeVJKeCErTVQ2N2BgZU4ySmRreyFGenNyb0xhem5nNzlETjMKencjWjMreGNqaTdFUzhIMWJx
JXAqanxgaj0yQ2poeU18b289WWs9b0cqN290KGhBNn4xZnNkSVZNKCMzY3grMz93CnotTTE/cjlw
NX5BTHI9JHA8dzZAQF5ScHhYX0k0ZVY5Z1U5bVRUPVROXjtBZU5ffn53eGI0bE1tM1NSZEJKUSVr
PAp6RSg0fF5zWGY1M1Z9eH54Mjc+aWowXnIxdjA4MlN1bT1wb0RqYkkxTWdzSml1QykxLXdhanpS
SEBNYkgycyhqLTIKemFXTURmbE44JDw1OW56KSFIcyQtIWI/bzdxbFVMITE/KX1WenN3MHR8OF56
OzNKckYhU280cGRmJVZ3JmklR0VqCnpJZERxPTgzSDxxaF5vUW8qQDBZQUg3K1krQnRpfik2JjVt
WFU3WiFmKHNwVTEqS2l6NnZMWTJucll8OEluVmszIwp6JXk/IW0+PC1uQWV+Z15JWXM2KTREfmxF
Kz1JeldVO0BvaWJXZG4rJS10KVUyMmw0KjwjJlk3bG9GYTI4KlFJbiQKejc+R0A/SjctJSNkVCNh
UU84MTBRQT5jd3o0WXhiQkpVYj5VYmpecVJFfmtVZCYmYGZKZDIzZ1ZzZ2ZnV0dgd3NICnpvXkxz
KFZPbnJKR2B1RklXUzRuJDxTZVEyO1pDMFlHVntrRXomQ092KmE9ajVab3AmRG5ZeEJUcyVCJilg
YGtBVgp6Zj9zKyNXcWBVLVpxMDBiNld4aTcrfVZVP2t7O0BqWl5CfiU2blBCbS08KVAyQXkoTW5j
fEMxM1pfTVo0I2s5N2QKei02QWFtVUFzaGlGLWpSMDZ3VDl2QSNlalE5azU1dTdRezs3JEhMVnxz
emhNbT1pazBjX15sZnhnY2Z0bTcqdkY4Cnp2PX1Va2orRHRfb3RhbFpTZGJ5V29NRSFDZ0I1MUBT
MG5sfGc8SCExWTN5dl5xcEdlJnp0NzFgNyQlYGtVP3pkcwp6T0FreypoN2t5Mj14dyM9OE8tcWI1
KypSQWQ/LVkmMipsY3xNWHY+V0p4ckN4TDRUcUs2KUpjYjBmenh3UHx7a2kKeitOZlo/U319WW5k
VCtnbV8xJFJZS0gqfTIpPEBnLVU7OWkjen4xLVhPNkdqKnowV0BUVzlfeHFUNl50djU7SXkrCnpo
c1Z3S0tUV1cmeCNvSlE5b0MkWml0WWB7NGhgMzJibXgmcUBfMDZBYENsS3dRQHdGPF52OURiKloy
eXtTM2JBPgp6QGByWSY9WFpTaitrcmttUz1tK1ZFSF5IZ1pYY1BQJU9wZHwkLSY8fmNUZV5rfDR7
bnhKSExEVjlxUyo0P25COVoKeklvRVc0K09mdkNSVzFHTHZRRl5pWFB5M0loWm1eZCllZThaWXZs
VnJlK1Q1LU5KUGZyN291XjdkM2FvRWRldlIyCnoxQH4/Xl5rTURJYiRgZTFYRVJuQmJ3eytLdU1C
UjRySHBkJGJXYyh7IThEWn15bUcqeStwVzZYLXs+I3RFbGxSXgp6c3k5RUlzbUloMCYmPSRZYmE+
cTU8TGNadXsmVkM8bShSQ0dKfiM5ajQwRj8zS00zS3MpNlk3N1V3PiVDI341czMKejZURkIyQ0J7
fiNTfDNfKXVHb2prNyhINmhjYGpoQ3M8MmZ1O1FSMGdsfmF9OWNrQyMobWhZLStFNyVmfiZFNihp
CnpoPmsjeHU1Nz9Cd1N0ZFpnfVRoLUp5Pzl3S3xgfDZ3WDQ+YjRxUEl9bypGRWNUZHAtQz1vZUhu
R2A8a2EtWTElUgp6aFBJM1FUJGlIfHgkSVkrZmI1dF9DOG5hI0xVfUtgKVhMa2loMk03UkBaO3c0
ZUJZMVZfYFhMe3BDKHhtRktlN2AKejFZYn1hMlp6RWR5UH5aek94ZiFuSFckV14/S3JYZVBYbjls
S0skWn1WZkdFRCpyPis7Xm5aYnlaIWwpc3slTEpeCnpMYTh6RCZOQmglbEVMcz9IKEk/YE8/fDNX
ezVIYmVYelJlJGphUE9lOHNrNjclJm9qRXtoMkxrNFc8JFJ2MCQxVAp6LThAJlcxcV8jaXd4MkxG
UkxVdG1RREBpd2BPZTR7ZkF+RTNfXjdwKVV0X01oJURsUG1pLSheKT5pQGskZDE1cjgKei14LUB5
akVteDJWJVJEOCl1Zkk3T3t5S1M1UiNTM3ZEb1JCKjRjTSVlKFd5Q2VLcyl2RT5+cmtTQD1uX3ZZ
e2tFCnpVIWFFdmJHWVlfJWY2TyhpRSpQfk5FeiNVMChQMSpHRzYoX008Y0BYdHF+aVU0a1pMaVUw
Wk4xeHszd2lAKCV3ZQp6ZCtWYEFgQXdpP3FWclkjcHNNQEw/Z2pUWkFMKEIoPEg3OTJYVEx0PV9I
Qns1P15Qfik/Yz9CcEN3NWdWUVdyRVAKeiMqTGVNeVZAOEY8YTVYNHNkVTtfMUJNcjM+O0QtJCpB
OSVPVUtTPl5Ie2N+QXVHcipHU1NpMHxleF83TDhCSkFoCnpfLThHU19iRmdOJD07d0o4WitCRW1u
PlEpaSpFV3FHT3FxVGQmXjQpUT8qWSV4JStndXA4bkIqRjNScVZnc1NaaAp6czNXZVFSTVBrT3w4
OUR8X1JrQVcrVkowWEZhcnhaKHRvO2olQTgqfGtKQHlza0JkKHB3cXE0fElLVT0mQn4yJVEKemYr
R3ttI1Q9KT1SI3VyblQ5a1M9Y2VecS1XfG5QIVk8KmV1aXc5NDIpfnRWZ0BMfX5rIyRIei0/S2Zs
K1dUQHl2CnpnK0l8MFZhV3lfVWpIRj5BaTlNa3FWYGR+eFhZMF9ZenZBO0kwYVplJlZDekdXUH1A
eUx8REJITTtTSyE0Z04kagp6cStENF9JU1ZCVkQlcU40SzNRPEc1QTk1aUxePCZHPnN5PUJ6UjJT
OHtEP2lpSj1UVnB5MzVeRmI9VkVJbHwxdn0KemNyeSlxcn1QTThtOH1Ic1A7aTArRG5lKld0VlQw
Yk5OaEc/bHFJPVc3UGs/VTZxTnMxLU0oOE5iek5oNS1LNkNVCnpqRzs+dm8zbUdsNns4OWQrSGhw
alVzWEgpRGRydXpxPHZ6KWBEPz0kJS1IeD43NCpUcCF9NUpeKnxkaX5KaDxOfQp6dkZqRXRGemt8
UGpmdF9hVHVMcD9FaWM9OFBoIzB5MyVpRUxtO1NNQT5zRUlaYCppb2J4ZiRPXzxKNER2PHktS24K
ekRtYFUmezQlUzhRY3d0aTVfd0VlVClAcFJgJioyJVFpcG1tNj1ZTz9hbnteX3tsR3FafDFeRWV2
OUE2bnpqSkN6CnpzeWUmPik1REtwKnR5e3QyNWhZOD40IU8+RHUkI1cmKVBiS3FyVzA0ZE57aHpS
e0tEfEJLelJiSl4lK1gzTEh2ewp6NyViWklJVDtgPHtuWlBNcFdufHV4c29IKG82T0MxUSFYe0Nf
SV42WmppVnQ1Izl5Jm5ueXckUER7fUU+LTtxI04KeiQyZ3lwPmMxfk08ZkJWTiNVZEd3eWN8SWJn
QUR+cUA8MzJVZ1U/e3VncWJWcXVzcVZJa1BZSHA+Q1RoIVgpQmk8Cnp5YnxPNXd7Qj8qOUo9SFB0
MFB5Tzh2VThnX01nUzwpfkpmVkk+NFFCYlBFI0xPUi1fR2t9RjJ0YjZ7em0rQV4oVQp6Y0gzYyl8
SjA2JGNGdV5YPWk3SmVAUnpHQUp7ciozXjJgcz5ed2kjUFYkd1RacWc+fGFqZF5wZitHI29lb2Jz
b2UKekM8JFZHYWdsKkdeb3FgXk9pMFNlOXJRV3JUJVM5MiRDSzUkR205XyQ8SHEoZVhSZFlMe0N3
YD1OMUhGWD9DU3FtCnpZZ314WC1tJnk/bV55ZylHPlMlOVZNVW0tWD5lJGdXRnhAZHlVTFk/KkMp
JWg4UHxMS1QwTCZnNXM/a2AxPUokdwp6RnlBT01ZbmdFPzRAUGlKSTQyRnY/dWFrQCpXSipPb1Mz
Z2taQGFVeldsUFE2QD9ndmY9MD4jUWFIYW9tamElM0gKekh4IW4zV21XQkRZb3V1b1R3Ynszdmg/
IT5MPWt2UGYzVzt1dXNrUUBqeWFpMCY1VDdgSEM0eVU1PWctQFBUWUR1CnpaSl5jV1Q3NytMOT9R
Xj0+SDt0eCpPaiklKXpra3E/UEklb21jM3glJmJQIVIhUDkmOHw5SXc+ZHIjRCh6ZkxUQwp6cmVF
bkBod018RUZGI2xeQSFpO3x4RSVhPmdfPkk8eylAIVhvR2NaY3sofC0we0ttfTNLNlVrYl93SWkm
eTdAI1oKeklJXyN7cj9xem45bWZTWGJDJH57KVIrYkomKExYNzUmPXxIV21TcEZFQUxMZEk9e0so
aVZIdU9gazZPSl48VEVGCnpQRE1YKjlnOT8rJCtvN3NgcEt4bk5FNCo1Unp9eHxebV9xYUhBZEs3
VTY/eEhLQlN2a0M2ejUySUpQdSNSdVNlQwp6PClKTVhkUldvRGJUSz5QRkk/blc1MlBrUChtdihy
Y0pzQ3BpKUQ8KSY4c1VTQmFYVj9URD5DS2xueU91VEtqMygKemlaWmFtbGI/Q3dAVyt7Z3ZASUk4
NXRXKStGfjNEIUxnLT5CMDMjN081SVMyMCNzc3NoKiMkTHxGWXooamcpYCZaCnpBMkpLREY7WVhm
YiNRXjZrSzRwaElEflh0UW05VDw/akx7elc2ViYwZkFZRG5VRyVhViZefT9PZEhQQW1fd2hpcgp6
RmpkaFkjOVo5LURXKyozJWc0LXtHPUxDdyR0azVVQ2MoT0VMfVN2cHxIMXdES1dIeVc2NzAqUDhz
Unw9OSU8RS0Kem02KV47UyYkeWVgfDdyOEVIfFZIQmU5QShPWXBXWnY3SiNzc3t0dERuVF9TT2Er
aFpEaXoxVl5reiQhdEVJI2xYCnphMEtCZjYmPz5TKyYqVlJkbV8zcTVSQ19TSzNAXjVaTyFLays0
JW5UKTV7Sjw9ZUstc3U9QDN8UypOb0Z5MCZjZAp6YCZFZXMoUkgyOUV2ZF97ZiFJaT9RYV59PHdN
SDdOUF4zSilHQVpUSXtpdXZQNXtYRkJ5PV9IO1YyTUZuN04jXmQKeikwNTBeRUhKMVBKZXZJWmVL
TFY1d3pgR2M+P1JfSUQqM2JibTxrLWFfJG1NQjRZOHBnJEx+TlpoUDhXeEtOJCp6CnpwJj08UlY7
YW5zN3VYKCt0czVgZjZ2Nyh7RCtfR3tLRD5SPnlBUF5kTSZWOyVkZngrMzIxaD9zSm1pQE1uOEY+
Iwp6MDlVMDI3N2x9fFYoWUJpb3xwKDgydEpKc0lqKHdyUW8/SWpMJHRAZG1oSElHciRCY3BSME58
cktVemFuPjBLQ0gKeihOV05mSjY2bXNJfkl1NndaYHtuciM7eForUjJSd1dEblI0NlZgPkZrR31W
U0VpTmxtcXJiWU07bVFscjYrZiEqCnpfbWUhR2wxSVQkdFYkMDFYO2E9dmAlcjBlXm9odzg7Rmsl
UD5CSS1XJjt4ZVFScTtZX1EzSHVDX19XY21ZYlVjNgp6U1RIPkYoKD5UYkQ7anF5QUN2RjRtaGFh
eTF8JW9DTURqTm5xKzxHamdCeyozUCRHTWg9Wnc5bmY2Tl5nSClvN2cKenAkXzxgKTY/d2Q5QF48
b2M9fm9QQ0g9XndFQ00xcDlhZik4QVZ9ZUYtNUcmdGctMX1LeUZifkdhbT1SSjcqbkViCnopITNq
Pi1WZFRjNkoqKHZhSWJYQEhudWJiK2BFcjQkKjQlbyorWlk0U3V5aUNgdXZVMl90c1NIRXdvK1Aj
ViZgZAp6d3ZXbm5xLVdWREUxI3dfPEFHPE45fkY0QDdoPypDWER4MkFAfE1lKEVfSkZ+b1RkNDFX
JWRteUZJR3hNT3c4bHIKel5Ed19MIz9MWEVOdURtSWAoelFNeXMzMTs4dXxkUkhNUD9GI219fW1m
azV+R1BUKm9nS2JqR1A+WjlwM21wfHopCnp8SlRjUm57KCZCSWBqbDE2JVBnO3ojd14oN1dJb242
NGZzY0V4bUpmTzxfO0BKS3VAXnI/WmFyNjxlNyVzbGM8JQp6KT5nQVIqLT9LV1FHY1hVOFMjbWBv
clViQi05T01CUXtPeWgpRyRUY1grVk8/WVpOJnR3PFQyfUtEY1F8N09LUFAKekVSQHwxI0EtZ2V5
enIjc0RzQFFgTHh6PmhgKTVffFhCQ09JcilKckx6MCVIKlNFTm4rOD5ZJnM4bTFNe3lHQ3I4CnpG
ejV3XjI9YzR5JiVnTkU7UUpHa1l3fXlKVCEhbkkzJDhxbkhyT0hYTm8xe2soYTVOeSMjVV5HZ0Qq
ZXg8bzJEVgp6fDFAcyo8Nm1uXkxfJHE9fEUqNllgXz1uSjBYRWhjUklJI3x2e01kWV9OQGJ2TzYt
NGpSbyljTDxYcSVnJVhDbkgKeiNvVHBpI3UyaVQlcGcpc2dRT3s0V19oUl5sRDtmbmI8Jj9EcUVG
S0dxcG5ycSQtI3wzKjsjZSlwc1VQVlhhbEReCnpXbFZ7ZnNNSzRyUmsyZGVSaCNQVVhWe0dEZnle
SnMjUVYzTTtHX3ZZak1kYnNzWDwqIU5CSEVgMHUpM2o2P0J5OAp6Y0F9ZzlsPkg0KEJVfmNIWXw3
PHJ6ODRYWDFYR01pI09eZD8jdEFgKlg7Rmd3b3c1KXcxWUo8dkFfJHZAY3gtU1IKejsjSC1FMyZ9
SWYkSlBFMWNUZ2xXezxocTwjP2hJJnFvIWt4TklMMHgyaTN9fmtAZWtoSU5RMm97QG14c2wrNUA7
CnpfXzN4N3xMRE5VeEZ4S1gkcVRPWTNoQyQ2aDFBPEhSfilNYzclO0JGcXMoZWBeO2tSOTZ+NnYw
aGZ5ZG1OM1lQQwp6SzJjd35FNTFaLU4lXjtjRXZRZz92QkA1SEwyPn1AU2VHK3VWKE83KzRfIzVH
VU9yanF5bTsqYEtYWD5hJTBHbHQKemViSFcmKTx6T09BQEJ7PUZOZHpYVmFTPzYpcTdGIW9KcmhQ
c3dXUzFLfW08cWcxeHtQd3woMFFUYDE1YHt5QFF0CnpBM3Bmdz08IT4weHhCS2BwSUV1WkdSVTx0
K0BUZU1xNyY3KjFZRDR0bG5lI3NOe3VhJVd3RlJxbjBxTTBWTl9aJgp6dEUqPDNlNTxsdDNxeDk8
PE9saVdzaUZSNE1KbSNXIXhpUXV3bFRUdmJBYzc9bSNBNGlBe1U5SnU4VH1+P2dHfXsKelpTITxG
WXl+aWVDSXR7REc/O0Z3Qk5yeVImXm1TUGJNTlFYU0psQ1pFPHV6Kzc+eHxxbCFyb204U3ZARVA3
UVgpCnplKGNtMUhXcGUqN0s4USZoaD81UWJzfDskYFJQTkNKP3BZM3V2fk1tPjt6YHxaWilAQ1cx
a3E3S1kjKUNfSWB8Qgp6PjIhZmZ2Ul9iTjJeUndUOFJINU0/UXg0Q29NO2I1N3twLTMod0cmTTc5
dVIlIUhBUCk1K0EpO3RhZk4xYlFyWD0KeitPZ1lsRU07QzRrS0pjdERvNSY9dFlwJWRHP0F7X3Y0
Q3o5c1QrblRIdSlze19PZ2xYUnhGQW0kNHREY1ozZD0yCnp2U0p8WjNiOUUjSjIlSmYkcHljYCNK
a3RMQ248cVM0S2g7NGBsQG83MFdeSC1vZnNgTXVxI2pfZUVWbDUrYUxvNQp6WXY0OTw5IyF4WG9x
clQoT0VYVUF2MU03bD9jKz09KX4zUjlqQm8qSm1gflhaVk1hXlJYMTc8PGdiNUYzcUIrZkAKemxa
VXpZOHZtP0NPJiZqbXVLOXlyalZaNCVZSHl3S2p9KWpJU1dBWWlVQnh1cj18OCslSj9qd1JgazZC
bykxR241CnpTRks+MUB4dCNmVWlZMkVPO149R3pYMDckcVMtVXomVEZ9U2txRCpYMl9eRzkwUjVL
fiF0VVZgTGtIO3REeSk7QQp6VHFydU1WMEwyPUxFTm5sSlJFI0RJUUR+KSkqRXl3Xy0qY2dAYU9r
NVJXdlRYc1R4NipySFUwSThycjspODNBZ1cKel84M2E1SjUhVFBHTjFsKEc9MHshO2ZhfVVxXmc1
NU1BVE90T2t9QEFXVkBnOFMhfj5fWWolWXlkXllvZDlXWW0wCnohKWBpb3RaITQ/PjEqYyRxKGZl
RUlGMCgqKDxPNlg/Uzc3UFN6TDlsWiRVYlQ8Xl5LcWBgYjMkWF5WK2dIfjNIdQp6ezRVamZobVkq
fmkxNXo+a1h3QW5nIUFTbzcxK2IkO0ZebWZxTzgqREMmT0pzQVJpY01PSTtfa1owJEh3NChlYDgK
ejk0dlQ2MHpJbX1WVVNDIWx5bmZtQ1dyZyhTbTdfTVAwNU5ZdFFoUk4lfGhtc0ZMR15JTyRuaXsr
V1hXY08lO29tCnp7Q2U8PEU9MWprS2taP0FpTnklMGJ+NyY3JFhwYFlYMlgkLXllZX1pe3NQYjhj
dzV8YzJNKEQxNzBYST8lVzRORQp6OUo+RHs3MnB4V2tRNjh9ZVl+P1JCQWVsdmh7MlNgPTBQdUJ4
fVpNX2sqMWo2d2swKWZDNT5Ud3dWKipINU1aJmMKemBvTFFNZkp5MXA7ckc8JVUrZyRqSCZQQFJ4
R3h0VylDI1YqTXkrQEh8SlU0d3dgblN9IWB+MExDMEZeITtfa2VzCnpeKGpffXhoY3UwVnQ2SDBf
VkhzVkc0O21DZEt1OyMqc1o8SVBKV3N8K3IhYD8yPWR+TU1MfUJgbjFHR08lRC0yeAp6MWFReXdg
NF9KKl8hQGRHYklYNVo5e1F3d0xoZz4wSntVbk4tNEtEaE5HMjFKJTk1I1h0eEhkTVZNSUlibmtw
Sm8KemdJWjMlPlV6WlQpJFh3PXhpemEmMk9AalNZTD5mIUM2blNeO0p0Y3dWSmsrYmZfbFlTUmJM
ZWs3Rzs9JGQ5dkQrCnpIMmRWXnNwbk5iVzttbkQ2dzcoQUokQnNtNT9YbX0xdVFvJUtPeHE9cGxY
dipkdCp5KnRoY0hzUSNmTGJKKVJ2eAp6OCtLPF5wdEBJNTc3UVM8MUc3dTRYamJ4KFdySDlYb0h7
QHYqPXQ9eWFpNlF5RmJiU15Rakg5SGVeUnVsVVR2a0AKejxSSmw+KFIhZmQmY1RtPHxBV3JLaDJ7
QzArVEBBRW9adFFBXl5jNTd0OGhAeyo/NEsobClYYFhrNTIySHlMd0tWCnpzcEl0cGdJQ2dEX1Za
KWYhNzczNHtJO0NMWUZsWWFnKnxPTTZpTmJ9WFAmcnklKH0hNnJwe3p2bEpXNCpNYnFjUgp6aTcy
Kl9xJlcrPG80Uzt7I2AxVTdIR0VgJEhuUzZydnxZTmd1M18kKXU8RFFIUjt3aVNkV0ROMzdDRFNk
M0dXMzUKenklekNfUEtYYnR7dGQ3VldPR3xiPXVJc21HYiFgN0xuOT9DWSM+fCokTT1ydllhMWQk
MnhANkRPKWRvbUlmeVJ9CnpVMVBNQS0xNk10VSVLZSQpYDBlamBQISQzbz1FKWtVJm40e25AP1R7
c2pEM0lhSW1lQi1MRV5eOHloZCZhUGQ0Tgp6ZjxMZ0Q8bnlrcHY3PHpVTXk/IzAxdWVwV0dQTzZZ
N0pTQmJ3eUtBSWMkR2NSPykwfUNEXmV2VF9LPl5PTjA8fG8KelI0blZeQkp+c2MwQUdicSl6Z1Mp
SHFENnJMTGteYlIkQWZXZXsqeCVhbik7d1pBcXNPYXVKcTtxN0ZxZXBsfGlUCnpTZVRfaThxQjhh
Z2khXiRyIXUpX0dOJEc8bW5teWNtaVVAbD9TX3NkI1EobzRlUFUhJTVgbSlNenA9KFFkdD84TQp6
Z0g0OE89Pz4mNk9Ha0RlJllFaUdDMXxJKmFhOStlYzhUfGBVUjJZT3tfS3dIXkNeRVMhJik3MCVz
Tj5XZWV1JDgKelpocW98ZDVlI0IySCtQUyp7I2JUUjs2fng+PnZqJTBDRTtFeWIpNHFjUSk8S24k
JFNiJiVmMCpVNVY0aGtxZCNxCnp3a34kYmd3PnxCViZfVVk5U1d+ZitsTkZtJD8wajc0SnFHbFZG
e0lUQjw7RE52NjBufXAzcSZEdjRUXilHb3hPawp6X2U2Ulp2PyVOJDs9TiFMSkNEQHRkfX0+NkAz
S3IlZGU7JE1Ya1Zla04tZERLN2VVVVpsNDJpdTRxUnwkQypJbWMKenNLSXM3bnM3KFNVOXNSellU
Q2M8KiNCMU1eVEM2eWpZQWlObm9oMWleM21EXkpGcyl2dVJkNn0jUU1kVUMmbmpqCnpKQjJ+RUlx
ZDg5Jj1aPjxUNUF8TXlmZjBDcGdkP2FJTUQ7SHo4ViNNJkNsTEdBWjBSVkdLI0AmOE9tPCZAIVlx
fAp6U2tYVzRUSztnYiRefVVqNkk/OCZGITEzSFFidX0qLTxMcVFvbF9qdiNQJURTJkFHKT8wV2xz
cjN6bC1fQ1R4XzIKeldmZy11JFU8cj5Eb192dlRYMmFDTj1gIWZqQUp+VFhDSE8rdSpVTyo9IWVk
dGh2czZDJkp5VGQoclU4fFNYbGJFCnpmNzhCQUtBe3J2PD1nJTk0dm4xRWJVe1VueG9ebTIkKStM
U09PI2VFSkB2bSsrMUlsOVRwO0ZCb3Qra1ApMFZDJgp6b21TOHRXdE9jPGd3bWEoJDEtTXdDfjdG
NzJlcD87aXB+MmlfdTVRRzxjRCtXZ15KVW1NVkd8WVY4PEFya0tmTHQKemEzYHwxPUNZPVNRUyky
MkE9JkFKVCR+VFJrZlUtJCNfNWhXbn5Wbzs3QSZHalVKYHg3cjRibm9wPUBsSlN4eUA9CnpmS199
O1l4TDJrbDE4UjdOZ3YxO0J0b3VlI1RTJnJ7MUlka2tVLXNHSSFkZyZwYXNlfT1IMDVnbFo+Klll
WnZQSQp6ZXtzazFhc0o4cVlANnQ0NCRzWnIpNDJWT3NZZD8zaDhaO3t3bCsrQEo2dmc5RyUqa2hz
dGsyaFdrVkRGZkJDP2UKelNqVzRtYHBheHdKenE1RUA8WXliXklxZFNYTzVTKkE/TTtHOXYzPnxN
amFOKVR0V2tSNG5ufGJMbilqeV9AMXM5Cno4eSk7ejRCcU9gJilqeSk+JGpYI3p3WjBreEF5JHVA
bndOTHR4d1h0eUsxZCYmPGVeZGpxfHF9Kkg1QFckS3EyaAp6eDRlMSRAU3wqVShIUTBodDZ8UW5S
PU1tPTBfNUg/dz9eem0zeTt3TyRtK0ZodG47ZngjRDZpb2t1QWl4YmxwPFUKekIwbHBDMkhVfFY2
QW1VNlA5Tz1TOGp4SXdrUnFgbnEpVUtlXml4Jm81K1lTTElzQCs1bFU9N2I0OSt9Ulh4K0JMCnor
UyZpXiRPWXJvKmc7RHBhfjZhZV4yXnp8UElzfHs0eSRac19OSyNWUVBuJlpucGEqcjtwcSE2VSVC
P28obSEzOAp6YTNudkUwZlpQT2FrayF9THkjVWN0N310R1VtNmBXOChkYGZuJDZVUUJ3I0xNUHxy
VnszZWtKS0FlOCE2QXVJRU4KejZzXlNhMkR1fEclPlVtMmlTWW5lRDZWJjxzYjd0NCViZ0lyWmFB
d1hxc2l2bChPaWFNRHRRTzcrI3IhUmI4fUlYCno4bCktJVpxUkFQd1BpNG5ZNCFIdnZWdnozdEs2
JntuWC0oX3tRb0hraigpWTFra2MyUWU3SkRDdjB+N1JQNSZAKgp6K0x8ZHg9a0ZXZSN8aCt5ZXso
QGEhe1FeZ2lgWGUrXkJvTmc9XyhkQz1rciFSLSo8VDlndUIrXzViPkU/cFFzO0wKemVlNTBGeHto
KjM+bClBO2RUPG0rNGxmdmk/JHNfPV5IRURmPTs/OD4mSjQ0X0V7Pz9yPS1YLWczVHUtJVMjKHUm
CnpeT0JJTnk+JH1HOGZINStoOXdyQihBQ3dXUDtQbndXKy14fVUmd2pERkl1fVZMOW9kbDtYSUd+
MWJheTdsQUdVKgp6cWRpWl5ZSj9PQjBkSyoqWiQxNV5PR2JfUUBpIUxEcDBebzEpY19lfTNFKTtT
MDdSMzUyKn1iYjVsejAtWHBPeGcKeiMqVSFyXz5gS0R7STE4QT5ObzhqUyp3NVlLKVE3OSM3dVFR
eEJMWXdJMmN4OE9SI1RuZTQmTmA2a0ZLUXU9bUV4CnpYTGU1OV57YHVUWGpoIVFwVShFMXtBeGNS
eTsjeyZVdmcyfnB+TT9FUzAkKHdIajxoYEdIN3w1O21TTDQoVWJ5Sgp6ajdEK3RvbTUoViY4fHFu
cEs8QnVeRD4kQHJBMGZHdkA2UngxR2orIUU2KDd3SnBVe1ZaY01jbVROaiFWa245e2UKem9EWExr
R2B9bjljKEhWcER1MFMqPiYtcCY7SCk2NTQzXjFaYzBTTmo2Y0VFRnZFRCs7P1ZPP05oYzxjSFI4
KEpBCnpifkZWOERtJS1CQEBVTyY2TGVXUE9+RFRHMmxkamFkQl5MejxjOGVsak5OdzBgcDVnZW88
YFFUOGhsSVJfaHVhcwp6VjhybVVnTW49Sm8+fGUlTmBJNE0mQVJiTzhfcVokWC02WCYleDJQYWso
SXxAV1l6YzIxaGFqdyV8NFImdD5uKFkKekgpaXdfSTRvKmdUMWZoWSVzYFZaN0JWei1ISTRDRVd2
IWkyWn5fP1F1ZUFIS3ZxMmJ1bV51SDBzc0NQMGpyKj9ACnpNITUmUE9OeDZRMnRtX2U8UjlvMj4o
anpNNmpZdDEzfD19JTEjJkt6NyFEfGx2JkA/Uzk3UngjbV5DWnJEb2RvQgp6XjQpTDlHSHdPTHA0
T3hScjNwcDA2ZTRDck5GQmpARykqez0tY3xXVzYkcz43PDQ4YWM5czF4dlYjMT0tKmhOej4Kempx
SXZQUGdzKUF2NVZoKT4yeVFoOEp2R0BwUEoyZFJoNnN4cSM+RHE7eWRkJGVebEZhMmtMQWI0OHVN
SnZINXphCnpWTSRIdUQrZHk8aENgU0VOT0p7VDNKQWNPVERyOFhDTTM0biVITFgmeWg8Nz1lVzE0
YUFnPGsocWJ4KUMhd0NBRwp6Z0Vae2pGeFdGfTVDPz13NGZ5Y1QpSDhkcWlrVzIjSSZfMkF1SEFQ
JVhNZkw/XjBQU0sxM2VnQ29TUVVCRjIqYEEKelBhLTNfK3pVd25PN21YQm1RXmdJeUxDfERnKCFe
R1RLZGlLZykzLUVYLShCNjJZNnxiZ25WM3deTGg5QU9fJXZFCnp1K2VrKTl8XnViO31jJk53X2Ra
OHpXYTlteTg2ZUg7NmF3O1JEQUR0SmFNazxUQ1U5ZENWYn5xWXlFNGxAQTZHdgp6LUkoMDRgKm9Z
eSs+RS1pX00xfnJ3X2tLb0VXMGlDbUZwZWgkWU1ucio0P3RhOFVAZkU7I2ZaM1NESikxP3xhJCYK
ejFJZTxaV155OShGfWU7bFIyRTZZQU9YI1o+YyNpYGo5YmVOVD01d25TIS05RlArYjlOWm0qV3Bm
JChhKmcxbHNgCnpPbXgjaTB0fDApaXpffGlefSRRMGs2NHJ5SXwrUmhPS2IjK09IYFY7S0ZYNGJm
WXpxYXpXIz1BRzZWQF9XPUg5Ngp6T0JCMFlNQ0RKV3RYPXVAeGlfMDEkfVZTOVhle3ZkRD52T1l0
IT9xUXMhO3FsbzlAX0ErYl9BPnA3MjBKYSUkdmAKekRlcnpWeStKQShMaCZ+Rl9IPWYyXmB2KCpE
emg/QyhJflY9b0MoaSphPlVQQ1V0KVltOWVFTHFHWD0/K1BOfkQkCno8d2sle1QlQGtDP2F9ZU98
OFNTQVdNPHtOdlYkR3J1SEpyVyNrQFc+QU57PVQ2YE1ePzcycWpfRU99K28yVzdXVQp6M30mcVc2
UihGeUUrPH5valpeX1h6dklhNXghXm1vSXFNUXNFRGIkaExeJGJjaX05fExZck5GPyFlLSMtKXMj
bWQKekl9eyRYaU5lTj0zKlEpdFZ3OUBHdihEfFpxRz4/ZTVqTTBNaGJjOHtaRjdSbiUwO3U4QHY9
NkRyYGJ2Wio3VGRVCno/KSY9Jm91PWcrbTU2O35YZCNuXnBkUChYdCt+e3EyK2oqcHBgNzstWXc9
QVh0bDZrbGhiXyZTRmtxSVhiQ250YAp6VFo7K09KcVN8KXUqbmBUP19nS0lpb3xnOUhjWH0xRjlr
bkpRPng2ZHg+dFVHIXxkc2E/WUNsam14I0E5ajxrVDsKenpOVChjcjVqXk1YKlA8RE42dylKM2cl
eGpedVRNQj96XjZJOE5NPlJwKDVvTzJZTDVDSz89YGVNc00+WVI0MFc+CnpDSXMwazYxRldWbjNv
dmdma1d7ZWw3PjgqSExHXnwwfGFmZURAZXNpNSpidmgwSyE8fVhkSVB2RCFneXMtSG96Zgp6XzFU
YF5vPipldD9xKmtpUGdTI2J1V0BaI2J1eDZfK15tJntzOVUobmQheWBWZXJLJjY0REBZTWkoMjlp
cVpkO08KejFwIXglRHxyZFAoel9WQ2FraCVJOUAlY2E2TFVzfSlKcFl5QT1ZPEErSTY3YFh4YGpE
Zy0xSGpRMy15PGFlaDdQCnpgXn1EZVkmZHM7Mz05UEcwd04mR1IlRmBeYGtMPWNiPkRtRUs2aX4x
Uj1nVzNRWHZ9ZEVQJntXNTFsfVZiPnFwTQp6Mk13fW9sOTlefVk4KXskJF80dm16eWEpSTlqcSM1
WnFXPXAxSyR6VjlvWCgjSU9AcDlzRGxOTD5aRTQ3dWM8cnwKenRHVXUlYVFfVzZLWHx2KFJeIyli
dzN8Y3M/cTU1KiNqMDZxcGIoYENSO3FAXiM+SShhV15TKTk0UFM9c0JwKm9JCnowX0RPSHYrWnIp
aWN9aSslLXNSZSlfS2M7KEd1c2hMQG9GNSM1QXwwPkE1V1glYGcwLUtLI08rVGVtentHWDk/Pwp6
O0VRQHhNQGNpfj83SmtNLWZpJHFTYCRTeStATUs9UjFkdVl7JXFpMG5Qd2FPKzY7emR5YGVIYHhv
N1hBQlctMSQKenkkI1Z8Smp1UjkhQXZRUlhoQyRtRkpYSXo1VHUjKXFqY2tATlhhK2FLUkAqVHB9
OXtDOUJIRXl3an4qelAhUTRCCnojRXlsUDRfVEhITHFRYFBHVVVYJmJUU3BiQ1VJcWctVGp5T0tZ
IX0tJWJqZXR7RU1CUkhQX1VDK1lubjlicDR5Kwp6WnRJckQyU0FfTXE1SyNPUj5ZS058NUokdU5A
TU54NzIzIXJRanhNTiE2c0w/MEBAZEVDNzBLMCMjaGM3PXRsRT4KekU0YjJHXzxxPWotfGB7TGhi
JTktX25TNHhOfXw3NFYrSmJaZUxndChqZSh1ekE1TU1CZDhQM2VPRHZZZi1XcGFDCno9aylBOVMq
PnIwKWoxdzFqYUJBdzQ5Kz8wQzRmfnJjZSFhK21VOG5KTSRUJX1ZcXRiellie1BXKjYjNTRtUmZT
dgp6cytFUHVAVTZWMD9eZFRKPVVtOFJxNWg2KVJAYiV+dCtIK2w7dVoxMWFXeU5EaUNHMSY+fmY0
Yz5fSXtwI3h5PDEKem1gdGFTTUNQUkMrPGZQLU5rXy0tOEpjMT45fHxXVGxpVDxCVWc8JFNMUmYq
MlJlclFuJl9ifUBoV3xFRmRnUmN0CnpWSDxuSUBuQEQjeEJiND0/fjZ0RytrQF8xfDhWQnNrR285
Z3o2ckJaSTkhVXlHVmI8RWhoSTltNnxWKylTTE81Tgp6P1RJLS1RQE9pbiN8JHNaY2I2TD8hbC0/
PWM/P1Z5JSU+dyRmV35ZJlg8JHFUZyYpOUs7RDlaWTRteTw5dDI0JHIKelZ3M3x3KTVUbUYzNjFx
Y3IpSElHeUNPSmw7MkRpZ2paP2pFMWdmajJyb04pSWA9NjstdEJiWXd7RmZzTjdhI0tQCnoqR0Yj
RWZSazcyMlptPSR6SX5zMV4mcSsqYzcwLU1RQSY/SFFSQDdAISl3X01hTkxtbiY4RCt6SiFiQ2Y4
REF8Rgp6NmRfZzByMWV6dms5PCp3PWQhVzhQUnVhKEJ9cT90Vn5SbTIzO20pfGZyOShzWk5YVCpy
cF40cTBGYVJucWVDeUcKeiopeH40enFmNGxyTDhJIWtFZCF8OSFUOChvdzBRe29iME0lSVUxSk9T
aFJIMm1QQks2UF5DTSNDVHtMbnc1X3ViCnpJdnNhTGpkanQ7bmhaYDRTV0ZXJCpQdF47OGVkPiUj
bSZRYSFASCF7amBSaiNRcTZ2M3IrTTJpLVE7RFhMK29Aagp6VyhzPk1wTnlvJEc1Jk87PWlMWU4+
WlR3SUt1THZFNzZGQk5AZ2B3K2h5OHo/c2pIYUtRal5nI3t6OW4lZW5XaTkKej5yU0FDLWstSnQo
P25PaSgzZztKaHczbjlfX2B0c0p3YkthLU52YEJDV0I0MzZ2QldTTEZRT3pNejBUNTZkaHx3Cnoz
S05ufjFsbzx1WT11PjEla0F0aS1qWmdhdlh1Nm1eNnJfJFgzfCFxTyFkQDdWK3oqViY1ZVZXOG8w
SzUrZmY7Jgp6WkZ+cFRVZitzJCgmbF9GKjFsRn5UPzIwc0Q2digybk5uQT9SKXV2SlFnaWphJmFY
fnFqbWxVNCFHM2Y1QCNVXlYKeihITWN+JkMyMyVTQEtDO25Sbl5uK1BAcmBgSWp+JlV1U2NNZS19
PWh6eHZLYjlFOThHQ2Q3WjFfZ0FzWnNLPjRsCnpnRjJvKEVKaW45aDdpKGRQYmdKb0I9WlZoRWxt
TDdxZWFldlVQQEVLQzhhWHg9KVRLcXIhMjN2PHlMfDdyNXVPRgp6YHVAdSFDK3Vteyp6eF9MS0so
XkxFVzVoSGMqKXlkdnNLYllVQmZaezx5RTs5Mm40NlN7SzMoJmQ7fT1KbFhjTiUKem49Z0Z6ZXxA
XyNyflVnPUdiZ1ReKEpeUClfNE5WT1peRVNIY2FzZzFANEY8T2x2T2lkR0xnMmNFMUteOyt5ZGpg
CnohYThQLSVZWChMZ1gtOzlybzgoZmAmIyN1byUtJGpZYWNuP1khVXQoaGYkJTVNdEFYK2FySkND
cllma35iZEJgOQp6dH0lMVVVKTlzdE9XYiZANDdJSUtJXmNZJG1qSmxEUFFKfjM2e25LIyRTekZw
Qz8yUzhtP2AodEEqSEw1KXFebSYKenkrK25hZG8/OyE3Unt8cXFDNWtBQSo0KW08T0A0VTQqKjQr
a3hMLTAzJkA0PFBzPzdZZVNNMSNKbTxoTF5MeGImCnpOalFCaHlULTdkKFcmSXk0UUNROVZaPDVD
fEVNQEo9MCZIfWIzPDBkZn4lMmZtNDhtdCF6fE1WLXB1OGsxaH5vSwp6djlWQWcjOHNeUFpjX09i
QTVtPzkxZ2VUTy0jU3VQamx8MSpDRn1yYC1kOF4haWAqalh4U2d0PVVzfTJITj1Qfm8Kej5ee155
K3hPSGJ0dmpXP1pOQ0ttTyVQPj92aH5ielpvRlQoOW9BeEcmT3g2UnNrZGpaTSUrfW8xRWpVUnt7
dnQlCnomWDl8TGpxSj9Udm8+d3VfcWB9ZkJfOHh4PDQ9RGlgXmQ5eUY7cVJ+Xmp1bUptWG5GbUJo
PW5lVz1qVzI+RXdoYgp6P1k0M0R7RDtScGdZUilTcnVzT1NvVF4wa1h6biMhZE5OPT13SD94cyY0
I1FAK2hsZ0VoXjVRTj5kQEcyMldSSkIKeiV8amBGUmh9OTAoKGd3UGAwP0VAOH4hdVhfZzBLfVlT
QzJwQCV5Zip7PylYXkNFPUdyOyZuI2QocGcoKnVPNW9ZCnpXZjJYZUI3Jk16NTt0Q0ZqSSZDe2lA
UFRReEpHP0dAMVBZPkB7b3N3PT1kNCtnN3t8OGIkaWtWO3pud0ZYdExaNwp6WjBgeUU/PUN1Wmdn
QlJLXm9zJjwlRDxzcSt3JGVxXmNWb0F0WEVzPDIjd3duN05TMFUrRypPI2lzcGJAY0krO14KeiMr
Jm9rI3ZTfTRCTTZqOz9oWD4mR0hYYHdVPnB6V2dnZT1jWUB1XncmdW0kPWFMQl4/SHpJIUtNV0pC
SXhiM0dZCnp8R1BLWlJhMChOcD57UUVGMX1Paj4qI29TbExtR09hUERjcnZjeVFKTkQxKk0/QkY1
d1VgSyo0cnRhcVFWMEVjTAp6UXJIX0k2Kj4hPFFGK2UlNmJIWENtakBpI2Zyak1rZ2VNIXZ0bk02
JlhMSzBGdEFOV3p3cz4+aVhgXzdHPytEJXAKej58UE9lVDBSREVzezxrTHFZaCRRIVArKzQkVU1a
QnZJRzdOVSQrfmMtdzA9ZTU4eWRWVjJjWkY3MTZeXks5QTJkCnotantJJFpmdE5TbWxOMDFWJFUp
dm1OezsyJXdAVig5fW1QIVVgVyZ3MVRELXZNeSglWXpxUmhVdkJwb3w5WHJSIQp6dVYjSEJoZDR6
QWd1Vm0xRHozaD1UKCFSSjI4JHJlR0dYOWlUQjNzJCg5eDNROUtad2BOZUN7KEV3K0lTb1hgVEoK
ekdBY3IxYVNjYlkhbyhfQXAhLVA/Oy1aZStjfUlqKE12dGZiP0BtKVpYSmtyQnlBUzxoLTRaJVZC
Yl5yJGEoVE1qCnpIcEBsdjtxVkk2cVJ2RU1kbCUmUmNPJiFXbl9INTYmNFg9SXR2Zk0xRDVOSEBh
Z31wOHtkdTFGdWd8ISlFSFFrKgp6TUVucilyKkkwRGprVGBiPzdycT01e285e2UtNipLN0klPSFL
R0hzfitfLUd2JjJ1fkpNenBfdGBBUnlpISs/cU4KejQzZiNzOF9+c0VFRD1pUHIyUWRWZ19Cfkha
eVI9K0IofFE3ajNUPHFMKzY0WnFISDcoNyYxfDk0d0dHUiZYNV5BCno2cDlzX0FPeTtqeDhSa31G
UjZ0QG9QJVcmKmFNU3lJNEhaWiRkISspYnB2a0RAR3d4IXpmc2QtXylsUnlpLVREKgp6X1VCN3ha
czl7eyl0SDc8X2VXVHR3V05rTURDZ35jR2o3YEJVJGdgZGUjZV9eISQxNGJNV0orQnd7djc8SSZA
JW8KekVLLT82P05KQERHSHpVS3E0MHUkO0toYT5KaU1rXmc2fVNkVmZUfDhQdFVAfGIqezNBMU1q
NGRebzQ3ST54QFZJCnpzVm10Sj5IKCZUVnl4JkVaeitgTkZuKGopQDNMamlPP1NzQXBMSUo/OGhB
I0NqbE0+Mm0mPSRMbylHLX5HTjVUTgp6P3o5N1pJaHtEdWFlR29eK21LTmMzOG1QVjRBSilZZ1kp
QmM5PVg9M2JvS24lKkhlYD5SWGVYIU8oITNHJiF+SEMKenRCNSgyYUBYMlNlYig3Izw2fS0wRUp1
fChWfj5ZJm15Rk1qe2tLS2BHPCplezczdTR3JXl8OERadXFRR09YRkw1CnotWSsoNUhnfCN6eyh4
RlAqUCNrYiU9fXpTUEM8T31PTT9xby1EKyFuJDA2ejxxaEtQKHNEO0MjTksqVTNBIUF+VQp6cU9y
SHIoRnhIZXhWazV9TC1YY2xUKDlBRTE2eWFDVF9eU3FgYm8+fTRqRjg9N1BfeT1Wbnx+bXtJWTgr
Z0R9NioKenBzYEdASEkjR28zJTl8LSlXVzNzIzhneiZBU2pSZ01kSH5gLTE3OFdIdzdaRkZ8YWA+
RUh9clprcm5DTU1KTDhCCnpTWXckXk56YEskJjUhQTs9NGFmZzZXK217dUUrVzc3bDA2KWBKby0j
a19XQmdHIzBgb21sX2FLZDZMIXdRPFlvPwp6WHBIbHIlJmBXVnFlTDFrOWt9Vj4taERiPStyfjNH
TVhIOXZEQkY5QSsxdS0rcWB2b05PZlR3NyQ2fS1wUFI8aXIKemlZYV5gaV5YKlM1dDl5dnFNckxH
OHkjZVRKcElVbiZKYkhpaUZHRTk4KChnMjh5NT9xTG17Kj5lMFJmP2NVRFlLCnpSe3JfJXVqMn5e
UHBhc0QwfFFrdmxDMztjX1Z8KUFSMSVCJnh1dmVASUR9dlgjOExNKmJBWSpKRU8jTmxROGl2bQp6
a0AhNGhRUGQoVk0/MH4oNFNMU0Z2b05XcD4yeGEhJTRrR0c+JmVDV3opRmdTVmU8SitIKEpqZUJL
S15GTHZ0WisKej1IeWwlQnY/YzdQTz5qdlN9MDJkM0s8JXE4IVVSKmhka005RDBXOWwqS19UNGhs
czNmKyE3P0x0cER1XmNsdT0zCnp6Q2E0PF5VXzBgOF4kRmtaZHgoIztQVXdeQmpKPTleUF9jX2NV
SjZwZH54fURiVFdKfVp1bVhKbXlGIW9ZUUYxOAp6OH1ZZWwyNFhpNHF8cHJTZ0xpcF8wTzNmKWNV
a25VYUljPDM7M3VAMyppI2drZG4zJmtBYkxQSntoa3xELXJISVcKekVwSVVqR1FnNmJ5ekAoZEBk
MSR5cUY8MUdNPFNiUVc7eUtkbHtfSiVPa043YilIJiQoXllSTHhKNWVSY3okT048CnpXQX5mQ2BO
Y31TYzB5X0xERFBSMT83IzdleCNldyF3M2ImLU55cUB5K1BxR34tKz56ejlgMnNgcV9NKEBOVGdl
ZQp6bUxlYl9BaHBaQjhsREM4UnRrbk5RT3QzT0tgK19fSGdmUGxjc0s7NHt7fT8lZFFuPGo9MHt1
Q1AqX1RzVz5FK2QKekVFVHRyYVR2TFBQOVgyYkVQYGJobTZFQnE4fVA4RS1fdVI0ezhGYWtqWGJE
VG98c2ZmaEFTb3VZWmx8RE4pfCs+CnotJW80SXhYMCVDUkM+PFFjKVlQPGRHZVJlV25lQjsqfkNP
PSFhNyZLQ1R9YG1RayRPcU1mMEhwQXleZCZzZW0/Rgp6V09rT2YwVyRlfS02bSlUaCtRc0VIS00q
UmlLcV94UW0wSm4kcDgwJi1zcjl5NGEzOShLWitXYlheM2VWQ01LUGQKelpfVVojbngtIXp1bkV8
TCUmZDNZYGk9dl85NEgte2tyOFFLTHg2aDkpWUx1aCp2dSFUckdmazJedm0oJCYlaTlaCnpZQFNp
XnFqYExaMU4pYWJlMVp4Njl1PEhWQ1ImPktlJXEoeXBqPnRCJUd8KDNeX30wa2N2PEp2cztoOStf
ZXxHMgp6cnZzeio+YXV0dnolSTYkPkA1XlEoZ1NTJE0yQUVWaXQja1VmWWQ+a29UN2t+Y3c8Uk04
YSNHRUBST0QodlM4Z2cKentOSyhERChfWDRnTVpQWnZyMF97ZXFXbTU9OU5nfmpnWCQ7MW82Q2Fu
NFdGNj1BNTNhMUltSnU9VU48PWkrVGQjCnomfip5MkkxcSR8JHomZDU8Q1MqVnp4TDZje3JAPXM7
WGdqJitOcVhoWXd2JjtfMDZJX2BrTV4panpabDMkPzRQTgp6TVE4RXl6WVA/K2NMWChuc2lmeUFj
TV9WUWZpfXxuYSplUUZtb2pLWUskPXh3PXp9ZT9yP0w7KENBSyZ4P3BNenYKejRmMUslXkMzeXw7
PnJOcCF+bmFaTGtPUX0wTW97MXtXfClecm44RHFpRjdHc0wrfjJ7QXk+UnVgaXx6RW4lMXtNCnpN
Nz9tejkrRSFycHFuKHo0JUNJO0BLeTdmMU9NY3pveWxiQjExWVN+Z0pPaGJZKSQpUzJpQmwwdzBX
bGNyTiFxfQp6TiUyQlEzZmh2bkN2TEprUGo7ZDxOWEw3SG0xciNocG1tblAqSGVuXyUreSVwKV9R
dXU3OTctMl4tWFZrOCNpTjkKemVrfXdSV0FzVTs2a0tZT3k1IUhKY3tsb2NnMkk5VzA+V0Qwe0Zs
RFA3XnlnUmclTUVAVjhFK09xcnlVbXB8fiZ1Cnp4ZnYjXmEqMn0oKUl5YmBkRVM4ODwjPiFFZF9j
dmIoaG4qWlR+an0oQD0tWHhVNm1yRDxFNTN8SXhIZTY3aVheeAp6NEp9Vkk8Q0JMVCkwezwkP2cy
RUgoaWdVKGdYSlZ2R1hmPXo+M1hJUWVATnkmejs5Ukc4KTdgTjFsRXtsSU1fUCQKej83YFFtTFI2
NXBeYDBsQD49ZyptMWJzZjZUM151eXpENklyU2stMX00dj8jPHFQbDBBZ3RGVkxAYDR9ZU1KNF41
CnpjYUtrZFNDcVVlRitMYSsxX0pwSjd8MDtoNDJHfj1CQihrTk5fQ00oU2gjRjtXJEM7SmY9MVA+
aUc2TjxjKz5TaQp6al4rNkBDZ080Y0xjQUdAPC1pXjdIOHlXclVJRnImd35mRiNNRFp+X21Hb3Fo
M1czPUc3MWFmaz4hZl5MMjxMQUoKenhkRkJHNUNCUWg9I2tpKWcmOHJuTTJDIXNPY3JPU1lNbngy
JlQ8N0gjI3RJSVEzNFJCa1N9RmZFV0ozZzBIZHB+CnpWe2s3OSo+KnErLTZyUEd7PDd7SGA2RypO
TVcyfnJtNndUMlQxOGtUbkMzb1FEd0FJaVNjVm9vUHp8X1JBfUt+Wgp6dnN3SFF3RDJLMkU1XmUk
Yyl1QiFudjczJXZVPHRvaCF0aT08K0Q5S1VWS2hrOzU7aGojcHZlSiFAK0EmK0MlKjMKemAteyZw
MlNgPiV5KH5gKEtQSXt7WHEke3Z6SmVrUmVqYkZjWUMxMU89N09hQ3NobmlXRXJPVH1jd0l1KmBp
bzE7CnozYE4rVFZrY3dsTWR9UDUpXyFXPmFAMlJ0c3QpX3VGP0gtTyZSNit7PGpUZ3xER0BtY2c5
UFlgNiFZZSFnfVhUaQp6TX1RT1hRX1RFKT5IOUc2bWxTLVVoP2lTKComRCEwKkNfXkFaZykmSDw2
WSVBdUAxeWhNKCRZYFM2LX5ASkI0OGEKekRkVzglI3gwOCNST0BfVF5BQ0hLTkU4K3tKT2ApPXpL
PGtHN0tMPFdKal45VDc/elloKDtNfVlmPyl9K0NNMn4tCnoldms1eSpQKWwteXlkdUYkR3RjMyE4
TmN7WGs5TzFvP1BYNUVNVjRNMTFoRXVifjN1ckRwcEt9Q0l5TVhXVlh+IQp6Yjh7fXhORXpxY0FQ
YHNaeWEmSyU8d189UWxvSkQ8cVh0K0tuO2lzUGlecHxZVS04b24ha0x7NSUkKGpWUm9WQjsKekJN
dm8qO3M0OW1JdWR2T0JvTzc+V35ZNUtgTztufVpUSUJTUDAwIUhyJT9NZzIoTWxvP3t2ITlnemBr
djdAbD42CnpGdipyYk9HMURtOHNNQXlfXjZFT1JOT1M2aVQtU3dOTSNUbmBGZzwoVSV4bkNJJF89
dlZ+dHcrPSlyUXc2QHFzYgp6WGd8U30/QVp8U0R2TEgwQE1hTHg8eCZmMmd7VUpgSyNjaTMyPkEw
KUkrJVhDcU9QJUFpPEVxfmZlbEN+T2RYYlUKem9NSmkhX3Y9X0xqfD0xcmB0K3AoODheR2JEM2lz
alc5RCVFallCMVNlMVNZRjM+VkBOTF91bUloQHNjbDtrdENICnp1NmQ9Y1o8WCY1cSlyQnp6YUtu
LUNLJThGYFV6SDBNai0mfFp6JE1SZCRsOyRGV2dWYU03V340V1RKWEJ5Qj5RYQp6X2ZeVyE4KGI8
WlRVWDhsYGxHdnp5Y29QK0tgXkA7cjxqX3BOU0YrM2clfGtKSztlWCQ+THVDZWJhMzBrKGohbHkK
ejEyaCltKXhSNWhPQCN5JSR2bjZTaFhgLVVOV3EjVHc5Z21+Jm9vK24jamcwcih+OXJTbTh4cUlA
fVZCLVZpUjt7CnpDdWk4cDM1OTBzQW92Z1ZYRjJKR2JaI3M/NEBOVnhGKkRqS1daIX5Rc09tckpe
VV4qTyVVWEEyS0ZZSllFI3FRMAp6TTJOVF5AVEc2fldAI0d3Kjt8WVN5JV5IQW1rNzAlUjk8Vis9
b3ErTT5lPnhueV56TWoyP0NNWWcjMXQ/X0YrSH0KekFQRXtFPVZaWj1Yaj0jY1I8IVdtbDVHISYh
eGJTUlFWdD1tTE9sUSgje3hWXzNWbTVUb1ImRjRANF9LfmV6REkrCnpfT21lITZXLVFmI3xgZE9p
PDl9d29gSV5qQWNBRDM+cVJEJiE8PT9pLWNRWDJJfjhKUnM4PEQqemd7biFvJTNxaQp6QHFDY0hz
SmY7ckkjJTlFbkE5M00zaUN5MjcpbksxWjUrUEg0VD5NSlNgS3hXMVpwWCk+JHpNTFpDUUxrWFdf
a0IKeDl7Z3toX3w5VWlFaD5lNiVJN0s+JTJkelQ+aHlYTF9BKmVzamVCUmdIQGlTWjcxKExtaU5D
KHtlKmxUcWhjRXlECgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L3NlbGVjdG9yLXByb2ZpbGVyLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvc2VsZWN0b3ItcHJvZmlsZXItdXJsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWM3YzU5YWNhNmJlNDBjMjQxYTRkZTNmMTY0ZTU5MGNlNGE1
YTkwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvc2VsZWN0b3ItcHJvZmlsZXItdXJsLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGVzdHMgdGhhdCBDU1Mgc2VsZWN0
b3IgcHJvZmlsZSBlbnRyaWVzIGNvbnRhaW4gdmFsaWQgc3R5bGVzaGVldCBVUkxzLiBCdWcgMTA0
MjI1LgotCi1WYWx1ZQotI2lucHV0OmZvY3VzIHN0eWxlc2hlZXQgVVJMOiBpbnNwZWN0b3IvcHJv
ZmlsZXIvc2VsZWN0b3ItcHJvZmlsZXItdXJsLmh0bWwKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3NlbGVjdG9yLXByb2ZpbGVyLXVybC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3NlbGVjdG9yLXByb2ZpbGVyLXVybC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTdmYzY5N2FiNjAxOGFmNjg3MzExODlmZTcxMDAz
MzMzN2FmZWYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9zZWxlY3Rvci1wcm9maWxlci11cmwuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+
Ci0jaW5wdXQ6Zm9jdXMgewotICBjb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGZvY3VzKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaW5wdXQiKS5mb2N1cygpOwotICAgIGRvY3VtZW50LndpZHRoOwotfQotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBDU1NBZ2VudC5zdGFydFNlbGVjdG9yUHJvZmlsZXIoKTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJmb2N1cygpIiwgc3RlcDEpOwotCi0gICAg
ZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgQ1NTQWdlbnQuc3RvcFNlbGVjdG9yUHJv
ZmlsZXIoc3RlcDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKGVycm9yLCBwcm9maWxl
KQotICAgIHsKLSAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdChlcnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3Qgc2Vs
ZWN0b3IgPSAiI2lucHV0OmZvY3VzIjsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9m
aWxlLmRhdGEubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBlbnRyeSA9IHByb2ZpbGUu
ZGF0YVtpXTsKLSAgICAgICAgICAgIGlmIChlbnRyeS5zZWxlY3RvciA9PT0gc2VsZWN0b3IpIHsK
LSAgICAgICAgICAgICAgICB2YXIgc2VnbWVudHMgPSBlbnRyeS51cmwuc3BsaXQoIi8iKTsKLSAg
ICAgICAgICAgICAgICB2YXIgdXJsID0gIjxlbXB0eT4iOwotICAgICAgICAgICAgICAgIGlmIChz
ZWdtZW50cy5sZW5ndGggPiAzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzLnNwbGlj
ZSgwLCBzZWdtZW50cy5sZW5ndGggLSAzKTsKLSAgICAgICAgICAgICAgICAgICAgdXJsID0gc2Vn
bWVudHMuam9pbigiLyIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChzZWxlY3RvciArICIgc3R5bGVzaGVldCBVUkw6ICIgKyB1cmwp
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IENT
UyBzZWxlY3RvciBwcm9maWxlIGVudHJpZXMgY29udGFpbiB2YWxpZCBzdHlsZXNoZWV0IFVSTHMu
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQyMjUi
PkJ1ZyAxMDQyMjU8L2E+LgotPC9wPgotCi08aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImlucHV0Ij5W
YWx1ZTwvaW5wdXQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvd2ViZ2wvd2ViZ2wtcHJvZmlsZXItYXBpLWNoYW5nZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3dlYmdsL3dlYmdsLXByb2Zp
bGVyLWFwaS1jaGFuZ2VzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjQzMTdkODJhYjU5NzUyZGM2NzkxNGMyZjNhNjNkYjM0ZjA1NzdlYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvd2ViZ2wvd2ViZ2wtcHJvZmlsZXItYXBpLWNoYW5nZXMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotVGVzdCB0byBjYXRjaCBXZWJHTCBBUEkgY2hh
bmdlcy4gSWYgdGhpcyB0ZXN0IHNob3VsZCBldmVyIGZhaWwsIHdlIHNob3VsZCByZS1leGFtaW5l
IHRoZSBXZWJHTCBzdGF0ZSBzYXZpbmcvcmVzdG9yaW5nIGxvZ2ljIGluIHRoZSBJbmplY3RlZFNj
cmlwdE1vZHVsZSB0byBpbmNsdWRlIGFueSBsYXRlc3QgY2hhbmdlcyB0byB0aGUgQVBJLgotCi1D
b25zdGFudHMgZm9yIGdsLmlzRW5hYmxlZCgpOgotQkxFTkQKLUNVTExfRkFDRQotREVQVEhfVEVT
VAotRElUSEVSCi1QT0xZR09OX09GRlNFVF9GSUxMCi1TQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0UK
LVNBTVBMRV9DT1ZFUkFHRQotU0NJU1NPUl9URVNUCi1TVEVOQ0lMX1RFU1QKLQotQ29uc3RhbnRz
IGZvciBnbC5waXhlbFN0b3JlaSgpOgotUEFDS19BTElHTk1FTlQKLVVOUEFDS19BTElHTk1FTlQK
LVVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0wKLVVOUEFDS19GTElQX1lfV0VCR0wK
LVVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTAotCi1Db25zdGFudHMgZm9yIGdsLmdldFRl
eFBhcmFtZXRlcigpOgotVEVYVFVSRV9NQUdfRklMVEVSCi1URVhUVVJFX01JTl9GSUxURVIKLVRF
WFRVUkVfV1JBUF9TCi1URVhUVVJFX1dSQVBfVAotCi1Db25zdGFudHMgZm9yIGdsLmdldFZlcnRl
eEF0dHJpYigpOgotQ1VSUkVOVF9WRVJURVhfQVRUUklCCi1WRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HCi1WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQKLVZFUlRFWF9BVFRSSUJf
QVJSQVlfTk9STUFMSVpFRAotVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFCi1WRVJURVhfQVRUUklC
X0FSUkFZX1NUUklERQotVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFCi0KLUNvbnN0YW50cyBmb3Ig
Z2wuZ2V0VmVydGV4QXR0cmliT2Zmc2V0KCk6Ci1WRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIK
LQotQ29uc3RhbnRzIGZvciBnbC5nZXRQYXJhbWV0ZXIoKSB0aGF0IHdlIGRvIG5vdCB0cmFjayBp
biBJbmplY3RlZFNjcmlwdE1vZHVsZToKLUFMSUFTRURfTElORV9XSURUSF9SQU5HRQotQUxJQVNF
RF9QT0lOVF9TSVpFX1JBTkdFCi1BTFBIQV9CSVRTCi1CTFVFX0JJVFMKLUNPTVBSRVNTRURfVEVY
VFVSRV9GT1JNQVRTCi1ERVBUSF9CSVRTCi1HUkVFTl9CSVRTCi1NQVhfQ09NQklORURfVEVYVFVS
RV9JTUFHRV9VTklUUwotTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRQotTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fVkVDVE9SUwotTUFYX1JFTkRFUkJVRkZFUl9TSVpFCi1NQVhfVEVYVFVSRV9JTUFHRV9V
TklUUwotTUFYX1RFWFRVUkVfU0laRQotTUFYX1ZBUllJTkdfVkVDVE9SUwotTUFYX1ZFUlRFWF9B
VFRSSUJTCi1NQVhfVkVSVEVYX1RFWFRVUkVfSU1BR0VfVU5JVFMKLU1BWF9WRVJURVhfVU5JRk9S
TV9WRUNUT1JTCi1NQVhfVklFV1BPUlRfRElNUwotUkVEX0JJVFMKLVJFTkRFUkVSCi1TQU1QTEVT
Ci1TQU1QTEVfQlVGRkVSUwotU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OCi1TVEVOQ0lMX0JJVFMK
LVNVQlBJWEVMX0JJVFMKLVZFTkRPUgotVkVSU0lPTgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvd2ViZ2wvd2ViZ2wtcHJvZmlsZXItYXBpLWNoYW5nZXMuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJnbC93ZWJnbC1wcm9maWxlci1h
cGktY2hhbmdlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGRhYWY3ZGQ2
ZTk5NDU4NzgwMjQ1ZjhkYjJkMzc1MjBkZGEzNWJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJn
bC93ZWJnbC1wcm9maWxlci1hcGktY2hhbmdlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIz
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVu
Y3Rpb24gd2FzRXJyb3IoZ2wpCi17Ci0gICAgdmFyIHJlc3VsdCA9IGZhbHNlOwotICAgIHdoaWxl
IChnbC5nZXRFcnJvcigpICE9PSBnbC5OT19FUlJPUikKLSAgICAgICAgcmVzdWx0ID0gdHJ1ZTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1mdW5jdGlvbiBjcmVhdGVXZWJHTENvbnRleHQoKQot
ewotICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAg
ICB2YXIgY29udGV4dElkcyA9IFsiZXhwZXJpbWVudGFsLXdlYmdsIiwgIndlYmtpdC0zZCIsICIz
ZCJdOwotICAgIGZvciAodmFyIGkgPSAwLCBjb250ZXh0SWQ7IGNvbnRleHRJZCA9IGNvbnRleHRJ
ZHNbaV07ICsraSkgewotICAgICAgICB2YXIgZ2wgPSBjYW52YXMuZ2V0Q29udGV4dChjb250ZXh0
SWQpOwotICAgICAgICBpZiAoZ2wpCi0gICAgICAgICAgICByZXR1cm4gZ2w7Ci0gICAgfQotICAg
IG91dHB1dCgiRVJST1I6IENvdWxkIG5vdCBjcmVhdGUgYSBXZWJHTCBjb250ZXh0LiIpOwotICAg
IHJldHVybiBudWxsOwotfQotCi1XZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZSA9IHt9Owot
IAotLyoqCi0gKiBAY29uc3QKLSAqIEB0eXBlIHtBcnJheS48c3RyaW5nPn0KLSAqLwotV2ViR0xS
ZW5kZXJpbmdDb250ZXh0UmVzb3VyY2UuR0xDYXBhYmlsaXRpZXMgPSBbCi0gICAgIkJMRU5EIiwK
LSAgICAiQ1VMTF9GQUNFIiwKLSAgICAiREVQVEhfVEVTVCIsCi0gICAgIkRJVEhFUiIsCi0gICAg
IlBPTFlHT05fT0ZGU0VUX0ZJTEwiLAotICAgICJTQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0UiLAot
ICAgICJTQU1QTEVfQ09WRVJBR0UiLAotICAgICJTQ0lTU09SX1RFU1QiLAotICAgICJTVEVOQ0lM
X1RFU1QiCi1dOwotCi0vKioKLSAqIEBjb25zdAotICogQHR5cGUge0FycmF5LjxzdHJpbmc+fQot
ICovCi1XZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5QaXhlbFN0b3JlUGFyYW1ldGVycyA9
IFsKLSAgICAiUEFDS19BTElHTk1FTlQiLAotICAgICJVTlBBQ0tfQUxJR05NRU5UIiwKLSAgICAi
VU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCIsCi0gICAgIlVOUEFDS19GTElQX1lf
V0VCR0wiLAotICAgICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wiCi1dOwotCi0vKioK
LSAqIEBjb25zdAotICogQHR5cGUge0FycmF5LjxzdHJpbmc+fQotICovCi1XZWJHTFJlbmRlcmlu
Z0NvbnRleHRSZXNvdXJjZS5TdGF0ZVBhcmFtZXRlcnMgPSBbCi0gICAgIkFDVElWRV9URVhUVVJF
IiwKLSAgICAiQVJSQVlfQlVGRkVSX0JJTkRJTkciLAotICAgICJCTEVORF9DT0xPUiIsCi0gICAg
IkJMRU5EX0RTVF9BTFBIQSIsCi0gICAgIkJMRU5EX0RTVF9SR0IiLAotICAgICJCTEVORF9FUVVB
VElPTl9BTFBIQSIsCi0gICAgIkJMRU5EX0VRVUFUSU9OX1JHQiIsCi0gICAgIkJMRU5EX1NSQ19B
TFBIQSIsCi0gICAgIkJMRU5EX1NSQ19SR0IiLAotICAgICJDT0xPUl9DTEVBUl9WQUxVRSIsCi0g
ICAgIkNPTE9SX1dSSVRFTUFTSyIsCi0gICAgIkNVTExfRkFDRV9NT0RFIiwKLSAgICAiQ1VSUkVO
VF9QUk9HUkFNIiwKLSAgICAiREVQVEhfQ0xFQVJfVkFMVUUiLAotICAgICJERVBUSF9GVU5DIiwK
LSAgICAiREVQVEhfUkFOR0UiLAotICAgICJERVBUSF9XUklURU1BU0siLAotICAgICJFTEVNRU5U
X0FSUkFZX0JVRkZFUl9CSU5ESU5HIiwKLSAgICAiRlJBTUVCVUZGRVJfQklORElORyIsCi0gICAg
IkZST05UX0ZBQ0UiLAotICAgICJHRU5FUkFURV9NSVBNQVBfSElOVCIsCi0gICAgIkxJTkVfV0lE
VEgiLAotICAgICJQQUNLX0FMSUdOTUVOVCIsCi0gICAgIlBPTFlHT05fT0ZGU0VUX0ZBQ1RPUiIs
Ci0gICAgIlBPTFlHT05fT0ZGU0VUX1VOSVRTIiwKLSAgICAiUkVOREVSQlVGRkVSX0JJTkRJTkci
LAotICAgICJTQU1QTEVfQ09WRVJBR0VfSU5WRVJUIiwKLSAgICAiU0FNUExFX0NPVkVSQUdFX1ZB
TFVFIiwKLSAgICAiU0NJU1NPUl9CT1giLAotICAgICJTVEVOQ0lMX0JBQ0tfRkFJTCIsCi0gICAg
IlNURU5DSUxfQkFDS19GVU5DIiwKLSAgICAiU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCIs
Ci0gICAgIlNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MiLAotICAgICJTVEVOQ0lMX0JBQ0tf
UkVGIiwKLSAgICAiU1RFTkNJTF9CQUNLX1ZBTFVFX01BU0siLAotICAgICJTVEVOQ0lMX0JBQ0tf
V1JJVEVNQVNLIiwKLSAgICAiU1RFTkNJTF9DTEVBUl9WQUxVRSIsCi0gICAgIlNURU5DSUxfRkFJ
TCIsCi0gICAgIlNURU5DSUxfRlVOQyIsCi0gICAgIlNURU5DSUxfUEFTU19ERVBUSF9GQUlMIiwK
LSAgICAiU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MiLAotICAgICJTVEVOQ0lMX1JFRiIsCi0gICAg
IlNURU5DSUxfVkFMVUVfTUFTSyIsCi0gICAgIlNURU5DSUxfV1JJVEVNQVNLIiwKLSAgICAiVU5Q
QUNLX0FMSUdOTUVOVCIsCi0gICAgIlVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0wi
LAotICAgICJVTlBBQ0tfRkxJUF9ZX1dFQkdMIiwKLSAgICAiVU5QQUNLX1BSRU1VTFRJUExZX0FM
UEhBX1dFQkdMIiwKLSAgICAiVklFV1BPUlQiCi1dOwotCi1XZWJHTFJlbmRlcmluZ0NvbnRleHRS
ZXNvdXJjZS5UZXh0dXJlQmluZGluZ3MgPSBbCi0gICAgIlRFWFRVUkVfQklORElOR18yRCIsCi0g
ICAgIlRFWFRVUkVfQklORElOR19DVUJFX01BUCIKLV07Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHZhciBnbCA9IGNyZWF0ZVdlYkdMQ29udGV4dCgpOwotICAgIGlmICghZ2wpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHZhciBjb25zdGFudE5hbWVzID0gW107Ci0gICAgZm9yICh2YXIgcHJv
cGVydHkgaW4gZ2wpIHsKLSAgICAgICAgaWYgKC9eW0EtWjAtOV9dKyQvLnRlc3QocHJvcGVydHkp
KQotICAgICAgICAgICAgY29uc3RhbnROYW1lcy5wdXNoKHByb3BlcnR5KTsKLSAgICB9Ci0gICAg
Y29uc3RhbnROYW1lcy5zb3J0KCk7Ci0KLSAgICBvdXRwdXQoIkNvbnN0YW50cyBmb3IgZ2wuaXNF
bmFibGVkKCk6Iik7Ci0gICAgY29uc3RhbnROYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5
KSB7Ci0gICAgICAgIHdhc0Vycm9yKGdsKTsKLSAgICAgICAgZ2wuaXNFbmFibGVkKGdsW3Byb3Bl
cnR5XSk7Ci0gICAgICAgIGlmICghd2FzRXJyb3IoZ2wpKQotICAgICAgICAgICAgb3V0cHV0KHBy
b3BlcnR5KTsKLSAgICB9KTsKLQotICAgIG91dHB1dCgiXG5Db25zdGFudHMgZm9yIGdsLnBpeGVs
U3RvcmVpKCk6Iik7Ci0gICAgY29uc3RhbnROYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5
KSB7Ci0gICAgICAgIHdhc0Vycm9yKGdsKTsKLSAgICAgICAgdmFyIHZhbHVlID0gZ2wuZ2V0UGFy
YW1ldGVyKGdsW3Byb3BlcnR5XSk7Ci0gICAgICAgIGlmICh3YXNFcnJvcihnbCkpCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsW3Byb3BlcnR5XSwgdmFsdWUp
OwotICAgICAgICBpZiAoIXdhc0Vycm9yKGdsKSkKLSAgICAgICAgICAgIG91dHB1dChwcm9wZXJ0
eSk7Ci0gICAgfSk7Ci0KLSAgICBvdXRwdXQoIlxuQ29uc3RhbnRzIGZvciBnbC5nZXRUZXhQYXJh
bWV0ZXIoKToiKTsKLSAgICB2YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBjb25zdGFudE5hbWVz
LmZvckVhY2goZnVuY3Rpb24ocHJvcGVydHkpIHsKLSAgICAgICAgd2FzRXJyb3IoZ2wpOwotICAg
ICAgICBnbC5nZXRUZXhQYXJhbWV0ZXIoZ2wuVEVYVFVSRV8yRCwgZ2xbcHJvcGVydHldKTsKLSAg
ICAgICAgaWYgKCF3YXNFcnJvcihnbCkpCi0gICAgICAgICAgICBvdXRwdXQocHJvcGVydHkpOwot
ICAgIH0pOwotCi0gICAgb3V0cHV0KCJcbkNvbnN0YW50cyBmb3IgZ2wuZ2V0VmVydGV4QXR0cmli
KCk6Iik7Ci0gICAgY29uc3RhbnROYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7Ci0g
ICAgICAgIHdhc0Vycm9yKGdsKTsKLSAgICAgICAgZ2wuZ2V0VmVydGV4QXR0cmliKDAsIGdsW3By
b3BlcnR5XSk7Ci0gICAgICAgIGlmICghd2FzRXJyb3IoZ2wpKQotICAgICAgICAgICAgb3V0cHV0
KHByb3BlcnR5KTsKLSAgICB9KTsKLQotICAgIG91dHB1dCgiXG5Db25zdGFudHMgZm9yIGdsLmdl
dFZlcnRleEF0dHJpYk9mZnNldCgpOiIpOwotICAgIGNvbnN0YW50TmFtZXMuZm9yRWFjaChmdW5j
dGlvbihwcm9wZXJ0eSkgewotICAgICAgICB3YXNFcnJvcihnbCk7Ci0gICAgICAgIGdsLmdldFZl
cnRleEF0dHJpYk9mZnNldCgwLCBnbFtwcm9wZXJ0eV0pOwotICAgICAgICBpZiAoIXdhc0Vycm9y
KGdsKSkKLSAgICAgICAgICAgIG91dHB1dChwcm9wZXJ0eSk7Ci0gICAgfSk7Ci0KLSAgICBvdXRw
dXQoIlxuQ29uc3RhbnRzIGZvciBnbC5nZXRQYXJhbWV0ZXIoKSB0aGF0IHdlIGRvIG5vdCB0cmFj
ayBpbiBJbmplY3RlZFNjcmlwdE1vZHVsZToiKTsKLSAgICBjb25zdGFudE5hbWVzLmZvckVhY2go
ZnVuY3Rpb24ocHJvcGVydHkpIHsKLSAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBlcXVhbCBj
b25zdGFudHMgQkxFTkRfRVFVQVRJT04gYW5kIEJMRU5EX0VRVUFUSU9OX1JHQi4KLSAgICAgICAg
aWYgKHByb3BlcnR5ID09PSAiQkxFTkRfRVFVQVRJT04iICYmIGdsLkJMRU5EX0VRVUFUSU9OID09
PSBnbC5CTEVORF9FUVVBVElPTl9SR0IpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlm
IChXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5HTENhcGFiaWxpdGllcy5pbmRleE9mKHBy
b3BlcnR5KSAhPT0gLTEpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChXZWJHTFJl
bmRlcmluZ0NvbnRleHRSZXNvdXJjZS5QaXhlbFN0b3JlUGFyYW1ldGVycy5pbmRleE9mKHByb3Bl
cnR5KSAhPT0gLTEpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChXZWJHTFJlbmRl
cmluZ0NvbnRleHRSZXNvdXJjZS5TdGF0ZVBhcmFtZXRlcnMuaW5kZXhPZihwcm9wZXJ0eSkgIT09
IC0xKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoV2ViR0xSZW5kZXJpbmdDb250
ZXh0UmVzb3VyY2UuVGV4dHVyZUJpbmRpbmdzLmluZGV4T2YocHJvcGVydHkpICE9PSAtMSkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgd2FzRXJyb3IoZ2wpOwotICAgICAgICBnbC5nZXRQ
YXJhbWV0ZXIoZ2xbcHJvcGVydHldKTsKLSAgICAgICAgaWYgKCF3YXNFcnJvcihnbCkpCi0gICAg
ICAgICAgICBvdXRwdXQocHJvcGVydHkpOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBydW5UZXN0
KCkKLXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7Ci0gICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICB9Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKLSAg
ICB0cnkgewotICAgICAgICB0ZXN0KCk7Ci0gICAgfSBmaW5hbGx5IHsKLSAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0g
ICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTxwPgotVGVzdCB0byBjYXRjaCBXZWJHTCBBUEkgY2hhbmdlcy4KLUlmIHRoaXMgdGVzdCBzaG91
bGQgZXZlciBmYWlsLCB3ZSBzaG91bGQgcmUtZXhhbWluZSB0aGUgV2ViR0wgc3RhdGUgc2F2aW5n
L3Jlc3RvcmluZyBsb2dpYyBpbiB0aGUKLUluamVjdGVkU2NyaXB0TW9kdWxlIHRvIGluY2x1ZGUg
YW55IGxhdGVzdCBjaGFuZ2VzIHRvIHRoZSBBUEkuCi0KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJnbC93ZWJnbC1w
cm9maWxlci1nZXQtZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWdldC1lcnJvci1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjNWFhYTRhMTE1MDRkMTZhMDUxYTdlODY0NTAzNTk4
ODUyMTYyZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL3dlYmdsL3dlYmdsLXByb2ZpbGVyLWdldC1l
cnJvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3RzIFdl
YkdMIGdldEVycm9yKCkgc3RhdHVzLgotCi1CdWcgOTU0NDMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJnbC93ZWJnbC1wcm9maWxlci1nZXQtZXJyb3IuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci93ZWJnbC93ZWJnbC1wcm9maWxlci1n
ZXQtZXJyb3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWY2MmQ2M2YxYTg5
M2RjMzlkNGJmMmU0NDExMmU4MTdiYTY0ODg0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvd2ViZ2wv
d2ViZ2wtcHJvZmlsZXItZ2V0LWVycm9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxODkgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSIuLi9jYW52YXMtcHJvZmlsZXItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVy
cm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotCi0vKioKLSAqIEBjb25zdHJ1Y3RvcgotICov
Ci1mdW5jdGlvbiBDYWNoZSgpCi17Ci0gICAgdGhpcy5yZXNldCgpOwotfQotCi1DYWNoZS5wcm90
b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHJldHVybiB7bnVtYmVyfQotICAgICAqLwotICAg
IHNpemU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zaXplOwotICAg
IH0sCi0KLSAgICByZXNldDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLyoqIEB0eXBlIHsh
T2JqZWN0LjxudW1iZXIsIE9iamVjdD59ICovCi0gICAgICAgIHRoaXMuX2l0ZW1zID0gT2JqZWN0
LmNyZWF0ZShudWxsKTsKLSAgICAgICAgLyoqIEB0eXBlIHtudW1iZXJ9ICovCi0gICAgICAgIHRo
aXMuX3NpemUgPSAwOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge251bWJlcn0g
a2V5Ci0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBoYXM6IGZ1bmN0aW9u
KGtleSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBrZXkgaW4gdGhpcy5faXRlbXM7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBrZXkKLSAgICAgKiBAcmV0dXJuIHtP
YmplY3R9Ci0gICAgICovCi0gICAgZ2V0OiBmdW5jdGlvbihrZXkpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5faXRlbXNba2V5XTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFt
IHtudW1iZXJ9IGtleQotICAgICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVtCi0gICAgICovCi0gICAg
cHV0OiBmdW5jdGlvbihrZXksIGl0ZW0pCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuaGFzKGtl
eSkpCi0gICAgICAgICAgICArK3RoaXMuX3NpemU7Ci0gICAgICAgIHRoaXMuX2l0ZW1zW2tleV0g
PSBpdGVtOwotICAgIH0KLX0KLQotdmFyIGdsOwotdmFyIHJhd0dMOwotdmFyIGdsUmVzb3VyY2U7
Ci0KLWZ1bmN0aW9uIGFzc2VydE5vRXJyb3JzKGdsKQotewotICAgIGNvbnNvbGUuYXNzZXJ0KGds
LmdldEVycm9yKCkgPT09IGdsLk5PX0VSUk9SLCAiTm8gR0wgZXJyb3Igd2FzIGV4cGVjdGVkIGF0
IHRoaXMgdGltZSIpOwotfQotCi1mdW5jdGlvbiBhc3NlcnRFcXVhbEFycmF5cyhhLCBiKQotewot
ICAgIGNvbnNvbGUuYXNzZXJ0KGEubGVuZ3RoID09PSBiLmxlbmd0aCwgImFzc2VydEVxdWFsQXJy
YXlzOiBhLmxlbmd0aD0iICsgYS5sZW5ndGggKyAiLCBiLmxlbmd0aD0iICsgYi5sZW5ndGgpOwot
ICAgIGEgPSBhLnNsaWNlKCk7Ci0gICAgYiA9IGIuc2xpY2UoKTsKLSAgICBhLnNvcnQoKTsKLSAg
ICBiLnNvcnQoKTsKLSAgICBhLmZvckVhY2goZnVuY3Rpb24oZWxlbWVudCwgaW5kZXgpIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQoYVtpbmRleF0gPT09IGJbaW5kZXhdLCAiYXNzZXJ0RXF1YWxB
cnJheXM6IGRpZmZlcmVudCB2YWx1ZXMgYXQgaW5kZXggIiArIGluZGV4KTsKLSAgICB9KTsKLX0K
LQotZnVuY3Rpb24gZ2VuZXJhdGVXZWJHTEVycm9yKGdsLCBlcnJvcikKLXsKLSAgICBzd2l0Y2gg
KGVycm9yKSB7Ci0gICAgY2FzZSBnbC5JTlZBTElEX0VOVU06Ci0gICAgICAgIGdsLnBpeGVsU3Rv
cmVpKDEyMywgMjM0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBnbC5JTlZBTElEX1ZBTFVF
OgotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5QQUNLX0FMSUdOTUVOVCwgMjM0KTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBnbC5JTlZBTElEX09QRVJBVElPTjoKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFX0NVQkVfTUFQKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBnZXRBbGxFcnJvcnMoZ2wpCi17Ci0gICAgdmFy
IGVycm9ycyA9IFtdOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHZhciBlcnJvciA9IGds
LmdldEVycm9yKCk7Ci0gICAgICAgIGlmIChlcnJvciA9PT0gZ2wuTk9fRVJST1IpCi0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGVycm9yID09PSAibnVt
YmVyIiwgImdldEVycm9yKCkgc2hvdWxkIHJldHVybiBhIG51bWJlciBpbnN0ZWFkIG9mIGEgIiAr
ICh0eXBlb2YgZXJyb3IpKTsKLSAgICAgICAgZXJyb3JzLnB1c2goZXJyb3IpOwotICAgIH0KLSAg
ICByZXR1cm4gZXJyb3JzOwotfQotCi1mdW5jdGlvbiBjcmVhdGVBbmRSdW5XZWJHTFByb2dyYW0o
KQotewotICAgIGdsID0gY3JlYXRlV2ViR0xDb250ZXh0KCk7Ci0gICAgY29uc29sZS5hc3NlcnQo
Z2wsICJGYWlsZWQgdG8gY3JlYXRlIFdlYkdMIGNvbnRleHQiKTsKLQotICAgIGdsUmVzb3VyY2Ug
PSBnbFsiX19yZXNvdXJjZU9iamVjdCJdOwotICAgIGNvbnNvbGUuYXNzZXJ0KGdsUmVzb3VyY2Us
ICJXZWJHTCBjb250ZXh0IGlzIG5vdCB3cmFwcGVkIik7Ci0KLSAgICByYXdHTCA9IGdsUmVzb3Vy
Y2Uud3JhcHBlZE9iamVjdCgpOwotICAgIGNvbnNvbGUuYXNzZXJ0KHJhd0dMLCAiTm8gcmF3IFdl
YkdMIGNvbnRleHQgZm91bmQiKTsKLSAgICBjb25zb2xlLmFzc2VydChnbCAhPT0gcmF3R0wsICJQ
cm94eSBhbmQgUkFXIGNvbnRleHRzIHNob3VsZCBub3QgYmUgdGhlIHNhbWUiKTsKLQotICAgIGFz
c2VydE5vRXJyb3JzKGdsKTsKLSAgICBhc3NlcnROb0Vycm9ycyhyYXdHTCk7Ci0KLSAgICAvLyAx
KSBHZW5lcmF0ZSBlcnJvcnMgZGlyZWN0bHkgb24gdGhlIFJBVyBjb250ZXh0Ci0gICAgLy8gMikg
UGljayB0aGVtIHZpYSBwcm94eS4KLSAgICB2YXIgZXJyb3JzID0gW3Jhd0dMLklOVkFMSURfRU5V
TSwgcmF3R0wuSU5WQUxJRF9WQUxVRSwgcmF3R0wuSU5WQUxJRF9PUEVSQVRJT05dOwotICAgIGVy
cm9ycy5mb3JFYWNoKGdlbmVyYXRlV2ViR0xFcnJvci5iaW5kKHRoaXMsIHJhd0dMKSk7Ci0gICAg
YXNzZXJ0RXF1YWxBcnJheXMoZXJyb3JzLCBnZXRBbGxFcnJvcnMoZ2wpKTsKLSAgICBhc3NlcnRO
b0Vycm9ycyhnbCk7Ci0gICAgYXNzZXJ0Tm9FcnJvcnMocmF3R0wpOwotCi0gICAgLy8gMSkgR2Vu
ZXJhdGUgZXJyb3JzIG9uIFJBVyBjb250ZXh0Ci0gICAgLy8gMikgQ29udmVydCBSZXNvdXJjZSB0
byBhIFJlcGxheWFibGUgPT4gdGhpcyBzaG91bGQgY2xlYW4gdXAgdGhlIFJBVyBjb250ZXh0IGFu
ZCBzYXZlIHRoZSBlcnJvcnMgaW4gcHJveHkKLSAgICAvLyAzKSBDaGVjayB0aGF0IFJBVyBjb250
ZXh0IG5vIGxvbmdlciBoYXZlIGVycm9ycwotICAgIC8vIDQpIENoZWNrIHRoYXQgcHJveHkgc3Rp
bGwgaGFzIHRoZSBvcmlnaW5hbCBlcnJvcnMgc2F2ZWQKLSAgICB2YXIgZXJyb3JzID0gW3Jhd0dM
LklOVkFMSURfRU5VTSwgcmF3R0wuSU5WQUxJRF9WQUxVRSwgcmF3R0wuSU5WQUxJRF9PUEVSQVRJ
T05dOwotICAgIGVycm9ycy5mb3JFYWNoKGdlbmVyYXRlV2ViR0xFcnJvci5iaW5kKHRoaXMsIHJh
d0dMKSk7Ci0gICAgZ2xSZXNvdXJjZS50b1JlcGxheWFibGUobmV3IENhY2hlKCkpOwotICAgIGFz
c2VydE5vRXJyb3JzKHJhd0dMKTsKLSAgICBhc3NlcnRFcXVhbEFycmF5cyhlcnJvcnMsIGdldEFs
bEVycm9ycyhnbCkpOwotICAgIGFzc2VydE5vRXJyb3JzKGdsKTsKLQotICAgIC8vIDEpIFJlcGVh
dCAxLTMgc3RlcHMgZnJvbSB0aGUgYWJvdmUKLSAgICAvLyAyKSBDaGVjayBwcm94eSBhbmQgUkFX
IGVycm9ycyBpbnRlcmxlYXZlZAotICAgIHZhciBlcnJvcnMgPSBbcmF3R0wuSU5WQUxJRF9FTlVN
LCByYXdHTC5JTlZBTElEX1ZBTFVFLCByYXdHTC5JTlZBTElEX09QRVJBVElPTl07Ci0gICAgZXJy
b3JzLmZvckVhY2goZ2VuZXJhdGVXZWJHTEVycm9yLmJpbmQodGhpcywgcmF3R0wpKTsKLSAgICBn
bFJlc291cmNlLnRvUmVwbGF5YWJsZShuZXcgQ2FjaGUoKSk7Ci0gICAgYXNzZXJ0Tm9FcnJvcnMo
cmF3R0wpOwotCi0gICAgdmFyIHZhbHVlID0gZ2wuZ2V0RXJyb3IoKTsKLSAgICBjb25zb2xlLmFz
c2VydCh0eXBlb2YgdmFsdWUgPT09ICJudW1iZXIiLCAiZ2V0RXJyb3IoKSBzaG91bGQgcmV0dXJu
IGEgbnVtYmVyIGluc3RlYWQgb2YgYSAiICsgKHR5cGVvZiB2YWx1ZSkpOwotICAgIGNvbnNvbGUu
YXNzZXJ0KHZhbHVlICE9PSBnbC5OT19FUlJPUiwgIkFuIGVycm9yIHdhcyBleHBlY3RlZCIpOwot
ICAgIGVycm9ycy5mb3JFYWNoKGdlbmVyYXRlV2ViR0xFcnJvci5iaW5kKHRoaXMsIHJhd0dMKSk7
IC8vIEdlbmVyYXRlIGFnYWluIGluIHRoZSBSQVcgY29udGV4dC4KLSAgICAvLyBOb3cgd2UgImhh
dmUiIDIgZXJyb3JzIGxlZnQgaW4gdGhlIHByb3h5IGFuZCAzIG5ldyBlcnJvcnMgaW4gdGhlIFJB
VyBjb250ZXh0ID0+IHNob3VsZCByZXR1cm4gMyBlcnJvcnMgZnJvbSB0aGUgcHJveHkuCi0gICAg
YXNzZXJ0RXF1YWxBcnJheXMoZXJyb3JzLCBnZXRBbGxFcnJvcnMoZ2wpKTsKLSAgICBhc3NlcnRO
b0Vycm9ycyhnbCk7Ci0gICAgYXNzZXJ0Tm9FcnJvcnMocmF3R0wpOwotCi0gICAgcmV0dXJuICJT
VUNDRVNTIjsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5lbmFi
bGVDYW52YXNBZ2VudChzdGVwMSk7Ci0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiY3JlYXRlQW5kUnVuV2ViR0xQcm9n
cmFtKCkiLCBzdGVwMik7Ci0gICAgfQotICAgIGZ1bmN0aW9uIHN0ZXAyKGVycm9yKQotICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIlwiU1VDQ0VTU1wiIiwgZXJyb3Ip
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIFdl
YkdMIGdldEVycm9yKCkgc3RhdHVzLgotPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDQzIj5CdWcgOTU0NDM8L2E+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZ3Jlc3MtYmFyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9ncmVzcy1iYXItZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDc3YTM4ZjdhOTJlNTQ1NDA1YzNiOTky
NzQ4MWNhNmE5MzZhMmQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9ncmVzcy1iYXItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGVzdHMgaW5zcGVjdG9yJ3MgY29tcG9zaXRl
IHByb2dyZXNzIGJhci4KLQotVGVzdGluZyBDb21wb3NpdGVQcm9ncmVzcyB3aXRoIGEgc2luZ2xl
IHN1YnByb2dyZXNzOgotcHJvZ3Jlc3M6IGB1bmRlZmluZWQnIDAgb3V0IG9mIDEgZG9uZS4KLXBy
b2dyZXNzOiBgY3Vja29vaW5nJyAwIG91dCBvZiAxIGRvbmUuCi1wcm9ncmVzczogYGN1Y2tvb2lu
ZycgMC4xIG91dCBvZiAxIGRvbmUuCi1wcm9ncmVzczogYG1lb3dpbmcnIDAuMiBvdXQgb2YgMSBk
b25lLgotcHJvZ3Jlc3MgaW5kaWNhdG9yOiBkb25lCi1wcm9ncmVzczogYG1lb3dpbmcnIDEgb3V0
IG9mIDEgZG9uZS4KLVRlc3RpbmcgQ29tcG9zaXRlUHJvZ3Jlc3Mgd2l0aCBtdWx0aXBsZSBzdWJw
cm9ncmVzc2VzOgotcHJvZ3Jlc3M6IGB1bmRlZmluZWQnIDAgb3V0IG9mIDEgZG9uZS4KLXByb2dy
ZXNzOiBgY3Vja29vaW5nJyAwLjA1IG91dCBvZiAxIGRvbmUuCi1wcm9ncmVzczogYGN1Y2tvb2lu
ZycgMC4wNSBvdXQgb2YgMSBkb25lLgotcHJvZ3Jlc3M6IGBiYXJraW5nJyAwLjI3NSBvdXQgb2Yg
MSBkb25lLgotcHJvZ3Jlc3M6IGBtZW93aW5nJyAwLjUgb3V0IG9mIDEgZG9uZS4KLXByb2dyZXNz
OiBgbWVvd2luZycgMC44NzUgb3V0IG9mIDEgZG9uZS4KLXByb2dyZXNzIGluZGljYXRvcjogZG9u
ZQotcHJvZ3Jlc3M6IGBtZW93aW5nJyAxIG91dCBvZiAxIGRvbmUuCi1UZXN0aW5nIGlzQ2FuY2Vs
ZWQ6Ci1UZXN0aW5nIG5lc3RlZCBzdWJwcm9ncmVzc2VzOgotcHJvZ3Jlc3M6IGB1bmRlZmluZWQn
IDAgb3V0IG9mIDEgZG9uZS4KLXByb2dyZXNzOiBgdW5kZWZpbmVkJyAwIG91dCBvZiAxIGRvbmUu
Ci1wcm9ncmVzczogYHVuZGVmaW5lZCcgMC4xIG91dCBvZiAxIGRvbmUuCi1wcm9ncmVzczogYG1l
b3dpbmcnIDAuNSBvdXQgb2YgMSBkb25lLgotcHJvZ3Jlc3MgaW5kaWNhdG9yOiBkb25lCi1wcm9n
cmVzczogYG1lb3dpbmcnIDEgb3V0IG9mIDEgZG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2dyZXNzLWJhci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2dyZXNzLWJhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWRhZTEyNzU1
MWJiMzE0M2UwOGZlMzNjNTE5MWNkNGM5ZjYyMDU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9ncmVzcy1iYXIu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotZnVuY3Rpb24gaW5pdGlh
bGl6ZV9Qcm9ncmVzc0JhclRlc3QoKQotewotCi1JbnNwZWN0b3JUZXN0Lk1vY2tQcm9ncmVzc0lu
ZGljYXRvciA9IGZ1bmN0aW9uKCkKLXsKLX0KLQotSW5zcGVjdG9yVGVzdC5Nb2NrUHJvZ3Jlc3NJ
bmRpY2F0b3IucHJvdG90eXBlID0gewotICAgIC8vIEltcGxlbWVudGF0aW9uIG9mIFdlYkluc3Bl
Y3Rvci5Qcm9ncmVzcyBpbnRlcmZhY2UuCi0gICAgaXNDYW5jZWxlZDogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ2FuY2VsZWQ7Ci0gICAgfSwKLQotICAgIGRvbmU6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwcm9n
cmVzcyBpbmRpY2F0b3I6IGRvbmUiKTsKLSAgICB9LAotCi0gICAgc2V0VG90YWxXb3JrOiBmdW5j
dGlvbih0b3RhbFdvcmspCi0gICAgewotICAgICAgICB0aGlzLl90b3RhbFdvcmsgPSB0b3RhbFdv
cms7Ci0gICAgfSwKLQotICAgIHNldFdvcmtlZDogZnVuY3Rpb24od29ya2VkLCB0aXRsZSkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuX3dvcmtlZCA9IHdvcmtlZDsKLSAgICAgICAgaWYgKHR5cGVvZiB0
aXRsZSAhPT0gInVuZGVmaW5lZCIpCi0gICAgICAgICAgICB0aGlzLl90aXRsZSA9IHRpdGxlOwot
ICAgIH0sCi0KLSAgICBzZXRUaXRsZTogZnVuY3Rpb24odGl0bGUpCi0gICAgewotICAgICAgICB0
aGlzLl90aXRsZSA9IHRpdGxlOwotICAgIH0sCi0KLSAgICAvLyBUZXN0IG1ldGhvZHMuCi0gICAg
Y2FuY2VsOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9pc0NhbmNlbGVkID0gdHJ1
ZTsKLSAgICB9LAotCi0gICAgZHVtcDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgY29uc3Qg
cm91bmRGYWN0b3IgPSAxMDAwMDsKLQotICAgICAgICB2YXIgd29ya2VkID0gdGhpcy5fd29ya2Vk
OwotICAgICAgICB2YXIgdG90YWxXb3JrID0gdGhpcy5fdG90YWxXb3JrOwotCi0gICAgICAgIGlm
ICh0eXBlb2Ygd29ya2VkID09PSAibnVtYmVyIikKLSAgICAgICAgICAgIHdvcmtlZCA9IE1hdGgu
cm91bmQod29ya2VkICogcm91bmRGYWN0b3IpIC8gcm91bmRGYWN0b3I7Ci0gICAgICAgIGlmICh0
eXBlb2YgdG90YWxXb3JrID09PSAibnVtYmVyIikKLSAgICAgICAgICAgIHRvdGFsV29yayA9IE1h
dGgucm91bmQodG90YWxXb3JrICogcm91bmRGYWN0b3IpIC8gcm91bmRGYWN0b3I7Ci0KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInByb2dyZXNzOiBgIiArIHRoaXMuX3RpdGxlICsg
IicgIiArIHdvcmtlZCArICIgb3V0IG9mICIgKyB0b3RhbFdvcmsgKyAiIGRvbmUuIik7Ci0gICAg
fQotfQotCi19Ci0KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIChmdW5jdGlvbiB0ZXN0
T25lU3ViUHJvZ3Jlc3MoKQotICAgIHsKLSAgICAgICAgdmFyIGluZGljYXRvciA9IG5ldyBJbnNw
ZWN0b3JUZXN0Lk1vY2tQcm9ncmVzc0luZGljYXRvcigpOwotICAgICAgICB2YXIgY29tcG9zaXRl
ID0gbmV3IFdlYkluc3BlY3Rvci5Db21wb3NpdGVQcm9ncmVzcyhpbmRpY2F0b3IpOwotICAgICAg
ICB2YXIgc3ViUHJvZ3Jlc3MgPSBjb21wb3NpdGUuY3JlYXRlU3ViUHJvZ3Jlc3MoKTsKLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdGluZyBDb21wb3NpdGVQcm9ncmVzcyB3
aXRoIGEgc2luZ2xlIHN1YnByb2dyZXNzOiIpOwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgpOwot
ICAgICAgICBzdWJQcm9ncmVzcy5zZXRUaXRsZSgiY3Vja29vaW5nIik7Ci0gICAgICAgIHN1YlBy
b2dyZXNzLnNldFdvcmtlZCgxMCk7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0gICAgICAg
IHN1YlByb2dyZXNzLnNldFRvdGFsV29yaygxMDApOwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgp
OwotICAgICAgICBzdWJQcm9ncmVzcy5zZXRXb3JrZWQoMjAsICJtZW93aW5nIik7Ci0gICAgICAg
IGluZGljYXRvci5kdW1wKCk7Ci0gICAgICAgIHN1YlByb2dyZXNzLmRvbmUoKTsKLSAgICAgICAg
aW5kaWNhdG9yLmR1bXAoKTsKLSAgICB9KSgpOwotCi0gICAgKGZ1bmN0aW9uIHRlc3RNdWx0aXBs
ZVN1YlByb2dyZXNzZXMoKQotICAgIHsKLSAgICAgICAgdmFyIGluZGljYXRvciA9IG5ldyBJbnNw
ZWN0b3JUZXN0Lk1vY2tQcm9ncmVzc0luZGljYXRvcigpOwotICAgICAgICB2YXIgY29tcG9zaXRl
ID0gbmV3IFdlYkluc3BlY3Rvci5Db21wb3NpdGVQcm9ncmVzcyhpbmRpY2F0b3IpOwotICAgICAg
ICB2YXIgc3ViUHJvZ3Jlc3MxID0gY29tcG9zaXRlLmNyZWF0ZVN1YlByb2dyZXNzKCk7Ci0gICAg
ICAgIHZhciBzdWJQcm9ncmVzczIgPSBjb21wb3NpdGUuY3JlYXRlU3ViUHJvZ3Jlc3MoMyk7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3RpbmcgQ29tcG9zaXRlUHJvZ3Jl
c3Mgd2l0aCBtdWx0aXBsZSBzdWJwcm9ncmVzc2VzOiIpOwotICAgICAgICBpbmRpY2F0b3IuZHVt
cCgpOwotCi0gICAgICAgIHN1YlByb2dyZXNzMS5zZXRUaXRsZSgiY3Vja29vaW5nIik7Ci0gICAg
ICAgIHN1YlByb2dyZXNzMS5zZXRUb3RhbFdvcmsoMTAwKTsKLSAgICAgICAgc3ViUHJvZ3Jlc3Mx
LnNldFdvcmtlZCgyMCk7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0KLSAgICAgICAgc3Vi
UHJvZ3Jlc3MyLnNldFdvcmtlZCgxMCk7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0KLSAg
ICAgICAgc3ViUHJvZ3Jlc3MyLnNldFRvdGFsV29yaygxMCk7Ci0gICAgICAgIHN1YlByb2dyZXNz
Mi5zZXRXb3JrZWQoMywgImJhcmtpbmciKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLQot
ICAgICAgICBzdWJQcm9ncmVzczEuc2V0V29ya2VkKDUwLCAibWVvd2luZyIpOwotICAgICAgICBz
dWJQcm9ncmVzczIuc2V0V29ya2VkKDUpOwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgpOwotCi0g
ICAgICAgIHN1YlByb2dyZXNzMi5kb25lKCk7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0K
LSAgICAgICAgc3ViUHJvZ3Jlc3MxLmRvbmUoKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsK
LSAgICB9KSgpOwotCi0gICAgKGZ1bmN0aW9uIHRlc3RDYW5jZWwoKQotICAgIHsKLSAgICAgICAg
dmFyIGluZGljYXRvciA9IG5ldyBJbnNwZWN0b3JUZXN0Lk1vY2tQcm9ncmVzc0luZGljYXRvcigp
OwotICAgICAgICB2YXIgY29tcG9zaXRlID0gbmV3IFdlYkluc3BlY3Rvci5Db21wb3NpdGVQcm9n
cmVzcyhpbmRpY2F0b3IpOwotICAgICAgICB2YXIgc3ViUHJvZ3Jlc3MxID0gY29tcG9zaXRlLmNy
ZWF0ZVN1YlByb2dyZXNzKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRl
c3RpbmcgaXNDYW5jZWxlZDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFz
dWJQcm9ncmVzczEuaXNDYW5jZWxlZCgpLCAicHJvZ3Jlc3Mgc2hvdWxkIG5vdCBiZSBjYW5jZWxl
ZCIpOwotICAgICAgICBpbmRpY2F0b3IuY2FuY2VsKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0VHJ1ZShzdWJQcm9ncmVzczEuaXNDYW5jZWxlZCgpLCAicHJvZ3Jlc3Mgc2hvdWxkIGJl
IGNhbmNlbGVkIik7Ci0gICAgfSkoKTsKLQotICAgIChmdW5jdGlvbiB0ZXN0TmVzdGVkKCkKLSAg
ICB7Ci0gICAgICAgIHZhciBpbmRpY2F0b3IgPSBuZXcgSW5zcGVjdG9yVGVzdC5Nb2NrUHJvZ3Jl
c3NJbmRpY2F0b3IoKTsKLSAgICAgICAgdmFyIGNvbXBvc2l0ZTAgPSBuZXcgV2ViSW5zcGVjdG9y
LkNvbXBvc2l0ZVByb2dyZXNzKGluZGljYXRvcik7Ci0gICAgICAgIHZhciBzdWJQcm9ncmVzczAx
ID0gY29tcG9zaXRlMC5jcmVhdGVTdWJQcm9ncmVzcygpOwotICAgICAgICB2YXIgY29tcG9zaXRl
MSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29tcG9zaXRlUHJvZ3Jlc3Moc3ViUHJvZ3Jlc3MwMSk7Ci0g
ICAgICAgIHZhciBzdWJQcm9ncmVzczExID0gY29tcG9zaXRlMS5jcmVhdGVTdWJQcm9ncmVzcygx
MCk7IC8vIFdlaWdodCBzaG91bGQgaGF2ZSBubyBlZmZlY3QuCi0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlRlc3RpbmcgbmVzdGVkIHN1YnByb2dyZXNzZXM6Iik7Ci0gICAgICAg
IGluZGljYXRvci5kdW1wKCk7Ci0KLSAgICAgICAgc3ViUHJvZ3Jlc3MxMS5zZXRXb3JrZWQoMTAp
OwotICAgICAgICBpbmRpY2F0b3IuZHVtcCgpOwotCi0gICAgICAgIHN1YlByb2dyZXNzMTEuc2V0
VG90YWxXb3JrKDEwMCk7Ci0gICAgICAgIGluZGljYXRvci5kdW1wKCk7Ci0KLSAgICAgICAgc3Vi
UHJvZ3Jlc3MxMS5zZXRXb3JrZWQoNTAsICJtZW93aW5nIik7Ci0gICAgICAgIGluZGljYXRvci5k
dW1wKCk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFzdWJQcm9ncmVzczEx
LmlzQ2FuY2VsZWQoKSk7Ci0gICAgICAgIGluZGljYXRvci5jYW5jZWwoKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRUcnVlKHN1YlByb2dyZXNzMTEuaXNDYW5jZWxlZCgpKTsKLQotICAg
ICAgICBzdWJQcm9ncmVzczExLmRvbmUoKTsKLSAgICAgICAgaW5kaWNhdG9yLmR1bXAoKTsKLSAg
ICB9KSgpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBpbnNwZWN0
b3IncyBjb21wb3NpdGUgcHJvZ3Jlc3MgYmFyLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zbmlwcGV0LXN0b3JhZ2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NuaXBwZXQtc3RvcmFnZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjY2NkOWVlNzEzNDhlZDE0ZmE3MjFhMDE0MWNk
ZTBjYTE4ODg4MjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NuaXBwZXQtc3RvcmFnZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1UZXN0cyBzbmlwcGV0IHN0b3JhZ2UuCi0KLUR1
bXBpbmcgc2F2ZWQgc25pcHBldHM6Ci1EdW1waW5nIHN0b3JhZ2Ugc25pcHBldHM6Ci1TbmlwcGV0
IGNyZWF0ZWQuCi1EdW1waW5nIHNhdmVkIHNuaXBwZXRzOgotICAgIFNuaXBwZXQ6IGlkID0gMSwg
bmFtZSA9ICdUZXN0IHNuaXBwZXQgIzEnLCBjb250ZW50ID0gJycuCi1EdW1waW5nIHN0b3JhZ2Ug
c25pcHBldHM6Ci1TbmlwcGV0IHJlbmFtZWQuCi1EdW1waW5nIHNhdmVkIHNuaXBwZXRzOgotICAg
IFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdOZXcgc25pcHBldCBuYW1lJywgY29udGVudCA9ICcn
LgotRHVtcGluZyBzdG9yYWdlIHNuaXBwZXRzOgotU25pcHBldCBjb250ZW50IGNoYW5nZWQuCi1E
dW1waW5nIHNhdmVkIHNuaXBwZXRzOgotICAgIFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdOZXcg
c25pcHBldCBuYW1lJywgY29udGVudCA9ICdOZXcgc25pcHBldCBjb250ZW50Jy4KLUR1bXBpbmcg
c3RvcmFnZSBzbmlwcGV0czoKLUFub3RoZXIgc25pcHBldCBjcmVhdGVkLgotRHVtcGluZyBzYXZl
ZCBzbmlwcGV0czoKLSAgICBTbmlwcGV0OiBpZCA9IDEsIG5hbWUgPSAnTmV3IHNuaXBwZXQgbmFt
ZScsIGNvbnRlbnQgPSAnTmV3IHNuaXBwZXQgY29udGVudCcuCi0gICAgU25pcHBldDogaWQgPSAy
LCBuYW1lID0gJ1Rlc3Qgc25pcHBldCAjMicsIGNvbnRlbnQgPSAnJy4KLUR1bXBpbmcgc3RvcmFn
ZSBzbmlwcGV0czoKLVNuaXBwZXQgZGVsZXRlZC4KLUR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Ci0g
ICAgU25pcHBldDogaWQgPSAyLCBuYW1lID0gJ1Rlc3Qgc25pcHBldCAjMicsIGNvbnRlbnQgPSAn
Jy4KLUR1bXBpbmcgc3RvcmFnZSBzbmlwcGV0czoKLUFub3RoZXIgc25pcHBldCBkZWxldGVkLgot
RHVtcGluZyBzYXZlZCBzbmlwcGV0czoKLUR1bXBpbmcgc3RvcmFnZSBzbmlwcGV0czoKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NuaXBwZXQtc3RvcmFnZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3NuaXBwZXQtc3RvcmFnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkMGNkMzhhNjk2OTc0NDM4YmE5YjUyNGFhMGFiOGVjMjUzNjA2ODJhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zbmlwcGV0LXN0b3JhZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHZhciBzZXR0aW5nUHJlZml4ID0gInRlc3QiOwotICAgIHZhciBuYW1lUHJlZml4
ID0gIlRlc3Qgc25pcHBldCAjIjsKLSAgICB2YXIgc25pcHBldFN0b3JhZ2UgPSBuZXcgV2ViSW5z
cGVjdG9yLlNuaXBwZXRTdG9yYWdlKHNldHRpbmdQcmVmaXgsIG5hbWVQcmVmaXgpOwotICAgIHNu
aXBwZXRTdG9yYWdlLnJlc2V0KCk7Ci0KLSAgICBmdW5jdGlvbiBkdW1wU25pcHBldHMoc25pcHBl
dHMpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNuaXBwZXRzLmxlbmd0aDsg
KytpKSB7Ci0gICAgICAgICAgICB2YXIgc25pcHBldCA9IHNuaXBwZXRzW2ldOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBTbmlwcGV0OiBpZCA9ICIgKyBzbmlwcGV0
LmlkICsgIiwgbmFtZSA9ICciICsgc25pcHBldC5uYW1lICsgIicsIGNvbnRlbnQgPSAnIiArIHNu
aXBwZXQuY29udGVudCArICInLiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
ZHVtcFNhdmVkU25pcHBldHMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Iik7Ci0gICAgICAgIGR1bXBTbmlwcGV0cyhzbmlw
cGV0U3RvcmFnZS5fc25pcHBldHNTZXR0aW5nLmdldCgpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBkdW1wU3RvcmFnZVNuaXBwZXRzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJEdW1waW5nIHN0b3JhZ2Ugc25pcHBldHM6Iik7Ci0gICAgICAgIGR1bXBTbmlwcGV0
cyhzbmlwcGV0U3RvcmFnZS5zbmlwcGV0cyk7Ci0gICAgfQotCi0gICAgZHVtcFNhdmVkU25pcHBl
dHMoKTsKLSAgICBkdW1wU3RvcmFnZVNuaXBwZXRzKCk7Ci0gICAgdmFyIHNuaXBwZXQgPSBzbmlw
cGV0U3RvcmFnZS5jcmVhdGVTbmlwcGV0KCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlNuaXBwZXQgY3JlYXRlZC4iKTsKLSAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBT
dG9yYWdlU25pcHBldHMoKTsKLSAgICBzbmlwcGV0Lm5hbWUgPSAiTmV3IHNuaXBwZXQgbmFtZSI7
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgcmVuYW1lZC4iKTsKLSAgICBk
dW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBTdG9yYWdlU25pcHBldHMoKTsKLSAgICBzbmlw
cGV0LmNvbnRlbnQgPSAiTmV3IHNuaXBwZXQgY29udGVudCI7Ci0gICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlNuaXBwZXQgY29udGVudCBjaGFuZ2VkLiIpOwotICAgIGR1bXBTYXZlZFNuaXBw
ZXRzKCk7Ci0gICAgZHVtcFN0b3JhZ2VTbmlwcGV0cygpOwotICAgIHZhciBhbm90aGVyU25pcHBl
dCA9IHNuaXBwZXRTdG9yYWdlLmNyZWF0ZVNuaXBwZXQoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiQW5vdGhlciBzbmlwcGV0IGNyZWF0ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBl
dHMoKTsKLSAgICBkdW1wU3RvcmFnZVNuaXBwZXRzKCk7Ci0gICAgc25pcHBldFN0b3JhZ2UuZGVs
ZXRlU25pcHBldChzbmlwcGV0KTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBl
dCBkZWxldGVkLiIpOwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcFN0b3JhZ2VT
bmlwcGV0cygpOwotICAgIHNuaXBwZXRTdG9yYWdlLmRlbGV0ZVNuaXBwZXQoYW5vdGhlclNuaXBw
ZXQpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBbm90aGVyIHNuaXBwZXQgZGVsZXRl
ZC4iKTsKLSAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBTdG9yYWdlU25pcHBldHMo
KTsKLQotICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19OwotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBzbmlwcGV0IHN0b3Jh
Z2UuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9jb21taXQtc2VsZWN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9jb21taXQtc2VsZWN0b3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlZjEzZWIzNzUxNjAwNmY4YTUyMGUzMTI1MjRiZmNmMjk4YjlhMzEy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvY29tbWl0LXNlbGVjdG9yLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVRlc3RzIHRoYXQgcmVuYW1pbmcgYSBzZWxlY3RvciB1
cGRhdGVzIGVsZW1lbnQgc3R5bGVzLiBCdWcgNzAwMTguCi0KLVRleHQKLT09PSBCZWZvcmUgc2Vs
ZWN0b3IgbW9kaWZpY2F0aW9uID09PQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkK
LWNvbG9yOiByZWQ7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhw
YW5kZWRdIAotI2luc3BlY3RlZCAgeyAoY29tbWl0LXNlbGVjdG9yLmh0bWw6NCkKLS8tLSBvdmVy
bG9hZGVkIC0tLyBjb2xvcjogZ3JlZW47Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdl
bnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLT09PSBBZnRlciBub24tYWZmZWN0
aW5nIHNlbGVjdG9yIG1vZGlmaWNhdGlvbiA9PT0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxl
ICB7ICgpCi1jb2xvcjogcmVkOwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09
PQotW2V4cGFuZGVkXSAKLWhyLCAjaW5zcGVjdGVkICB7IChjb21taXQtc2VsZWN0b3IuaHRtbDo0
KQotLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiBncmVlbjsKLQotW2V4cGFuZGVkXSAKLWRpdiAg
eyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotPT09IEFmdGVy
IGFmZmVjdGluZyBzZWxlY3RvciBtb2RpZmljYXRpb24gPT09Ci1bZXhwYW5kZWRdIAotZWxlbWVu
dC5zdHlsZSAgeyAoKQotY29sb3I6IHJlZDsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMg
PT09PT09PT0KLVtleHBhbmRlZF0gW25vLWFmZmVjdF0gCi0jaW5zcGVjdGVkQ2hhbmdlZCAgeyAo
Y29tbWl0LXNlbGVjdG9yLmh0bWw6NCkKLWNvbG9yOiBncmVlbjsKLQotW2V4cGFuZGVkXSAKLWRp
diAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2NvbW1pdC1zZWxlY3Rvci5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9jb21taXQtc2VsZWN0b3IuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdiNDdmZjA0YTFiMjRmMjc4YjZjM2M4YjE5YTA0
NGYxM2U3OGNjNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2NvbW1pdC1zZWxlY3Rvci5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSNpbnNw
ZWN0ZWQgewotICBjb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2Fp
dEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBCZWZvcmUgc2VsZWN0
b3IgbW9kaWZpY2F0aW9uID09PSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3Rl
ZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHZhciBzZWN0aW9uID0gV2ViSW5zcGVjdG9y
LnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rpb25zWzBdWzJdOwotICAg
ICAgICBzZWN0aW9uLnN0YXJ0RWRpdGluZ1NlbGVjdG9yKCk7Ci0gICAgICAgIHNlY3Rpb24uX3Nl
bGVjdG9yRWxlbWVudC50ZXh0Q29udGVudCA9ICJociwgI2luc3BlY3RlZCAiOwotICAgICAgICBz
ZWN0aW9uLl9zZWxlY3RvckVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0
ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRp
bmdEaXNwYXRjaGVzKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFmdGVyIG5vbi1hZmZlY3Rp
bmcgc2VsZWN0b3IgbW9kaWZpY2F0aW9uID09PSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1
bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHZhciBzZWN0aW9uID0gV2Vi
SW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzLnNlY3Rpb25zWzBd
WzJdOwotICAgICAgICBzZWN0aW9uLnN0YXJ0RWRpdGluZ1NlbGVjdG9yKCk7Ci0gICAgICAgIHNl
Y3Rpb24uX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudCA9ICIjaW5zcGVjdGVkQ2hhbmdlZCI7
Ci0gICAgICAgIHNlY3Rpb24uX3NlbGVjdG9yRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3Rv
clRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1
bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0
ZXAzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQWZ0ZXIg
YWZmZWN0aW5nIHNlbGVjdG9yIG1vZGlmaWNhdGlvbiA9PT0iKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCByZW5hbWluZyBhIHNlbGVj
dG9yIHVwZGF0ZXMgZWxlbWVudCBzdHlsZXMuIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MDAxOCI+QnVnIDcwMDE4PC9hPi4KLTwvcD4KLQotPGRpdiBp
ZD0iaW5zcGVjdGVkIiBzdHlsZT0iY29sb3I6IHJlZCI+VGV4dDwvZGl2PgotPGRpdiBpZD0ib3Ro
ZXIiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVkaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy9jc3MtbGl2ZS1lZGl0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjhmMTk5OGE4MGUxM2RlNzY5NThmZmIwZjNkYzI1Nzg2ZmRkYzdl
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVkaXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdHMgdGhhdCBzdHlsZXMgYXJlIHVwZGF0ZWQgd2hl
biBsaXZlLWVkaXRpbmcgY3NzIHJlc291cmNlLgotCi0KLVJ1bm5pbmc6IHRlc3RMaXZlRWRpdAot
W2V4cGFuZGVkXSAKLWRpc3BsYXk6IGJsb2NrOwotICAgIGRpdiAtIGJsb2NrIHVzZXIgYWdlbnQg
c3R5bGVzaGVldAotZm9udC1zaXplOiAyMHB4OwotICAgIGJvZHkgLSAyMHB4IGdldC1zZXQtc3R5
bGVzaGVldC10ZXh0LmNzczoxCi0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0K
LQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2Nzcy1saXZlLWVk
aXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvY3NzLWxpdmUtZWRpdC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMWU0NmFjNThhMzFkNDk3YWJhZjI3YmMz
YTJmYjRiNDI0YzA1YmFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvY3NzLWxpdmUtZWRpdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvbGl2
ZS1lZGl0LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJyZXNvdXJjZXMvZ2V0LXNldC1zdHlsZXNoZWV0LXRleHQuY3NzIj4KLTxkaXYg
aWQ9Zm9vPjwvZGl2PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5z
cGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0TGl2ZUVkaXQobmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJnZXQtc2V0LXN0eWxl
c2hlZXQtdGV4dC5jc3MiLCBkaWRTaG93UmVzb3VyY2UpOwotCi0gICAgICAgICAgICBmdW5jdGlv
biBkaWRTaG93UmVzb3VyY2Uoc291cmNlRnJhbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZSwgIl9maXJlU3R5bGVTaGVldENoYW5nZWQiLCBkaWRFZGl0UmVzb3VyY2UpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKHNvdXJjZUZyYW1l
LCAiZm9udC1zaXplOiAxMnB4OyIsICJmb250LXNpemU6IDIwcHg7Iik7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEVkaXRSZXNvdXJjZSgpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
c1dpdGhDb21wdXRlZCgiZm9vIiwgZGlkU2VsZWN0RWxlbWVudCk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNlbGVjdEVsZW1lbnQoKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyhm
YWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgXSk7Ci19OwotCi08L3NjcmlwdD4KLQotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyB0aGF0IHN0eWxlcyBhcmUgdXBkYXRlZCB3aGVuIGxp
dmUtZWRpdGluZyBjc3MgcmVzb3VyY2UuPC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hl
ZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0LWluc3Bl
Y3Rvci1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTRjNmJkN2NlMDZjMjQ0ODZmZGQzZWU4MmRhYzZhN2ZmNjUzZDdmMi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjQgKzAsMCBAQAotVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgcnVsZSBjcmVhdGVz
IGluc3BlY3RvciBzdHlsZXNoZWV0IHJlc291cmNlIGFuZCBhbGxvd3MgaXRzIGxpdmUgZWRpdGlu
Zy4KLQotVGV4dAotSW5zcGVjdG9yIHN0eWxlc2hlZXQgVVJMOiBpbnNwZWN0b3Itc3R5bGVzaGVl
dAotSW5zcGVjdG9yIHN0eWxlc2hlZXQgY29udGVudDoKLSNpbnNwZWN0ZWQge30KLQotU2V0dGlu
ZyBuZXcgY29udGVudAotSW5zcGVjdG9yIHN0eWxlc2hlZXQgY29udGVudDoKLSNpbnNwZWN0ZWQg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUg
IHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0g
Ci0jaW5zcGVjdGVkICB7IChpbnNwZWN0b3Itc3R5bGVzaGVldDoxKQotYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkK
LWRpc3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9lZGl0LWluc3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTAyMzAwZGFiOTM0NDE4OTFkYmQ5OGQyY2Y3Y2I5YmUxMGM1ZGQx
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtaW5zcGVjdG9yLXN0eWxlc2hlZXQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgdmFyIGluc3BlY3RvclJlc291cmNlOwotCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
ZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVz
KCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMShub2RlKQotICAgIHsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZFJ1bGUobm9kZS5pZCwgIiNpbnNwZWN0
ZWQiLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjayk7Ci0KLSAgICAgICAgZnVuY3Rp
b24gc3VjY2Vzc0NhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAgICAgLy8gc2V0VGltd291
dCBpcyBuZWVkZWQgaGVyZSBiZWNhdXNlIHNob3dTY3JpcHRTb3VyY2UgY2FsbGJhY2sgaXMgdHJp
Z2dlcmVkIGJ5IHVpU291cmNlQ29kZSBhZGRSZXZpc2lvbiBoYW5kbGluZwotICAgICAgICAgICAg
Ly8gYW5kIHdlIG5lZWQgdG8gd2FpdCB1bnRpbCB0aGUgY29kZSBmbG93IGV4aXRzIFN0eWxlRmls
ZS5hZGRSZXZpc2lvbi4KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJj
ZSgiaW5zcGVjdG9yLXN0eWxlc2hlZXQiLCBzZXRUaW1lb3V0LmJpbmQodGhpcywgc3RlcDIsIDAp
KTsKLSAgICAgICAgfQotICAgICAgICBmdW5jdGlvbiBmYWlsdXJlQ2FsbGJhY2soKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmFpbGVkIHRvIGFkZCBy
dWxlLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKHNvdXJjZUZyYW1lKQotICAgIHsKLSAg
ICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGU7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJJbnNwZWN0b3Igc3R5bGVzaGVldCBVUkw6ICIg
KyB1aVNvdXJjZUNvZGUuZGlzcGxheU5hbWUoKSk7Ci0gICAgICAgIHVpU291cmNlQ29kZS5yZXF1
ZXN0Q29udGVudChwcmludENvbnRlbnQoKSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlxuU2V0dGluZyBuZXcgY29udGVudCIpOwotICAgICAgICB1aVNvdXJjZUNvZGUuc2V0
V29ya2luZ0NvcHkoIiNpbnNwZWN0ZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfSIpOwot
ICAgICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoc3RlcDMuYmluZCh0aGlzLCB1
aVNvdXJjZUNvZGUpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMyh1aVNvdXJjZUNvZGUp
Ci0gICAgewotICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQocHJpbnRDb250ZW50
KHNlbGVjdE5vZGUpKTsKLSAgICAgICAgZnVuY3Rpb24gc2VsZWN0Tm9kZSgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImlu
c3BlY3RlZCIsIGR1bXBTdHlsZXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gZHVt
cFN0eWxlcygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVj
dGVkRWxlbWVudFN0eWxlcyh0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
cHJpbnRDb250ZW50KG5leHQpCi0gICAgewotICAgICAgICBmdW5jdGlvbiByZXN1bHQoY29udGVu
dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkluc3Bl
Y3RvciBzdHlsZXNoZWV0IGNvbnRlbnQ6Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChjb250ZW50KTsKLSAgICAgICAgICAgIGlmIChuZXh0KQotICAgICAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3Rz
IHRoYXQgYWRkaW5nIGEgbmV3IHJ1bGUgY3JlYXRlcyBpbnNwZWN0b3Igc3R5bGVzaGVldCByZXNv
dXJjZSBhbmQgYWxsb3dzIGl0cyBsaXZlIGVkaXRpbmcuCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3Bl
Y3RlZCI+VGV4dDwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUtd2l0aC10cmltbWVkLXVybC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUtd2l0aC10cmlt
bWVkLXVybC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkNGE5
ZTdmNWExMmM4MTU3YWQxZDkwMTlhZmI2ZTkwMTVkZGM0N2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9l
ZGl0LXZhbHVlLXdpdGgtdHJpbW1lZC11cmwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi1UZXN0cyB0aGF0IGVkaXRpbmcgYSBDU1MgcHJvcGVydHkgdmFsdWUgaW4g
dGhlIFN0eWxlcyBwYW5lIHJlc3RvcmVzIHRoZSBvcmlnaW5hbCwgbm9uLXRyaW1tZWQgdmFsdWUg
dGV4dC4gQnVnIDEwNzkzNi4KLQotVmlld2luZyAnYmFja2dyb3VuZCcgdmFsdWUgaW4gU3R5bGVz
OgotdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBQUVBQUFBQkNBSUFBQUNRZDFQZUFBQUFHWFJGV+KApjlpWlNCSmJXRm5aVkpsWVdS
NWNjbGxQQUFBQUE1SlJFRlVlTnBpWUdCZ0FBZ3dBQUFFQUFHYkErb0pBQUFBQUVsRlRrU3VRbUND
KSByZXBlYXQteSA1MCUgdG9wCi1FZGl0aW5nICdiYWNrZ3JvdW5kJyB2YWx1ZSBpbiBTdHlsZXM6
Ci10cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T
VWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1FkMVBlQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpT
QkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFBNUpSRUZVZU5waVlHQmdBQWd3QUFBRUFBR2JBK29KQUFB
QUFFbEZUa1N1UW1DQykgcmVwZWF0LXkgNTAlIHRvcAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUtd2l0aC10cmltbWVkLXVybC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0LXZhbHVlLXdpdGgtdHJpbW1lZC11cmwuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTIyMjM0YTlmMGRkOTMxYmJmNGY1ZWU4
OTdhM2E3MDljMjgwMjUwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2VkaXQtdmFsdWUtd2l0aC10cmlt
bWVkLXVybC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3Rv
clRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXAxKTsKLQot
ICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IElu
c3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRlbSgiYmFja2dyb3VuZCIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVmlld2luZyAnYmFja2dyb3VuZCcg
dmFsdWUgaW4gU3R5bGVzOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0cmVl
RWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQpOwotCi0gICAgICAgIHRyZWVFbGVtZW50
LnN0YXJ0RWRpdGluZyh0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRWRpdGluZyAnYmFja2dyb3VuZCcgdmFsdWUgaW4gU3R5bGVzOiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0cmVlRWxlbWVudC52YWx1ZUVsZW1l
bnQudGV4dENvbnRlbnQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgdGhhdCBlZGl0aW5nIGEgQ1NTIHByb3BlcnR5IHZhbHVlIGluIHRoZSBT
dHlsZXMgcGFuZSByZXN0b3JlcyB0aGUgb3JpZ2luYWwsIG5vbi10cmltbWVkIHZhbHVlIHRleHQu
IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5MzYi
PkJ1ZyAxMDc5MzY8L2E+LgotPC9wPgotCi08ZGl2IGlkPSJpbnNwZWN0ZWQiIHN0eWxlPSJiYWNr
Z3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dv
QUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1FkMVBlQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJC
Wkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFBNUpSRUZVZU5waVlHQmdBQWd3QUFBRUFBR2JB
K29KQUFBQUFFbEZUa1N1UW1DQykgcmVwZWF0LXkgNTAlIHRvcCIgLz4KLQotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9mb3JjZS1wc2V1
ZG8tc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9mb3Jj
ZS1wc2V1ZG8tc3RhdGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3NzA1NmI2MjVhZmIxZjM5Y2E1ZmE4NmM2NmY0ZjA2YzBiMmVhZDU2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvZm9yY2UtcHNldWRvLXN0YXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDExMCArMCwwIEBACi1UZXN0cyB0aGF0IGZvcmNlZCBlbGVtZW50IHN0YXRlIGlzIHJlZmxlY3Rl
ZCBpbiB0aGUgRE9NIHRyZWUgYW5kIFN0eWxlcyBwYW5lLgotCi1UZXN0IHRleHQKLQotRElWIHdp
dGggOmhvdmVyIGFuZCA6YWN0aXZlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQot
Ci09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdjph
Y3RpdmUsIGE6YWN0aXZlICB7IChmb3JjZS1wc2V1ZG8tc3RhdGUuaHRtbDoxMikKLWZvbnQtd2Vp
Z2h0OiBib2xkOwotCi1bZXhwYW5kZWRdIAotZGl2OmhvdmVyLCBhOmhvdmVyICB7IChmb3JjZS1w
c2V1ZG8tc3RhdGUuaHRtbDo0KQotY29sb3I6IHJlZDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAo
dXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLT09PT09PT09IEluaGVy
aXRlZCBmcm9tIGJvZHkjbWFpbkJvZHkubWFpbjEubWFpbjIubWFpbnBhZ2UgPT09PT09PT0KLVtl
eHBhbmRlZF0gCi1TdHlsZSBBdHRyaWJ1dGUgIHsgKCkKLS8tLSBvdmVybG9hZGVkIC0tLyBmb250
LXdlaWdodDogbm9ybWFsOwotCi0KLS0gPGh0bWw+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNv
dW50ZXJzOltwc2V1ZG9TdGF0ZT0xXV0KLSAgICArIDxoZWFkPuKApjwvaGVhZD4KLSAgICAtIDxi
b2R5IGlkPSJtYWluQm9keSIgY2xhc3M9Im1haW4xIG1haW4yIG1haW5wYWdlIiBvbmxvYWQ9InJ1
blRlc3QoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4NSU7IGJhY2tncm91
bmQtaW1hZ2U6IHVybChiYXIucG5nKSI+IFtkZXNjZW5kYW50VXNlckF0dHJpYnV0ZUNvdW50ZXJz
Oltwc2V1ZG9TdGF0ZT0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRoYXQgZm9yY2VkIGVsZW1l
bnQgc3RhdGUgaXMgcmVmbGVjdGVkIGluIHRoZSBET00gdHJlZSBhbmQgU3R5bGVzIHBhbmUuXG48
L3A+Ci0gICAgICAgICAgPGRpdiBpZD0iZGl2Ij5UZXN0IHRleHQ8L2Rpdj4gW3VzZXJQcm9wZXJ0
aWVzOltwc2V1ZG9TdGF0ZT1ob3ZlcixhY3RpdmVdXQotICAgICAgPC9ib2R5PgotICA8L2h0bWw+
Ci0KLURJViB3aXRoIDphY3RpdmUgYW5kIDpmb2N1cwotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5
bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRl
ZF0gCi1kaXY6YWN0aXZlLCBhOmFjdGl2ZSAgeyAoZm9yY2UtcHNldWRvLXN0YXRlLmh0bWw6MTIp
Ci1mb250LXdlaWdodDogYm9sZDsKLQotW2V4cGFuZGVkXSAKLWRpdjpmb2N1cywgYTpmb2N1cyAg
eyAoZm9yY2UtcHNldWRvLXN0YXRlLmh0bWw6OCkKLWJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwot
ICAgIGJvcmRlci10b3AtY29sb3I6IGdyZWVuOwotICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlk
OwotICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsKLSAgICBib3JkZXItcmlnaHQtY29sb3I6IGdy
ZWVuOwotICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7Ci0gICAgYm9yZGVyLXJpZ2h0LXdp
ZHRoOiAxcHg7Ci0gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogZ3JlZW47Ci0gICAgYm9yZGVyLWJv
dHRvbS1zdHlsZTogc29saWQ7Ci0gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OwotICAgIGJv
cmRlci1sZWZ0LWNvbG9yOiBncmVlbjsKLSAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7Ci0g
ICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsKLQotW2V4cGFuZGVkXSAKLTpmb2N1cyAgeyAodXNl
ciBhZ2VudCBzdHlsZXNoZWV0KQotb3V0bGluZTogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIGF1
dG8gNXB4OwotICAgIG91dGxpbmUtY29sb3I6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKLSAg
ICBvdXRsaW5lLXN0eWxlOiBhdXRvOwotICAgIG91dGxpbmUtd2lkdGg6IDVweDsKLQotW2V4cGFu
ZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0K
LT09PT09PT09IEluaGVyaXRlZCBmcm9tIGJvZHkjbWFpbkJvZHkubWFpbjEubWFpbjIubWFpbnBh
Z2UgPT09PT09PT0KLVtleHBhbmRlZF0gCi1TdHlsZSBBdHRyaWJ1dGUgIHsgKCkKLS8tLSBvdmVy
bG9hZGVkIC0tLyBmb250LXdlaWdodDogbm9ybWFsOwotCi0KLS0gPGh0bWw+IFtkZXNjZW5kYW50
VXNlckF0dHJpYnV0ZUNvdW50ZXJzOltwc2V1ZG9TdGF0ZT0xXV0KLSAgICArIDxoZWFkPuKApjwv
aGVhZD4KLSAgICAtIDxib2R5IGlkPSJtYWluQm9keSIgY2xhc3M9Im1haW4xIG1haW4yIG1haW5w
YWdlIiBvbmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRo
OiA4NSU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChiYXIucG5nKSI+IFtkZXNjZW5kYW50VXNlckF0
dHJpYnV0ZUNvdW50ZXJzOltwc2V1ZG9TdGF0ZT0xXV0KLSAgICAgICAgICA8cD5cblRlc3RzIHRo
YXQgZm9yY2VkIGVsZW1lbnQgc3RhdGUgaXMgcmVmbGVjdGVkIGluIHRoZSBET00gdHJlZSBhbmQg
U3R5bGVzIHBhbmUuXG48L3A+Ci0gICAgICAgICAgPGRpdiBpZD0iZGl2Ij5UZXN0IHRleHQ8L2Rp
dj4gW3VzZXJQcm9wZXJ0aWVzOltwc2V1ZG9TdGF0ZT1hY3RpdmUsZm9jdXNdXQotICAgICAgICAr
IDxkaXY+4oCmPC9kaXY+Ci0gICAgICA8L2JvZHk+Ci0gIDwvaHRtbD4KLQotRElWIHdpdGggbm8g
Zm9yY2VkIHN0YXRlCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09
PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBh
Z2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLT09PT09PT09IEluaGVyaXRlZCBm
cm9tIGJvZHkjbWFpbkJvZHkubWFpbjEubWFpbjIubWFpbnBhZ2UgPT09PT09PT0KLVtleHBhbmRl
ZF0gCi1TdHlsZSBBdHRyaWJ1dGUgIHsgKCkKLWZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0KLQotLSA8
aHRtbD4KLSAgICArIDxoZWFkPuKApjwvaGVhZD4KLSAgICAtIDxib2R5IGlkPSJtYWluQm9keSIg
Y2xhc3M9Im1haW4xIG1haW4yIG1haW5wYWdlIiBvbmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9ImZv
bnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4NSU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChiYXIu
cG5nKSI+Ci0gICAgICAgICAgPHA+XG5UZXN0cyB0aGF0IGZvcmNlZCBlbGVtZW50IHN0YXRlIGlz
IHJlZmxlY3RlZCBpbiB0aGUgRE9NIHRyZWUgYW5kIFN0eWxlcyBwYW5lLlxuPC9wPgotICAgICAg
ICAgIDxkaXYgaWQ9ImRpdiI+VGVzdCB0ZXh0PC9kaXY+Ci0gICAgICAgICsgPGRpdj7igKY8L2Rp
dj4KLSAgICAgIDwvYm9keT4KLSAgPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL2ZvcmNlLXBzZXVkby1zdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9mb3JjZS1wc2V1ZG8tc3RhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzYwYmEyZjg3NWEyZGIyYmQ1NjE3NGQ1Y2Y1ZGJiMzgxYjlkMjhiMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL2ZvcmNlLXBzZXVkby1zdGF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLWRpdjpob3ZlciwgYTpob3Zl
ciB7Ci0gICAgY29sb3I6IHJlZDsKLX0KLQotZGl2OmZvY3VzLCBhOmZvY3VzIHsKLSAgICBib3Jk
ZXI6IDFweCBzb2xpZCBncmVlbjsKLX0KLQotZGl2OmFjdGl2ZSwgYTphY3RpdmUgewotICAgIGZv
bnQtd2VpZ2h0OiBib2xkOwotfQotCi08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFu
ZWwoImVsZW1lbnRzIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoImRpdiIsIGZv
dW5kRGl2KTsKLQotICAgIHZhciBkaXZOb2RlSWQ7Ci0KLSAgICBmdW5jdGlvbiBkdW1wRGF0YSgp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMo
dHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVsZW1lbnRzVHJlZSgpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGZvdW5kRGl2KGRpdk5vZGUpCi0gICAgewotICAgICAgICBkaXZOb2Rl
SWQgPSBkaXZOb2RlLmlkOwotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLl9z
ZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChkaXZOb2RlSWQsICJob3ZlciIsIHRydWUpOwotICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLl9zZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChk
aXZOb2RlSWQsICJhY3RpdmUiLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlQW5kV2FpdEZvclN0eWxlcygiZGl2IiwgZGl2U2VsZWN0ZWQxKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBkaXZTZWxlY3RlZDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRElWIHdpdGggOmhv
dmVyIGFuZCA6YWN0aXZlIik7Ci0gICAgICAgIGR1bXBEYXRhKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdEZvclN0eWxlcygiZGl2IiwgaG92ZXJDYWxsYmFjaywgdHJ1ZSk7Ci0gICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuX3NldFBzZXVkb0NsYXNzRm9yTm9kZUlkKGRp
dk5vZGVJZCwgImhvdmVyIiwgZmFsc2UpOwotCi0gICAgICAgIGZ1bmN0aW9uIGhvdmVyQ2FsbGJh
Y2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMo
ImRpdiIsIGRpdlNlbGVjdGVkMiwgdHJ1ZSk7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLmVsZW1lbnRzLl9zZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChkaXZOb2RlSWQsICJmb2N1cyIs
IHRydWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZGl2U2VsZWN0ZWQyKCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRJViB3aXRoIDphY3RpdmUgYW5kIDpmb2N1cyIpOwotICAg
ICAgICBkdW1wRGF0YSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoImRp
diIsIGZvY3VzQ2FsbGJhY2ssIHRydWUpOwotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVs
ZW1lbnRzLl9zZXRQc2V1ZG9DbGFzc0Zvck5vZGVJZChkaXZOb2RlSWQsICJmb2N1cyIsIGZhbHNl
KTsKLQotICAgICAgICBmdW5jdGlvbiBmb2N1c0NhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJkaXYiLCBkaXZTZWxlY3RlZDMsIHRy
dWUpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5fc2V0UHNldWRv
Q2xhc3NGb3JOb2RlSWQoZGl2Tm9kZUlkLCAiYWN0aXZlIiwgZmFsc2UpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gZGl2U2VsZWN0ZWQzKG5vZGUpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJESVYgd2l0aCBubyBmb3JjZWQgc3RhdGUiKTsKLSAgICAgICAgZHVtcERhdGEoKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IGlkPSJtYWluQm9keSIgY2xhc3M9Im1haW4xIG1haW4yIG1haW5wYWdl
IiBvbmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4
NSU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChiYXIucG5nKSI+Ci08cD4KLVRlc3RzIHRoYXQgZm9y
Y2VkIGVsZW1lbnQgc3RhdGUgaXMgcmVmbGVjdGVkIGluIHRoZSBET00gdHJlZSBhbmQgU3R5bGVz
IHBhbmUuCi08L3A+Ci08ZGl2IGlkPSJkaXYiPlRlc3QgdGV4dDwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9pbmFjdGl2ZS1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvaW5h
Y3RpdmUtcHJvcGVydGllcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDVjY2RlOWI0N2QxMjM1Yzg5Yzc4OWVhMTFjNDk2YjgzNzMwODI0NjEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9pbmFjdGl2ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMyICswLDAgQEAKLVRlc3RzIHRoYXQgZWZmZWN0aXZlbHkgaW5hY3RpdmUgcHJvcGVydGll
cyBhcmUgZGlzcGxheWVkIGNvcnJlY3RseSBpbiB0aGUgc2lkZWJhci4KLQotVGVzdAotW2V4cGFu
ZGVkXSAKLWRpc3BsYXk6IGJsb2NrOwotICAgIGRpdiAtIGJsb2NrIHVzZXIgYWdlbnQgc3R5bGVz
aGVldAotdGV4dC1hbGlnbjogcmlnaHQ7Ci0gICAgLy0tIG92ZXJsb2FkZWQgLS0vICNpbnNwZWN0
ZWQgLSBsZWZ0IGluYWN0aXZlLXByb3BlcnRpZXMuaHRtbDoyMAotICAgIC8tLSBvdmVybG9hZGVk
IC0tLyAjaW5zcGVjdGVkIC0gYmFyIGluYWN0aXZlLXByb3BlcnRpZXMuaHRtbDoyMAotICAgICNp
bnNwZWN0ZWQgLSByaWdodCBpbmFjdGl2ZS1wcm9wZXJ0aWVzLmh0bWw6MjAKLSAgICAvLS0gb3Zl
cmxvYWRlZCAtLS8gZGl2W0F0dHJpYnV0ZXMgU3R5bGVdIC0gLXdlYmtpdC1sZWZ0IAotCi1bZXhw
YW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxl
cyA9PT09PT09PQotW2V4cGFuZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKGluYWN0aXZlLXByb3BlcnRp
ZXMuaHRtbDoyMCkKLS8tLSBvdmVybG9hZGVkIC0tLyB0ZXh0LWFsaWduOiBsZWZ0OwotLy0tIG92
ZXJsb2FkZWQgLS0vIHRleHQtYWxpZ246IGJhcjsKLXRleHQtYWxpZ246IHJpZ2h0OwotCi1bZXhw
YW5kZWRdIAotZGl2W0F0dHJpYnV0ZXMgU3R5bGVdICB7ICgpCi0vLS0gb3ZlcmxvYWRlZCAtLS8g
dGV4dC1hbGlnbjogLXdlYmtpdC1sZWZ0OwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFn
ZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvaW5hY3RpdmUtcHJvcGVydGllcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9pbmFjdGl2ZS1wcm9wZXJ0aWVzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyYWM5NDA2Mzk3OWI3NDkwMjEwMjg0MDMyNGJlMzk0Y2Rj
NWNmODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9pbmFjdGl2ZS1wcm9wZXJ0aWVzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRl
c3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXNXaXRoQ29tcHV0ZWQoImluc3BlY3RlZCIsIHN0
ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyhmYWxzZSwgZmFsc2UpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08c3R5bGU+
Ci0jaW5zcGVjdGVkIHsKLSAgICB0ZXh0LWFsaWduOiBsZWZ0OwotICAgIHRleHQtYWxpZ246IGJh
cjsKLSAgICB0ZXh0LWFsaWduOiByaWdodDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlZmZlY3RpdmVseSBpbmFjdGl2
ZSBwcm9wZXJ0aWVzIGFyZSBkaXNwbGF5ZWQgY29ycmVjdGx5IGluIHRoZSBzaWRlYmFyLgotPC9w
PgotCi08ZGl2IGlkPSJjb250YWluZXIiPgotICAgIDxkaXYgaWQ9Imluc3BlY3RlZCIgYWxpZ249
ImxlZnQiPlRlc3Q8L2Rpdj4KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2xhenktY29tcHV0ZWQtc3R5bGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9sYXp5LWNvbXB1dGVkLXN0eWxl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFmNjdjNjk1MGZi
YjM3ZTBhZWE4NTVmMzY4N2I1OGIzMGQyNTk5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2xhenktY29t
cHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAot
VGVzdHMgdGhhdCBjb21wdXRlZCBzdHlsZXMgZXhwYW5kIGFuZCBhbGxvdyB0cmFjaW5nIHRvIHN0
eWxlIHJ1bGVzLgotCi09PT09IEFsbCBzdHlsZXMgKHNob3VsZCBiZSBubyBjb21wdXRlZCkgPT09
PQotW2V4cGFuZGVkXSAKLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09
PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVk
ICB7IChsYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6MTUpCi1iYWNrZ3JvdW5kOiBncmF5OwotICAg
IGJhY2tncm91bmQtaW1hZ2U6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBp
bml0aWFsOwotICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogaW5pdGlhbDsKLSAgICBiYWNrZ3Jv
dW5kLXNpemU6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1yZXBlYXQteDogaW5pdGlhbDsKLSAg
ICBiYWNrZ3JvdW5kLXJlcGVhdC15OiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtYXR0YWNobWVu
dDogaW5pdGlhbDsKLSAgICBiYWNrZ3JvdW5kLW9yaWdpbjogaW5pdGlhbDsKLSAgICBiYWNrZ3Jv
dW5kLWNsaXA6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKLQotW2V4cGFu
ZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKGxhenktY29tcHV0ZWQtc3R5bGUuaHRtbDoxMCkKLS8tLSBv
dmVybG9hZGVkIC0tLyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKLWZvbnQtZmFtaWx5OiBDb3Vy
aWVyOwotCi1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCAgeyAobGF6eS1jb21wdXRlZC1zdHlsZS5o
dG1sOjUpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ci0vLS0g
b3ZlcmxvYWRlZCAtLS8gZm9udC1mYW1pbHk6IFRpbWVzOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7
ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi09PT09IEFsbCBz
dHlsZXMgKGNvbXB1dGVkIHNob3VsZCBiZSB0aGVyZSkgPT09PQotW2V4cGFuZGVkXSAKLS13ZWJr
aXQtYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94OwotLXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdp
bjogcGFkZGluZy1ib3g7Ci0td2Via2l0LWJhY2tncm91bmQtc2l6ZTogYXV0bzsKLWJhY2tncm91
bmQtYXR0YWNobWVudDogc2Nyb2xsOwotICAgICNpbnNwZWN0ZWQgLSBpbml0aWFsIGxhenktY29t
cHV0ZWQtc3R5bGUuaHRtbDoxNQotYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94OwotICAgICNp
bnNwZWN0ZWQgLSBpbml0aWFsIGxhenktY29tcHV0ZWQtc3R5bGUuaHRtbDoxNQotYmFja2dyb3Vu
ZC1jb2xvcjogcmdiKDEyOCwgMTI4LCAxMjgpOwotICAgICNpbnNwZWN0ZWQgLSBncmF5IGxhenkt
Y29tcHV0ZWQtc3R5bGUuaHRtbDoxNQotICAgIC8tLSBvdmVybG9hZGVkIC0tLyAjaW5zcGVjdGVk
IC0gYmxhY2sgbGF6eS1jb21wdXRlZC1zdHlsZS5odG1sOjEwCi0gICAgLy0tIG92ZXJsb2FkZWQg
LS0vICNpbnNwZWN0ZWQgLSBncmVlbiBsYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6NQotYmFja2dy
b3VuZC1pbWFnZTogbm9uZTsKLSAgICAjaW5zcGVjdGVkIC0gaW5pdGlhbCBsYXp5LWNvbXB1dGVk
LXN0eWxlLmh0bWw6MTUKLWJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJveDsKLSAgICAjaW5z
cGVjdGVkIC0gaW5pdGlhbCBsYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6MTUKLWJhY2tncm91bmQt
c2l6ZTogYXV0bzsKLSAgICAjaW5zcGVjdGVkIC0gaW5pdGlhbCBsYXp5LWNvbXB1dGVkLXN0eWxl
Lmh0bWw6MTUKLWRpc3BsYXk6IGJsb2NrOwotICAgIGRpdiAtIGJsb2NrIHVzZXIgYWdlbnQgc3R5
bGVzaGVldAotZm9udC1mYW1pbHk6IENvdXJpZXI7Ci0gICAgI2luc3BlY3RlZCAtIENvdXJpZXIg
bGF6eS1jb21wdXRlZC1zdHlsZS5odG1sOjEwCi0gICAgLy0tIG92ZXJsb2FkZWQgLS0vICNpbnNw
ZWN0ZWQgLSBUaW1lcyBsYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6NQotCi1bZXhwYW5kZWRdIAot
ZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09
PQotW2V4cGFuZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKGxhenktY29tcHV0ZWQtc3R5bGUuaHRtbDox
NSkKLWJhY2tncm91bmQ6IGdyYXk7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogaW5pdGlhbDsKLSAg
ICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGluaXRpYWw7Ci0gICAgYmFja2dyb3VuZC1wb3NpdGlv
bi15OiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtc2l6ZTogaW5pdGlhbDsKLSAgICBiYWNrZ3Jv
dW5kLXJlcGVhdC14OiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtcmVwZWF0LXk6IGluaXRpYWw7
Ci0gICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtb3Jp
Z2luOiBpbml0aWFsOwotICAgIGJhY2tncm91bmQtY2xpcDogaW5pdGlhbDsKLSAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmF5OwotCi1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCAgeyAobGF6eS1jb21w
dXRlZC1zdHlsZS5odG1sOjEwKQotLy0tIG92ZXJsb2FkZWQgLS0vIGJhY2tncm91bmQtY29sb3I6
IGJsYWNrOwotZm9udC1mYW1pbHk6IENvdXJpZXI7Ci0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVk
ICB7IChsYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWw6NSkKLS8tLSBvdmVybG9hZGVkIC0tLyBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKLS8tLSBvdmVybG9hZGVkIC0tLyBmb250LWZhbWlseTogVGlt
ZXM7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3Bs
YXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9sYXp5LWNvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L2xhenktY29tcHV0ZWQtc3R5bGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGFiMGQyOTUzZWEyZTg3ZTY2OTkzNGViYTQ0MDE0MWNlYTBmODg5My4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL2xhenktY29tcHV0ZWQtc3R5bGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0KLSNpbnNwZWN0ZWQgewotICAgIGJhY2tncm91
bmQtY29sb3I6IGdyZWVuOwotICAgIGZvbnQtZmFtaWx5OiBUaW1lczsKLX0KLQotI2luc3BlY3Rl
ZCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7Ci0gICAgZm9udC1mYW1pbHk6IENvdXJp
ZXI7Ci19Ci0KLSNpbnNwZWN0ZWQgewotICAgIGJhY2tncm91bmQ6IGdyYXk7Ci19Ci0KLTwvc3R5
bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVj
dGVkIiwgc3RlcDEpOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT0gQWxsIHN0eWxlcyAoc2hvdWxkIGJlIG5vIGNvbXB1
dGVkKSA9PT09Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0
eWxlcyhmYWxzZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZSwgIm9uQ29udGVudFJlYWR5Iiwgc3RlcDIp
OwotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5jb21w
dXRlZFN0eWxlLmV4cGFuZCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09IEFsbCBzdHlsZXMgKGNvbXB1
dGVkIHNob3VsZCBiZSB0aGVyZSkgPT09PSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
ZWxlY3RlZEVsZW1lbnRTdHlsZXMoZmFsc2UsIGZhbHNlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGNvbXB1dGVkIHN0eWxlcyBleHBh
bmQgYW5kIGFsbG93IHRyYWNpbmcgdG8gc3R5bGUgcnVsZXMuCi08L3A+Ci0KLTxkaXYgaWQ9Imlu
c3BlY3RlZCI+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24tZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTNiNTg4Y2I3ODI3M2EwZThmNGI3MDhhOGJk
YzY5YTQ2MzNlOWQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEtZW11bGF0aW9uLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLVRlc3RzIHRoYXQgZW11bGF0ZWQg
Q1NTIG1lZGlhIGlzIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUuCi0KLU9yaWdpbmFsIHN0
eWxlOgotW2V4cGFuZGVkXSAKLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQot
PT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jbWFpbiAg
eyAobWVkaWEtZW11bGF0aW9uLmh0bWw6NSkKLWNvbG9yOiByZWQ7Ci0KLVtleHBhbmRlZF0gCi1k
aXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLXByaW50
IG1lZGlhIGVtdWxhdGVkOgotW2V4cGFuZGVkXSAKLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5
bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRl
ZF0gCi1AbWVkaWEgcHJpbnQgKG1lZGlhLWVtdWxhdGlvbi5odG1sOjcpCi0jbWFpbiAgeyAobWVk
aWEtZW11bGF0aW9uLmh0bWw6OCkKLWNvbG9yOiBibGFjazsKLQotW2V4cGFuZGVkXSAKLSNtYWlu
ICB7IChtZWRpYS1lbXVsYXRpb24uaHRtbDo1KQotLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiBy
ZWQ7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3Bs
YXk6IGJsb2NrOwotCi0KLXR0eSBtZWRpYSBlbXVsYXRlZDoKLVtleHBhbmRlZF0gCi0KLVtleHBh
bmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVz
ID09PT09PT09Ci1bZXhwYW5kZWRdIAotQG1lZGlhIHR0eSAobWVkaWEtZW11bGF0aW9uLmh0bWw6
MTEpCi0jbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6MTIpCi1jb2xvcjogZ3JlZW47Ci0K
LVtleHBhbmRlZF0gCi0jbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6NSkKLS8tLSBvdmVy
bG9hZGVkIC0tLyBjb2xvcjogcmVkOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50
IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1ObyBtZWRpYSBlbXVsYXRlZDoKLVtl
eHBhbmRlZF0gCi0KLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09
IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotI21haW4gIHsgKG1lZGlh
LWVtdWxhdGlvbi5odG1sOjUpCi1jb2xvcjogcmVkOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1
c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEtZW11bGF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVtdWxhdGlvbi5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0OTY2ZmY5OGUzY2IwN2UwNDcyZDhkMGUzMGM0Yjc5NzZhM2Nh
MWJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEtZW11bGF0aW9uLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw3MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotCi08c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgotI21haW4geyBjb2xvcjogcmVkOyB9Ci0KLUBtZWRpYSBwcmludCB7Ci0jbWFpbiB7IGNv
bG9yOiBibGFjazsgfQotfQotCi1AbWVkaWEgdHR5IHsKLSNtYWluIHsgY29sb3I6IGdyZWVuOyB9
Ci19Ci08L3N0eWxlPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0
eWxlcygibWFpbiIsIHN0ZXAwKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAwKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJPcmlnaW5hbCBzdHlsZToiKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7Ci0gICAgICAgIGFwcGx5
RW11bGF0ZWRNZWRpYSgicHJpbnQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5
bGVzKCJtYWluIiwgc3RlcDEpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicHJpbnQgbWVkaWEgZW11bGF0ZWQ6Iik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcygpOwotICAgICAg
ICBhcHBseUVtdWxhdGVkTWVkaWEoInR0eSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRG
b3JTdHlsZXMoIm1haW4iLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInR0eSBtZWRpYSBlbXVsYXRl
ZDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7
Ci0gICAgICAgIGFwcGx5RW11bGF0ZWRNZWRpYSgiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
d2FpdEZvclN0eWxlcygibWFpbiIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVw
MygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTm8gbWVkaWEgZW11
bGF0ZWQ6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxl
cygpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGFwcGx5RW11bGF0ZWRNZWRpYShtZWRpYSkKLSAgICB7Ci0gICAgICAgIFBhZ2VB
Z2VudC5zZXRFbXVsYXRlZE1lZGlhKG1lZGlhKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01v
ZGVsLm1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBlbXVsYXRl
ZCBDU1MgbWVkaWEgaXMgcmVmbGVjdGVkIGluIHRoZSBTdHlsZXMgcGFuZS4KLTwvcD4KLQotPGRp
diBpZD0ibWFpbiI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLXF1ZXJpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1xdWVyaWVzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGI1ODA1YmFhNzFkNTUxMDAyYjJmOTRiZWUwMGYxMzI4
MDk5ZTU1ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLXF1ZXJpZXMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotVGVzdHMgdGhhdCBtZWRpYSBxdWVyeSBzdGFj
ayBpcyByZW5kZXJlZCBmb3IgYXNzb2NpYXRlZCBydWxlcy4KLQotTWFpbiBzdHlsZToKLVtleHBh
bmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVz
ID09PT09PT09Ci1bZXhwYW5kZWRdIAotbWVkaWE9ImFsbCIgKG1lZGlhLXF1ZXJpZXMuaHRtbCkK
LUBtZWRpYSBzY3JlZW4gKG1lZGlhLXF1ZXJpZXMuY3NzOjUpCi0jbWFpbiAgeyAobWVkaWEtcXVl
cmllcy5jc3M6NikKLWNvbG9yOiB5ZWxsb3c7Ci0KLVtleHBhbmRlZF0gCi1tZWRpYT0iYWxsIiAo
bWVkaWEtcXVlcmllcy5odG1sKQotQGltcG9ydCBzY3JlZW4gKG1lZGlhLXF1ZXJpZXMuY3NzOjMp
Ci1AbWVkaWEgbm90IGF1cmFsIChtZWRpYS1xdWVyaWVzLTEuY3NzOjUpCi0jbWFpbiAgeyAobWVk
aWEtcXVlcmllcy0xLmNzczo2KQotYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ci0KLVtleHBhbmRl
ZF0gCi1tZWRpYT0ic2NyZWVuIiAobWVkaWEtcXVlcmllcy5odG1sKQotQG1lZGlhIG5vdCBwcmlu
dCAobWVkaWEtcXVlcmllcy5odG1sOjUpCi0jbWFpbiAgeyAobWVkaWEtcXVlcmllcy5odG1sOjYp
Ci1iYWNrZ3JvdW5kOiBibHVlOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0
eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9zdHlsZXMvbWVkaWEtcXVlcmllcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9tZWRpYS1xdWVyaWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRhZGEwYjNkYmI5YmNlOGI2YTFkZTIxYzBkY2RlNDc5OWYwYWVjMzYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9tZWRpYS1xdWVyaWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotCi08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4i
PgotQG1lZGlhIG5vdCBwcmludCB7Ci0gICAgI21haW4geyBiYWNrZ3JvdW5kOmJsdWU7IH0KLX0K
LQotQG1lZGlhIHByaW50IHsKLSAgICAjbWFpbiB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9
Ci19Ci08L3N0eWxlPgotCi08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9t
ZWRpYS1xdWVyaWVzLmNzcyIgbWVkaWE9ImFsbCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlQW5kV2FpdEZvclN0eWxlcygibWFpbiIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNYWluIHN0eWxlOiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSwg
ZmFsc2UsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD4KLVRlc3RzIHRoYXQgbWVkaWEgcXVlcnkgc3RhY2sgaXMgcmVuZGVyZWQgZm9yIGFzc29jaWF0
ZWQgcnVsZXMuCi08L3A+Ci0KLTxkaXYgaWQ9Im1haW4iPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZXRyaWNzLWJveC1z
aXppbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZXRyaWNz
LWJveC1zaXppbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
MjhhMDQ2ZThkNzc3YmY0YjQxNjRlNDBiNGRjZGMxOWExNjcwODJlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvbWV0cmljcy1ib3gtc2l6aW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQz
ICswLDAgQEAKLVRlc3RzIHRoYXQgY29udGVudC1ib3ggYW5kIGJvcmRlci1ib3ggY29udGVudCBh
cmVhIGRpbWVuc2lvbnMgYXJlIGhhbmRsZWQgcHJvcGVydHkgYnkgdGhlIE1ldHJpY3MgcGFuZS4K
LQotY29udGVudC1ib3gKLWJvcmRlci1ib3gKLWNvbnRlbnQtYm94IHJlbmRlcmVkIGRpbWVuc2lv
bnM6IDgwIHggNzUKLWJvcmRlci1ib3ggcmVuZGVyZWQgZGltZW5zaW9uczogODAgeCA1NQotCi1S
dW5uaW5nOiB0ZXN0Qm9yZGVyQm94SW5pdDEKLQotUnVubmluZzogdGVzdEJvcmRlckJveEluaXQy
Ci0KLVJ1bm5pbmc6IHRlc3RJbml0aWFsQm9yZGVyQm94TWV0cmljcwotPT09IEluaXRpYWwgYm9y
ZGVyLWJveCA9PT0KLW1hcmdpbjogMSAxIDEgMQotYm9yZGVyOiAzIDMgMyAzCi1wYWRkaW5nOiA3
IDcgNyA3Ci1jb250ZW50OiAzNSB4IDM1Ci0KLVJ1bm5pbmc6IHRlc3RNb2RpZmllZEJvcmRlckJv
eE1ldHJpY3MKLT09PSBNb2RpZmllZCBib3JkZXItYm94ID09PQotbWFyZ2luOiAxIDEgMSAxCi1i
b3JkZXI6IDMgMyAzIDMKLXBhZGRpbmc6IDcgNyA3IDcKLWNvbnRlbnQ6IDYwIHggMzUKLQotUnVu
bmluZzogdGVzdENvbnRlbnRCb3hJbml0MQotCi1SdW5uaW5nOiB0ZXN0Q29udGVudEJveEluaXQy
Ci0KLVJ1bm5pbmc6IHRlc3RJbml0aWFsQ29udGVudEJveE1ldHJpY3MKLT09PSBJbml0aWFsIGNv
bnRlbnQtYm94ID09PQotbWFyZ2luOiAxIDEgMSAxCi1ib3JkZXI6IDMgMyAzIDMKLXBhZGRpbmc6
IDcgNyA3IDcKLWNvbnRlbnQ6IDU1IHggNTUKLQotUnVubmluZzogdGVzdE1vZGlmaWVkQ29udGVu
dEJveE1ldHJpY3MKLT09PSBNb2RpZmllZCBjb250ZW50LWJveCA9PT0KLW1hcmdpbjogMSAxIDEg
MQotYm9yZGVyOiAzIDMgMyAzCi1wYWRkaW5nOiA3IDcgNyA3Ci1jb250ZW50OiA2MCB4IDU1Ci0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWV0cmljcy1ib3gtc2l6
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21ldHJpY3MtYm94LXNpemlu
Zy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTgwN2UxYWEzY2I2MGI4MDIx
NDg4M2E3ZDYyYjUxMmMwYTQ2Nzg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWV0cmljcy1ib3gtc2l6
aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LQotPHN0eWxlPgotI2JvcmRlci1ib3ggewotICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Ci0g
ICAgd2lkdGg6IDU1cHg7Ci0gICAgaGVpZ2h0OiA1NXB4OwotICAgIG1hcmdpbjogMXB4OwotICAg
IHBhZGRpbmc6IDdweDsKLSAgICBib3JkZXI6IDNweCBzb2xpZCBibGFjazsKLX0KLQotI2NvbnRl
bnQtYm94IHsKLSAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKLSAgICB3aWR0aDogNTVweDsK
LSAgICBoZWlnaHQ6IDU1cHg7Ci0gICAgbWFyZ2luOiAxcHg7Ci0gICAgcGFkZGluZzogN3B4Owot
ICAgIGJvcmRlcjogM3B4IHNvbGlkIGJsYWNrOwotfQotPC9zdHlsZT4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGR1bXBEaW1lbnNpb25zKCkKLXsKLSAg
ICB2YXIgZWxlbWVudDsKLQotICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29udGVudC1ib3giKTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0LWNvbnRl
bnQiKS50ZXh0Q29udGVudCA9ICJjb250ZW50LWJveCByZW5kZXJlZCBkaW1lbnNpb25zOiAiICsg
ZWxlbWVudC5vZmZzZXRXaWR0aCArICIgeCAiICsgZWxlbWVudC5vZmZzZXRIZWlnaHQ7Ci0gICAg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3JkZXItYm94Iik7Ci0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dC1ib3JkZXIiKS50ZXh0Q29udGVudCA9ICJib3Jk
ZXItYm94IHJlbmRlcmVkIGRpbWVuc2lvbnM6ICIgKyBlbGVtZW50Lm9mZnNldFdpZHRoICsgIiB4
ICIgKyBlbGVtZW50Lm9mZnNldEhlaWdodDsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
dmFyIGNvbnRlbnRXaWR0aEVsZW1lbnQ7Ci0gICAgdmFyIGNvbnRlbnRIZWlnaHRFbGVtZW50Owot
Ci0gICAgZnVuY3Rpb24gZ2V0Q2hpbGRUZXh0QnlDbGFzc05hbWUoZWxlbWVudCwgY2xhc3NOYW1l
KQotICAgIHsKLSAgICAgICAgdmFyIGNoaWxkcmVuID0gZWxlbWVudC5jaGlsZHJlbjsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsraSkgewotICAgICAgICAg
ICAgaWYgKGNoaWxkcmVuW2ldLmNsYXNzTGlzdCAmJiBjaGlsZHJlbltpXS5jbGFzc0xpc3QuY29u
dGFpbnMoY2xhc3NOYW1lKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5baV0udGV4
dENvbnRlbnQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gZHVtcE1ldHJpY3Moc2VjdGlvbkVsZW1lbnQpCi0gICAgewotICAgICAgICB2YXIg
bWFyZ2luRWxlbWVudCA9IHNlY3Rpb25FbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm1h
cmdpbiIpWzBdOwotICAgICAgICB2YXIgYm9yZGVyRWxlbWVudCA9IHNlY3Rpb25FbGVtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoImJvcmRlciIpWzBdOwotICAgICAgICB2YXIgcGFkZGluZ0Vs
ZW1lbnQgPSBzZWN0aW9uRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwYWRkaW5nIilb
MF07Ci0gICAgICAgIHZhciBjb250ZW50RGltZW5zaW9ucyA9IHNlY3Rpb25FbGVtZW50LmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoImNvbnRlbnQiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Bh
biIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibWFyZ2luOiAiICsgZ2V0Q2hp
bGRUZXh0QnlDbGFzc05hbWUobWFyZ2luRWxlbWVudCwgInRvcCIpICsgIiAiICsgZ2V0Q2hpbGRU
ZXh0QnlDbGFzc05hbWUobWFyZ2luRWxlbWVudCwgInJpZ2h0IikgKyAiICIgKyBnZXRDaGlsZFRl
eHRCeUNsYXNzTmFtZShtYXJnaW5FbGVtZW50LCAiYm90dG9tIikgKyAiICIgKyBnZXRDaGlsZFRl
eHRCeUNsYXNzTmFtZShtYXJnaW5FbGVtZW50LCAibGVmdCIpKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoImJvcmRlcjogIiArIGdldENoaWxkVGV4dEJ5Q2xhc3NOYW1lKGJvcmRl
ckVsZW1lbnQsICJ0b3AiKSArICIgIiArIGdldENoaWxkVGV4dEJ5Q2xhc3NOYW1lKGJvcmRlckVs
ZW1lbnQsICJyaWdodCIpICsgIiAiICsgZ2V0Q2hpbGRUZXh0QnlDbGFzc05hbWUoYm9yZGVyRWxl
bWVudCwgImJvdHRvbSIpICsgIiAiICsgZ2V0Q2hpbGRUZXh0QnlDbGFzc05hbWUoYm9yZGVyRWxl
bWVudCwgImxlZnQiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwYWRkaW5n
OiAiICsgZ2V0Q2hpbGRUZXh0QnlDbGFzc05hbWUocGFkZGluZ0VsZW1lbnQsICJ0b3AiKSArICIg
IiArIGdldENoaWxkVGV4dEJ5Q2xhc3NOYW1lKHBhZGRpbmdFbGVtZW50LCAicmlnaHQiKSArICIg
IiArIGdldENoaWxkVGV4dEJ5Q2xhc3NOYW1lKHBhZGRpbmdFbGVtZW50LCAiYm90dG9tIikgKyAi
ICIgKyBnZXRDaGlsZFRleHRCeUNsYXNzTmFtZShwYWRkaW5nRWxlbWVudCwgImxlZnQiKSk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjb250ZW50OiAiICsgY29udGVudERpbWVu
c2lvbnNbMF0udGV4dENvbnRlbnQgKyAiIHggIiArIGNvbnRlbnREaW1lbnNpb25zWzFdLnRleHRD
b250ZW50KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVEb3VibGVDbGlja0V2ZW50KCkK
LSAgICB7Ci0gICAgICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2
ZW50Iik7Ci0gICAgICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50KCJkYmxjbGljayIsIHRydWUsIHRy
dWUsIG51bGwsIDIsIDAsIDAsIDAsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBu
dWxsKTsKLSAgICAgICAgcmV0dXJuIGV2ZW50OwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Qu
cnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24gdGVzdEJvcmRlckJveEluaXQxKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRG
b3JTdHlsZXMoImJvcmRlci1ib3giLCBuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0Qm9yZGVyQm94SW5pdDIobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgc2Vj
dGlvbiA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLm1ldHJpY3M7
Ci0gICAgICAgICAgICBzZWN0aW9uLmV4cGFuZCgpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKG5leHQpOwotICAgICAgICB9LAotCi0gICAgICAg
IGZ1bmN0aW9uIHRlc3RJbml0aWFsQm9yZGVyQm94TWV0cmljcyhuZXh0KQotICAgICAgICB7Ci0g
ICAgICAgICAgICB2YXIgc3BhbkVsZW1lbnRzID0gc2VjdGlvbi5lbGVtZW50LmdldEVsZW1lbnRz
QnlDbGFzc05hbWUoImNvbnRlbnQiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3BhbiIpOwot
ICAgICAgICAgICAgY29udGVudFdpZHRoRWxlbWVudCA9IHNwYW5FbGVtZW50c1swXTsKLSAgICAg
ICAgICAgIGNvbnRlbnRIZWlnaHRFbGVtZW50ID0gc3BhbkVsZW1lbnRzWzFdOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBJbml0aWFsIGJvcmRlci1ib3ggPT09Iik7
Ci0gICAgICAgICAgICBkdW1wTWV0cmljcyhzZWN0aW9uLmVsZW1lbnQpOwotICAgICAgICAgICAg
Y29udGVudFdpZHRoRWxlbWVudC5kaXNwYXRjaEV2ZW50KGNyZWF0ZURvdWJsZUNsaWNrRXZlbnQo
KSk7Ci0gICAgICAgICAgICBjb250ZW50V2lkdGhFbGVtZW50LnRleHRDb250ZW50ID0gIjYwIjsK
LSAgICAgICAgICAgIGNvbnRlbnRXaWR0aEVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBm
dW5jdGlvbiB0ZXN0TW9kaWZpZWRCb3JkZXJCb3hNZXRyaWNzKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gTW9kaWZpZWQgYm9yZGVyLWJv
eCA9PT0iKTsKLSAgICAgICAgICAgIGR1bXBNZXRyaWNzKHNlY3Rpb24uZWxlbWVudCk7Ci0gICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdENvbnRl
bnRCb3hJbml0MShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bGVjdE5vZGVXaXRoSWQoImNvbnRlbnQtYm94IiwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gdGVzdENvbnRlbnRCb3hJbml0MihuZXh0KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMu
bWV0cmljczsKLSAgICAgICAgICAgIHNlY3Rpb24uZXhwYW5kKCk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMobmV4dCk7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgZnVuY3Rpb24gdGVzdEluaXRpYWxDb250ZW50Qm94TWV0cmljcyhuZXh0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICB2YXIgc3BhbkVsZW1lbnRzID0gc2VjdGlvbi5lbGVtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoImNvbnRlbnQiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
c3BhbiIpOwotICAgICAgICAgICAgY29udGVudFdpZHRoRWxlbWVudCA9IHNwYW5FbGVtZW50c1sw
XTsKLSAgICAgICAgICAgIGNvbnRlbnRIZWlnaHRFbGVtZW50ID0gc3BhbkVsZW1lbnRzWzFdOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBJbml0aWFsIGNvbnRlbnQt
Ym94ID09PSIpOwotICAgICAgICAgICAgZHVtcE1ldHJpY3Moc2VjdGlvbi5lbGVtZW50KTsKLSAg
ICAgICAgICAgIGNvbnRlbnRXaWR0aEVsZW1lbnQuZGlzcGF0Y2hFdmVudChjcmVhdGVEb3VibGVD
bGlja0V2ZW50KCkpOwotICAgICAgICAgICAgY29udGVudFdpZHRoRWxlbWVudC50ZXh0Q29udGVu
dCA9ICI2MCI7Ci0gICAgICAgICAgICBjb250ZW50V2lkdGhFbGVtZW50LmRpc3BhdGNoRXZlbnQo
SW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMobmV4dCk7Ci0gICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdE1vZGlmaWVkQ29udGVu
dEJveE1ldHJpY3MobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBNb2RpZmllZCBj
b250ZW50LWJveCA9PT0iKTsKLSAgICAgICAgICAgIGR1bXBNZXRyaWNzKHNlY3Rpb24uZWxlbWVu
dCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkdW1wRGltZW5z
aW9ucygpIiwgY2FsbGJhY2spOwotICAgICAgICB9Ci0gICAgXSk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IGNvbnRl
bnQtYm94IGFuZCBib3JkZXItYm94IGNvbnRlbnQgYXJlYSBkaW1lbnNpb25zIGFyZSBoYW5kbGVk
IHByb3BlcnR5IGJ5IHRoZSBNZXRyaWNzIHBhbmUuCi08L3A+Ci08ZGl2IGlkPSJjb250ZW50LWJv
eCI+Y29udGVudC1ib3g8L2Rpdj4KLTxkaXYgaWQ9ImJvcmRlci1ib3giPmJvcmRlci1ib3g8L2Rp
dj4KLTxkaXYgaWQ9Im91dHB1dC1jb250ZW50Ij56eno8L2Rpdj4KLTxkaXYgaWQ9Im91dHB1dC1i
b3JkZXIiPnp6ejwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9wYXN0ZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bhc3RlLXByb3BlcnR5LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YyY2NjNWY0ZjIyOWY0MDgwYTNhMzE3NTI3YTFiYjQy
OTc5M2UyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bhc3RlLXByb3BlcnR5LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLVRlc3RzIHRoYXQgc3BsaXR0aW5nIHByb3Bl
cnRpZXMgd2hlbiBwYXN0aW5nIHdvcmtzLgotCi1UZXh0Ci1CZWZvcmUgcGFzdGluZzoKLVtleHBh
bmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1mb250LXNpemU6IDEycHg7Ci0KLT09PT09PT09
IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFn
ZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBwYXN0aW5nICdtYXJn
aW4tbGVmdDogMXB4JzoKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1tYXJnaW4t
bGVmdDogMXB4OwotZm9udC1zaXplOiAxMnB4OwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxl
cyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQot
ZGlzcGxheTogYmxvY2s7Ci0KLQotQWZ0ZXIgcGFzdGluZyAnbWFyZ2luLXRvcDogMXB4OyBjb2xv
cjogcmVkOyc6Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotbWFyZ2luLWxlZnQ6
IDFweDsKLWZvbnQtc2l6ZTogMTJweDsKLW1hcmdpbi10b3A6IDFweDsKLWNvbG9yOiByZWQ7Ci0K
LT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7
ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBwYXN0
aW5nICdmb286IGJhcjsgbW9vOiB6b28nIG92ZXIgJ21hcmdpbi10b3AnOgotW2V4cGFuZGVkXSAK
LWVsZW1lbnQuc3R5bGUgIHsgKCkKLW1hcmdpbi1sZWZ0OiAxcHg7Ci1mb250LXNpemU6IDEycHg7
Ci0vLS0gb3ZlcmxvYWRlZCAtLS8gZm9vOiBiYXI7Ci0vLS0gb3ZlcmxvYWRlZCAtLS8gbW9vOiB6
b287Ci1jb2xvcjogcmVkOwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQot
W2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxv
Y2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bhc3Rl
LXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Bhc3RlLXByb3Bl
cnR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3M2ViMWY0ODMzNjcyZTE2
MDMzOTNmZDA5M2U1YjAxN2FhY2I5MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wYXN0ZS1wcm9wZXJ0
eS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotICAgIEluc3BlY3RvclRlc3Qu
c2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHBhc3RlRmlyc3RQcm9wZXJ0
eSk7Ci0KLSAgICBmdW5jdGlvbiBwYXN0ZUZpcnN0UHJvcGVydHkoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkJlZm9yZSBwYXN0aW5nOiIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0gICAgICAgIHZhciBz
ZWN0aW9uID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVz
LnNlY3Rpb25zWzBdWzFdOwotICAgICAgICBzZWN0aW9uLmV4cGFuZCgpOwotCi0gICAgICAgIHZh
ciB0cmVlRWxlbWVudCA9IHNlY3Rpb24uYWRkTmV3QmxhbmtQcm9wZXJ0eSgwKTsKLSAgICAgICAg
cGFzdGVQcm9wZXJ0eSh0cmVlRWxlbWVudCwgIm1hcmdpbi1sZWZ0OiAxcHgiLCBwYXN0ZVR3b1By
b3BlcnRpZXMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBhc3RlVHdvUHJvcGVydGllcygpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgcGFzdGluZyAnbWFy
Z2luLWxlZnQ6IDFweCc6Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxl
bWVudFN0eWxlcyh0cnVlKTsKLQotICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0
b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMV0uYWRk
TmV3QmxhbmtQcm9wZXJ0eSgyKTsKLSAgICAgICAgcGFzdGVQcm9wZXJ0eSh0cmVlRWxlbWVudCwg
Im1hcmdpbi10b3A6IDFweDsgY29sb3I6IHJlZDsiLCBwYXN0ZU92ZXJFeGlzdGluZ1Byb3BlcnR5
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwYXN0ZU92ZXJFeGlzdGluZ1Byb3BlcnR5KCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciBwYXN0aW5nICdtYXJn
aW4tdG9wOiAxcHg7IGNvbG9yOiByZWQ7JzoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
U2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9
IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRlbSgibWFyZ2luLXRv
cCIpOwotICAgICAgICBwYXN0ZVByb3BlcnR5KHRyZWVFbGVtZW50LCAiZm9vOiBiYXI7IG1vbzog
em9vIiwgZHVtcEFuZENvbXBsZXRlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wQW5kQ29t
cGxldGUoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIHBh
c3RpbmcgJ2ZvbzogYmFyOyBtb286IHpvbycgb3ZlciAnbWFyZ2luLXRvcCc6Iik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHBh
c3RlUHJvcGVydHkodHJlZUVsZW1lbnQsIHByb3BlcnR5VGV4dCwgY2FsbGJhY2spCi0gICAgewot
ICAgICAgICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC50ZXh0Q29udGVudCA9IHByb3BlcnR5VGV4
dDsKLSAgICAgICAgdHJlZUVsZW1lbnQuc3RhcnRFZGl0aW5nKCk7Ci0KLSAgICAgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOwotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFu
ZCgiQ29weSIpOwotICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHJlbG9hZFN0eWxlcy5i
aW5kKHRoaXMsIGNhbGxiYWNrKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmVsb2FkU3R5bGVz
KGNhbGxiYWNrKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgib3Ro
ZXIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKG90
aGVyQ2FsbGJhY2spOwotCi0gICAgICAgIGZ1bmN0aW9uIG90aGVyQ2FsbGJhY2soKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVz
KCJpbnNwZWN0ZWQiLCBjYWxsYmFjayk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQg
c3BsaXR0aW5nIHByb3BlcnRpZXMgd2hlbiBwYXN0aW5nIHdvcmtzLgotPC9wPgotCi08ZGl2IGlk
PSJpbnNwZWN0ZWQiIHN0eWxlPSJmb250LXNpemU6IDEycHgiPlRleHQ8L2Rpdj4KLTxkaXYgaWQ9
Im90aGVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9wZXJmb3JtLXVuZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wZXJmb3JtLXVu
ZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMGE4MjZhZDE5ZDQ2NzRkZTJjYWZkZDgyNWNlOTkxNDE0M2IxZjQ2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvcGVyZm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUtYWN0
aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLVRlc3RzIHRo
YXQgcGVyZm9ybS11bmRvLXBlcmZvcm0gb2YgdGhlIG1lcmdlYWJsZSBhY3Rpb24gZG9lcyBub3Qg
Y3Jhc2guCi0KLUluaXRpYWwgdmFsdWUKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgp
Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNv
bnRhaW5lciAgeyAocGVyZm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUtYWN0aW9uLmh0bWw6
NykKLWZvbnQtd2VpZ2h0OiBib2xkOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50
IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1BZnRlciBjaGFuZ2luZyBwcm9wZXJ0
eQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBD
U1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0uY29udGFpbmVyICB7IChwZXJmb3JtLXVu
ZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24uaHRtbDo3KQotZm9udC13ZWlnaHQ6IG5vcm1h
bDsKLQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxh
eTogYmxvY2s7Ci0KLQotQWZ0ZXIgdW5kbwotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsg
KCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0u
Y29udGFpbmVyICB7IChwZXJmb3JtLXVuZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24uaHRt
bDo3KQotZm9udC13ZWlnaHQ6IGJvbGQ7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdl
bnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLUFmdGVyIHBlcmZvcm0KLVtleHBh
bmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVz
ID09PT09PT09Ci1bZXhwYW5kZWRdIAotLmNvbnRhaW5lciAgeyAocGVyZm9ybS11bmRvLXBlcmZv
cm0tb2YtbWVyZ2FibGUtYWN0aW9uLmh0bWw6NykKLWZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0KLVtl
eHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2Nr
OwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wZXJmb3Jt
LXVuZG8tcGVyZm9ybS1vZi1tZXJnYWJsZS1hY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcGVyZm9ybS11bmRvLXBlcmZvcm0tb2YtbWVyZ2FibGUtYWN0aW9uLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1ZWMxOTliMzlkMjAxMjQ5YzJmMzBhOTM2
YTI4NGE4NTcwY2FhMGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wZXJmb3JtLXVuZG8tcGVyZm9ybS1v
Zi1tZXJnYWJsZS1hY3Rpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotCi08c3R5bGU+Ci0uY29udGFp
bmVyIHsKLSAgZm9udC13ZWlnaHQ6IGJvbGQKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JT
dHlsZXMoImNvbnRhaW5lciIsIHN0ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJJbml0aWFsIHZhbHVlIik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLQotICAg
ICAgICB2YXIgdHJlZUl0ZW0gPSBJbnNwZWN0b3JUZXN0LmdldE1hdGNoZWRTdHlsZVByb3BlcnR5
VHJlZUl0ZW0oImZvbnQtd2VpZ2h0Iik7Ci0gICAgICAgIHRyZWVJdGVtLmFwcGx5U3R5bGVUZXh0
KCJmb250LXdlaWdodDogbm9ybWFsIiwgdHJ1ZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LndhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0
ZXIgY2hhbmdpbmcgcHJvcGVydHkiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0
ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC51
bmRvKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygiY29udGFpbmVyIiwg
c3RlcDMpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciB1bmRvIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlKTsKLQotICAgICAgICB2YXIgdHJlZUl0
ZW0gPSBJbnNwZWN0b3JUZXN0LmdldE1hdGNoZWRTdHlsZVByb3BlcnR5VHJlZUl0ZW0oImZvbnQt
d2VpZ2h0Iik7Ci0gICAgICAgIHRyZWVJdGVtLmFwcGx5U3R5bGVUZXh0KCJmb250LXdlaWdodDog
bm9ybWFsIiwgdHJ1ZSwgZmFsc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHls
ZXMoImNvbnRhaW5lciIsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZ0ZXIgcGVyZm9ybSIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBw
ZXJmb3JtLXVuZG8tcGVyZm9ybSBvZiB0aGUgbWVyZ2VhYmxlIGFjdGlvbiBkb2VzIG5vdCBjcmFz
aC4KLTwvcD4KLQotPGRpdiBpZD0iY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4K
LTxkaXYgaWQ9Im90aGVyIiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1j
c3MtcmVnaW9ucy1jb21tYW5kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQxOTlmOTQwZjhhM2NiZTJhNmYxNzkwMTIwYjE2MDRh
MDAyYWE3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLVRlc3RzIHRoZSBm
b2xsb3dpbmcgY29tbWFuZHMgYW5kIGV2ZW50czoKLQotZ2V0TmFtZWRGbG93Q29sbGVjdGlvbiBC
dWcgOTE2MDcKLWdldEZsb3dCeU5hbWUgQnVnIDkxODU1Ci1uYW1lZEZsb3dDcmVhdGVkIEJ1ZyA5
MjczOQotbmFtZWRGbG93UmVtb3ZlZCBCdWcgOTI3MzkKLXJlZ2lvbk92ZXJzZXRDaGFuZ2VkIEJ1
ZyAxMTc4MzMKLVRoaXMgdGV4dCBpcyBmcm9tIENTUyBOYW1lZCBGbG93ICJmbG93MyIuCi0KLQot
UnVubmluZzogdGVzdEdldE5hbWVkRmxvd0NvbGxlY3Rpb24KLT09PSBDU1MgTmFtZWQgRmxvd3Mg
aW4gbWFpbiBkb2N1bWVudCA9PT0KLSogTmFtZWQgRmxvdyAiZmxvdzEiCi1Db250ZW50IEVsZW1l
bnRzOiAxCi1SZWdpb25zOiAzCi0qIE5hbWVkIEZsb3cgImZsb3cyIgotQ29udGVudCBFbGVtZW50
czogMQotUmVnaW9uczogMgotKiBOYW1lZCBGbG93ICJmbG93MyIKLUNvbnRlbnQgRWxlbWVudHM6
IDEKLVJlZ2lvbnM6IDAKLQotUnVubmluZzogdGVzdEdldE5hbWVkRmxvd0NvbGxlY3Rpb25XaXRo
SW52YWxpZERvY3VtZW50Ci09PT0gQ1NTIE5hbWVkIEZsb3dzIGluICNmYWtlLWRvY3VtZW50ID09
PQotI2Zha2UtZG9jdW1lbnQgaXMgbm90IGEgZG9jdW1lbnQKLQotUnVubmluZzogdGVzdEdldEZs
b3dCeU5hbWUKLT09PSBOYW1lZCBGbG93ICJmbG93MiIgZnJvbSBtYWluIGRvY3VtZW50ID09PQot
KiBOYW1lZCBGbG93ICJmbG93MiIKLUNvbnRlbnQgRWxlbWVudHM6IDEKLVJlZ2lvbnM6IDIKLQot
UnVubmluZzogdGVzdEdldEZsb3dCeU5hbWVXaXRoSW52YWxpZE5hbWUKLT09PSBOYW1lIEZsb3cg
ImZsb3c0IiBmcm9tIG1haW4gZG9jdW1lbnQgPT09Ci1UaGVyZSBpcyBubyBOYW1lZCBGbG93ICJm
bG93NCIgaW4gdGhlIG1haW4gZG9jdW1lbnQKLQotUnVubmluZzogdGVzdE5hbWVkRmxvd0NyZWF0
ZWQKLU5hbWVkRmxvd0NyZWF0ZWQ6ICJ0bXBOYW1lZEZsb3ciCi0KLVJ1bm5pbmc6IHRlc3RSZWdp
b25PdmVyc2V0Q2hhbmdlZAotUmVnaW9uT3ZlcnNldENoYW5nZWQ6ICJmbG93MyIKLQotUnVubmlu
ZzogdGVzdE5hbWVkRmxvd1JlbW92ZWQKLU5hbWVkRmxvd1JlbW92ZWQ6ICJ0bXBOYW1lZEZsb3ci
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3Nz
LXJlZ2lvbnMtY29tbWFuZHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJv
dG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYWUzZTc2OGFjMzc4NGQ1ZjIyMDg0ZGRjNzcyNDhjYmQ5NWVkMDc1ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyNTUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotCi1mdW5jdGlvbiBjcmVhdGVEeW5hbWljRWxlbWVudHMoKQotewotICAgIHZhciBmcmFtZURv
YyA9IHdpbmRvdy5mcmFtZXNbMF0uZG9jdW1lbnQ7Ci0KLSAgICB2YXIgZWwgPSBmcmFtZURvYy5j
cmVhdGVFbGVtZW50KCJhcnRpY2xlIik7Ci0gICAgZWwuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAi
ZmxvdzQiOwotICAgIGZyYW1lRG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWwpOwotCi0gICAgZWwgPSBm
cmFtZURvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBlbC5zdHlsZS53ZWJraXRGbG93RnJv
bSA9ICJmbG93NCI7Ci0gICAgZnJhbWVEb2MuYm9keS5hcHBlbmRDaGlsZChlbCk7Ci0KLSAgICBy
dW5UZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZU5hbWVkRmxvdygpCi17Ci0gICAgdmFyIGFy
dGljbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhcnRpY2xlIik7Ci0gICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotCi0gICAgYXJ0aWNsZS5pZCA9ICJ0bXBB
cnRpY2xlIjsKLSAgICBhcnRpY2xlLnN0eWxlWyItd2Via2l0LWZsb3ctaW50byJdID0gInRtcE5h
bWVkRmxvdyI7Ci0gICAgYXJ0aWNsZS50ZXh0Q29udGVudCA9ICJUaGlzIHRleHQgaXMgZnJvbSBD
U1MgTmFtZWQgRmxvdyBcInRtcE5hbWVkRmxvd1wiIjsKLQotICAgIGRpdi5pZCA9ICJ0bXBEaXYi
OwotICAgIGRpdi5zdHlsZVsiLXdlYmtpdC1mbG93LWZyb20iXSA9ICJ0bXBOYW1lZEZsb3ciOwot
ICAgIGRpdi5zdHlsZVsiaGVpZ2h0Il0gPSAiNXB4IjsKLSAgICBkaXYuc3R5bGVbIndpZHRoIl0g
PSAiMjBweCI7Ci0KLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFydGljbGUpOwotICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKLX0KLQotZnVuY3Rpb24gcmVtb3ZlTmFt
ZWRGbG93KCkKLXsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0bXBBcnRpY2xlIikpOwotICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRtcERpdiIpKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0
b3JUZXN0LnJ1blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RHZXROYW1lZEZsb3dD
b2xsZWN0aW9uKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21B
Z2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRDYWxsYmFjayk7Ci0KLSAgICAgICAgICAgIGZ1
bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2soZG9jdW1lbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3lu
Yyhkb2N1bWVudC5pZCwgbmFtZWRGbG93Q2FsbGJhY2spOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBuYW1lZEZsb3dDYWxsYmFjayhuYW1lZEZsb3dDb2xsZWN0aW9uKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT0gQ1NTIE5hbWVkIEZsb3dzIGluIG1haW4gZG9jdW1lbnQgPT09Iik7Ci0KLSAgICAgICAgICAg
ICAgICBpZiAoIW5hbWVkRmxvd0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gZ2V0IE5hbWVkIEZsb3dzIik7Ci0g
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICB2YXIgbmFtZWRGbG93TWFwID0gbmFtZWRGbG93Q29sbGVjdGlvbi5uYW1lZEZsb3dNYXA7Ci0g
ICAgICAgICAgICAgICAgdmFyIG5hbWVkRmxvd3MgPSBbXTsKLSAgICAgICAgICAgICAgICBmb3Ig
KHZhciBmbG93TmFtZSBpbiBuYW1lZEZsb3dNYXApCi0gICAgICAgICAgICAgICAgICAgIG5hbWVk
Rmxvd3MucHVzaChuYW1lZEZsb3dNYXBbZmxvd05hbWVdKTsKLQotICAgICAgICAgICAgICAgIG5h
bWVkRmxvd3Muc29ydChmdW5jdGlvbiAobmYxLCBuZjIpIHsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICgobmYxLm5hbWUgPT0gbmYyLm5hbWUpID8gMCA6ICgobmYxLm5hbWUgPiBuZjIubmFt
ZSkgPyAxIDogLTEpKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAg
ICAgICAgcHJpbnROYW1lZEZsb3cobmFtZWRGbG93c1tpXSk7Ci0KLSAgICAgICAgICAgICAgICBu
ZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dEdldE5hbWVkRmxvd0NvbGxlY3Rpb25XaXRoSW52YWxpZERvY3VtZW50KG5leHQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9j
dW1lbnRDYWxsYmFjayk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50Q2FsbGJhY2so
ZG9jdW1lbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRv
bUFnZW50LnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnQuaWQsICIjZmFrZS1kb2N1bWVudCIsIHF1ZXJ5
U2VsZWN0b3JDYWxsYmFjayk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9u
IHF1ZXJ5U2VsZWN0b3JDYWxsYmFjayhub2RlSWQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYyhu
b2RlSWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93Q29sbGVjdGlvbikKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IENTUyBO
YW1lZCBGbG93cyBpbiAjZmFrZS1kb2N1bWVudCA9PT0iKTsKLQotICAgICAgICAgICAgICAgIGlm
IChuYW1lZEZsb3dDb2xsZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJbIV0gRmFpbGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
I2Zha2UtZG9jdW1lbnQgaXMgbm90IGEgZG9jdW1lbnQiKQotICAgICAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0
Rmxvd0J5TmFtZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9t
QWdlbnQucmVxdWVzdERvY3VtZW50KGRvY3VtZW50Q2FsbGJhY2spOwotCi0gICAgICAgICAgICBm
dW5jdGlvbiBkb2N1bWVudENhbGxiYWNrKGRvY3VtZW50KQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRGbG93QnlOYW1lQXN5bmMoZG9jdW1l
bnQuaWQsICJmbG93MiIsIG5hbWVkRmxvd0NhbGxiYWNrKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93KQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gTmFtZWQg
RmxvdyBcImZsb3cyXCIgZnJvbSBtYWluIGRvY3VtZW50ID09PSIpOwotCi0gICAgICAgICAgICAg
ICAgaWYgKCFuYW1lZEZsb3cpIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gZ2V0IE5hbWVkIEZsb3ciKTsKLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHByaW50TmFtZWRG
bG93KG5hbWVkRmxvdyk7Ci0KLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEdldEZsb3dCeU5hbWVXaXRoSW52
YWxpZE5hbWUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFn
ZW50LnJlcXVlc3REb2N1bWVudChkb2N1bWVudENhbGxiYWNrKTsKLQotICAgICAgICAgICAgZnVu
Y3Rpb24gZG9jdW1lbnRDYWxsYmFjayhkb2N1bWVudCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuZ2V0Rmxvd0J5TmFtZUFzeW5jKGRvY3VtZW50
LmlkLCAiZmxvdzQiLCBuYW1lZEZsb3dDYWxsYmFjayk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxiYWNrKG5hbWVkRmxvdykKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IE5hbWUgRmxv
dyBcImZsb3c0XCIgZnJvbSBtYWluIGRvY3VtZW50ID09PSIpOwotCi0gICAgICAgICAgICAgICAg
aWYgKG5hbWVkRmxvdykgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiWyFdIEZhaWxlZCIpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGhlcmUgaXMg
bm8gTmFtZWQgRmxvdyBcImZsb3c0XCIgaW4gdGhlIG1haW4gZG9jdW1lbnQiKTsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdE5hbWVkRmxvd0NyZWF0ZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd0NyZWF0ZWQsIGNhbGxiYWNrLCB0aGlzKTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImNyZWF0ZU5hbWVkRmxvdygpIik7
Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGV2ZW50KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLm5hbWUgIT09ICJ0bXBOYW1lZEZsb3ciKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5FdmVudHMuTmFtZWRGbG93Q3JlYXRlZCwgY2FsbGJhY2ssIHRoaXMpOwotCi0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hbWVkRmxvd0NyZWF0ZWQ6IFwidG1wTmFt
ZWRGbG93XCIiKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJlZ2lvbk92ZXJzZXRDaGFuZ2VkKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5SZWdpb25PdmVyc2V0Q2hh
bmdlZCwgY2FsbGJhY2ssIHRoaXMpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgid2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicmVnaW9uM1wiKS5zdHls
ZS53ZWJraXRGbG93RnJvbT1cImZsb3czXCIiKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gY2Fs
bGJhY2soZXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEubmFtZSAhPT0gImZsb3czIikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbk92ZXJzZXRDaGFuZ2VkLCBjYWxs
YmFjaywgdGhpcyk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
UmVnaW9uT3ZlcnNldENoYW5nZWQ6IFwiZmxvdzNcIiIpOwotICAgICAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0TmFt
ZWRGbG93UmVtb3ZlZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
Y3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVu
dHMuTmFtZWRGbG93UmVtb3ZlZCwgY2FsbGJhY2ssIHRoaXMpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicmVtb3ZlTmFtZWRGbG93KCkiKTsKLQotICAgICAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2soZXZlbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGV2ZW50LmRhdGEuZmxvd05hbWUgIT09ICJ0bXBOYW1lZEZsb3ciKQotICAgICAgICAg
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9k
ZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMu
TmFtZWRGbG93UmVtb3ZlZCwgY2FsbGJhY2ssIHRoaXMpOwotCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hbWVkRmxvd1JlbW92ZWQ6IFwidG1wTmFtZWRGbG93XCIi
KTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICBdKTsKLQotICAgIGZ1bmN0aW9uIHByaW50TmFtZWRGbG93KG5hbWVkRmxvdykKLSAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIqIE5hbWVkIEZsb3cgXCIiICsgbmFtZWRG
bG93Lm5hbWUgKyAiXCIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbnRl
bnQgRWxlbWVudHM6ICIgKyBuYW1lZEZsb3cuY29udGVudC5sZW5ndGgpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVnaW9uczogIiArIG5hbWVkRmxvdy5yZWdpb25zLmxlbmd0
aCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0iY3JlYXRl
RHluYW1pY0VsZW1lbnRzKCkiPgotPHA+Ci1UZXN0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGFu
ZCBldmVudHM6Ci08dWw+Ci0gICAgPGxpPmdldE5hbWVkRmxvd0NvbGxlY3Rpb24gPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjA3Ij5CdWcgOTE2MDc8
L2E+PC9saT4KLSAgICA8bGk+Z2V0Rmxvd0J5TmFtZSA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE4NTUiPkJ1ZyA5MTg1NTwvYT48L2xpPgotICAgIDxs
aT5uYW1lZEZsb3dDcmVhdGVkIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MjczOSI+QnVnIDkyNzM5PC9hPjwvbGk+Ci0gICAgPGxpPm5hbWVkRmxvd1Jl
bW92ZWQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTky
NzM5Ij5CdWcgOTI3Mzk8L2E+PC9saT4KLSAgICA8bGk+cmVnaW9uT3ZlcnNldENoYW5nZWQgPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzgzMyI+QnVn
IDExNzgzMzwvYT48L2xpPgotPC91bD4KLTwvcD4KLQotPGFydGljbGUgc3R5bGU9Ii13ZWJraXQt
Zmxvdy1pbnRvOiBmbG93MSI+PC9hcnRpY2xlPgotPGRpdiBzdHlsZT0iLXdlYmtpdC1mbG93LWZy
b206IGZsb3cxIj48L2Rpdj4KLTxkaXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MSI+
PC9kaXY+Ci08ZGl2IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzEiPjwvZGl2PgotCi08
YXJ0aWNsZSBzdHlsZT0iLXdlYmtpdC1mbG93LWludG86IGZsb3cyIj48L2FydGljbGU+Ci08ZGl2
IHN0eWxlPSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2PgotPGRpdiBzdHlsZT0iLXdl
YmtpdC1mbG93LWZyb206IGZsb3cyIj48L2Rpdj4KLQotPGFydGljbGUgc3R5bGU9Ii13ZWJraXQt
Zmxvdy1pbnRvOiBmbG93MyI+Ci0gICAgVGhpcyB0ZXh0IGlzIGZyb20gQ1NTIE5hbWVkIEZsb3cg
ImZsb3czIi4KLTwvYXJ0aWNsZT4KLTxkaXYgaWQ9InJlZ2lvbjMiIHN0eWxlPSItd2Via2l0LWZs
b3ctZnJvbTogbm9uZTsgaGVpZ2h0OiAyMHB4OyB3aWR0aDogNXB4Ij48L2Rpdj4KLQotPGRpdiBp
ZD0iZmFrZS1kb2N1bWVudCI+PC9kaXY+Ci0KLTxpZnJhbWU+PC9pZnJhbWU+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0
b3ItbGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3NlbGVj
dG9yLWxpbmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmFh
YzdmY2VlZWI4OTJlMDZmNmFlZmExNjkyZDY0OTIzNGI4ZDYzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c2VsZWN0b3ItbGluZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBA
Ci1UZXN0cyB0aGF0IHNlbGVjdG9yIGxpbmUgaXMgY29tcHV0ZWQgY29ycmVjdGx5IHJlZ2FyZGxl
c3Mgb2YgaXRzIHN0YXJ0IGNvbHVtbi4gQnVnIDExMDczMi4KLQotVGV4dAotW2V4cGFuZGVkXSAK
LWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09
PT0KLVtleHBhbmRlZF0gCi0jY29udGFpbmVyICNpbnNwZWN0ZWQgIHsgKHNlbGVjdG9yLWxpbmUu
c2Nzczo0KQotY29sb3I6IGdyZWVuOwotCi1bZXhwYW5kZWRdIAotI2luc3BlY3RlZCAgeyAoc2Vs
ZWN0b3ItbGluZS5odG1sOjUpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gY29sb3I6IGdyZWVuOwotCi1b
ZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9j
azsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2VsZWN0
b3ItbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5l
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0OTdmMzM4NmRjYTE0NTI5NDFh
ODFkMjY3NTZjMGM2YjQ2Mjg0OGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zZWxlY3Rvci1saW5lLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHN0eWxl
PgotI2luc3BlY3RlZAotewotICBjb2xvcjogZ3JlZW47Ci19Ci08L3N0eWxlPgotPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvc2VsZWN0b3ItbGluZS5jc3MiIC8+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
dmFyIHNhc3NNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZyhXZWJJ
bnNwZWN0b3IuY3NzTW9kZWwsIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UsIFdlYkluc3BlY3Rvci5u
ZXR3b3JrV29ya3NwYWNlUHJvdmlkZXIpOwotICAgIFdlYkluc3BlY3Rvci53b3Jrc3BhY2UuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlUHJvdmlkZXIuRXZlbnRzLlVJ
U291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGVBZGRlZCwgbnVsbCk7Ci0gICAgV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBzdGVwMSgpOwotCi0gICAgZnVuY3Rpb24g
dWlTb3VyY2VDb2RlQWRkZWQoZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gZXZlbnQuZGF0YTsKLSAgICAgICAgaWYgKHVpU291cmNlQ29kZS51cmwuZW5kc1dpdGgoIi5z
Y3NzIikpCi0gICAgICAgICAgICB1aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Tb3VyY2VNYXBwaW5nQ2hhbmdlZCwgc3RlcDIsIG51
bGwpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXMoY2FsbGJhY2spOwotICAg
ICAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXNvdXJjZSkKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKHJlc291cmNlLnVybC5lbmRzV2l0aCgiLmNzcyIpKSB7Ci0gICAgICAgICAgICAgICAgc2Fz
c01hcHBpbmcuX3Jlc291cmNlQWRkZWQobmV3IFdlYkluc3BlY3Rvci5FdmVudChXZWJJbnNwZWN0
b3IucmVzb3VyY2VUcmVlTW9kZWwsIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVu
dFR5cGVzLlJlc291cmNlQWRkZWQsIHJlc291cmNlKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwMigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9y
U3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVz
KHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdHMgdGhhdCBzZWxlY3RvciBsaW5lIGlzIGNvbXB1dGVkIGNvcnJlY3RseSByZWdhcmRsZXNz
IG9mIGl0cyBzdGFydCBjb2x1bW4uIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTA3MzIiPkJ1ZyAxMTA3MzI8L2E+LgotPC9wPgotCi08ZGl2IGlkPSJj
b250YWluZXIiPgotICAgIDxkaXYgaWQ9Imluc3BlY3RlZCI+VGV4dDwvZGl2PgotPC9kaXY+Ci0K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc2hvdy11c2VyLWFnZW50LXN0eWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3Nob3ctdXNlci1hZ2VudC1zdHlsZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmUzZmUwYmU0MDk4MTg4MDNjYjA2YjQ5MjIyZmM1N2Q5
NTZlYjUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc2hvdy11c2VyLWFnZW50LXN0eWxlcy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1UZXN0cyB0aGF0IHVzZXIgYWdl
bnQgc3R5bGVzIGFyZSBzaG93biBiYXNlZCBvbiB0aGUgc2V0dGluZzogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzY2LgotCi1JJ20gcmVkLgotCi1JJ20gYWxzbyBy
ZWQuCi0KLQotUnVubmluZzogdGVzdFNob3dVc2VyQWdlbnRTdHlsZXMKLVdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5zaG93VXNlckFnZW50U3R5bGVzID0gdHJ1ZQotW2V4cGFuZGVkXSAKLWVsZW1lbnQu
c3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBh
bmRlZF0gCi1oMSAgeyAoc2hvdy11c2VyLWFnZW50LXN0eWxlcy5odG1sOjUpCi1iYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7Ci0KLVtleHBhbmRlZF0gCi1oMSAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0
KQotZGlzcGxheTogYmxvY2s7Ci1mb250LXNpemU6IDJlbTsKLS13ZWJraXQtbWFyZ2luLWJlZm9y
ZTogMC42N2VtOwotLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6IDAuNjdlbTsKLS13ZWJraXQtbWFyZ2lu
LXN0YXJ0OiAwcHg7Ci0td2Via2l0LW1hcmdpbi1lbmQ6IDBweDsKLWZvbnQtd2VpZ2h0OiBib2xk
OwotCi0KLQotUnVubmluZzogdGVzdFNob3dVc2VyQWdlbnRTdHlsZXMKLVdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5zaG93VXNlckFnZW50U3R5bGVzID0gZmFsc2UKLVtleHBhbmRlZF0gCi1lbGVtZW50
LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhw
YW5kZWRdIAotaDEgIHsgKHNob3ctdXNlci1hZ2VudC1zdHlsZXMuaHRtbDo1KQotYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zaG93LXVzZXItYWdlbnQtc3R5bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3Nob3ctdXNlci1hZ2VudC1zdHlsZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTQyODc1NzQxNjY1NjNiYzM1NmM1OWViYmQxZDY2MzExM2I0M2VlOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3Nob3ctdXNlci1hZ2VudC1zdHlsZXMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDU4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci0KLTxzdHlsZT4KLWgxIHsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7Ci19Ci08L3N0eWxlPgotCi08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5U
ZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd1VzZXJBZ2VudFN0eWxlcyhuZXh0
KQotICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1VzZXJB
Z2VudFN0eWxlcy5zZXQodHJ1ZSk7Ci0gICAgICAgICAgICBzZWxlY3ROb2RlQW5kRHVtcFN0eWxl
cygiaW5zcGVjdGVkIiwgbmV4dCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVz
dFNob3dVc2VyQWdlbnRTdHlsZXMobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnNldHRpbmdzLnNob3dVc2VyQWdlbnRTdHlsZXMuc2V0KGZhbHNlKTsKLSAgICAgICAg
ICAgIHNlbGVjdE5vZGVBbmREdW1wU3R5bGVzKCJvdGhlciIsIG5leHQpOwotICAgICAgICB9Ci0g
ICAgXSk7Ci0KLSAgICBmdW5jdGlvbiBzZWxlY3ROb2RlQW5kRHVtcFN0eWxlcyhub2RlSWQsIG5l
eHQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiV2ViSW5zcGVjdG9y
LnNldHRpbmdzLnNob3dVc2VyQWdlbnRTdHlsZXMgPSAiICsgV2ViSW5zcGVjdG9yLnNldHRpbmdz
LnNob3dVc2VyQWdlbnRTdHlsZXMuZ2V0KCkpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzKG5vZGVJZCwgc3RlcDEpOwotCi0gICAgICAgIGZ1bmN0aW9u
IHN0ZXAxKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0
ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5zZXR0aW5ncy5zaG93VXNlckFnZW50U3R5bGVzLnNldCh0cnVlKTsKLSAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCB1c2VyIGFnZW50IHN0eWxl
cyBhcmUgc2hvd24gYmFzZWQgb24gdGhlIHNldHRpbmc6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNzc2Ni4KLTwvcD4KLTxoMSBpZD0iaW5zcGVjdGVkIj4KLUknbSBy
ZWQuCi08L2gxPgotPGgxIGlkPSJvdGhlciI+Ci1JJ20gYWxzbyByZWQuCi08L2gxPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHls
ZXMtYWRkLW5ldy1ydWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLWFkZC1uZXctcnVsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM0OGNkZGY4NjU5OWI0OWNlN2IyZTQ3ZDZjYWM2ZjQxODA3ZTA5M2IuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtYWRkLW5ldy1ydWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDM0ICswLDAgQEAKLVRlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IHJ1bGUgd29ya3Mg
YWZ0ZXIgc3dpdGNoaW5nIG5vZGVzLgotCi1UZXh0Ci1SZXZpc2lvbiBhZGRlZDogaW5zcGVjdG9y
LXN0eWxlc2hlZXQKLUFmdGVyIGFkZGluZyBuZXcgcnVsZSAoaW5zcGVjdGVkKToKLVtleHBhbmRl
ZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi1mb250LXNpemU6IDEycHg7Ci0KLT09PT09PT09IE1h
dGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZm9vLCBbJCNpbnNwZWN0ZWQk
XSwgYmFyICB7IChpbnNwZWN0b3Itc3R5bGVzaGVldDoxKQotY29sb3I6IG1hcm9vbjsKLQotW2V4
cGFuZGVkXSAKLVskZGl2JF0gIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJs
b2NrOwotCi0KLUFmdGVyIGFkZGluZyBuZXcgcnVsZSAob3RoZXIpOgotW2V4cGFuZGVkXSAKLWVs
ZW1lbnQuc3R5bGUgIHsgKCkKLWNvbG9yOiByZWQ7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1
bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotI290aGVyICB7IChpbnNwZWN0b3Itc3R5bGVzaGVl
dDoxKQotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNw
bGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLWFkZC1uZXctcnVsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtYWRkLW5ldy1ydWxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY2MWYzNTI3ZjRjYjI4ZTg0ZjU4NGU4YmJhNThmMjY2NDcxYWM3MWQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtYWRkLW5ldy1ydWxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRz
Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVj
dGVkIiwgc3RlcDEpOwotICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlLnByb3RvdHlwZSwgImFkZFJldmlzaW9uIiwgcmV2aXNpb25BZGRlZCk7Ci0K
LSAgICB2YXIgdHJlZUVsZW1lbnQ7Ci0gICAgdmFyIGhhc1Jlc291cmNlQ2hhbmdlZDsKLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIC8vIENsaWNrICJBZGQgbmV3IHJ1bGUi
LgotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWRkLXN0eWxlLWJ1dHRvbi10ZXN0
LWlkIikuY2xpY2soKTsKLSAgICAgICAgdmFyIHNlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxz
LmVsZW1lbnRzLnNpZGViYXJQYW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMl07Ci0gICAgICAgIHNl
Y3Rpb24uX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudCA9ICJmb28sICIgKyBzZWN0aW9uLl9z
ZWxlY3RvckVsZW1lbnQudGV4dENvbnRlbnQgKyAiLCBiYXIiOwotICAgICAgICBzZWN0aW9uLl9z
ZWxlY3RvckVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50
KCJFbnRlciIpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRj
aGVzKHN0ZXAyKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwMigpCi0gICAgewotICAgICAg
ICB2YXIgc2VjdGlvbiA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVz
LnN0eWxlcy5zZWN0aW9uc1swXVsyXTsKLSAgICAgICAgdmFyIG5ld1Byb3BlcnR5ID0gc2VjdGlv
bi5hZGROZXdCbGFua1Byb3BlcnR5KCk7Ci0gICAgICAgIG5ld1Byb3BlcnR5LnN0YXJ0RWRpdGlu
ZygpOwotICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lRWxlbWVudC50ZXh0Q29udGVudCA9ICJjb2xv
ciI7Ci0gICAgICAgIG5ld1Byb3BlcnR5Lm5hbWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVj
dG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKSk7Ci0gICAgICAgIG5ld1Byb3BlcnR5LnZh
bHVlRWxlbWVudC50ZXh0Q29udGVudCA9ICJtYXJvb24iOwotICAgICAgICBuZXdQcm9wZXJ0eS52
YWx1ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJF
bnRlciIpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxl
cygib3RoZXIiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDMoKQotICAgIHsK
LSAgICAgICAgLy8gQ2xpY2sgIkFkZCBuZXcgcnVsZSIuCi0gICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJhZGQtc3R5bGUtYnV0dG9uLXRlc3QtaWQiKS5jbGljaygpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVw
NCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGFkZGluZyBuZXcgcnVsZSAoaW5zcGVjdGVkKToiKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZh
bHNlLCB0cnVlLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2Fp
dEZvclN0eWxlcygib3RoZXIiLCBzdGVwNSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDUo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGFkZGluZyBu
ZXcgcnVsZSAob3RoZXIpOiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVs
ZW1lbnRTdHlsZXModHJ1ZSwgZmFsc2UsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJldmlzaW9uQWRkZWQocmV2aXNp
b24pCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmV2aXNpb24gYWRk
ZWQ6ICIgKyB0aGlzLmRpc3BsYXlOYW1lKCkpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBhZGRpbmcg
YSBuZXcgcnVsZSB3b3JrcyBhZnRlciBzd2l0Y2hpbmcgbm9kZXMuCi08L3A+Ci0KLTxkaXYgaWQ9
Imluc3BlY3RlZCIgc3R5bGU9ImZvbnQtc2l6ZTogMTJweCI+VGV4dDwvZGl2PgotPGRpdiBpZD0i
b3RoZXIiIHN0eWxlPSJjb2xvcjpyZWQiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jYW5jZWwtZWRpdGlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jYW5j
ZWwtZWRpdGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcx
ZDgwYTU2YTJlYmFlYzdhOWRkOGZkMjNhY2UyMTJhN2E0MjVkNjQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtY2FuY2VsLWVkaXRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjUgKzAsMCBAQAotVGVzdHMgdGhhdCBlZGl0aW5nIGlzIGNhbmNlbGVkIHByb3Blcmx5IGFmdGVy
IGluY3JlbWVudGFsIGVkaXRpbmcuCi0KLVRleHQKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxl
ICB7ICgpCi1jb2xvcjogcmVkOwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09
PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTog
YmxvY2s7Ci0KLQotQWZ0ZXIgYXBwZW5kOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsg
KCkKLWNvbG9yOiByZWQ7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1b
ZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9j
azsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LWNhbmNlbC1lZGl0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1jYW5jZWwtZWRpdGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjIy
YmIwODg3YWMzMDgzZDFmMDI3ODNmMTMyYTExNDViYjc0NGRkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLWNhbmNlbC1lZGl0aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7
Ci0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVk
Iiwgc3RlcDEpOwotCi0gICAgdmFyIHRyZWVFbGVtZW50OwotICAgIHZhciBzZWN0aW9uOwotCi0g
ICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2Vs
ZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwotICAgICAgICB0cmVlRWxlbWVudCA9IEluc3BlY3Rv
clRlc3QuZ2V0RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRlbSgiY29sb3IiKTsKLQotICAgICAg
ICB0cmVlRWxlbWVudC5zdGFydEVkaXRpbmcoKTsKLSAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVs
ZW1lbnQudGV4dENvbnRlbnQgPSAiY29sb3IiOwotICAgICAgICB0cmVlRWxlbWVudC5uYW1lRWxl
bWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIikp
OwotCi0gICAgICAgIC8vIFVwZGF0ZSBpbmNyZW1lbnRhbGx5LCBkbyBub3QgY29tbWl0LgotICAg
ICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiZ3JlZW4iOwotICAg
ICAgICB0cmVlRWxlbWVudC5raWNrRnJlZUZsb3dTdHlsZUVkaXRGb3JUZXN0KCk7Ci0KLSAgICAg
ICAgLy8gQ2FuY2VsIGVkaXRpbmcuCi0gICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5m
aXJzdENoaWxkLnNlbGVjdCgpOwotICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQuZGlz
cGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJVKzAwMUIiKSk7IC8vIEVz
Y2FwZQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoc3Rl
cDIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgib3RoZXIiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBzdGVwMygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0
Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Rl
cDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGFwcGVu
ZDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRy
dWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVz
dHMgdGhhdCBlZGl0aW5nIGlzIGNhbmNlbGVkIHByb3Blcmx5IGFmdGVyIGluY3JlbWVudGFsIGVk
aXRpbmcuCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCIgc3R5bGU9ImNvbG9yOiByZWQiPlRl
eHQ8L2Rpdj4KLTxkaXYgaWQ9Im90aGVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtY2hhbmdlLW5vZGUt
d2hpbGUtZWRpdGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1jaGFuZ2Utbm9kZS13aGlsZS1lZGl0aW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYTk5MDFjOGZmYjQwNWVlNzg2NDMzNDJlOGY4N2U2NmE4MDlm
ZDVkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jaGFuZ2Utbm9kZS13aGlsZS1lZGl0aW5n
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRlc3RzIHRoYXQg
Y2hhbmdpbmcgc2VsZWN0ZWQgbm9kZSB3aGlsZSBlZGl0aW5nIHN0eWxlIGRvZXMgdXBkYXRlIHN0
eWxlcyBzaWRlYmFyLgotCi1UZXh0Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQot
Y29sb3I6IHJlZDsKLQotCi1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29sb3I6
IGJsdWU7Ci0KLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLWJhY2tncm91bmQ6
IHJlZDsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLWNoYW5nZS1ub2RlLXdoaWxlLWVkaXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLWNoYW5nZS1ub2RlLXdoaWxlLWVkaXRpbmcuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODI5MWUzN2ZmM2JlYWM0MjRhODc1YzJmMWUwNjk2OWFmYTYw
NjU0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jaGFuZ2Utbm9kZS13aGlsZS1lZGl0aW5n
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5z
ZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDEpOwotCi0gICAgdmFy
IHRyZWVFbGVtZW50OwotICAgIHZhciBzZWN0aW9uOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRy
dWUsIHRydWUsIHRydWUpOwotICAgICAgICB0cmVlRWxlbWVudCA9IEluc3BlY3RvclRlc3QuZ2V0
RWxlbWVudFN0eWxlUHJvcGVydHlUcmVlSXRlbSgiY29sb3IiKTsKLQotICAgICAgICB0cmVlRWxl
bWVudC5zdGFydEVkaXRpbmcoKTsKLSAgICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQudGV4
dENvbnRlbnQgPSAiYmFja2dyb3VuZCI7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlQW5kV2FpdEZvclN0eWxlcygib3RoZXIiLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gc3RlcDIoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVt
ZW50U3R5bGVzKHRydWUsIHRydWUsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwMyk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RlcDMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0
ZWRFbGVtZW50U3R5bGVzKHRydWUsIHRydWUsIHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBjaGFuZ2luZyBzZWxlY3RlZCBu
b2RlIHdoaWxlIGVkaXRpbmcgc3R5bGUgZG9lcyB1cGRhdGUgc3R5bGVzIHNpZGViYXIuCi08L3A+
Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCIgc3R5bGU9ImNvbG9yOiByZWQiPlRleHQ8L2Rpdj4KLTxk
aXYgaWQ9Im90aGVyIiBzdHlsZT0iY29sb3I6IGJsdWUiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1jb21t
aXQtZWRpdGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0
eWxlcy1jb21taXQtZWRpdGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZkZTMyNzk0M2E2OTJkZjVmYWNiM2U3MGNiNWJkMzFmNDBmYjQwNTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtY29tbWl0LWVkaXRpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjUgKzAsMCBAQAotVGVzdHMgdGhhdCBlZGl0aW5nIGlzIGNhbmNlbGVkIHByb3Bl
cmx5IGFmdGVyIGluY3JlbWVudGFsIGVkaXRpbmcuCi0KLVRleHQKLVtleHBhbmRlZF0gCi1lbGVt
ZW50LnN0eWxlICB7ICgpCi1jb2xvcjogcmVkOwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxl
cyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQot
ZGlzcGxheTogYmxvY2s7Ci0KLQotQWZ0ZXIgYXBwZW5kOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQu
c3R5bGUgIHsgKCkKLWNvbG9yOiBncmVlbjsKLQotPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMg
PT09PT09PT0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRp
c3BsYXk6IGJsb2NrOwotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtY29tbWl0LWVkaXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLWNvbW1pdC1lZGl0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDliZjA0YWIwZjI4ZTQ2YWU5MjQwNjMxYWQ1NWY3YTM5ZjhiNTQ2ZWYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtY29tbWl0LWVkaXRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDgxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgi
ZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVz
KCJpbnNwZWN0ZWQiLCBzdGVwMSk7Ci0KLSAgICB2YXIgdHJlZUVsZW1lbnQ7Ci0gICAgdmFyIHRy
ZWVPdXRsaW5lOwotICAgIHZhciBzZWN0aW9uOwotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUp
OwotICAgICAgICB0cmVlRWxlbWVudCA9IEluc3BlY3RvclRlc3QuZ2V0RWxlbWVudFN0eWxlUHJv
cGVydHlUcmVlSXRlbSgiY29sb3IiKTsKLSAgICAgICAgdHJlZU91dGxpbmUgPSB0cmVlRWxlbWVu
dC50cmVlT3V0bGluZTsKLQotICAgICAgICB0cmVlRWxlbWVudC5zdGFydEVkaXRpbmcoKTsKLSAg
ICAgICAgdHJlZUVsZW1lbnQubmFtZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiY29sb3IiOwotICAg
ICAgICB0cmVlRWxlbWVudC5uYW1lRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3Qu
Y3JlYXRlS2V5RXZlbnQoIkVudGVyIikpOwotCi0gICAgICAgIC8vIFVwZGF0ZSBpbmNyZW1lbnRh
bGx5LCBkbyBub3QgY29tbWl0LgotICAgICAgICB0cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQudGV4
dENvbnRlbnQgPSAicmdiKC8qIjsKLSAgICAgICAgdHJlZUVsZW1lbnQua2lja0ZyZWVGbG93U3R5
bGVFZGl0Rm9yVGVzdCgpOwotCi0gICAgICAgIC8vIENvbW1pdCBlZGl0aW5nLgotICAgICAgICB0
cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiZ3JlZW4iOwotICAgICAgICB0
cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQuZmlyc3RDaGlsZC5zZWxlY3QoKTsKLSAgICAgICAgdHJl
ZUVsZW1lbnQudmFsdWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVL
ZXlFdmVudCgiRW50ZXIiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5n
RGlzcGF0Y2hlcyhzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgdmFyIGJsYW5rVHJlZUVsZW1lbnQgPSB0cmVlT3V0bGluZS5jaGlsZHJlblsxXTsK
LSAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuaXNCZWluZ0VkaXRlZChibGFua1RyZWVFbGVtZW50
Lm5hbWVFbGVtZW50KSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5v
IG5ldyBwcm9wZXJ0eSBlZGl0b3IgYWN0aXZlISIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRlc3QgU3R5bGVzIHBh
bmUgZWRpdG9yIGxvb3BpbmcuCi0gICAgICAgIGJsYW5rVHJlZUVsZW1lbnQubmFtZUVsZW1lbnQu
ZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpKTsKLSAg
ICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuaXNCZWluZ0VkaXRlZCh0cmVlT3V0bGluZS5jaGlsZHJl
blswXS5uYW1lRWxlbWVudCkpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJPcmlnaW5hbCBwcm9wZXJ0eSBuYW1lIGVkaXRvciBub3QgYWN0aXZlISIpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIElu
c3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCgib3RoZXIiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRX
YWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDQoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGFw
cGVuZDoiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVz
KHRydWUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgot
VGVzdHMgdGhhdCBlZGl0aW5nIGlzIGNhbmNlbGVkIHByb3Blcmx5IGFmdGVyIGluY3JlbWVudGFs
IGVkaXRpbmcuCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCIgc3R5bGU9ImNvbG9yOiByZWQi
PlRleHQ8L2Rpdj4KLTxkaXYgaWQ9Im90aGVyIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtZWRpdC1wcm9w
ZXJ0eS1hZnRlci1pbnZhbGlkLXJ1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9zdHlsZXMtZWRpdC1wcm9wZXJ0eS1hZnRlci1pbnZhbGlkLXJ1bGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOWVjMWMwNjJkOTVhMGMzZjk2
OWMwYjg4NjU4YjMwZmQ3YzMyZGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWVkaXQtcHJv
cGVydHktYWZ0ZXItaW52YWxpZC1ydWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLVRlc3RzIHRoYXQgcHJvcGVyIHNvdXJjZSBsaW5lcyBhcmUgcmVwb3J0ZWQg
Zm9yIHRoZSBzdHlsZXMgYWZ0ZXIgdW5yZWNvZ25pemVyIC8gaW52YWxpZCBzZWxlY3Rvci4KLQot
SW5pdGlhbCB2YWx1ZQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09
PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1tZWRpYT0ic2NyZWVu
IiAoc3R5bGVzLWVkaXQtcHJvcGVydHktYWZ0ZXItaW52YWxpZC1ydWxlLmh0bWwpCi0jY29udGFp
bmVyICB7IChzdHlsZXMtZWRpdC1wcm9wZXJ0eS1hZnRlci1pbnZhbGlkLXJ1bGUuaHRtbDoxMCkK
LXBhZGRpbmc6IDE1cHg7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVz
aGVldCkKLWRpc3BsYXk6IGJsb2NrOwotCi0KLUFmdGVyIGNoYW5naW5nIHByb3BlcnR5Ci1bZXhw
YW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxl
cyA9PT09PT09PQotW2V4cGFuZGVkXSAKLW1lZGlhPSJzY3JlZW4iIChzdHlsZXMtZWRpdC1wcm9w
ZXJ0eS1hZnRlci1pbnZhbGlkLXJ1bGUuaHRtbCkKLSNjb250YWluZXIgIHsgKHN0eWxlcy1lZGl0
LXByb3BlcnR5LWFmdGVyLWludmFsaWQtcnVsZS5odG1sOjEwKQotcGFkZGluZzogMjBweDsKLQot
W2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxv
Y2s7Ci0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
cy1lZGl0LXByb3BlcnR5LWFmdGVyLWludmFsaWQtcnVsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdHlsZXMtZWRpdC1wcm9wZXJ0eS1hZnRlci1pbnZhbGlkLXJ1bGUuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUzMDUwMDg4YWEyOGE1YWI3ZWU0NTZh
NzY1OTAwNWJmZjlhYzJhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1lZGl0LXByb3BlcnR5
LWFmdGVyLWludmFsaWQtcnVsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4K
LS8qIEludmFsaWQgc2VsZWN0b3IgKi8KLS5uYXZiYXItc2VhcmNoIC5zZWFyY2gtcXVlcnk6LW1v
ei1wbGFjZWhvbGRlciB7Ci0gIGNvbG9yOiAjY2NjY2NjOwotfQotCi0jY29udGFpbmVyIHsKLSAg
cGFkZGluZzogMTVweDsKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0
Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXAxKTsKLSAgICAKLSAgICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKLSAgICAgIHsKLSAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiSW5pdGlhbCB2YWx1ZSIpOwotICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVk
RWxlbWVudFN0eWxlcyh0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgCi0gICAgICAgICAgdmFyIHRy
ZWVJdGVtID0gSW5zcGVjdG9yVGVzdC5nZXRNYXRjaGVkU3R5bGVQcm9wZXJ0eVRyZWVJdGVtKCJw
YWRkaW5nIik7Ci0gICAgICAgICAgdHJlZUl0ZW0uYXBwbHlTdHlsZVRleHQoInBhZGRpbmc6IDIw
cHgiLCB0cnVlLCBmYWxzZSk7Ci0gICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVz
KCJjb250YWluZXIiLCBzdGVwMik7Ci0gICAgICB9Ci0gICAgCi0gICAgICBmdW5jdGlvbiBzdGVw
MigpCi0gICAgICB7Ci0gICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIGNo
YW5naW5nIHByb3BlcnR5Iik7Ci0gICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRF
bGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHByb3BlciBzb3VyY2UgbGlu
ZXMgYXJlIHJlcG9ydGVkIGZvciB0aGUgc3R5bGVzIGFmdGVyIHVucmVjb2duaXplciAvIGludmFs
aWQgc2VsZWN0b3IuCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci0KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTc4NTYzNWYyOWM0YzYyNGMwNTA3NDljNGNmNmU1MzExMTlhNTY2My4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotVGVzdHMgdGhhdCBjaGFuZ2VzIHRvIGFuIGlu
bGluZSBzdHlsZSBhbmQgYW5jZXN0b3Ivc2libGluZyBjbGFzc05hbWUgZnJvbSBKYXZhU2NyaXB0
IGFyZSByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBwYW5lIGFuZCBFbGVtZW50cyB0cmVlLgotCi0K
LVJ1bm5pbmc6IHRlc3RJbml0Ci0KLVJ1bm5pbmc6IHRlc3RTZXRTdHlsZUF0dHJpYnV0ZQotPGRp
diBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6ICNkYUMwREU7IGJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOyI+4oCmPC9kaXY+Ci1bZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29s
b3I6ICNkYUMwREU7Ci1ib3JkZXI6IDFweCBzb2xpZCBibGFjazsKLSAgICBib3JkZXItdG9wLWNv
bG9yOiBibGFjazsKLSAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsKLSAgICBib3JkZXItdG9w
LXdpZHRoOiAxcHg7Ci0gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBibGFjazsKLSAgICBib3JkZXIt
cmlnaHQtc3R5bGU6IHNvbGlkOwotICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4OwotICAgIGJv
cmRlci1ib3R0b20tY29sb3I6IGJsYWNrOwotICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlk
OwotICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsKLSAgICBib3JkZXItbGVmdC1jb2xvcjog
YmxhY2s7Ci0gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOwotICAgIGJvcmRlci1sZWZ0LXdp
ZHRoOiAxcHg7Ci0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5k
ZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQot
Ci0KLVJ1bm5pbmc6IHRlc3RTZXRTdHlsZUNTU1RleHQKLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5
bGU9ImNvbG9yOiByZ2IoMTkyLCAyNTUsIDIzOCk7Ij7igKY8L2Rpdj4KLVtleHBhbmRlZF0gCi1l
bGVtZW50LnN0eWxlICB7ICgpCi1jb2xvcjogcmdiKDE5MiwgMjU1LCAyMzgpOwotCi09PT09PT09
PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBh
Z2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCi1SdW5uaW5nOiB0ZXN0U2V0
VmlhUGFyc2VkQXR0cmlidXRlcwotPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iY29sb3I6IHJn
YigxOTIsIDI1NSwgMjM4KTsgYm9yZGVyOiAzcHggZGFzaGVkIGdyZWVuOyI+4oCmPC9kaXY+Ci1b
ZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotY29sb3I6IHJnYigxOTIsIDI1NSwgMjM4
KTsKLWJvcmRlcjogM3B4IGRhc2hlZCBncmVlbjsKLSAgICBib3JkZXItdG9wLWNvbG9yOiBncmVl
bjsKLSAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7Ci0gICAgYm9yZGVyLXRvcC13aWR0aDog
M3B4OwotICAgIGJvcmRlci1yaWdodC1jb2xvcjogZ3JlZW47Ci0gICAgYm9yZGVyLXJpZ2h0LXN0
eWxlOiBkYXNoZWQ7Ci0gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7Ci0gICAgYm9yZGVyLWJv
dHRvbS1jb2xvcjogZ3JlZW47Ci0gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZGFzaGVkOwotICAg
IGJvcmRlci1ib3R0b20td2lkdGg6IDNweDsKLSAgICBib3JkZXItbGVmdC1jb2xvcjogZ3JlZW47
Ci0gICAgYm9yZGVyLWxlZnQtc3R5bGU6IGRhc2hlZDsKLSAgICBib3JkZXItbGVmdC13aWR0aDog
M3B4OwotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAK
LWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7Ci0KLQotCi1S
dW5uaW5nOiB0ZXN0U2V0VmlhQW5jZXN0b3JDbGFzcwotPGRpdiBpZD0iY2hpbGQiPjwvZGl2Pgot
W2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hlZCBDU1Mg
UnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0ucmVkIGRpdjpmaXJzdC1jaGlsZCAgeyAoc3R5
bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6NCkKLWJhY2tncm91bmQtY29sb3I6IHJlZDsKLQotW2V4
cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxheTogYmxvY2s7
Ci0KLT09PT09PT09IEluaGVyaXRlZCBmcm9tIGRpdiNjb250YWluZXIucmVkID09PT09PT09Ci1b
ZXhwYW5kZWRdIAotU3R5bGUgQXR0cmlidXRlICB7ICgpCi1jb2xvcjogcmdiKDE5MiwgMjU1LCAy
MzgpOwotCi0KLQotUnVubmluZzogdGVzdFNldFZpYVNpYmxpbmdBdHRyCi08ZGl2IGlkPSJjaGls
ZFNpYmxpbmciPjwvZGl2PgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09
PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1kaXZbZm9vPSJi
YXIiXSArIGRpdiAgeyAoc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6OCkKLWJhY2tncm91bmQt
Y29sb3I6IGJsdWU7Ci0KLVtleHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVl
dCkKLWRpc3BsYXk6IGJsb2NrOwotCi09PT09PT09PSBJbmhlcml0ZWQgZnJvbSBkaXYjY29udGFp
bmVyLnJlZCA9PT09PT09PQotW2V4cGFuZGVkXSAKLVN0eWxlIEF0dHJpYnV0ZSAgeyAoKQotY29s
b3I6IHJnYigxOTIsIDI1NSwgMjM4KTsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5OGY1MzQyZmVhYzFmNjNkMTliZGUyYWYyYWRkMjBjMmMzODFlNDQ5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLS5yZWQgZGl2
OmZpcnN0LWNoaWxkIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Ci19Ci0KLWRpdltmb289
ImJhciJdICsgZGl2IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwotfQotCi08L3N0eWxl
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9l
bGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBtb2RpZnlTdHls
ZUF0dHJpYnV0ZSgpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIp
LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiY29sb3I6ICNkYUMwREU7IGJvcmRlcjogMXB4IHNvbGlk
IGJsYWNrOyIpOwotfQotCi1mdW5jdGlvbiBtb2RpZnlDU1NUZXh0KCkKLXsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikuc3R5bGUuY3NzVGV4dCA9ICJjb2xvcjogI0Mw
RkZFRSI7Ci19Ci0KLWZ1bmN0aW9uIG1vZGlmeVBhcnNlZEF0dHJpYnV0ZXMoKQotewotICAgIHZh
ciBzdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5zdHlsZTsKLSAg
ICBzdHlsZS5ib3JkZXIgPSAiMnB4IGRhc2hlZCBncmVlbiI7Ci0gICAgc3R5bGUuYm9yZGVyV2lk
dGggPSAiM3B4IjsKLX0KLQotZnVuY3Rpb24gbW9kaWZ5Q29udGFpbmVyQ2xhc3MoKQotewotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKS5jbGFzc05hbWUgPSAicmVkIjsK
LX0KLQotZnVuY3Rpb24gbW9kaWZ5Q2hpbGRBdHRyKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY2hpbGQiKS5zZXRBdHRyaWJ1dGUoImZvbyIsICJiYXIiKTsKLX0KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBm
dW5jdGlvbiB0ZXN0SW5pdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBuZXh0KTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0U3R5bGVBdHRyaWJ1dGUobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgd2FpdEFuZER1bXBBdHRyaWJ1dGVBbmRTdHlsZXMobmV4dCk7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlTdHlsZUF0
dHJpYnV0ZSgpIik7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFN0eWxl
Q1NTVGV4dChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB3YWl0QW5kRHVtcEF0dHJpYnV0
ZUFuZFN0eWxlcyhuZXh0KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoIm1vZGlmeUNTU1RleHQoKSIpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RTZXRWaWFQYXJzZWRBdHRyaWJ1dGVzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHdh
aXRBbmREdW1wQXR0cmlidXRlQW5kU3R5bGVzKG5leHQpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5UGFyc2VkQXR0cmlidXRlcygpIik7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYUFuY2VzdG9yQ2xhc3MobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0
eWxlcygiY2hpbGQiLCBjYWxsYmFjayk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNr
KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB3YWl0QW5kRHVtcEF0dHJpYnV0ZUFu
ZFN0eWxlcyhuZXh0LCAiY2hpbGQiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJtb2RpZnlDb250YWluZXJDbGFzcygpIik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNldFZpYVNpYmxpbmdBdHRyKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRG
b3JTdHlsZXMoImNoaWxkU2libGluZyIsIGNhbGxiYWNrKTsKLQotICAgICAgICAgICAgZnVuY3Rp
b24gY2FsbGJhY2soKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHdhaXRBbmREdW1w
QXR0cmlidXRlQW5kU3R5bGVzKG5leHQsICJjaGlsZFNpYmxpbmciKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlDaGlsZEF0dHIoKSIpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci0KLSAgICBmdW5jdGlvbiB3YWl0QW5kRHVt
cEF0dHJpYnV0ZUFuZFN0eWxlcyhuZXh0LCBpZCkKLSAgICB7Ci0gICAgICAgIGlkID0gaWQgfHwg
ImNvbnRhaW5lciI7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhpZCk7Ci0gICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKGlkLCBjYWxs
YmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcEF0dHJpYnV0ZUFuZFN0eWxlcyhpZCkK
LSAgICB7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IGZpbmROb2RlVHJlZUVsZW1lbnQoaWQp
OwotICAgICAgICBpZiAoIXRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiJyIgKyBpZCArICInIHRyZWUgZWxlbWVudCBub3QgZm91bmQiKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCh0cmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQudGV4dENvbnRlbnQucmVwbGFjZSgvXHUyMDBi
L2csICIiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxl
cyh0cnVlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBmaW5kTm9kZVRyZWVFbGVtZW50KGlkKQot
ICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5f
dXBkYXRlTW9kaWZpZWROb2RlcygpOwotICAgICAgICB2YXIgZXhwYW5kZWROb2RlID0gSW5zcGVj
dG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQoaWQpOwotICAgICAgICBpZiAoIWV4cGFuZGVkTm9k
ZSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiciICsgaWQgKyAiJyBu
b2RlIG5vdCBmb3VuZCIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50
cy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQoZXhwYW5kZWROb2RlKTsKLSAgICB9Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0
cyB0aGF0IGNoYW5nZXMgdG8gYW4gaW5saW5lIHN0eWxlIGFuZCBhbmNlc3Rvci9zaWJsaW5nIGNs
YXNzTmFtZSBmcm9tIEphdmFTY3JpcHQgYXJlIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUg
YW5kIEVsZW1lbnRzIHRyZWUuCi08L3A+Ci0KLTxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImZv
bnQtd2VpZ2h0OmJvbGQiPjxkaXYgaWQ9ImNoaWxkIj48L2Rpdj48ZGl2IGlkPSJjaGlsZFNpYmxp
bmciPjwvZGl2PjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cmwtbGlua2lmeS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cmwtbGlua2lmeS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViODY3NzBkMThjNDg5MzU1NzNjZmY5
M2I5MjRkNWM0OWFiYjcyMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXJsLWxpbmtpZnkt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGVzdHMgdGhhdCBV
UkxzIGFyZSBsaW5rZWQgdG8gYW5kIGNvbXBsZXRlZCBjb3JyZWN0bHkuIEJ1Z3MgNTE2NjMsIDUz
MTcxLCA2MjY0MywgNzIzNzMsIDc5OTA1Ci0KLQotVVJMcyBjb21wbGV0ZWQ6Ci1odHRwOi8vZXhh
bXBsZS5jb20vCi1odHRwOi8vZXhhbXBsZS5jb20vbW9vCi1odHRwczovL3NlY3VyZS5jb20vbW9v
Ci1odHRwczovL3NlY3VyZS5jb20vbW9vCi1odHRwOi8vZXhhbXBsZS5jb20vbW9vCi1odHRwOi8v
ZXhhbXBsZS5jb20vZm9vL3pvby9tb28KLWh0dHA6Ly9leGFtcGxlLmNvbS9mb28vYm9vL21vbwot
aHR0cDovL2V4YW1wbGUuY29tL21vbwotaHR0cDovL2V4YW1wbGUuY29tL2Zvbz9hPWIKLWh0dHA6
Ly9leGFtcGxlLmNvbS9mb28/YT0vYgotaHR0cDovL2V4YW1wbGUuY29tLz9hPS9iCi1odHRwOi8v
ZXhhbXBsZS5jb20vZm9vP2E9YgotaHR0cDovL2V4YW1wbGUuY29tL2Zvbz9hPS9iCi1odHRwOi8v
ZXhhbXBsZS5jb20vZm9vP2E9YgotaHR0cDovL2V4YW1wbGUuY29tL2NhdC5qcGVnCi1odHRwOi8v
ZXhhbXBsZS5jb20vY2F0LmpwZWcKLWh0dHA6Ly9leGFtcGxlLmNvbS9mb28/YmFyPWh0dHA6Ly9v
dGhlcmV4YW1wbGUuY29tCi1kYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNV
aEVVZ0FBQUVJQUFBQkNBZ01BQUFDZU91aDdBQUFBQkdkQlRVRUFBSy9JTndXSzZRQUFBQWxRVEZS
Ri8vLy9BQUFBLy8vL2Z1K1BUd0FBQUFGMFVrNVRBRURtMkdZQUFBQ0hTVVJCVkRqTHhkTGJEWUFn
REFWUUdFTG4wUjNvRUhZZjJLR2RVcXRFNDZPRlJDUDNveVRuZzF4Q25Xc2FENUpSUnRDa1EyWW1r
QmtIUlhxV0pCbjBqMFRJQ2Jyc1dWb1doUlNoQ2RjR3laQ3RIeE1hVW5WUFJaOUtTYm1CSmRzWDJ2
SlZud3FSRDBSYjRycHpnSWJFL0FJNU5UbldBTXZ5NWwwZFhyZnVMaDVPQ2U1Qm1tWUdYaFRVeGxR
NXhKOEFBQUFBU1VWT1JLNUNZSUk9Ci1qYXZhc2NyaXB0OmFsZXJ0KCdmb28nKTsKLWJsb2I6aHR0
cCUzQS8vZXhhbXBsZS5jb20vZjkxYjdiMDAtMDAtMDAwMC0wMDAwLTNiN2M4NzA1NWQ3YQotYmxv
YjpodHRwJTNBLy9leGFtcGxlLmNvbS9mOTFiN2IwMC0wMC0wMDAwLTAwMDAtM2I3Yzg3MDU1ZDdh
Ci1MaW5rIGZvciBhIFVSSSBmcm9tIENTUyBkb2N1bWVudDoKLXdlYmtpdC1odG1sLXJlc291cmNl
LWxpbmsgaW5zcGVjdG9yL3N0eWxlcy9yZXNvdXJjZXMvZnJvbWNzcy5wbmcKLUxpbmsgZm9yIGEg
VVJJIGZyb20gaWZyYW1lIGlubGluZSBzdHlsZXNoZWV0OgotaW5zcGVjdG9yL3N0eWxlcy9yZXNv
dXJjZXMvaWZyYW1lZC5wbmcKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtdXJsLWxpbmtpZnkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvc3R5bGVzLXVybC1saW5raWZ5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRmZGYyZGM3MGFhNDU1MTliYjQ3NjJkZmYzMjA5ODZlMzY5OWViNTkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9zdHlsZXMtdXJsLWxpbmtpZnkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJj
ZXMvc3R5bGVzLXVybC1saW5raWZ5LmNzcyI+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBjb21wbGV0ZVVSTChi
YXNlVVJMLCBocmVmKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoV2Vi
SW5zcGVjdG9yLlBhcnNlZFVSTC5jb21wbGV0ZVVSTChiYXNlVVJMLCBocmVmKSk7Ci0gICAgfQot
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVSTHMgY29tcGxldGVkOiIpOwotICAgIGNv
bXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20iLCAiLyIpOwotICAgIGNvbXBsZXRlVVJMKCJo
dHRwOi8vZXhhbXBsZS5jb20iLCAibW9vIik7Ci0gICAgY29tcGxldGVVUkwoImh0dHA6Ly9leGFt
cGxlLmNvbS8iLCAiaHR0cHM6Ly9zZWN1cmUuY29tL21vbyIpOwotICAgIGNvbXBsZXRlVVJMKCJo
dHRwczovL2V4YW1wbGUuY29tL2ZvbyIsICIvL3NlY3VyZS5jb20vbW9vIik7Ci0gICAgY29tcGxl
dGVVUkwoImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vem9vIiwgIi9tb28iKTsKLSAgICBjb21wbGV0
ZVVSTCgiaHR0cDovL2V4YW1wbGUuY29tL2Zvby96b28vIiwgIm1vbyIpOwotICAgIGNvbXBsZXRl
VVJMKCJodHRwOi8vZXhhbXBsZS5jb20vZm9vL3pvbyIsICJib28vbW9vIik7Ci0gICAgY29tcGxl
dGVVUkwoImh0dHA6Ly9leGFtcGxlLmNvbS9mb28iLCAibW9vIik7Ci0gICAgY29tcGxldGVVUkwo
Imh0dHA6Ly9leGFtcGxlLmNvbS9mb28iLCAiP2E9YiIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRw
Oi8vZXhhbXBsZS5jb20vZm9vIiwgIj9hPS9iIik7Ci0gICAgY29tcGxldGVVUkwoImh0dHA6Ly9l
eGFtcGxlLmNvbS8/Yz0vZCNhbmNob3IiLCAiP2E9L2IiKTsKLSAgICBjb21wbGV0ZVVSTCgiaHR0
cDovL2V4YW1wbGUuY29tL2Zvbz9jPWQiLCAiP2E9YiIpOwotICAgIGNvbXBsZXRlVVJMKCJodHRw
Oi8vZXhhbXBsZS5jb20vZm9vP2M9ZCNhbmNob3IiLCAiP2E9L2IiKTsKLSAgICBjb21wbGV0ZVVS
TCgiaHR0cDovL2V4YW1wbGUuY29tL2Zvbz9jPS9kL2UiLCAiP2E9YiIpOwotICAgIGNvbXBsZXRl
VVJMKCJodHRwOi8vZXhhbXBsZS5jb20vZm9vP2M9L2QvZSIsICJjYXQuanBlZyIpOwotICAgIGNv
bXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20vZm9vI2FuY2hvciIsICJjYXQuanBlZyIpOwot
ICAgIGNvbXBsZXRlVVJMKCJodHRwOi8vZXhhbXBsZS5jb20vIiwgIi9mb28/YmFyPWh0dHA6Ly9v
dGhlcmV4YW1wbGUuY29tIik7Ci0KLSAgICBjb25zdCBkYXRhVVJMID0gImRhdGE6aW1hZ2UvcG5n
O2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUlBQUFCQ0FnTUFBQUNlT3VoN0FBQUFC
R2RCVFVFQUFLL0lOd1dLNlFBQUFBbFFURlJGLy8vL0FBQUEvLy8vZnUrUFR3QUFBQUYwVWs1VEFF
RG0yR1lBQUFDSFNVUkJWRGpMeGRMYkRZQWdEQVZRR0VMbjBSM29FSFlmMktHZFVxdEU0Nk9GUkNQ
M295VG5nMXhDbldzYUQ1SlJSdENrUTJZbWtCa0hSWHFXSkJuMGowVElDYnJzV1ZvV2hSU2hDZGNH
eVpDdEh4TWFVblZQUlo5S1NibUJKZHNYMnZKVm53cVJEMFJiNHJwemdJYkUvQUk1TlRuV0FNdnk1
bDBkWHJmdUxoNU9DZTVCbW1ZR1hoVFV4bFE1eEo4QUFBQUFTVVZPUks1Q1lJST0iOwotICAgIGNv
bnN0IGJsb2JVUkwgPSAiYmxvYjpodHRwJTNBLy9leGFtcGxlLmNvbS9mOTFiN2IwMC0wMC0wMDAw
LTAwMDAtM2I3Yzg3MDU1ZDdhIjsKLSAgICBjb21wbGV0ZVVSTCgiaHR0cHM6Ly9leGFtcGxlLmNv
bS9mb28iLCBkYXRhVVJMKTsKLSAgICBjb21wbGV0ZVVSTCgiaHR0cDovL2V4YW1wbGUuY29tL2Zv
byIsICJqYXZhc2NyaXB0OmFsZXJ0KCdmb28nKTsiKTsKLSAgICBjb21wbGV0ZVVSTCgiaHR0cDov
L2V4YW1wbGUuY29tL2ZvbyIsIGJsb2JVUkwpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KFdlYkluc3BlY3Rvci5QYXJzZWRVUkwuY29tcGxldGVVUkwoYmxvYlVSTCkpOwotCi0gICAgZnVu
Y3Rpb24gZHVtcEhyZWYoZHVtcExpbmtDbGFzcykKLSAgICB7Ci0gICAgICAgIHZhciBocmVmTm9k
ZTsKLSAgICAgICAgdmFyIHZhbHVlQ2hpbGROb2RlcyA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxl
bWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZWN0aW9uc1swXVsyXS5wcm9wZXJ0aWVzVHJlZU91
dGxpbmUuY2hpbGRyZW5bMF0udmFsdWVFbGVtZW50LmNoaWxkTm9kZXM7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdmFsdWVDaGlsZE5vZGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAg
ICBpZiAodmFsdWVDaGlsZE5vZGVzW2ldLmhyZWYpIHsKLSAgICAgICAgICAgICAgICBocmVmTm9k
ZSA9IHZhbHVlQ2hpbGROb2Rlc1tpXTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoIWhyZWZOb2RlKSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiaHJlZiBwcm9wZXJ0eSBub3QgZm91bmQiKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBzdHlsZUNsYXNzID0gIiI7
Ci0gICAgICAgIGlmIChkdW1wTGlua0NsYXNzKSB7Ci0gICAgICAgICAgICBpZiAoaHJlZk5vZGUu
aGFzU3R5bGVDbGFzcygid2Via2l0LWh0bWwtcmVzb3VyY2UtbGluayIpKQotICAgICAgICAgICAg
ICAgIHN0eWxlQ2xhc3MgKz0gIndlYmtpdC1odG1sLXJlc291cmNlLWxpbmsgIjsKLSAgICAgICAg
ICAgIGlmIChocmVmTm9kZS5oYXNTdHlsZUNsYXNzKCJ3ZWJraXQtaHRtbC1leHRlcm5hbC1saW5r
IikpCi0gICAgICAgICAgICAgICAgc3R5bGVDbGFzcyArPSAid2Via2l0LWh0bWwtZXh0ZXJuYWwt
bGluayAiOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGhyZWYgPSBocmVmTm9kZS5ocmVmOwot
ICAgICAgICB2YXIgc2VnbWVudHMgPSBocmVmLnNwbGl0KCIvIik7Ci0gICAgICAgIHZhciBvdXRw
dXQgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IHNlZ21lbnRzLmxlbmd0aCAtIDEsIG1pblNl
Z21lbnQgPSBpIC0gMzsgaSA+PSAwICYmIGkgPj0gbWluU2VnbWVudDsgLS1pKQotICAgICAgICAg
ICAgb3V0cHV0LnVuc2hpZnQoc2VnbWVudHNbaV0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KHN0eWxlQ2xhc3MgKyBvdXRwdXQuam9pbigiLyIpKTsKLSAgICB9Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJsb2NhbCIsIHN0ZXAxKTsK
LQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJMaW5rIGZvciBhIFVSSSBmcm9tIENTUyBkb2N1bWVudDoiKTsKLSAgICAgICAgZHVt
cEhyZWYodHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JT
dHlsZXMoImlmcmFtZWQiLCBzdGVwMik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpbmsgZm9yIGEgVVJJIGZy
b20gaWZyYW1lIGlubGluZSBzdHlsZXNoZWV0OiIpOwotICAgICAgICBkdW1wSHJlZigpOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1bkFmdGVySWZyYW1lSXNMb2FkZWQoKSI+Ci08cD4K
LVRlc3RzIHRoYXQgVVJMcyBhcmUgbGlua2VkIHRvIGFuZCBjb21wbGV0ZWQgY29ycmVjdGx5LiBC
dWdzIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjYz
Ij41MTY2MzwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUzMTcxIj41MzE3MTwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYyNjQzIj42MjY0MzwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzczIj43MjM3MzwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5OTA1Ij43OTkwNTwvYT4KLTwvcD4KLTxk
aXYgaWQ9ImxvY2FsIj48L2Rpdj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvc3R5bGVzLXVybC1s
aW5raWZ5LWlmcmFtZS5odG1sIj48L2lmcmFtZT4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdmctc3R5bGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdmctc3R5bGUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2I4OWEwMTk1NDhmZWI0M2JjZTdmYmMzYTgy
Nzc4M2Q5ZDFlNTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3ZnLXN0eWxlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRlc3RzIHRoYXQgc3ZnOnN0eWxlIGRvZXMg
bm90IGNyYXNoIHdoZW4gdGhlIHJlbGF0ZWQgZWxlbWVudCBpcyBpbnNwZWN0ZWQuCi0KLSBNYWlu
IHN0eWxlOgotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0
Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi1tZWRpYT0iYWxsIiAoc3ZnLXN0
eWxlLnhodG1sKQotcmVjdCAgeyAoc3ZnLXN0eWxlLnhodG1sOjM4KQotZmlsbDogcmVkOwotCi1b
ZXhwYW5kZWRdIAotKiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotLXdlYmtpdC10cmFuc2Zv
cm0tb3JpZ2luLXg6IDBweDsKLS13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbi15OiAwcHg7Ci0td2Vi
a2l0LXRyYW5zZm9ybS1vcmlnaW4tejogaW5pdGlhbDsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3ZnLXN0eWxlLnhodG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy9zdmctc3R5bGUueGh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA2NTczNDM4ZGY3MTVlYzA5MDVjNDIxMzE4NzQ1MzQyZGQ1MGUxZDUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdmctc3R5bGUueGh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Ci08aGVhZD4KLQotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoIm1haW4iLCBzdGVwMSk7
Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiTWFpbiBzdHlsZToiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0
ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHN2ZzpzdHlsZSBkb2VzIG5vdCBj
cmFzaCB3aGVuIHRoZSByZWxhdGVkIGVsZW1lbnQgaXMgaW5zcGVjdGVkLgotPC9wPgotCi08c3Zn
OnN2ZyB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEi
PgotICAgPHN2ZzpkZWZzPgotICAgICAgPHN2ZzpzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAg
ICAgICByZWN0IHtmaWxsOiByZWR9Ci0gICAgICA8L3N2ZzpzdHlsZT4KLSAgIDwvc3ZnOmRlZnM+
Ci0gICA8c3ZnOnJlY3QgaWQ9Im1haW4iIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+Ci08L3N2
Zzpzdmc+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3VwLWRvd24tbnVtZXJpY3MtYW5kLWNvbG9ycy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwLWRvd24tbnVtZXJpY3MtYW5kLWNvbG9ycy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMTljZjZlYTg2NmFmZTYz
MjFkMTUzYzdkMmUzODMwOTJjMmI5NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cC1kb3duLW51bWVy
aWNzLWFuZC1jb2xvcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBA
QAotVGVzdHMgdGhhdCBudW1lcmljIGFuZCBjb2xvciB2YWx1ZXMgYXJlIGluY3JlbWVudGVkL2Rl
Y3JlbWVudGVkIGNvcnJlY3RseS4KLQotSW5zcGVjdCBNZQotCi0KLVJ1bm5pbmc6IHRlc3RJbml0
Ci0KLVJ1bm5pbmc6IHRlc3RBbHRlckNvbG9yCi1jb2xvcjogI0VFMzsKLQotUnVubmluZzogdGVz
dEFsdGVyTnVtYmVyCi1vcGFjaXR5OiAxMS42OwotCi1SdW5uaW5nOiB0ZXN0QWx0ZXJCaWdOdW1i
ZXIKLS13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTAwMDAwMDAwMDAwMDAwMDA2NTUzN2RlZyk7
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdXAtZG93bi1udW1l
cmljcy1hbmQtY29sb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwLWRv
d24tbnVtZXJpY3MtYW5kLWNvbG9ycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ZmE4ZmU4ZGNjN2Q1YzkwNTNlYmViZmZkNjAwYjJkZmY2MTQ0Njg5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvdXAtZG93bi1udW1lcmljcy1hbmQtY29sb3JzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw4OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotCi08c3R5bGU+Ci1oMSB7Ci0gICAgY29sb3I6
ICNGRjI7Ci0gICAgb3BhY2l0eTogLjU7Ci0gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgx
MDAwMDAwMDAwMDAwMDAwMDY1NTM3ZGVnKTsKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgc2VjdGlv
bjsKLQotICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKLSAgICAgICAgZnVuY3Rpb24g
dGVzdEluaXQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxl
Y3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgZXhwYW5kU2VjdGlvbik7Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGV4cGFuZFNlY3Rpb24oKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHNlY3Rpb24gPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQ
YW5lcy5zdHlsZXMuc2VjdGlvbnNbMF1bMl07Ci0gICAgICAgICAgICAgICAgc2VjdGlvbi5leHBh
bmQoKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0s
Ci0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEFsdGVyQ29sb3IobmV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgdmFyIGNvbG9yVHJlZUVsZW1lbnQgPSBzZWN0aW9uLmZpbmRUcmVlRWxlbWVudFdp
dGhOYW1lKCJjb2xvciIpOwotICAgICAgICAgICAgY29sb3JUcmVlRWxlbWVudC5zdGFydEVkaXRp
bmcoY29sb3JUcmVlRWxlbWVudC52YWx1ZUVsZW1lbnQpOwotCi0gICAgICAgICAgICAvLyBNb3N0
IHNpZ25pZmljYW50IGRpZ2l0IGluY3JlbWVudCAoJ0YnKSBzaG91bGQgbm90IGNoYW5nZSB0aGUg
dmFsdWUuCi0gICAgICAgICAgICBjb2xvclRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRj
aEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIlBhZ2VVcCIsIGZhbHNlLCBmYWxz
ZSwgdHJ1ZSkpOwotICAgICAgICAgICAgY29sb3JUcmVlRWxlbWVudC52YWx1ZUVsZW1lbnQuZGlz
cGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJVcCIpKTsKLSAgICAgICAg
ICAgIGNvbG9yVHJlZUVsZW1lbnQudmFsdWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9y
VGVzdC5jcmVhdGVLZXlFdmVudCgiUGFnZURvd24iKSk7Ci0gICAgICAgICAgICBjb2xvclRyZWVF
bGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5
RXZlbnQoIlBhZ2VEb3duIiwgZmFsc2UsIGZhbHNlLCB0cnVlKSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdChjb2xvclRyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVudC50ZXh0
Q29udGVudCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdEFsdGVyTnVtYmVyKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBv
cGFjaXR5VHJlZUVsZW1lbnQgPSBzZWN0aW9uLmZpbmRUcmVlRWxlbWVudFdpdGhOYW1lKCJvcGFj
aXR5Iik7Ci0gICAgICAgICAgICBvcGFjaXR5VHJlZUVsZW1lbnQuc3RhcnRFZGl0aW5nKG9wYWNp
dHlUcmVlRWxlbWVudC52YWx1ZUVsZW1lbnQpOwotICAgICAgICAgICAgLy8gMC41IChpbml0aWFs
KQotICAgICAgICAgICAgb3BhY2l0eVRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRjaEV2
ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIlVwIiwgZmFsc2UsIHRydWUsIGZhbHNl
KSk7IC8vIEFsdC1VcAotICAgICAgICAgICAgLy8gMC42Ci0gICAgICAgICAgICBvcGFjaXR5VHJl
ZUVsZW1lbnQudmFsdWVFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5jcmVhdGVL
ZXlFdmVudCgiVXAiKSk7Ci0gICAgICAgICAgICAvLyAxLjYKLSAgICAgICAgICAgIG9wYWNpdHlU
cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0
ZUtleUV2ZW50KCJQYWdlVXAiKSk7Ci0gICAgICAgICAgICAvLyAxMS42Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdChvcGFjaXR5VHJlZUVsZW1lbnQubGlzdEl0ZW1FbGVtZW50
LnRleHRDb250ZW50KTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAg
ICBmdW5jdGlvbiB0ZXN0QWx0ZXJCaWdOdW1iZXIobmV4dCkKLSAgICAgICAgewotICAgICAgICAg
ICAgdmFyIHRyZWVFbGVtZW50ID0gc2VjdGlvbi5maW5kVHJlZUVsZW1lbnRXaXRoTmFtZSgiLXdl
YmtpdC10cmFuc2Zvcm0iKTsKLSAgICAgICAgICAgIHRyZWVFbGVtZW50LnN0YXJ0RWRpdGluZyh0
cmVlRWxlbWVudC52YWx1ZUVsZW1lbnQpOwotICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgICAgIHZhciByYW5nZSA9IHNlbGVjdGlvbi5n
ZXRSYW5nZUF0KDApOwotICAgICAgICAgICAgdmFyIG5ld1JhbmdlID0gZG9jdW1lbnQuY3JlYXRl
UmFuZ2UoKTsKLSAgICAgICAgICAgIG5ld1JhbmdlLnNldFN0YXJ0KHJhbmdlLnN0YXJ0Q29udGFp
bmVyLCAxMCk7Ci0gICAgICAgICAgICBuZXdSYW5nZS5zZXRFbmQocmFuZ2Uuc3RhcnRDb250YWlu
ZXIsIDEwKTsKLSAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKLSAgICAg
ICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShuZXdSYW5nZSk7Ci0gICAgICAgICAgICB0cmVlRWxl
bWVudC52YWx1ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0ZUtleUV2
ZW50KCJVcCIpKTsKLSAgICAgICAgICAgIHRyZWVFbGVtZW50LnZhbHVlRWxlbWVudC5kaXNwYXRj
aEV2ZW50KEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIlBhZ2VVcCIpKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVudC50
ZXh0Q29udGVudCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIHRoYXQgbnVtZXJpYyBhbmQgY29sb3IgdmFsdWVzIGFyZSBpbmNyZW1lbnRlZC9kZWNyZW1l
bnRlZCBjb3JyZWN0bHkuCi08L3A+Ci08aDEgaWQ9Imluc3BlY3RlZCI+SW5zcGVjdCBNZTwvaDE+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3VwZGF0ZXMtZHVyaW5nLWRvbS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1kb20tdHJhdmVyc2FsLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk5ZmVjMmUxMjhkOGQ1MWI3Y2Q1
NzY3YjhkMzI2YmIzMTk0MjNhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtZHVyaW5nLWRv
bS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1U
ZXN0cyB0aGF0IHN0eWxlIHVwZGF0ZXMgYXJlIHRocm90dGxlZCBkdXJpbmcgRE9NIHRyYXZlcnNh
bC4gQnVnIDc3NjQzLgotCi1PSzogdXBkYXRlcyB0aHJvdHRsZWQKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1kb20tdHJhdmVyc2FsLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtZHVyaW5nLWRvbS10cmF2
ZXJzYWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M2ZmMwZmE2NWZjNmRm
MDQ0MDk3N2UxNjQ4MzcwYzk2ZDYzYmMzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtZHVy
aW5nLWRvbS10cmF2ZXJzYWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgdmFyIHVwZGF0ZUNvdW50ID0gMDsKLSAgICB2YXIga2V5ZG93bkNv
dW50ID0gNTsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOwotCi0gICAg
SW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc2Vs
ZWN0Q2FsbGJhY2spOwotICAgIGZ1bmN0aW9uIHNlbGVjdENhbGxiYWNrKCkKLSAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBh
bmUucHJvdG90eXBlLCAiX2lubmVyUmVidWlsZFVwZGF0ZSIsIHNuaWZmVXBkYXRlLCB0cnVlKTsK
LSAgICAgICAgdmFyIGVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVP
dXRsaW5lLmVsZW1lbnQ7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5ZG93bkNvdW50
OyArK2kpCi0gICAgICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9yVGVzdC5j
cmVhdGVLZXlFdmVudCgiVXAiKSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBl
bmRpbmdEaXNwYXRjaGVzKGNvbXBsZXRlQ2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGNvbXBsZXRlQ2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgaWYgKHVwZGF0ZUNvdW50ID49IGtl
eWRvd25Db3VudCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFUlJPUjog
Z290ICIgKyB1cGRhdGVDb3VudCArICIgdXBkYXRlcyBmb3IgIiArIGtleWRvd25Db3VudCArICIg
Y29uc2VjdXRpdmUga2V5ZG93bnMiKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIk9LOiB1cGRhdGVzIHRocm90dGxlZCIpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNuaWZmVXBk
YXRlKCkKLSAgICB7Ci0gICAgICAgICsrdXBkYXRlQ291bnQ7Ci0gICAgfQotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0
IHN0eWxlIHVwZGF0ZXMgYXJlIHRocm90dGxlZCBkdXJpbmcgRE9NIHRyYXZlcnNhbC4gPGEgaHJl
Zj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjQzIj5CdWcgNzc2
NDM8L2E+LgotPC9wPgotCi08ZGl2PjwvZGl2PgotPGRpdj48L2Rpdj4KLTxkaXY+PC9kaXY+Ci08
ZGl2PjwvZGl2PgotPGRpdj48L2Rpdj4KLTxkaXYgaWQ9Imluc3BlY3RlZCI+PC9kaXY+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
dXBkYXRlcy10aHJvdHRsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy91cGRhdGVzLXRocm90dGxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVjMDg2YzhiYjQxMGRkNzBkMDc2YmM3NWUzNzc2MjNmOTRkMTc1OWMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy91cGRhdGVzLXRocm90dGxlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw0ICswLDAgQEAKLVRlc3RzIHRoYXQgU3R5bGVzIHNpZGViYXIgRE9NIHJlYnVpbGRz
IGFyZSB0aHJvdHRsZWQgZHVyaW5nIGNvbnNlY3V0aXZlIHVwZGF0ZXMuIEJ1ZyA3ODA4Ni4KLQot
T0s6IHJlYnVpbGRzIHRocm90dGxlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL3VwZGF0ZXMtdGhyb3R0bGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3VwZGF0ZXMtdGhyb3R0bGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDBjYTRiZjI5ZjI0YmYxMTNlODdiNGY5NDQ0NTdhNWYzZDFjNzhkZWIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy91cGRhdGVzLXRocm90dGxlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgVVBEQVRFX0NPVU5UID0gNTsKLSAgICB2YXIg
cmVidWlsZENvdW50ID0gMDsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIp
OwotCi0gICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVj
dGVkIiwgc2VsZWN0Q2FsbGJhY2spOwotICAgIGZ1bmN0aW9uIHNlbGVjdENhbGxiYWNrKCkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU3R5bGVz
U2lkZWJhclBhbmUucHJvdG90eXBlLCAiX2lubmVyUmVidWlsZFVwZGF0ZSIsIHNuaWZmUmVidWls
ZCwgdHJ1ZSk7Ci0gICAgICAgIHZhciBzdHlsZXNQYW5lID0gV2ViSW5zcGVjdG9yLnBhbmVscy5l
bGVtZW50cy5zaWRlYmFyUGFuZXMuc3R5bGVzOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IFVQREFURV9DT1VOVDsgKytpKQotICAgICAgICAgICAgc3R5bGVzUGFuZS51cGRhdGUoc3R5bGVz
UGFuZS5ub2RlLCB0cnVlKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGlu
Z0Rpc3BhdGNoZXMoY29tcGxldGVDYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY29t
cGxldGVDYWxsYmFjaygpCi0gICAgewotICAgICAgICBpZiAocmVidWlsZENvdW50ID49IFVQREFU
RV9DT1VOVCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFUlJPUjogZ290
ICIgKyByZWJ1aWxkQ291bnQgKyAiIHJlYnVpbGRzIGZvciAiICsgVVBEQVRFX0NPVU5UICsgIiBj
b25zZWN1dGl2ZSB1cGRhdGVzIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJPSzogcmVidWlsZHMgdGhyb3R0bGVkIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc25pZmZSZWJ1
aWxkKCkKLSAgICB7Ci0gICAgICAgICsrcmVidWlsZENvdW50OwotICAgIH0KLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgdGhh
dCBTdHlsZXMgc2lkZWJhciBET00gcmVidWlsZHMgYXJlIHRocm90dGxlZCBkdXJpbmcgY29uc2Vj
dXRpdmUgdXBkYXRlcy4gPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4MDg2Ij5CdWcgNzgwODY8L2E+LgotPC9wPgotCi08ZGl2IGlkPSJpbnNwZWN0ZWQi
PjwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3VybC1jb2xvci1zd2F0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy91cmwtY29sb3Itc3dhdGNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjE1ZTRlNDVhNzE5MTlkNDE3NzI5MWUwNzk3ZGQzNmM0OTJl
MmMzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VybC1jb2xvci1zd2F0Y2gtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UZXN0cyB0aGF0IHVybCguLi4pIHdpdGggc3Bh
Y2UtZGVsaW1pdGVkIGNvbG9yIG5hbWVzIGFzIGZpbGVuYW1lIHNlZ21lbnRzIGRvIG5vdCBjb250
YWluIGNvbG9yIHN3YXRjaGVzLiBCdWcgMTA2NzcwLgotCi11cmwoInJlZCBncmVlbiBibHVlLmpw
ZyIpCi1bXSByZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91
cmwtY29sb3Itc3dhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VybC1j
b2xvci1zd2F0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM4MmZkYmZi
MGZjYTc1OTcwZTcyNTY0MGE3YzlhMzUyMWNjYmI3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VybC1j
b2xvci1zd2F0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c3R5bGU+Ci0jaW5zcGVjdGVkIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
InJlZCBncmVlbiBibHVlLmpwZyIpOwotICAgIGNvbG9yOiByZWQ7Ci19Ci08L3N0eWxlPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0
ZXAxKTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIGR1bXBET00oSW5z
cGVjdG9yVGVzdC5nZXRNYXRjaGVkU3R5bGVQcm9wZXJ0eVRyZWVJdGVtKCJiYWNrZ3JvdW5kLWlt
YWdlIikpOwotICAgICAgICBkdW1wRE9NKEluc3BlY3RvclRlc3QuZ2V0TWF0Y2hlZFN0eWxlUHJv
cGVydHlUcmVlSXRlbSgiY29sb3IiKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcERPTSh0cmVlSXRlbSkKLSAgICB7Ci0g
ICAgICAgIHZhciBlbGVtZW50ID0gdHJlZUl0ZW0ubGlzdEl0ZW1FbGVtZW50LmdldEVsZW1lbnRz
QnlDbGFzc05hbWUoInZhbHVlIilbMF07Ci0gICAgICAgIHZhciByZXN1bHQgPSBbXTsKLSAgICAg
ICAgZHVtcE5vZGUoZWxlbWVudCwgcmVzdWx0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQocmVzdWx0LmpvaW4oIiIpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wTm9kZShw
YXJlbnROb2RlLCByZXN1bHQpCi0gICAgewotICAgICAgICB2YXIgY2hpbGROb2RlcyA9IHBhcmVu
dE5vZGUuY2hpbGROb2RlczsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZE5vZGVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IGNoaWxkTm9kZXNbaV07Ci0g
ICAgICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgTm9k
ZS5FTEVNRU5UX05PREU6Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUuaGFzU3R5bGVDbGFzcygi
c3dhdGNoIikpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKCJbXSAiKTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGR1bXBOb2RlKG5vZGUsIHJlc3Vs
dCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIE5vZGUuVEVYVF9O
T0RFOgotICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5vZGUubm9kZVZhbHVlKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRlc3Rz
IHRoYXQgdXJsKC4uLikgd2l0aCBzcGFjZS1kZWxpbWl0ZWQgY29sb3IgbmFtZXMgYXMgZmlsZW5h
bWUgc2VnbWVudHMgZG8gbm90IGNvbnRhaW4gY29sb3Igc3dhdGNoZXMuIEJ1ZyA8YSBocmVmPSJo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY3NzAiPjEwNjc3MDwvYT4u
Ci08L3A+Ci08ZGl2IGlkPSJpbnNwZWN0ZWQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy92YXJpYWJsZXMvY3NzLXZhcmlh
Ymxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3ZhcmlhYmxl
cy9jc3MtdmFyaWFibGVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNGYwZTRkNzM2NzQ1MDcwYzk3NTZhZTc1OWFjOGFlMDBiNTNhNTg2Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3ZhcmlhYmxlcy9jc3MtdmFyaWFibGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDI0ICswLDAgQEAKLVRlc3RzIHRoYXQgd2Via2l0IGNzcyB2YXJpYWJsZXMgY2FuIGJl
IGxvYWRlZCBjb3JyZWN0bHkuCi0KLVRleHQKLVtleHBhbmRlZF0gCi1jb2xvcjogcmdiKDAsIDEy
OCwgMCk7Ci0gICAgI2luc3BlY3RlZCAtIC13ZWJraXQtdmFyKGEpIGNzcy12YXJpYWJsZXMuaHRt
bDo3Ci1kaXNwbGF5OiBibG9jazsKLSAgICBkaXYgLSBibG9jayB1c2VyIGFnZW50IHN0eWxlc2hl
ZXQKLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09PT0gTWF0Y2hl
ZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7IChjc3MtdmFy
aWFibGVzLmh0bWw6NykKLS13ZWJraXQtdmFyLWE6IGdyZWVuOwotY29sb3I6IC13ZWJraXQtdmFy
KGEpOwotCi1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNw
bGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvdmFyaWFibGVzL2Nzcy12YXJpYWJsZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvdmFyaWFibGVzL2Nzcy12YXJpYWJsZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMThhN2E1ZDI1Mzk4YWQ1MGZlZTBlMzIzYWM2MDUxZTZkYjcwYjkyNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3ZhcmlhYmxlcy9jc3MtdmFyaWFibGVzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWludGVybmFscy5zZXR0
aW5ncy5zZXRDU1NWYXJpYWJsZXNFbmFibGVkKHRydWUpOwotPC9zY3JpcHQ+Ci08c3R5bGU+Ci0j
aW5zcGVjdGVkIHsKLSAgICAtd2Via2l0LXZhci1hOiBncmVlbjsKLSAgICBjb2xvcjogLXdlYmtp
dC12YXIoYSk7Ci19Ci0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5l
bCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5
bGVzV2l0aENvbXB1dGVkKCJpbnNwZWN0ZWQiLCBkdW1wQWxsU3R5bGVzKTsKLQotICAgIGZ1bmN0
aW9uIGR1bXBBbGxTdHlsZXMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2Vs
ZWN0ZWRFbGVtZW50U3R5bGVzKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHdlYmtpdCBjc3MgdmFyaWFibGVzIGNhbiBiZSBsb2Fk
ZWQgY29ycmVjdGx5LgotPC9wPgotCi08ZGl2IGlkPSJpbnNwZWN0ZWQiPlRleHQ8L2Rpdj4KLQot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy92ZW5kb3ItcHJlZml4ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy92ZW5kb3ItcHJlZml4ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiYWFkMGMwNDNmNmM3NWEwYWUwZDA3OTZkZjI1MDkxMDFiY2E1ODg2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvdmVuZG9yLXByZWZpeGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMwICswLDAgQEAKLVRlc3RzIHRoYXQgcHJvcGVydGllcyB3aXRoIFdlYktpdCB2ZW5kb3It
c3BlY2lmaWMgcHJlZml4ZXMgKCItYXBwbGUtIiwgIi13ZWJraXQtIiwgYW5kICIta2h0bWwtIikg
YXJlIHRyZWF0ZWQgdGhlIHNhbWUgYXMgdGhvc2Ugd2l0aG91dCB0aGUgcHJlZml4LgotCi1UZXh0
Ci1bZXhwYW5kZWRdIAotZGlzcGxheTogYmxvY2s7Ci0gICAgZGl2IC0gYmxvY2sgdXNlciBhZ2Vu
dCBzdHlsZXNoZWV0Ci1vcGFjaXR5OiAxOwotICAgICNpbnNwZWN0ZWQgLSAxIHZlbmRvci1wcmVm
aXhlcy5odG1sOjQKLQotW2V4cGFuZGVkXSAKLWVsZW1lbnQuc3R5bGUgIHsgKCkKLQotPT09PT09
PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KLVtleHBhbmRlZF0gCi0jaW5zcGVjdGVkICB7
ICh2ZW5kb3ItcHJlZml4ZXMuaHRtbDoxMSkKLS8tLSBvdmVybG9hZGVkIC0tLyAtYXBwbGUtb3Bh
Y2l0eTogMC43NTsKLQotW2V4cGFuZGVkXSAKLSNpbnNwZWN0ZWQgIHsgKHZlbmRvci1wcmVmaXhl
cy5odG1sOjQpCi0vLS0gb3ZlcmxvYWRlZCAtLS8gLWFwcGxlLW9wYWNpdHk6IDAuMzU7Ci0vLS0g
b3ZlcmxvYWRlZCAtLS8gLXdlYmtpdC1vcGFjaXR5OiAwLjU7Ci1vcGFjaXR5OiAxOwotLy0tIG92
ZXJsb2FkZWQgLS0vIC1raHRtbC1vcGFjaXR5OiAwLjI1OwotCi1bZXhwYW5kZWRdIAotZGl2ICB7
ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdmVuZG9yLXByZWZpeGVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3ZlbmRvci1wcmVmaXhlcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTQ3NDMxMjcyYmE3YWRmOGNiOWY1N2QzN2ZlZTc3YzE4
OGJhYWY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdmVuZG9yLXByZWZpeGVzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw0NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotI2luc3BlY3Rl
ZCB7Ci0gICAgLWFwcGxlLW9wYWNpdHk6IDAuMzU7Ci0gICAgLXdlYmtpdC1vcGFjaXR5OiAwLjU7
Ci0gICAgb3BhY2l0eTogMTsKLSAgICAta2h0bWwtb3BhY2l0eTogMC4yNTsKLX0KLQotI2luc3Bl
Y3RlZCB7Ci0gICAgLWFwcGxlLW9wYWNpdHk6IDAuNzU7Ci19Ci0KLTwvc3R5bGU+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2Vi
SW5zcGVjdG9yLnNob3dQYW5lbCgiZWxlbWVudHMiKTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzV2l0aENvbXB1dGVkKCJpbnNwZWN0ZWQiLCBkdW1wQWxsU3R5
bGVzKTsKLQotICAgIGZ1bmN0aW9uIGR1bXBBbGxTdHlsZXMoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IHByb3BlcnRpZXMgd2l0
aCBXZWJLaXQgdmVuZG9yLXNwZWNpZmljIHByZWZpeGVzICgiLWFwcGxlLSIsICItd2Via2l0LSIs
IGFuZCAiLWtodG1sLSIpIGFyZSB0cmVhdGVkIHRoZSBzYW1lIGFzIHRob3NlIHdpdGhvdXQgdGhl
IHByZWZpeC4KLTwvcD4KLQotPGRpdiBpZD0iaW5zcGVjdGVkIj5UZXh0PC9kaXY+Ci08ZGl2IGlk
PSJvdGhlciI+PC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWNzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1jc3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGM5ZDM5Yjk0OTgzMDdmMjI5NDE2YjhhYmU2Y2FlYzVj
NzdiODQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWNzcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1UZXN0cyB0aGF0IChTKUNTUyBzeW50YXggaGln
aGxpZ2h0ZXIgcHJvcGVybHkgZGV0ZWN0cyB0aGUgdG9rZW5zLgotCi1hW2hyZWY9Jy8nXTogd2Vi
a2l0LWNzcy1zZWxlY3RvcgotI2NvbnRlbnQgPiBhOmhvdmVyOiB3ZWJraXQtY3NzLXNlbGVjdG9y
LCosd2Via2l0LWNzcy1zZWxlY3RvciwqCi1AaW1wb3J0IHVybChzdHlsZS5jc3MpOzogd2Via2l0
LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1rZXl3b3JkLCoKLUBpbXBvcnQgdXJsKCJzdHlsZS5j
c3MiKSBwcm9qZWN0aW9uLCB0djs6IHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3Mta2V5
d29yZCwqLHdlYmtpdC1jc3Mtc3RyaW5nLCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LWNz
cy1rZXl3b3JkLCoKLUBpbXBvcnQgIi9jc3MvZmlyZWJhbGxfdW5pY29kZS5jc3MiOyBodG1sIHt9
OiB3ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtY3NzLXN0cmluZywqLHdlYmtpdC1jc3Mtc2Vs
ZWN0b3IsKix3ZWJraXQtYmxvY2stc3RhcnQsd2Via2l0LWJsb2NrLWVuZAotQG1lZGlhIHNjcmVl
biB7IGJvZHkgeyBjb2xvcjogcmVkOyB9IH06IHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1j
c3Mta2V5d29yZCwqLHdlYmtpdC1ibG9jay1zdGFydCwqLHdlYmtpdC1jc3Mtc2VsZWN0b3IsKix3
ZWJraXQtYmxvY2stc3RhcnQsKix3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNzcy1jb2xv
ciwqLHdlYmtpdC1ibG9jay1lbmQsKix3ZWJraXQtYmxvY2stZW5kCi1AZm9udC1mYWNlIHsgZm9u
dC1mYW1pbHk6ICJNeUhlbHZldGljYSI7IH06IHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1i
bG9jay1zdGFydCwqLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLXN0cmluZywqLHdl
YmtpdC1ibG9jay1lbmQKLXAgeyBjb2xvcjogY29sb3I7IHJlZDogcmVkOyBjb2xvcjogIzAwMDsg
Y29sb3I6ICNGRkY7IGNvbG9yOiAjMTIzQWJDOyBjb2xvcjogI2ZhZWJmZTsgY29sb3I6cGFwYXlh
d2hpcDsgfTogd2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1ibG9jay1zdGFydCwqLHdlYmtp
dC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0LWNzcy1jb2xvciwq
LHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWNvbG9yLCosd2Via2l0LWNzcy1wcm9w
ZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3IsKix3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNz
cy1jb2xvciwqLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWNvbG9yLCosd2Via2l0
LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3IsKix3ZWJraXQtYmxvY2stZW5kCi1wIHsg
bWFyZ2luOiAtMTBweCAhaW1wb3J0YW50OyB9OiB3ZWJraXQtY3NzLXNlbGVjdG9yLCosd2Via2l0
LWJsb2NrLXN0YXJ0LCosd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtbnVtYmVyLCos
d2Via2l0LWNzcy1iYW5nLWtleXdvcmQsKix3ZWJraXQtYmxvY2stZW5kCi0kbWFyZ2luLWxlZnQ6
ICRvZmZzZXRCZWZvcmUgKyAxMnB4ICsgJG9mZnNldEFmdGVyOzogd2Via2l0LXNjc3MtdmFyaWFi
bGUsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1jc3MtbnVtYmVyLCosd2Via2l0LXNj
c3MtdmFyaWFibGUsKgotJHR5cGU6IG1vbnN0ZXI7Ci1wIHsKLUBpZiAkdHlwZSA9PSBvY2VhbiB7
Ci1jb2xvcjogYmx1ZTsKLX0gQGVsc2UgaWYgJHR5cGUgPT0gbWF0YWRvciB7Ci1jb2xvcjogcmVk
OwotfSBAZWxzZSBpZiAkdHlwZSA9PSBtb25zdGVyIHsKLWNvbG9yOiBncmVlbjsKLX0gQGVsc2Ug
ewotY29sb3I6IGJsYWNrOwotfQotfTogd2Via2l0LXNjc3MtdmFyaWFibGUsKiwsd2Via2l0LWNz
cy1zZWxlY3RvciwqLHdlYmtpdC1ibG9jay1zdGFydCwsd2Via2l0LWNzcy1hdC1ydWxlLCosd2Vi
a2l0LXNjc3MtdmFyaWFibGUsKix3ZWJraXQtYmxvY2stc3RhcnQsLHdlYmtpdC1jc3MtcHJvcGVy
dHksKix3ZWJraXQtY3NzLWNvbG9yLCosLHdlYmtpdC1ibG9jay1lbmQsKix3ZWJraXQtY3NzLWF0
LXJ1bGUsKix3ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtp
dC1ibG9jay1zdGFydCwsd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3MtY29sb3IsKiws
d2Via2l0LWJsb2NrLWVuZCwqLHdlYmtpdC1jc3MtYXQtcnVsZSwqLHdlYmtpdC1jc3MtYXQtcnVs
ZSwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LWJsb2NrLXN0YXJ0LCx3ZWJraXQtY3Nz
LXByb3BlcnR5LCosd2Via2l0LWNzcy1jb2xvciwqLCx3ZWJraXQtYmxvY2stZW5kLCosd2Via2l0
LWNzcy1hdC1ydWxlLCosd2Via2l0LWJsb2NrLXN0YXJ0LCx3ZWJraXQtY3NzLXByb3BlcnR5LCos
d2Via2l0LWNzcy1jb2xvciwqLCx3ZWJraXQtYmxvY2stZW5kLCx3ZWJraXQtYmxvY2stZW5kCi1A
Zm9yICRpIGZyb20gMSB0aHJvdWdoIDMgeyAuaXRlbS0jeyRpfSB7IHdpZHRoOiAyZW0gKiAkaTsg
fSB9OiB3ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1j
c3MtYXQtcnVsZSwqLHdlYmtpdC1jc3MtbnVtYmVyLCosd2Via2l0LWNzcy1hdC1ydWxlLCosd2Vi
a2l0LWNzcy1udW1iZXIsKix3ZWJraXQtYmxvY2stc3RhcnQsKix3ZWJraXQtY3NzLXNlbGVjdG9y
LCosd2Via2l0LWJsb2NrLXN0YXJ0LHdlYmtpdC1zY3NzLXZhcmlhYmxlLHdlYmtpdC1ibG9jay1l
bmQsKix3ZWJraXQtYmxvY2stc3RhcnQsKix3ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LWNz
cy1udW1iZXIsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1ibG9jay1lbmQsKix3ZWJr
aXQtYmxvY2stZW5kCi1AbWl4aW4gYWRqdXN0LWxvY2F0aW9uKCR4LCAkeSkgewotQGlmIHVuaXRs
ZXNzKCR4KSB7Ci1Ad2FybiAiQXNzdW1pbmcgI3skeH0gdG8gYmUgaW4gcGl4ZWxzIjsKLSR4OiAx
cHggKiAkeDsKLX0KLXBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogJHg7IHRvcDogJHk7Ci19OiB3
ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1zY3NzLXZh
cmlhYmxlLCosd2Via2l0LWJsb2NrLXN0YXJ0LCx3ZWJraXQtY3NzLWF0LXJ1bGUsKix3ZWJraXQt
Y3NzLWtleXdvcmQsKix3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1ibG9jay1zdGFydCws
d2Via2l0LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1zdHJpbmcsKiwsd2Via2l0LXNjc3MtdmFy
aWFibGUsKix3ZWJraXQtY3NzLW51bWJlciwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosLHdlYmtp
dC1ibG9jay1lbmQsLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWtleXdvcmQsKix3
ZWJraXQtY3NzLXByb3BlcnR5LCosd2Via2l0LXNjc3MtdmFyaWFibGUsKix3ZWJraXQtY3NzLXBy
b3BlcnR5LCosd2Via2l0LXNjc3MtdmFyaWFibGUsKiwsd2Via2l0LWJsb2NrLWVuZAotI25hdmJh
ciB7Ci0kbmF2YmFyLXdpZHRoOiA4MDBweDsKLSRpdGVtczogNTsKLSRuYXZiYXItY29sb3I6ICNj
ZTRkZDY7Ci13aWR0aDogJG5hdmJhci13aWR0aDsKLWJvcmRlci1ib3R0b206IDJweCBzb2xpZCAk
bmF2YmFyLWNvbG9yOwotbGkgewotQGV4dGVuZCAubm90aWNlICFvcHRpb25hbDsKLWZsb2F0OiBs
ZWZ0Owotd2lkdGg6ICRuYXZiYXItd2lkdGgvJGl0ZW1zIC0gMTBweDsKLWJhY2tncm91bmQtY29s
b3I6IGxpZ2h0ZW4oJG5hdmJhci1jb2xvciwgMjAlKTsKLSY6aG92ZXIgewotYmFja2dyb3VuZC1j
b2xvcjogbGlnaHRlbigkbmF2YmFyLWNvbG9yLCAxMCUpOwotfQotfQotfTogd2Via2l0LWNzcy1z
ZWxlY3RvciwqLHdlYmtpdC1ibG9jay1zdGFydCwsd2Via2l0LXNjc3MtdmFyaWFibGUsKix3ZWJr
aXQtY3NzLW51bWJlciwqLCx3ZWJraXQtc2Nzcy12YXJpYWJsZSwqLHdlYmtpdC1jc3MtbnVtYmVy
LCosLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LWNzcy1jb2xvciwqLCx3ZWJraXQtY3Nz
LXByb3BlcnR5LCosd2Via2l0LXNjc3MtdmFyaWFibGUsKiwsd2Via2l0LWNzcy1wcm9wZXJ0eSwq
LHdlYmtpdC1jc3MtbnVtYmVyLCosd2Via2l0LWNzcy1rZXl3b3JkLCosd2Via2l0LXNjc3MtdmFy
aWFibGUsKiwsd2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1ibG9jay1zdGFydCwsd2Via2l0
LWNzcy1hdC1ydWxlLCosd2Via2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1jc3MtYmFuZy1rZXl3
b3JkLCosLHdlYmtpdC1jc3MtcHJvcGVydHksKix3ZWJraXQtY3NzLWtleXdvcmQsKiwsd2Via2l0
LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLHdlYmtpdC1zY3NzLXZhcmlhYmxl
LCosd2Via2l0LWNzcy1udW1iZXIsKiwsd2Via2l0LWNzcy1wcm9wZXJ0eSwqLHdlYmtpdC1jc3Mt
a2V5d29yZCwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LWNzcy1udW1iZXIsKiwsd2Vi
a2l0LWNzcy1zZWxlY3RvciwqLHdlYmtpdC1ibG9jay1zdGFydCwsd2Via2l0LWNzcy1wcm9wZXJ0
eSwqLHdlYmtpdC1jc3Mta2V5d29yZCwqLHdlYmtpdC1zY3NzLXZhcmlhYmxlLCosd2Via2l0LWNz
cy1udW1iZXIsKiwsd2Via2l0LWJsb2NrLWVuZCwsd2Via2l0LWJsb2NrLWVuZCwsd2Via2l0LWJs
b2NrLWVuZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3ludGF4LWhpZ2hs
aWdodC1jc3MuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWNz
cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjZiYTBkMTBkOTFmMmJkZGY5
Y2RkNWY4ODRkYThlNzA4NGYyZWQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWNzcy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic3ludGF4LWhpZ2hsaWdodC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBkdW1wU3ludGF4SGlnaGxpZ2h0
U0NTUyhzdHIpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTeW50YXhIaWdobGln
aHQoc3RyLCAidGV4dC9jc3MiKTsKLSAgICB9Ci0KLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0U0NT
UygiYVtocmVmPScvJ10iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0U0NTUygiI2NvbnRlbnQg
PiBhOmhvdmVyIik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodFNDU1MoIkBpbXBvcnQgdXJsKHN0
eWxlLmNzcyk7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodFNDU1MoIkBpbXBvcnQgdXJsKFwi
c3R5bGUuY3NzXCIpIHByb2plY3Rpb24sIHR2OyIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRT
Q1NTKCJAaW1wb3J0IFwiL2Nzcy9maXJlYmFsbF91bmljb2RlLmNzc1wiOyBodG1sIHt9Iik7Ci0g
ICAgZHVtcFN5bnRheEhpZ2hsaWdodFNDU1MoIkBtZWRpYSBzY3JlZW4geyBib2R5IHsgY29sb3I6
IHJlZDsgfSB9Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodFNDU1MoIkBmb250LWZhY2UgeyBm
b250LWZhbWlseTogXCJNeUhlbHZldGljYVwiOyB9Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdo
dFNDU1MoInAgeyBjb2xvcjogY29sb3I7IHJlZDogcmVkOyBjb2xvcjogIzAwMDsgY29sb3I6ICNG
RkY7IGNvbG9yOiAjMTIzQWJDOyBjb2xvcjogI2ZhZWJmZTsgY29sb3I6cGFwYXlhd2hpcDsgfSIp
OwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRTQ1NTKCJwIHsgbWFyZ2luOiAtMTBweCAhaW1wb3J0
YW50OyB9Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodFNDU1MoIiRtYXJnaW4tbGVmdDogJG9m
ZnNldEJlZm9yZSArIDEycHggKyAkb2Zmc2V0QWZ0ZXI7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hs
aWdodFNDU1MoIiR0eXBlOiBtb25zdGVyO1xuIiArCi0gICAgICAgICJwIHtcbiIgKwotICAgICAg
ICAgICJAaWYgJHR5cGUgPT0gb2NlYW4ge1xuIiArCi0gICAgICAgICAgICAiY29sb3I6IGJsdWU7
XG4iICsKLSAgICAgICAgICAifSBAZWxzZSBpZiAkdHlwZSA9PSBtYXRhZG9yIHtcbiIgKwotICAg
ICAgICAgICAgImNvbG9yOiByZWQ7XG4iICsKLSAgICAgICAgICAifSBAZWxzZSBpZiAkdHlwZSA9
PSBtb25zdGVyIHtcbiIgKwotICAgICAgICAgICAgImNvbG9yOiBncmVlbjtcbiIgKwotICAgICAg
ICAgICJ9IEBlbHNlIHtcbiIgKwotICAgICAgICAgICAgImNvbG9yOiBibGFjaztcbiIgKwotICAg
ICAgICAgICJ9XG4iICsKLSAgICAgICAgIn0iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0U0NT
UygiQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHsgLml0ZW0tI3skaX0geyB3aWR0aDogMmVtICog
JGk7IH0gfSIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRTQ1NTKAotICAgICAgICAiQG1peGlu
IGFkanVzdC1sb2NhdGlvbigkeCwgJHkpIHtcbiIgKwotICAgICAgICAgICAgIkBpZiB1bml0bGVz
cygkeCkge1xuIiArCi0gICAgICAgICAgICAgICAgIkB3YXJuIFwiQXNzdW1pbmcgI3skeH0gdG8g
YmUgaW4gcGl4ZWxzXCI7XG4iICsKLSAgICAgICAgICAgICAgICAiJHg6IDFweCAqICR4O1xuIiAr
Ci0gICAgICAgICAgICAifVxuIiArCi0gICAgICAgICAgICAicG9zaXRpb246IHJlbGF0aXZlOyBs
ZWZ0OiAkeDsgdG9wOiAkeTtcbiIgKwotICAgICAgICAifSIpOwotCi0gICAgZHVtcFN5bnRheEhp
Z2hsaWdodFNDU1MoCi0gICAgICAgICIjbmF2YmFyIHtcbiIgKwotICAgICAgICAgICAgIiRuYXZi
YXItd2lkdGg6IDgwMHB4O1xuIiArCi0gICAgICAgICAgICAiJGl0ZW1zOiA1O1xuIiArCi0gICAg
ICAgICAgICAiJG5hdmJhci1jb2xvcjogI2NlNGRkNjtcbiIgKwotCi0gICAgICAgICAgICAid2lk
dGg6ICRuYXZiYXItd2lkdGg7XG4iICsKLSAgICAgICAgICAgICJib3JkZXItYm90dG9tOiAycHgg
c29saWQgJG5hdmJhci1jb2xvcjtcbiIgKwotCi0gICAgICAgICAgICAibGkge1xuIiArCi0gICAg
ICAgICAgICAgICAgIkBleHRlbmQgLm5vdGljZSAhb3B0aW9uYWw7XG4iICsKLSAgICAgICAgICAg
ICAgICAiZmxvYXQ6IGxlZnQ7XG4iICsKLSAgICAgICAgICAgICAgICAid2lkdGg6ICRuYXZiYXIt
d2lkdGgvJGl0ZW1zIC0gMTBweDtcbiIgKwotICAgICAgICAgICAgICAgICJiYWNrZ3JvdW5kLWNv
bG9yOiBsaWdodGVuKCRuYXZiYXItY29sb3IsIDIwJSk7XG4iICsKLSAgICAgICAgICAgICAgICAi
Jjpob3ZlciB7XG4iICsKLSAgICAgICAgICAgICAgICAgICAgImJhY2tncm91bmQtY29sb3I6IGxp
Z2h0ZW4oJG5hdmJhci1jb2xvciwgMTAlKTtcbiIgKwotICAgICAgICAgICAgICAgICJ9XG4iICsK
LSAgICAgICAgICAgICJ9XG4iICsKLSAgICAgICAgIn0iKTsKLQotICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgKFMpQ1NTIHN5bnRheCBoaWdobGlnaHRlciBw
cm9wZXJseSBkZXRlY3RzIHRoZSB0b2tlbnMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LWh0bWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtaHRtbC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZGVhOWNlNDZkODg5
ZmUwNDhkNTAwMmE4NDJjOTdiZjIwYTVkODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQt
aHRtbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1UZXN0cyB0
aGF0IFNvdXJjZUhUTUxUb2tlbml6ZXIgZGV0ZWN0cyB0aGUgdG9rZW5zLgotCi08aHRtbD46IHdl
YmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcsd2Via2l0LWh0bWwtdGFnCi08dGFibGUgY2Vs
bHNwYWNpbmc9MD46IHdlYmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcsKix3ZWJraXQtaHRt
bC1hdHRyaWJ1dGUtbmFtZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS12YWx1ZSx3ZWJraXQtaHRt
bC10YWcKLTxpbnB1dCBjaGVja2VkIHZhbHVlPSJmb28iPjogd2Via2l0LWh0bWwtdGFnLHdlYmtp
dC1odG1sLXRhZywqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lLCosd2Via2l0LWh0bWwtYXR0
cmlidXRlLW5hbWUsKix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUsd2Via2l0LWh0bWwtdGFn
Ci08dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPScwJz46IHdlYmtpdC1odG1sLXRh
Zyx3ZWJraXQtaHRtbC10YWcsKix3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtbmFtZSwqLHdlYmtpdC1o
dG1sLWF0dHJpYnV0ZS12YWx1ZSwqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lLCosd2Via2l0
LWh0bWwtYXR0cmlidXRlLXZhbHVlLHdlYmtpdC1odG1sLXRhZwotPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cu
dzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+OiB3ZWJraXQtaHRtbC1kb2N0eXBlLHdlYmtpdC1o
dG1sLWRvY3R5cGUsd2Via2l0LWh0bWwtZG9jdHlwZQotPCEtLWRpdj48ZGl2IGZvb2Jhci0tPjog
d2Via2l0LWh0bWwtY29tbWVudAotPHNjcmlwdD48L3NjcmlwdD48IS0tZGl2LS0+OiB3ZWJraXQt
aHRtbC10YWcsd2Via2l0LWh0bWwtdGFnLHdlYmtpdC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcs
d2Via2l0LWh0bWwtY29tbWVudAotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmRvY3Vt
ZW50LndyaXRlKCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC8nICsgJ3NjcmlwdD4n
KTs8L3NjcmlwdD46IHdlYmtpdC1odG1sLXRhZywqLHdlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1l
LCosd2Via2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlLHdlYmtpdC1odG1sLXRhZyx3ZWJraXQtamF2
YXNjcmlwdC1pZGVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50LHdlYmtpdC1icmFjZS1zdGFy
dCx3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsd2Via2l0LXdoaXRlc3BhY2UsKix3ZWJraXQtd2hp
dGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsd2Via2l0LWJyYWNlLWVuZCwqLHdlYmtp
dC1odG1sLXRhZyx3ZWJraXQtaHRtbC10YWcKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N5bnRheC1oaWdobGlnaHQtaHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N5bnRheC1oaWdobGlnaHQtaHRtbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhOTdmNWY4OGVkNDdhODU5NmI0MDhlMDhhOTJiZmU2MGY2NWE0NTZhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
eW50YXgtaGlnaGxpZ2h0LWh0bWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InN5bnRheC1oaWdobGlnaHQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rp
b24gZHVtcFN5bnRheEhpZ2hsaWdodEhUTUwoc3RyKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5kdW1wU3ludGF4SGlnaGxpZ2h0KHN0ciwgInRleHQvaHRtbCIpOwotICAgIH0KLQotICAg
IGR1bXBTeW50YXhIaWdobGlnaHRIVE1MKCI8aHRtbD4iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxp
Z2h0SFRNTCgiPHRhYmxlIGNlbGxzcGFjaW5nPTA+Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdo
dEhUTUwoIjxpbnB1dCBjaGVja2VkIHZhbHVlPVwiZm9vXCI+Iik7Ci0gICAgZHVtcFN5bnRheEhp
Z2hsaWdodEhUTUwoIjx0YWJsZSBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz0nMCc+Iik7
Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEhUTUwoIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0v
L1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOXCIgXCJodHRwOi8vd3d3LnczLm9y
Zy9UUi9odG1sNC9sb29zZS5kdGRcIj4iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0SFRNTCgi
PCEtLWRpdj48ZGl2IGZvb2Jhci0tPiIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRIVE1MKCI8
c2NyaXB0PjwvIiArICJzY3JpcHQ+PCEtLWRpdi0tPiIpOwotICAgIGR1bXBTeW50YXhIaWdobGln
aHRIVE1MKCI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5kb2N1bWVudC53cml0ZSgn
PHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+PC8nICsgJ3NjcmlwdD4nKTs8LyIgKyAi
c2NyaXB0PiIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMg
dGhhdCBTb3VyY2VIVE1MVG9rZW5pemVyIGRldGVjdHMgdGhlIHRva2Vucy4KLTwvcD4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N5bnRheC1o
aWdobGlnaHQtamF2YXNjcmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3ludGF4LWhpZ2hsaWdodC1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjZmY2Q3NmRlMTc0NTM3Njg4YzQ2OTZmNTg2NmFmZGNmYzVmZmM1MC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRlc3RzIHRoYXQgSmF2YVNjcmlwdFNvdXJjZVN5
bnRheEhpZ2hsaWdodGVyIGRldGVjdHMgdGhlIHRva2Vucy4KLQotcmV0dXJuJ2Zvbyc7OiB3ZWJr
aXQtamF2YXNjcmlwdC1rZXl3b3JkLHdlYmtpdC1qYXZhc2NyaXB0LXN0cmluZywqCi0vXC8vZzog
d2Via2l0LWphdmFzY3JpcHQtcmVnZXhwCi0vL2lnJzs6IHdlYmtpdC1qYXZhc2NyaXB0LWNvbW1l
bnQKLTEgLyAyICsgL2EvLnRlc3QoJ2EnKTs6IHdlYmtpdC1qYXZhc2NyaXB0LW51bWJlcix3ZWJr
aXQtd2hpdGVzcGFjZSwqLHdlYmtpdC13aGl0ZXNwYWNlLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJl
cix3ZWJraXQtd2hpdGVzcGFjZSwqLHdlYmtpdC13aGl0ZXNwYWNlLHdlYmtpdC1qYXZhc2NyaXB0
LXJlZ2V4cCwqLHdlYmtpdC1qYXZhc2NyaXB0LWlkZW50LHdlYmtpdC1icmFjZS1zdGFydCx3ZWJr
aXQtamF2YXNjcmlwdC1zdHJpbmcsd2Via2l0LWJyYWNlLWVuZCwqCi0iXCIvIi5sZW5ndGggLyAy
OiB3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKix3ZWJraXQtamF2YXNjcmlwdC1pZGVudCx3ZWJr
aXQtd2hpdGVzcGFjZSwqLHdlYmtpdC13aGl0ZXNwYWNlLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJl
cgotdmFyIGZvbyA9IDEvKi8qKiovLzI6IHdlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsd2Via2l0
LXdoaXRlc3BhY2Usd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsd2Via2l0LXdoaXRlc3BhY2UsKix3
ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1udW1iZXIsd2Via2l0LWphdmFzY3Jp
cHQtY29tbWVudCwqLHdlYmtpdC1qYXZhc2NyaXB0LW51bWJlcgotLypjb21tZW50Ki8vLiovLnRl
c3QoJ2EnKTogd2Via2l0LWphdmFzY3JpcHQtY29tbWVudCx3ZWJraXQtamF2YXNjcmlwdC1yZWdl
eHAsKix3ZWJraXQtamF2YXNjcmlwdC1pZGVudCx3ZWJraXQtYnJhY2Utc3RhcnQsd2Via2l0LWph
dmFzY3JpcHQtc3RyaW5nLHdlYmtpdC1icmFjZS1lbmQKLSdmXAotb28nOzogd2Via2l0LWphdmFz
Y3JpcHQtc3RyaW5nLCx3ZWJraXQtamF2YXNjcmlwdC1zdHJpbmcsKgotJ1xmXGJcdCc7OiB3ZWJr
aXQtamF2YXNjcmlwdC1zdHJpbmcsKgotJy9cCi0vJzs6IHdlYmtpdC1qYXZhc2NyaXB0LXN0cmlu
Zywsd2Via2l0LWphdmFzY3JpcHQtc3RyaW5nLCoKLWZvby8qKgotLwotKi9mb286IHdlYmtpdC1q
YXZhc2NyaXB0LWlkZW50LHdlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQsLHdlYmtpdC1qYXZhc2Ny
aXB0LWNvbW1lbnQsLHdlYmtpdC1qYXZhc2NyaXB0LWNvbW1lbnQsd2Via2l0LWphdmFzY3JpcHQt
aWRlbnQKLXswOiB0cnVlfTogd2Via2l0LWJsb2NrLXN0YXJ0LHdlYmtpdC1qYXZhc2NyaXB0LW51
bWJlciwqLHdlYmtpdC13aGl0ZXNwYWNlLHdlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsd2Via2l0
LWJsb2NrLWVuZAotdmFyIHRvU3RyaW5nOzogd2Via2l0LWphdmFzY3JpcHQta2V5d29yZCx3ZWJr
aXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1pZGVudCwqCi12YXIgZm9vID0gdW5kZWZp
bmVkOzogd2Via2l0LWphdmFzY3JpcHQta2V5d29yZCx3ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQt
amF2YXNjcmlwdC1pZGVudCx3ZWJraXQtd2hpdGVzcGFjZSwqLHdlYmtpdC13aGl0ZXNwYWNlLHdl
YmtpdC1qYXZhc2NyaXB0LXVuZGVmLCoKLXZhciBmb28gPSBJbmZpbml0eTs6IHdlYmtpdC1qYXZh
c2NyaXB0LWtleXdvcmQsd2Via2l0LXdoaXRlc3BhY2Usd2Via2l0LWphdmFzY3JpcHQtaWRlbnQs
d2Via2l0LXdoaXRlc3BhY2UsKix3ZWJraXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1p
bmYsKgotdmFyIGZvbyA9IE5hTjs6IHdlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQsd2Via2l0LXdo
aXRlc3BhY2Usd2Via2l0LWphdmFzY3JpcHQtaWRlbnQsd2Via2l0LXdoaXRlc3BhY2UsKix3ZWJr
aXQtd2hpdGVzcGFjZSx3ZWJraXQtamF2YXNjcmlwdC1uYW4sKgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1qYXZhc2NyaXB0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3ludGF4LWhpZ2hsaWdodC1qYXZhc2NyaXB0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5YTc5Mjc0NGRhNTc3YzQ3YjM4ODdiNmFkNTU2OWY0
OGUyNGYwZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQtamF2YXNjcmlwdC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ic3ludGF4LWhpZ2hsaWdodC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBmdW5jdGlvbiBkdW1wU3ludGF4SGlnaGxpZ2h0SlMoc3Ry
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU3ludGF4SGlnaGxpZ2h0KHN0ciwg
InRleHQvamF2YXNjcmlwdCIpOwotICAgIH0KLQotICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygi
cmV0dXJuJ2Zvbyc7Iik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCIvXFxcLy9nIik7Ci0g
ICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCIvL2lnJzsiKTsKLSAgICBkdW1wU3ludGF4SGlnaGxp
Z2h0SlMoIjEgLyAyICsgL2EvLnRlc3QoJ2EnKTsiKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0
SlMoIlwiXFxcIi9cIi5sZW5ndGggLyAyIik7Ci0gICAgZHVtcFN5bnRheEhpZ2hsaWdodEpTKCJ2
YXIgZm9vID0gMS8qLyoqKi8vMiIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygiLypjb21t
ZW50Ki8vLiovLnRlc3QoJ2EnKSIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygiJ2ZcXFxu
b28nOyIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygiJ1xcZlxcYlxcdCc7Iik7Ci0gICAg
ZHVtcFN5bnRheEhpZ2hsaWdodEpTKCInL1xcXG4vJzsiKTsKLSAgICBkdW1wU3ludGF4SGlnaGxp
Z2h0SlMoImZvby8qKlxuL1xuKi9mb28iKTsKLSAgICBkdW1wU3ludGF4SGlnaGxpZ2h0SlMoInsw
OiB0cnVlfSIpOwotICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygidmFyIHRvU3RyaW5nOyIpOwot
ICAgIGR1bXBTeW50YXhIaWdobGlnaHRKUygidmFyIGZvbyA9IHVuZGVmaW5lZDsiKTsKLSAgICBk
dW1wU3ludGF4SGlnaGxpZ2h0SlMoInZhciBmb28gPSBJbmZpbml0eTsiKTsKLSAgICBkdW1wU3lu
dGF4SGlnaGxpZ2h0SlMoInZhciBmb28gPSBOYU47Iik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IEphdmFTY3JpcHRTb3VyY2VTeW50YXhIaWdobGln
aHRlciBkZXRlY3RzIHRoZSB0b2tlbnMuCi08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zeW50YXgtaGlnaGxpZ2h0LmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N5bnRheC1oaWdobGlnaHQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNiM2VhN2FhYWQwZWQwNzc1MzVmMTU5OWMyZjQ0NjQ5YjZlOGIyZjAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N5bnRheC1oaWdobGlnaHQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci12YXIgaW5pdGlhbGl6ZV9TeW50YXhIaWdobGlnaHQgPSBmdW5jdGlvbigpIHsKLQotSW5zcGVj
dG9yVGVzdC5kdW1wU3ludGF4SGlnaGxpZ2h0ID0gZnVuY3Rpb24oc3RyLCBtaW1lVHlwZSkKLXsK
LSAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICBub2Rl
LnRleHRDb250ZW50ID0gc3RyOwotICAgIHZhciBqYXZhc2NyaXB0U3ludGF4SGlnaGxpZ2h0ZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN5bnRheEhpZ2hsaWdodGVyKG1pbWVUeXBlKTsKLSAgICBq
YXZhc2NyaXB0U3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4SGlnaGxpZ2h0Tm9kZShub2RlKTsKLSAg
ICB2YXIgbm9kZV9wYXJ0cyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5jaGls
ZE5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChub2RlLmNoaWxkTm9kZXNbaV0uZ2V0
QXR0cmlidXRlKSB7Ci0gICAgICAgICAgICBub2RlX3BhcnRzLnB1c2gobm9kZS5jaGlsZE5vZGVz
W2ldLmdldEF0dHJpYnV0ZSgiY2xhc3MiKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBub2RlX3BhcnRzLnB1c2goIioiKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdChzdHIgKyAiOiAiICsgbm9kZV9wYXJ0cy5qb2luKCIsIikpOwotfTsKLQot
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0
b3J5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1o
aXN0b3J5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzYyOTFj
ZWNlOTEzNzUyMDNiZmM4MTE1NjI0NjYxMDc4ZGFkZjMwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVk
aXRvcnMtaGlzdG9yeS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBA
Ci1UZXN0cyBoaXN0b3J5IHNhdmluZyBsb2dpYyBpbiBUYWJiZWRFZGl0b3JDb250YWluZXIuCi0K
LUJ1ZyA3NjkxMgotICBoaXN0b3J5ID0gW10KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xIn1d
Ci0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzEifV0KLSAgaGlzdG9y
eSA9IFt7InVybCI6InVybF8zIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzEifV0KLSAg
aGlzdG9yeSA9IFt7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9LHsidXJsIjoidXJsXzEi
fV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoi
dXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMSJ9LHsidXJsIjoidXJsXzEifSx7
InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3sidXJsIjoidXJs
XzEyIn0seyJ1cmwiOiJ1cmxfMTEifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsi
dXJsIjoidXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMyJ9LHsidXJsIjoidXJs
XzEyIn0seyJ1cmwiOiJ1cmxfMTEifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsi
dXJsIjoidXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJs
XzEzIn0seyJ1cmwiOiJ1cmxfMTEifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsi
dXJsIjoidXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMSJ9LHsidXJsIjoidXJs
XzEyIn0seyJ1cmwiOiJ1cmxfMTMifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsi
dXJsIjoidXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMSIsInNlbGVjdGlvblJh
bmdlIjp7InN0YXJ0TGluZSI6MTUsInN0YXJ0Q29sdW1uIjo1LCJlbmRMaW5lIjoxNSwiZW5kQ29s
dW1uIjoxMH0sInNjcm9sbExpbmVOdW1iZXIiOjEwfSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoi
dXJsXzEzIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1d
Ci0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTIifSx7InVybCI6InVybF8xMyJ9LHsidXJsIjoi
dXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5ID0gW3si
dXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVy
bF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsi
dXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5
ID0gW3sidXJsIjoidXJsXzE1In0seyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsi
dXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5
ID0gW3sidXJsIjoidXJsXzE2In0seyJ1cmwiOiJ1cmxfMTUifSx7InVybCI6InVybF8xNCJ9LHsi
dXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVy
bF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTUifSx7InVybCI6InVybF8xNCJ9LHsi
dXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVy
bF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsi
dXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQotICBoaXN0b3J5
ID0gW3sidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVy
bCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIi
fSx7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoi
dXJsXzMifV0KLSAgaGlzdG9yeSA9IFt7InVybCI6InVybF8zIn1dCi0gIGhpc3RvcnkgPSBbXQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9y
eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnkuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDIxNjg3ZTIxZGM3YzYyMWNhM2E3NzRm
NGVlZWI5ZTZjMjBmNzM5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci12YXIgdGVzdCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7Ci0KLSAgICBmdW5jdGlv
biBkdW1wSGlzdG9yeShoaXN0b3J5KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgaGlzdG9yeSA9ICIgKyBKU09OLnN0cmluZ2lmeShoaXN0b3J5Ll9zZXJpYWxpemVU
b09iamVjdCgpKSArICIiKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1cGRhdGVTY3JvbGxBbmRT
ZWxlY3Rpb25BbmREdW1wKGhpc3RvcnksIHVybCwgc2Nyb2xsTGluZU51bWJlciwgc2VsZWN0aW9u
KQotICAgIHsKLSAgICAgICAgaGlzdG9yeS51cGRhdGVTY3JvbGxMaW5lTnVtYmVyKHVybCwgc2Ny
b2xsTGluZU51bWJlcik7Ci0gICAgICAgIGhpc3RvcnkudXBkYXRlU2VsZWN0aW9uUmFuZ2UodXJs
LCBzZWxlY3Rpb24pOwotICAgICAgICBkdW1wSGlzdG9yeShoaXN0b3J5KTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiB1cGRhdGVBbmREdW1wKGhpc3RvcnksIHVybHMpCi0gICAgewotICAgICAgICBo
aXN0b3J5LnVwZGF0ZSh1cmxzKTsKLSAgICAgICAgZHVtcEhpc3RvcnkoaGlzdG9yeSk7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gcmVtb3ZlQW5kRHVtcChoaXN0b3J5LCB1cmwpCi0gICAgewotICAg
ICAgICBoaXN0b3J5LnJlbW92ZSh1cmwpOwotICAgICAgICBkdW1wSGlzdG9yeShoaXN0b3J5KTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiB1cmwoaW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4g
InVybF8iICsgaW5kZXg7Ci0gICAgfQotCi0gICAgdmFyIGhpc3RvcnkgPSBuZXcgV2ViSW5zcGVj
dG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5KFtdKTsKLQotICAgIGR1bXBIaXN0b3J5
KGhpc3RvcnkpOwotICAgIC8vIEVtdWxhdGUgb3BlbmluZyBvZiBzZXZlcmFsIHRhYnMuCi0gICAg
dXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDEpXSk7Ci0gICAgdXBkYXRlQW5kRHVtcChoaXN0
b3J5LCBbdXJsKDIpLCB1cmwoMSldKTsKLSAgICB1cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwo
MyksIHVybCgyKSwgdXJsKDEpXSk7Ci0gICAgLy8gRW11bGF0ZSBzd2l0Y2hpbmcgYmV0d2VlbiB0
YWJzLgotICAgIHVwZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgyKSwgdXJsKDMpLCB1cmwoMSld
KTsKLSAgICB1cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMSksIHVybCgyKSwgdXJsKDMpXSk7
Ci0gICAgLy8gRW11bGF0ZSBvcGVuaW5nIG9mIHNldmVyYWwgdGFicyBmcm9tIGFub3RoZXIgcGFn
ZS4KLSAgICB1cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMTEpXSk7Ci0gICAgdXBkYXRlQW5k
RHVtcChoaXN0b3J5LCBbdXJsKDEyKSwgdXJsKDExKV0pOwotICAgIHVwZGF0ZUFuZER1bXAoaGlz
dG9yeSwgW3VybCgxMyksIHVybCgxMiksIHVybCgxMSldKTsKLSAgICAvLyAuLi4gYW5kIHN3aXRj
aGluZyBiZXR3ZWVuIHRoZW0uCi0gICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDEyKSwg
dXJsKDEzKSwgdXJsKDExKV0pOwotICAgIHVwZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgxMSks
IHVybCgxMiksIHVybCgxMyldKTsKLSAgICB1cGRhdGVTY3JvbGxBbmRTZWxlY3Rpb25BbmREdW1w
KGhpc3RvcnksIHVybCgxMSksIDEwLCBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSgxNSwgNSwg
MTUsIDEwKSk7Ci0gICAgLy8gTm93IGNsb3NlIHNvbWUgdGFicy4KLSAgICByZW1vdmVBbmREdW1w
KGhpc3RvcnksIHVybCgxMSkpOwotICAgIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKDEzKSk7
Ci0gICAgLy8gTm93IG9wZW4gc29tZSBvdGhlciBpbnN0ZWFkIG9mIHRoZW0uCi0gICAgdXBkYXRl
QW5kRHVtcChoaXN0b3J5LCBbdXJsKDE0KSwgdXJsKDEyKV0pOwotICAgIHVwZGF0ZUFuZER1bXAo
aGlzdG9yeSwgW3VybCgxNSksIHVybCgxNCksIHVybCgxMildKTsKLSAgICB1cGRhdGVBbmREdW1w
KGhpc3RvcnksIFt1cmwoMTYpLCB1cmwoMTUpLCB1cmwoMTQpLCB1cmwoMTIpXSk7Ci0gICAgLy8g
Q2xvc2UgYWxsIG9mIHRoZW0gb25lIGJ5IG9uZS4KLSAgICByZW1vdmVBbmREdW1wKGhpc3Rvcnks
IHVybCgxNikpOwotICAgIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKDE1KSk7Ci0gICAgcmVt
b3ZlQW5kRHVtcChoaXN0b3J5LCB1cmwoMTQpKTsKLSAgICByZW1vdmVBbmREdW1wKGhpc3Rvcnks
IHVybCgxMikpOwotICAgIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKDEpKTsKLSAgICByZW1v
dmVBbmREdW1wKGhpc3RvcnksIHVybCgyKSk7Ci0gICAgcmVtb3ZlQW5kRHVtcChoaXN0b3J5LCB1
cmwoMykpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgaGlzdG9yeSBz
YXZpbmcgbG9naWMgaW4gVGFiYmVkRWRpdG9yQ29udGFpbmVyLjwvcD4KLTxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkxMiI+QnVnIDc2OTEyPC9hPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJl
ZC1wYW5lLW1heC10YWItd2lkdGgtY2FsY3VsYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5lLW1heC10YWItd2lkdGgtY2FsY3VsYXRpb24tZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTkzMjBkY2QxZGUzYzFlY2Mw
YzdlZmFkNTcwMmI2Yjk1NGQ2Mjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtcGFuZS1tYXgtdGFiLXdp
ZHRoLWNhbGN1bGF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBA
QAotVGVzdHMgdGFiYmVkIHBhbmUgbWF4IHRhYiBlbGVtZW50IHdpZHRoIGNhbGN1bGF0aW9uLgot
Ci1CdWcgNzUwMDUKLW1lYXN1cmVkV2lkdGhzID0gWzIwLDUwLDcwXSwgdG90YWxXaWR0aCA9IDE1
MCwgbWF4V2lkdGggPSA3MC4KLW1lYXN1cmVkV2lkdGhzID0gWzIwLDUwLDgwXSwgdG90YWxXaWR0
aCA9IDE1MCwgbWF4V2lkdGggPSA4MC4KLW1lYXN1cmVkV2lkdGhzID0gWzIwLDUwLDkwXSwgdG90
YWxXaWR0aCA9IDE1MCwgbWF4V2lkdGggPSA4MC4KLW1lYXN1cmVkV2lkdGhzID0gWzIwLDkwLDkw
XSwgdG90YWxXaWR0aCA9IDE1MCwgbWF4V2lkdGggPSA2NS4KLW1lYXN1cmVkV2lkdGhzID0gWzcw
LDgwLDkwXSwgdG90YWxXaWR0aCA9IDE1MCwgbWF4V2lkdGggPSA1MC4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5lLW1heC10YWItd2lkdGgtY2FsY3VsYXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtcGFuZS1tYXgtdGFiLXdpZHRo
LWNhbGN1bGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0ZjkyNTdl
ZWQ4ZDQ2NzZmMjZmYWUyZTczYWMwMGNkZjIxMGFhYzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5l
LW1heC10YWItd2lkdGgtY2FsY3VsYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgZnVuY3Rpb24gY2FsY3VsYXRl
QW5kRHVtcE1heFdpZHRoKG1lYXN1cmVkV2lkdGhzLCB0b3RhbFdpZHRoKQotICAgIHsKLSAgICAg
ICAgdmFyIG1heFdpZHRoID0gV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLl9jYWxj
dWxhdGVNYXhXaWR0aChtZWFzdXJlZFdpZHRocywgdG90YWxXaWR0aCk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJtZWFzdXJlZFdpZHRocyA9IFsiICsgU3RyaW5nKG1lYXN1cmVk
V2lkdGhzKSArICJdLCB0b3RhbFdpZHRoID0gIiArIHRvdGFsV2lkdGggKyAiLCBtYXhXaWR0aCA9
ICIgKyBtYXhXaWR0aCArICIuIik7Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5kRHVtcE1heFdp
ZHRoKFs1MCwgNzAsIDIwXSwgMTUwKTsKLSAgICBjYWxjdWxhdGVBbmREdW1wTWF4V2lkdGgoWzUw
LCA4MCwgMjBdLCAxNTApOwotICAgIGNhbGN1bGF0ZUFuZER1bXBNYXhXaWR0aChbNTAsIDkwLCAy
MF0sIDE1MCk7Ci0gICAgY2FsY3VsYXRlQW5kRHVtcE1heFdpZHRoKFs5MCwgOTAsIDIwXSwgMTUw
KTsKLSAgICBjYWxjdWxhdGVBbmREdW1wTWF4V2lkdGgoWzkwLCA4MCwgNzBdLCAxNTApOwotCi0g
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgdGFiYmVkIHBhbmUgbWF4IHRhYiBl
bGVtZW50IHdpZHRoIGNhbGN1bGF0aW9uLjwvcD4KLTxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAwNSI+QnVnIDc1MDA1PC9hPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1wYW5lLXRhYnMt
dG8tc2hvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLXBhbmUt
dGFicy10by1zaG93LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MGYxOTNlMzg3YzUzNWVlMjA2N2U4YjdlZTVjYjYxZmZlMGNhZTQ0Ny4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFi
YmVkLXBhbmUtdGFicy10by1zaG93LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIw
OCArMCwwIEBACi1UZXN0cyB0YWJiZWQgcGFuZSB0YWJzIHRvIHNob3cgY2FsY3VsYXRpb24uCi0K
LUJ1ZyA3NTA4NQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAs
NTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDEsdGFiIDIsdGFi
IDMsdGFiIDQsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDM3MCwgZHJvcERvd25CdXR0b25NZWFz
dXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswLDEsMiwzLDQsNV0KLVJ1
bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcw
XQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1
XQotICAgIHRvdGFsV2lkdGggPSAzNjAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEw
Ci0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwxLDIsMyw0LDVdCi1SdW5uaW5nIHRhYnMgdG8g
c2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlz
dG9yeSA9IFt0YWIgMCx0YWIgMSx0YWIgMix0YWIgMyx0YWIgNCx0YWIgNV0KLSAgICB0b3RhbFdp
ZHRoID0gMzUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1No
b3dJbmRleGVzID0gWzAsMSwyLDMsNF0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAg
d2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRh
YiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSAzMDAsIGRyb3BE
b3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwx
LDIsMyw0XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAs
NjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDEsdGFiIDIsdGFiIDMs
dGFiIDQsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDI1MCwgZHJvcERvd25CdXR0b25NZWFzdXJl
ZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswLDEsMiwzXQotUnVubmluZyB0
YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAg
dGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDEsdGFiIDIsdGFiIDMsdGFiIDQsdGFiIDVdCi0gICAg
dG90YWxXaWR0aCA9IDIwMCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0
YWJzVG9TaG93SW5kZXhlcyA9IFswLDEsMl0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0g
ICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAw
LHRhYiAxLHRhYiAyLHRhYiAzLHRhYiA0LHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSAxNTAsIGRy
b3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBb
MCwxXQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAs
NjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDEsdGFiIDIsdGFiIDMsdGFi
IDQsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDEwMCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdp
ZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswXQotUnVubmluZyB0YWJzIHRvIHNo
b3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3Rv
cnkgPSBbdGFiIDAsdGFiIDEsdGFiIDIsdGFiIDMsdGFiIDQsdGFiIDVdCi0gICAgdG90YWxXaWR0
aCA9IDYwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJ
bmRleGVzID0gWzBdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1
MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMSx0YWIgMix0
YWIgMyx0YWIgNCx0YWIgNV0KLSAgICB0b3RhbFdpZHRoID0gNTAsIGRyb3BEb3duQnV0dG9uTWVh
c3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbXQotCi1SdW5uaW5nIHRh
YnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0
YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgNCx0YWIgMyx0YWIgMix0YWIgMSx0YWIgMF0KLSAgICB0
b3RhbFdpZHRoID0gMzcwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRh
YnNUb1Nob3dJbmRleGVzID0gWzAsMSwyLDMsNCw1XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVz
dDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBb
dGFiIDUsdGFiIDQsdGFiIDMsdGFiIDIsdGFiIDEsdGFiIDBdCi0gICAgdG90YWxXaWR0aCA9IDM2
MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhl
cyA9IFswLDEsMiwzLDQsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhz
ID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1LHRhYiA0LHRh
YiAzLHRhYiAyLHRhYiAxLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAzNTAsIGRyb3BEb3duQnV0
dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMSwyLDMsNCw1
XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAs
NzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDUsdGFiIDQsdGFiIDMsdGFiIDIsdGFiIDEs
dGFiIDBdCi0gICAgdG90YWxXaWR0aCA9IDMwMCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRo
ID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFsyLDMsNCw1XQotUnVubmluZyB0YWJzIHRv
IHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hp
c3RvcnkgPSBbdGFiIDUsdGFiIDQsdGFiIDMsdGFiIDIsdGFiIDEsdGFiIDBdCi0gICAgdG90YWxX
aWR0aCA9IDI1MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9T
aG93SW5kZXhlcyA9IFszLDQsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lk
dGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1LHRhYiA0
LHRhYiAzLHRhYiAyLHRhYiAxLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAyMDAsIGRyb3BEb3du
QnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbNCw1XQot
UnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAs
NzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDUsdGFiIDQsdGFiIDMsdGFiIDIsdGFiIDEsdGFi
IDBdCi0gICAgdG90YWxXaWR0aCA9IDE1MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0g
MTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFs0LDVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0
ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9
IFt0YWIgNSx0YWIgNCx0YWIgMyx0YWIgMix0YWIgMSx0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0g
MTAwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRl
eGVzID0gWzVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1
MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgNCx0YWIgMyx0YWIg
Mix0YWIgMSx0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gNjAsIGRyb3BEb3duQnV0dG9uTWVhc3Vy
ZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbXQotUnVubmluZyB0YWJzIHRv
IHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hp
c3RvcnkgPSBbdGFiIDUsdGFiIDQsdGFiIDMsdGFiIDIsdGFiIDEsdGFiIDBdCi0gICAgdG90YWxX
aWR0aCA9IDUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNUb1No
b3dJbmRleGVzID0gW10KLQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMg
PSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDIsdGFi
IDQsdGFiIDEsdGFiIDMsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDM3MCwgZHJvcERvd25CdXR0
b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswLDEsMiwzLDQs
NV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYw
LDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAz
LHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSAzNjAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0
aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMCwxLDIsMyw0LDVdCi1SdW5uaW5nIHRh
YnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0
YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMix0YWIgNCx0YWIgMSx0YWIgMyx0YWIgNV0KLSAgICB0
b3RhbFdpZHRoID0gMzUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRh
YnNUb1Nob3dJbmRleGVzID0gWzAsMSwyLDMsNF0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6
Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3Rh
YiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAzLHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSAzMDAs
IGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMg
PSBbMCwxLDIsMyw0XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBb
NTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDIsdGFiIDQs
dGFiIDEsdGFiIDMsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDI1MCwgZHJvcERvd25CdXR0b25N
ZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswLDEsMiw0XQotUnVu
bmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBd
Ci0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDIsdGFiIDQsdGFiIDEsdGFiIDMsdGFiIDVd
Ci0gICAgdG90YWxXaWR0aCA9IDIwMCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAK
LSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswLDIsNF0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRl
c3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0g
W3RhYiAwLHRhYiAyLHRhYiA0LHRhYiAxLHRhYiAzLHRhYiA1XQotICAgIHRvdGFsV2lkdGggPSAx
NTAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4
ZXMgPSBbMCwyXQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAs
NTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDAsdGFiIDIsdGFiIDQsdGFi
IDEsdGFiIDMsdGFiIDVdCi0gICAgdG90YWxXaWR0aCA9IDEwMCwgZHJvcERvd25CdXR0b25NZWFz
dXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFswXQotUnVubmluZyB0YWJz
IHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFi
c0hpc3RvcnkgPSBbdGFiIDAsdGFiIDIsdGFiIDQsdGFiIDEsdGFiIDMsdGFiIDVdCi0gICAgdG90
YWxXaWR0aCA9IDYwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAotICAgIHRhYnNU
b1Nob3dJbmRleGVzID0gWzBdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRo
cyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgMCx0YWIgMix0
YWIgNCx0YWIgMSx0YWIgMyx0YWIgNV0KLSAgICB0b3RhbFdpZHRoID0gNTAsIGRyb3BEb3duQnV0
dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbXQotCi1SdW5u
aW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0K
LSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgMyx0YWIgMSx0YWIgNCx0YWIgMix0YWIgMF0K
LSAgICB0b3RhbFdpZHRoID0gMzcwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAxMAot
ICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzAsMSwyLDMsNCw1XQotUnVubmluZyB0YWJzIHRvIHNo
b3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3Rv
cnkgPSBbdGFiIDUsdGFiIDMsdGFiIDEsdGFiIDQsdGFiIDIsdGFiIDBdCi0gICAgdG90YWxXaWR0
aCA9IDM2MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93
SW5kZXhlcyA9IFswLDEsMiwzLDQsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAg
d2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1LHRh
YiAzLHRhYiAxLHRhYiA0LHRhYiAyLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAzNTAsIGRyb3BE
b3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBbMSwy
LDMsNCw1XQotUnVubmluZyB0YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAs
NjAsNjAsNzAsNzBdCi0gICAgdGFic0hpc3RvcnkgPSBbdGFiIDUsdGFiIDMsdGFiIDEsdGFiIDQs
dGFiIDIsdGFiIDBdCi0gICAgdG90YWxXaWR0aCA9IDMwMCwgZHJvcERvd25CdXR0b25NZWFzdXJl
ZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFsxLDMsNCw1XQotUnVubmluZyB0
YWJzIHRvIHNob3cgdGVzdDoKLSAgICB3aWR0aHMgPSBbNTAsNTAsNjAsNjAsNzAsNzBdCi0gICAg
dGFic0hpc3RvcnkgPSBbdGFiIDUsdGFiIDMsdGFiIDEsdGFiIDQsdGFiIDIsdGFiIDBdCi0gICAg
dG90YWxXaWR0aCA9IDI1MCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0
YWJzVG9TaG93SW5kZXhlcyA9IFsxLDMsNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0g
ICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1
LHRhYiAzLHRhYiAxLHRhYiA0LHRhYiAyLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSAyMDAsIGRy
b3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1RvU2hvd0luZGV4ZXMgPSBb
MSwzLDVdCi1SdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2
MCw2MCw3MCw3MF0KLSAgICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgMyx0YWIgMSx0YWIgNCx0
YWIgMix0YWIgMF0KLSAgICB0b3RhbFdpZHRoID0gMTUwLCBkcm9wRG93bkJ1dHRvbk1lYXN1cmVk
V2lkdGggPSAxMAotICAgIHRhYnNUb1Nob3dJbmRleGVzID0gWzMsNV0KLVJ1bm5pbmcgdGFicyB0
byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhzID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNI
aXN0b3J5ID0gW3RhYiA1LHRhYiAzLHRhYiAxLHRhYiA0LHRhYiAyLHRhYiAwXQotICAgIHRvdGFs
V2lkdGggPSAxMDAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAgdGFic1Rv
U2hvd0luZGV4ZXMgPSBbNV0KLVJ1bm5pbmcgdGFicyB0byBzaG93IHRlc3Q6Ci0gICAgd2lkdGhz
ID0gWzUwLDUwLDYwLDYwLDcwLDcwXQotICAgIHRhYnNIaXN0b3J5ID0gW3RhYiA1LHRhYiAzLHRh
YiAxLHRhYiA0LHRhYiAyLHRhYiAwXQotICAgIHRvdGFsV2lkdGggPSA2MCwgZHJvcERvd25CdXR0
b25NZWFzdXJlZFdpZHRoID0gMTAKLSAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFtdCi1SdW5uaW5n
IHRhYnMgdG8gc2hvdyB0ZXN0OgotICAgIHdpZHRocyA9IFs1MCw1MCw2MCw2MCw3MCw3MF0KLSAg
ICB0YWJzSGlzdG9yeSA9IFt0YWIgNSx0YWIgMyx0YWIgMSx0YWIgNCx0YWIgMix0YWIgMF0KLSAg
ICB0b3RhbFdpZHRoID0gNTAsIGRyb3BEb3duQnV0dG9uTWVhc3VyZWRXaWR0aCA9IDEwCi0gICAg
dGFic1RvU2hvd0luZGV4ZXMgPSBbXQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90YWJiZWQtcGFuZS10YWJzLXRvLXNob3cuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90YWJiZWQtcGFuZS10YWJzLXRvLXNob3cuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNGQyYmVlNzUxYjRkZWRiZGU3MjRjYWU2YWU3MmRmZGJhODBjZGM1ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGFiYmVkLXBhbmUtdGFicy10by1zaG93Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KLXZhciB0ZXN0ID0gZnVuY3Rpb24oKQotewotICAgIGZ1bmN0aW9uIGNyZWF0ZUZh
a2VUYWIodGl0bGUsIHdpZHRoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gdG9TdHJpbmcoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdGl0bGU7Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuIHsgd2lkdGg6IGZ1bmN0aW9uKCkgeyByZXR1cm4gd2lkdGg7IH0sIHRpdGxlOiB0aXRs
ZSwgdG9TdHJpbmc6IHRvU3RyaW5nIH07Ci0gICAgfQotCi0gICAgdmFyIGRyb3BEb3duQnV0dG9u
TWVhc3VyZWRXaWR0aCA9IDEwOwotICAgIGZ1bmN0aW9uIGdldFRhYnNUb1Nob3dBbmREdW1wUmVz
dWx0cyh0YWJzT3JkZXJlZCwgdGFic0hpc3RvcnksIHRvdGFsV2lkdGgpCi0gICAgewotICAgICAg
ICB2YXIgdGFic1RvU2hvd0luZGV4ZXMgPSBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUuX3RhYnNUb1Nob3dJbmRleGVzKHRhYnNPcmRlcmVkLCB0YWJzSGlzdG9yeSwgdG90YWxXaWR0
aCwgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIiAgICB0YWJzVG9TaG93SW5kZXhlcyA9IFsiICsgU3RyaW5nKHRhYnNUb1Nob3dJ
bmRleGVzKSArICJdIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdFdpZHRoc0FuZEhpc3Rv
cnkod2lkdGhzLCBoaXN0b3J5LCB0b3RhbFdpZHRoKQotICAgIHsKLSAgICAgICAgdmFyIHRhYnNP
cmRlcmVkID0gW107Ci0gICAgICAgIHZhciB0YWJzSGlzdG9yeSA9IFtdOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHdpZHRocy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIHRhYnNPcmRl
cmVkLnB1c2goY3JlYXRlRmFrZVRhYigidGFiICIgKyBpLCB3aWR0aHNbaV0pKTsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBoaXN0b3J5Lmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgdGFi
c0hpc3RvcnkucHVzaCh0YWJzT3JkZXJlZFtoaXN0b3J5W2ldXSk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJSdW5uaW5nIHRhYnMgdG8gc2hvdyB0ZXN0OiIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHdpZHRocyA9IFsiICsgU3RyaW5nKHdpZHRocykg
KyAiXSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIHRhYnNIaXN0b3J5
ID0gWyIgKyBTdHJpbmcodGFic0hpc3RvcnkpICsgIl0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIiAgICB0b3RhbFdpZHRoID0gIiArIHRvdGFsV2lkdGggKyAiLCBkcm9wRG93
bkJ1dHRvbk1lYXN1cmVkV2lkdGggPSAiICsgZHJvcERvd25CdXR0b25NZWFzdXJlZFdpZHRoKTsK
LSAgICAgICAgZ2V0VGFic1RvU2hvd0FuZER1bXBSZXN1bHRzKHRhYnNPcmRlcmVkLCB0YWJzSGlz
dG9yeSwgdG90YWxXaWR0aCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdFdpdGhEaWZmZXJl
bnRUb3RhbFdpZHRocyh3aWR0aHMsIGhpc3RvcnkpCi0gICAgewotICAgICAgICB0ZXN0V2lkdGhz
QW5kSGlzdG9yeSh3aWR0aHMsIGhpc3RvcnksIDM3MCk7Ci0gICAgICAgIHRlc3RXaWR0aHNBbmRI
aXN0b3J5KHdpZHRocywgaGlzdG9yeSwgMzYwKTsKLSAgICAgICAgdGVzdFdpZHRoc0FuZEhpc3Rv
cnkod2lkdGhzLCBoaXN0b3J5LCAzNTApOwotICAgICAgICB0ZXN0V2lkdGhzQW5kSGlzdG9yeSh3
aWR0aHMsIGhpc3RvcnksIDMwMCk7Ci0gICAgICAgIHRlc3RXaWR0aHNBbmRIaXN0b3J5KHdpZHRo
cywgaGlzdG9yeSwgMjUwKTsKLSAgICAgICAgdGVzdFdpZHRoc0FuZEhpc3Rvcnkod2lkdGhzLCBo
aXN0b3J5LCAyMDApOwotICAgICAgICB0ZXN0V2lkdGhzQW5kSGlzdG9yeSh3aWR0aHMsIGhpc3Rv
cnksIDE1MCk7Ci0gICAgICAgIHRlc3RXaWR0aHNBbmRIaXN0b3J5KHdpZHRocywgaGlzdG9yeSwg
MTAwKTsKLSAgICAgICAgdGVzdFdpZHRoc0FuZEhpc3Rvcnkod2lkdGhzLCBoaXN0b3J5LCA2MCk7
Ci0gICAgICAgIHRlc3RXaWR0aHNBbmRIaXN0b3J5KHdpZHRocywgaGlzdG9yeSwgNTApOwotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7Ci0gICAgfQotCi0gICAgdmFyIHdpZHRo
cyA9IFs1MCwgNTAsIDYwLCA2MCwgNzAsIDcwXTsKLSAgICB0ZXN0V2l0aERpZmZlcmVudFRvdGFs
V2lkdGhzKHdpZHRocywgWzAsIDEsIDIsIDMsIDQsIDVdKTsKLSAgICB0ZXN0V2l0aERpZmZlcmVu
dFRvdGFsV2lkdGhzKHdpZHRocywgWzUsIDQsIDMsIDIsIDEsIDBdKTsKLSAgICB0ZXN0V2l0aERp
ZmZlcmVudFRvdGFsV2lkdGhzKHdpZHRocywgWzAsIDIsIDQsIDEsIDMsIDVdKTsKLSAgICB0ZXN0
V2l0aERpZmZlcmVudFRvdGFsV2lkdGhzKHdpZHRocywgWzUsIDMsIDEsIDQsIDIsIDBdKTsKLQot
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHRhYmJlZCBwYW5lIHRhYnMgdG8g
c2hvdyBjYWxjdWxhdGlvbi48L3A+Ci08YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzUwODUiPkJ1ZyA3NTA4NTwvYT4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzYTZjMWZlZTliMTNhMWEzYTExOTI2ZGU3MWE4MjQ4
ZThjN2Y4YTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLWRmcy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzNCArMCwwIEBACi1UZXN0cyBUaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZv
ckFsbFJlY29yZHMgZnVuY3Rpb24uCi0KLURGUyBwcmVvcmRlcjoKLWEKLWFhCi1hYWEKLWFhYgot
YWIKLWFiYQotYWJiCi1iCi1iYQotYmFhCi1iYWIKLWJiCi1iYmEKLWJiYgotCi1ERlMgcG9zdG9y
ZGVyOgotYWFhCi1hYWIKLWFhCi1hYmEKLWFiYgotYWIKLWEKLWJhYQotYmFiCi1iYQotYmJhCi1i
YmIKLWJiCi1iCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1k
ZnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS1kZnMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmVlMTUyODVlZmRkZjMzNTc3ZjJiMWQyNGQzNGViMDI1
NDU4MWZlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUtZGZzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw1MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLQotdmFyIHRlc3QgPSBmdW5jdGlvbigpCi17Ci0gICAgV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgidGltZWxpbmUiKTsKLQotICAgIGZ1bmN0aW9uIGR1bXBlcihyZWNvcmQp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChyZWNvcmQubmFtZSk7Ci0g
ICAgfQotCi0gICAgdmFyIHJlY29yZHMgPSBbCi0gICAgICAgIHsibmFtZSIgOiAiYSIsICJjaGls
ZHJlbiIgOiBbCi0gICAgICAgICAgICB7Im5hbWUiIDogImFhIiwgImNoaWxkcmVuIjogWwotICAg
ICAgICAgICAgICAgIHsibmFtZSIgOiAiYWFhIn0sCi0gICAgICAgICAgICAgICAgeyJuYW1lIiA6
ICJhYWIifSwKLSAgICAgICAgICAgIF19LAotICAgICAgICAgICAgeyJuYW1lIiA6ICJhYiIsICJj
aGlsZHJlbiI6WwotICAgICAgICAgICAgICAgIHsibmFtZSIgOiAiYWJhIn0sCi0gICAgICAgICAg
ICAgICAgeyJuYW1lIiA6ICJhYmIifSwKLSAgICAgICAgICAgIF19Ci0gICAgICAgIF19LAotICAg
ICAgICB7Im5hbWUiIDogImIiLCAiY2hpbGRyZW4iIDogWwotICAgICAgICAgICAgeyJuYW1lIiA6
ICJiYSIsICJjaGlsZHJlbiIgOiBbCi0gICAgICAgICAgICAgICAgeyJuYW1lIiA6ICJiYWEifSwK
LSAgICAgICAgICAgICAgICB7Im5hbWUiIDogImJhYiJ9LAotICAgICAgICAgICAgXX0sCi0gICAg
ICAgICAgICB7Im5hbWUiIDogImJiIiwgImNoaWxkcmVuIjpbCi0gICAgICAgICAgICAgICAgeyJu
YW1lIiA6ICJiYmEifSwKLSAgICAgICAgICAgICAgICB7Im5hbWUiIDogImJiYiJ9LAotICAgICAg
ICAgICAgXX0KLSAgICAgICAgXX0sCi0gICAgXTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJERlMgcHJlb3JkZXI6Iik7Ci0gICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuZm9yQWxsUmVjb3JkcyhyZWNvcmRzLCBkdW1wZXIpOwotICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIiKTsKLQotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJERlMgcG9z
dG9yZGVyOiIpOwotICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmZv
ckFsbFJlY29yZHMocmVjb3JkcywgbnVsbCwgZHVtcGVyKTsKLSAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPlRlc3RzIFRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuZm9yQWxsUmVjb3Jk
cyBmdW5jdGlvbi48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtY29hbGVzY2luZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtY29hbGVzY2luZy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjODUxNTI2ZWVkZmUzYjY4ZDhh
ZDRiYjc2YjM2NmU5ZTEyMjEzNjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWNvYWxl
c2NpbmctZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotVGVzdCB0
aW1lbGluZSByZWNvcmRzIGNvYWxlc2NpbmcKLQotUm9vdAotLS0tLT4gTGF5b3V0Ci0tLS0tLS0t
LT4gTGF5b3V0Ci0tLS0tLS0tLT4gTGF5b3V0Ci0tLS0tLS0tLT4gTGF5b3V0Ci0tLS0tPiBMYXlv
dXQKLWNvYWxlc2NlZCByZWNvcmQncyBoYXNXYXJuaW5nOiB1bmRlZmluZWQKLWNvYWxlc2NlZCBy
ZWNvcmQncyBjaGlsZEhhc1dhcm5pbmc6IHRydWUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWNvYWxlc2NpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1jb2FsZXNjaW5nLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgyMjJiYWExNzA0MzBkM2ExODZhNTJmMmIxNjJjMGNhMTFlMjgz
MWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWNvYWxlc2NpbmcuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgidGltZWxpbmUiKTsKLQotICAgIHZhciByZWNvcmRzID0gWwotICAgICAgICB7
InN0YXJ0VGltZSI6IDEwMDAuMDAwLCJkYXRhIjp7fSwiZW5kVGltZSI6MTA5OS45OTksInR5cGUi
OiJQcm9ncmFtIiwiY2hpbGRyZW4iOlsKLSAgICAgICAgICAgIHsic3RhcnRUaW1lIjoxMDAwLjAw
MSwgImVuZFRpbWUiOjEwOTkuOSwidHlwZSI6IkxheW91dCIsImZyYW1lSWQiOiIyIiwiZGF0YSI6
e30sCi0gICAgICAgICAgICAic3RhY2tUcmFjZSI6IFsKLSAgICAgICAgICAgICAgICB7ImZ1bmN0
aW9uTmFtZSI6ImZ1bmMiLCJ1cmwiOiJodHRwOi8vZXhhbXBsZS5jb20iLCJsaW5lTnVtYmVyIjo0
MiwiY29sdW1uTnVtYmVyIjoxfQotICAgICAgICAgICAgXX0KLSAgICAgICAgXX0sCi0gICAgICAg
IHsic3RhcnRUaW1lIjoxMTAwLjAwMCwiZGF0YSI6e30sImVuZFRpbWUiOjExOTkuOTk5LCJ0eXBl
IjoiUHJvZ3JhbSIsImNoaWxkcmVuIjpbCi0gICAgICAgICAgICB7InN0YXJ0VGltZSI6MTEwMC4w
MDEsICJlbmRUaW1lIjoxMTk5LjksInR5cGUiOiJMYXlvdXQiLCJmcmFtZUlkIjoiMiIsImRhdGEi
Ont9fQotICAgICAgICBdfSwKLSAgICAgICAgeyJzdGFydFRpbWUiOjEyMDAuMDAwLCJkYXRhIjp7
fSwiZW5kVGltZSI6MTI5OS45OTksInR5cGUiOiJQcm9ncmFtIiwiY2hpbGRyZW4iOlsKLSAgICAg
ICAgICAgIHsic3RhcnRUaW1lIjoxMjAwLjAwMSwgImVuZFRpbWUiOjEyOTkuOSwidHlwZSI6Ikxh
eW91dCIsImZyYW1lSWQiOiIyIiwiZGF0YSI6e319Ci0gICAgICAgIF19LAotICAgICAgICB7InN0
YXJ0VGltZSI6MTMwMC4wMDAsImRhdGEiOnt9LCJlbmRUaW1lIjoxMzk5Ljk5OSwidHlwZSI6IlBy
b2dyYW0iLCJjaGlsZHJlbiI6WwotICAgICAgICAgICAgeyJzdGFydFRpbWUiOjEzMDEuMDAxLCAi
ZW5kVGltZSI6MTM5OS45LCJ0eXBlIjoiTGF5b3V0IiwiZnJhbWVJZCI6IjIiLCJkYXRhIjp7fX0K
LSAgICAgICAgXX0sCi0gICAgXTsKLQotICAgIHZhciBtb2RlbCA9IFdlYkluc3BlY3Rvci5wYW5l
bHMudGltZWxpbmUuX21vZGVsOwotICAgIHZhciBwcmVzZW50YXRpb25Nb2RlbCA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMudGltZWxpbmUuX3ByZXNlbnRhdGlvbk1vZGVsOwotCi0gICAgcmVjb3Jkcy5m
b3JFYWNoKG1vZGVsLl9hZGRSZWNvcmQsIG1vZGVsKTsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXBU
aW1lbGluZVJlY29yZChwcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCkpOwotICAgIHZhciBj
b2FsZXNjZWQgPSBwcmVzZW50YXRpb25Nb2RlbC5yb290UmVjb3JkKCkuY2hpbGRyZW5bMF07Ci0g
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNvYWxlc2NlZCByZWNvcmQncyBoYXNXYXJuaW5n
OiAiICsgY29hbGVzY2VkLmhhc1dhcm5pbmcpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJjb2FsZXNjZWQgcmVjb3JkJ3MgY2hpbGRIYXNXYXJuaW5nOiAiICsgY29hbGVzY2VkLmNoaWxk
SGFzV2FybmluZyk7Ci0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdCB0
aW1lbGluZSByZWNvcmRzIGNvYWxlc2Npbmc8L2E+Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVt
LXN0YWJpbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtZW51bS1zdGFiaWxpdHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmMjUzZGU1NzJmZjE5OTdlZjE3ZGM1MzRhNmRjNDg4M2M4OTFiNzM2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0eS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi1DaGVjayB0byBzZWUgdGhhdCBUaW1lbGluZUFn
ZW50IHJlY29yZCB0eXBlcyBhcmUgc3RhYmxlLgotCi1BcHBsaWNhdGlvbnMgb3V0c2lkZSBvZiBX
ZWJLaXQgZGVwZW5kIG9uIHRoZSBzdGFiaWxpdHkgb2YgdGhlIG1hcHBpbmcgb2YgdGhlc2UgdHlw
ZXMgdG8gdGhlc2Ugc3BlY2lmaWMgdmFsdWVzLgotCi17Ci0gICAgQmVnaW5GcmFtZSA6ICJCZWdp
bkZyYW1lIgotICAgIENhbmNlbEFuaW1hdGlvbkZyYW1lIDogIkNhbmNlbEFuaW1hdGlvbkZyYW1l
IgotICAgIENvbXBvc2l0ZUxheWVycyA6ICJDb21wb3NpdGVMYXllcnMiCi0gICAgRGVjb2RlSW1h
Z2UgOiAiRGVjb2RlSW1hZ2UiCi0gICAgRXZhbHVhdGVTY3JpcHQgOiAiRXZhbHVhdGVTY3JpcHQi
Ci0gICAgRXZlbnREaXNwYXRjaCA6ICJFdmVudERpc3BhdGNoIgotICAgIEZpcmVBbmltYXRpb25G
cmFtZSA6ICJGaXJlQW5pbWF0aW9uRnJhbWUiCi0gICAgRnVuY3Rpb25DYWxsIDogIkZ1bmN0aW9u
Q2FsbCIKLSAgICBHQ0V2ZW50IDogIkdDRXZlbnQiCi0gICAgSW52YWxpZGF0ZUxheW91dCA6ICJJ
bnZhbGlkYXRlTGF5b3V0IgotICAgIExheW91dCA6ICJMYXlvdXQiCi0gICAgTWFya0RPTUNvbnRl
bnQgOiAiTWFya0RPTUNvbnRlbnQiCi0gICAgTWFya0xvYWQgOiAiTWFya0xvYWQiCi0gICAgUGFp
bnQgOiAiUGFpbnQiCi0gICAgUGFyc2VIVE1MIDogIlBhcnNlSFRNTCIKLSAgICBQcm9ncmFtIDog
IlByb2dyYW0iCi0gICAgUmFzdGVyaXplIDogIlJhc3Rlcml6ZSIKLSAgICBSZWNhbGN1bGF0ZVN0
eWxlcyA6ICJSZWNhbGN1bGF0ZVN0eWxlcyIKLSAgICBSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiAi
UmVxdWVzdEFuaW1hdGlvbkZyYW1lIgotICAgIFJlc2l6ZUltYWdlIDogIlJlc2l6ZUltYWdlIgot
ICAgIFJlc291cmNlRmluaXNoIDogIlJlc291cmNlRmluaXNoIgotICAgIFJlc291cmNlUmVjZWl2
ZVJlc3BvbnNlIDogIlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlIgotICAgIFJlc291cmNlUmVjZWl2
ZWREYXRhIDogIlJlc291cmNlUmVjZWl2ZWREYXRhIgotICAgIFJlc291cmNlU2VuZFJlcXVlc3Qg
OiAiUmVzb3VyY2VTZW5kUmVxdWVzdCIKLSAgICBSb290IDogIlJvb3QiCi0gICAgU2NoZWR1bGVS
ZXNvdXJjZVJlcXVlc3QgOiAiU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QiCi0gICAgU2NoZWR1bGVT
dHlsZVJlY2FsY3VsYXRpb24gOiAiU2NoZWR1bGVTdHlsZVJlY2FsY3VsYXRpb24iCi0gICAgU2Ny
b2xsTGF5ZXIgOiAiU2Nyb2xsTGF5ZXIiCi0gICAgVGltZSA6ICJUaW1lIgotICAgIFRpbWVFbmQg
OiAiVGltZUVuZCIKLSAgICBUaW1lU3RhbXAgOiAiVGltZVN0YW1wIgotICAgIFRpbWVyRmlyZSA6
ICJUaW1lckZpcmUiCi0gICAgVGltZXJJbnN0YWxsIDogIlRpbWVySW5zdGFsbCIKLSAgICBUaW1l
clJlbW92ZSA6ICJUaW1lclJlbW92ZSIKLSAgICBXZWJTb2NrZXRDcmVhdGUgOiAiV2ViU29ja2V0
Q3JlYXRlIgotICAgIFdlYlNvY2tldERlc3Ryb3kgOiAiV2ViU29ja2V0RGVzdHJveSIKLSAgICBX
ZWJTb2NrZXRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UgOiAiV2ViU29ja2V0UmVjZWl2ZUhhbmRz
aGFrZVJlc3BvbnNlIgotICAgIFdlYlNvY2tldFNlbmRIYW5kc2hha2VSZXF1ZXN0IDogIldlYlNv
Y2tldFNlbmRIYW5kc2hha2VSZXF1ZXN0IgotICAgIFhIUkxvYWQgOiAiWEhSTG9hZCIKLSAgICBY
SFJSZWFkeVN0YXRlQ2hhbmdlIDogIlhIUlJlYWR5U3RhdGVDaGFuZ2UiCi19Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1lbnVtLXN0YWJpbGl0
eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWVudW0tc3Rh
YmlsaXR5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzNmJkMjE1ZTA5MTVj
OWM5ZTI2YzU4YTg3NDkzODQyYTliN2U4YmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LWVudW0tc3RhYmlsaXR5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInRpbWVsaW5lIik7Ci0gICAgSW5zcGVjdG9yVGVz
dC5hZGRPYmplY3QoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZSk7Ci0gICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPiAKLUNoZWNrIHRvIHNlZSB0aGF0IFRpbWVs
aW5lQWdlbnQgcmVjb3JkIHR5cGVzIGFyZSBzdGFibGUuCi08L3A+Ci0KLTxwPgotQXBwbGljYXRp
b25zIG91dHNpZGUgb2YgV2ViS2l0IGRlcGVuZCBvbiB0aGUgc3RhYmlsaXR5IG9mIHRoZSBtYXBw
aW5nIG9mIAotdGhlc2UgdHlwZXMgdG8gdGhlc2Ugc3BlY2lmaWMgdmFsdWVzLgotPC9wPgotCi08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3Vy
Y2Vjb2RlLXJldmlzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlz
b3VyY2Vjb2RlLXJldmlzaW9ucy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDk1MDI0MWZiN2ZkODVlMzNhZDExZjVmMjM3MzY1ODg0NTJiMDYyNDcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNzkgKzAsMCBAQAotVGVzdHMgcmV2aXNpb24gc3VwcG9ydCBpbiBVSVNvdXJjZUNvZGUuCi0K
LUJ1ZyA5NzY2OQotCi1SdW5uaW5nOiB0ZXN0QWRkUmV2aXNpb25zUmV2ZXJ0VG9PcmlnaW5hbAot
Rmlyc3QgcmV2aXNpb24gYWRkZWQuCi1VSVNvdXJjZUNvZGUgY29udGVudDogY29udGVudDIKLSAg
ICByZXZpc2lvbnM6ICdjb250ZW50MicKLVNlY29uZCByZXZpc2lvbiBhZGRlZC4KLVVJU291cmNl
Q29kZSBjb250ZW50OiBjb250ZW50NAotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJywgJ2NvbnRl
bnQ0JwotUmV2ZXJ0ZWQgdG8gb3JpZ2luYWwuCi1VSVNvdXJjZUNvZGUgY29udGVudDogPHNjcmlw
dCBjb250ZW50PgotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJywgJ2NvbnRlbnQ0JywgJzxzY3Jp
cHQgY29udGVudD4nCi0KLVJ1bm5pbmc6IHRlc3RBZGRSZXZpc2lvbnNSZXZlcnRBbmRDbGVhckhp
c3RvcnkKLUZpcnN0IHJldmlzaW9uIGFkZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGNvbnRl
bnQyCi0gICAgcmV2aXNpb25zOiAnY29udGVudDInCi1TZWNvbmQgcmV2aXNpb24gYWRkZWQuCi1V
SVNvdXJjZUNvZGUgY29udGVudDogY29udGVudDQKLSAgICByZXZpc2lvbnM6ICdjb250ZW50Mics
ICdjb250ZW50NCcKLVJldmVydGVkIGFuZCBjbGVhcmVkIGhpc3RvcnkuCi1VSVNvdXJjZUNvZGUg
Y29udGVudDogPHNjcmlwdCBjb250ZW50PgotICAgIHJldmlzaW9uczogCi0KLVJ1bm5pbmc6IHRl
c3RBZGRSZXZpc2lvbnNSZXZlcnRUb1ByZXZpb3VzCi1GaXJzdCByZXZpc2lvbiBhZGRlZC4KLVVJ
U291cmNlQ29kZSBjb250ZW50OiBjb250ZW50MgotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJwot
U2Vjb25kIHJldmlzaW9uIGFkZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGNvbnRlbnQ0Ci0g
ICAgcmV2aXNpb25zOiAnY29udGVudDInLCAnY29udGVudDQnCi1SZXZlcnRlZCB0byBwcmV2aW91
cyByZXZpc2lvbi4KLVVJU291cmNlQ29kZSBjb250ZW50OiBjb250ZW50MgotICAgIHJldmlzaW9u
czogJ2NvbnRlbnQyJywgJ2NvbnRlbnQ0JywgJ2NvbnRlbnQyJwotCi1SdW5uaW5nOiB0ZXN0UmVx
dWVzdENvbnRlbnRBZGRSZXZpc2lvbnNSZXZlcnRUb09yaWdpbmFsCi1Db250ZW50IHJlcXVlc3Rl
ZC4KLVVJU291cmNlQ29kZSBjb250ZW50OiA8c2NyaXB0IGNvbnRlbnQ+Ci0gICAgcmV2aXNpb25z
OiAKLUZpcnN0IHJldmlzaW9uIGFkZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGNvbnRlbnQy
Ci0gICAgcmV2aXNpb25zOiAnY29udGVudDInCi1TZWNvbmQgcmV2aXNpb24gYWRkZWQuCi1VSVNv
dXJjZUNvZGUgY29udGVudDogY29udGVudDQKLSAgICByZXZpc2lvbnM6ICdjb250ZW50MicsICdj
b250ZW50NCcKLVJldmVydGVkIHRvIG9yaWdpbmFsLgotVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxz
Y3JpcHQgY29udGVudD4KLSAgICByZXZpc2lvbnM6ICdjb250ZW50MicsICdjb250ZW50NCcsICc8
c2NyaXB0IGNvbnRlbnQ+JwotCi1SdW5uaW5nOiB0ZXN0UmVxdWVzdENvbnRlbnRBZGRSZXZpc2lv
bnNSZXZlcnRBbmRDbGVhckhpc3RvcnkKLUNvbnRlbnQgcmVxdWVzdGVkLgotVUlTb3VyY2VDb2Rl
IGNvbnRlbnQ6IDxzY3JpcHQgY29udGVudD4KLSAgICByZXZpc2lvbnM6IAotRmlyc3QgcmV2aXNp
b24gYWRkZWQuCi1VSVNvdXJjZUNvZGUgY29udGVudDogY29udGVudDIKLSAgICByZXZpc2lvbnM6
ICdjb250ZW50MicKLVNlY29uZCByZXZpc2lvbiBhZGRlZC4KLVVJU291cmNlQ29kZSBjb250ZW50
OiBjb250ZW50NAotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJywgJ2NvbnRlbnQ0JwotUmV2ZXJ0
ZWQgYW5kIGNsZWFyZWQgaGlzdG9yeS4KLVVJU291cmNlQ29kZSBjb250ZW50OiA8c2NyaXB0IGNv
bnRlbnQ+Ci0gICAgcmV2aXNpb25zOiAKLQotUnVubmluZzogdGVzdFJlcXVlc3RDb250ZW50QWRk
UmV2aXNpb25zUmV2ZXJ0VG9QcmV2aW91cwotQ29udGVudCByZXF1ZXN0ZWQuCi1VSVNvdXJjZUNv
ZGUgY29udGVudDogPHNjcmlwdCBjb250ZW50PgotICAgIHJldmlzaW9uczogCi1GaXJzdCByZXZp
c2lvbiBhZGRlZC4KLVVJU291cmNlQ29kZSBjb250ZW50OiBjb250ZW50MgotICAgIHJldmlzaW9u
czogJ2NvbnRlbnQyJwotU2Vjb25kIHJldmlzaW9uIGFkZGVkLgotVUlTb3VyY2VDb2RlIGNvbnRl
bnQ6IGNvbnRlbnQ0Ci0gICAgcmV2aXNpb25zOiAnY29udGVudDInLCAnY29udGVudDQnCi1SZXZl
cnRlZCB0byBwcmV2aW91cyByZXZpc2lvbi4KLVVJU291cmNlQ29kZSBjb250ZW50OiBjb250ZW50
MgotICAgIHJldmlzaW9uczogJ2NvbnRlbnQyJywgJ2NvbnRlbnQ0JywgJ2NvbnRlbnQyJwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vpc291cmNlY29kZS1yZXZpc2lvbnMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdjYWRjNjI1NTllYzdmODVlZmJlMjRhZDU4
M2EwZTE1MzYzYzA4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdWlzb3VyY2Vjb2RlLXJldmlzaW9ucy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMjA0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwo
InNjcmlwdHMiKTsKLQotICAgIGZ1bmN0aW9uIGNyZWF0ZU1vY2tQcm9qZWN0KCkKLSAgICB7Ci0g
ICAgICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOwotICAg
ICAgICB2YXIgcHJvamVjdERlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVQcm9qZWN0
RGVsZWdhdGUoIiIsIFdlYkluc3BlY3Rvci5wcm9qZWN0VHlwZXMuTmV0d29yayk7Ci0gICAgICAg
IHZhciBwcm9qZWN0ID0gd29ya3NwYWNlLmFkZFByb2plY3QocHJvamVjdERlbGVnYXRlKTsKLSAg
ICAgICAgcHJvamVjdC5yZXF1ZXN0RmlsZUNvbnRlbnQgPSBmdW5jdGlvbih1cmksIGNhbGxiYWNr
KQotICAgICAgICB7Ci0gICAgICAgICAgICBjYWxsYmFjaygiPHNjcmlwdCBjb250ZW50PiIsIGZh
bHNlLCAidGV4dC9qYXZhc2NyaXB0Iik7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvamVjdC5zZXRG
aWxlQ29udGVudCA9IGZ1bmN0aW9uKHVyaSwgbmV3Q29udGVudCwgY2FsbGJhY2spCi0gICAgICAg
IHsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBwcm9qZWN0OwotICAgIH0KLSAKLSAgICBm
dW5jdGlvbiBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpCi0gICAg
ewotICAgICAgICB2YXIgY29udGVudCA9IHVpU291cmNlQ29kZS5fY29udGVudDsKLSAgICAgICAg
dmFyIHJldmlzaW9uc1N0cmluZyA9ICIiOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVp
U291cmNlQ29kZS5oaXN0b3J5Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcmV2aXNp
b24gPSB1aVNvdXJjZUNvZGUuaGlzdG9yeVtpXTsKLSAgICAgICAgICAgIGlmIChpICE9PSAwKQot
ICAgICAgICAgICAgICAgIHJldmlzaW9uc1N0cmluZyArPSAiLCAiOwotICAgICAgICAgICAgcmV2
aXNpb25zU3RyaW5nICs9ICInIiArIHJldmlzaW9uLmNvbnRlbnQgKyAiJyI7Ci0gICAgICAgIH0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZSBjb250ZW50OiAi
ICsgY29udGVudCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgcmV2aXNp
b25zOiAiICsgcmV2aXNpb25zU3RyaW5nKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1
blRlc3RTdWl0ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RBZGRSZXZpc2lvbnNSZXZlcnRUb09y
aWdpbmFsKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBu
ZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrUHJvamVjdCgpLCAidXJpIiwg
Im9yaWdpblVSTCIsICJ1cmwiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQpOwot
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MSIpOwotICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MiIpOwotICAgICAg
ICAgICAgdWlTb3VyY2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9uKCkgeyB9KTsKLQot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZpcnN0IHJldmlzaW9uIGFkZGVk
LiIpOwotICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VD
b2RlKTsKLSAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDMi
KTsKLSAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDQiKTsK
LSAgICAgICAgICAgIHVpU291cmNlQ29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsg
fSk7Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWNvbmQgcmV2aXNp
b24gYWRkZWQuIik7Ci0gICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1
aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJldmVydFRvT3JpZ2luYWwo
KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXZlcnRlZCB0byBvcmln
aW5hbC4iKTsKLSAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291
cmNlQ29kZSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdEFkZFJldmlzaW9uc1JldmVydEFuZENsZWFySGlzdG9yeShuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGUoY3JlYXRlTW9ja1Byb2plY3QoKSwgInVyaTIiLCAib3JpZ2luVVJMMiIsICJ1cmwy
IiwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0KTsKLQotICAgICAgICAgICAgdWlT
b3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MSIpOwotICAgICAgICAgICAgdWlTb3Vy
Y2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MiIpOwotICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9uKCkgeyB9KTsKLQotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZpcnN0IHJldmlzaW9uIGFkZGVkLiIpOwotICAgICAgICAg
ICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsKLSAgICAgICAg
ICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDMiKTsKLSAgICAgICAgICAg
IHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDQiKTsKLSAgICAgICAgICAgIHVp
U291cmNlQ29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsgfSk7Ci0KLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWNvbmQgcmV2aXNpb24gYWRkZWQuIik7Ci0g
ICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpOwot
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJldmVydEFuZENsZWFySGlzdG9yeShyZXZlcnRlZEFu
ZENsZWFyZWRIaXN0b3J5KTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gcmV2ZXJ0ZWRBbmRDbGVh
cmVkSGlzdG9yeSgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlJldmVydGVkIGFuZCBjbGVhcmVkIGhpc3RvcnkuIik7Ci0gICAgICAgICAg
ICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsKLSAgICAg
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAg
ZnVuY3Rpb24gdGVzdEFkZFJldmlzaW9uc1JldmVydFRvUHJldmlvdXMobmV4dCkKLSAgICAgICAg
ewotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlKGNyZWF0ZU1vY2tQcm9qZWN0KCksICJ1cmkzIiwgIm9yaWdpblVSTDMiLCAidXJsMyIs
IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCk7Ci0KLSAgICAgICAgICAgIHVpU291
cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDEiKTsKLSAgICAgICAgICAgIHVpU291cmNl
Q29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDIiKTsKLSAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsgfSk7Ci0KLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJGaXJzdCByZXZpc2lvbiBhZGRlZC4iKTsKLSAgICAgICAgICAg
IGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAg
ICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQzIik7Ci0gICAgICAgICAgICB1
aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQ0Iik7Ci0gICAgICAgICAgICB1aVNv
dXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7IH0pOwotCi0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2Vjb25kIHJldmlzaW9uIGFkZGVkLiIpOwotICAg
ICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsKLSAg
ICAgICAgICAgIHVpU291cmNlQ29kZS5oaXN0b3J5WzBdLnJldmVydFRvVGhpcygpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJldmVydGVkIHRvIHByZXZpb3VzIHJldmlz
aW9uLiIpOwotICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3Vy
Y2VDb2RlKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5j
dGlvbiB0ZXN0UmVxdWVzdENvbnRlbnRBZGRSZXZpc2lvbnNSZXZlcnRUb09yaWdpbmFsKG5leHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrUHJvamVjdCgpLCAidXJpNCIsICJvcmlnaW5VUkw0
IiwgInVybDQiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQpOwotICAgICAgICAg
ICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGNvbnRlbnRSZWNlaXZlZCk7Ci0KLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGNvbnRlbnRSZWNlaXZlZCgpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbnRlbnQgcmVxdWVzdGVkLiIpOwot
ICAgICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29k
ZSk7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50
MSIpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVu
dDIiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZnVu
Y3Rpb24oKSB7IH0pOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkZpcnN0IHJldmlzaW9uIGFkZGVkLiIpOwotICAgICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNv
ZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MyIpOwotICAgICAgICAgICAgICAgIHVpU291cmNl
Q29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDQiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJj
ZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7IH0pOwotCi0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNlY29uZCByZXZpc2lvbiBhZGRlZC4iKTsKLSAg
ICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUp
OwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXZlcnRUb09yaWdpbmFsKCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJldmVydGVkIHRvIG9yaWdpbmFs
LiIpOwotICAgICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291
cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZXF1ZXN0Q29udGVudEFkZFJldmlzaW9uc1Jl
dmVydEFuZENsZWFySGlzdG9yeShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoY3JlYXRlTW9ja1Byb2pl
Y3QoKSwgInVyaTUiLCAib3JpZ2luVVJMNSIsICJ1cmw1IiwgV2ViSW5zcGVjdG9yLnJlc291cmNl
VHlwZXMuU2NyaXB0KTsKLSAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChj
b250ZW50UmVjZWl2ZWQpOwotCi0gICAgICAgICAgICBmdW5jdGlvbiBjb250ZW50UmVjZWl2ZWQo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJDb250ZW50IHJlcXVlc3RlZC4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2Rl
V2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5zZXRXb3JraW5nQ29weSgiY29udGVudDEiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNv
ZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQyIik7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9uKCkgeyB9KTsKLQotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGaXJzdCByZXZpc2lvbiBhZGRlZC4iKTsKLSAgICAg
ICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpOwot
ICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDMiKTsK
LSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoImNvbnRlbnQ0Iik7
Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmNvbW1pdFdvcmtpbmdDb3B5KGZ1bmN0aW9u
KCkgeyB9KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWNv
bmQgcmV2aXNpb24gYWRkZWQuIik7Ci0gICAgICAgICAgICAgICAgZHVtcFVJU291cmNlQ29kZVdp
dGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUu
cmV2ZXJ0QW5kQ2xlYXJIaXN0b3J5KHJldmVydGVkQW5kQ2xlYXJlZEhpc3RvcnkpOwotCi0gICAg
ICAgICAgICAgICAgZnVuY3Rpb24gcmV2ZXJ0ZWRBbmRDbGVhcmVkSGlzdG9yeSgpCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
UmV2ZXJ0ZWQgYW5kIGNsZWFyZWQgaGlzdG9yeS4iKTsKLSAgICAgICAgICAgICAgICAgICAgZHVt
cFVJU291cmNlQ29kZVdpdGhSZXZpc2lvbnModWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgICAg
ICAgICAgbmV4dCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVxdWVzdENvbnRlbnRBZGRSZXZpc2lvbnNSZXZl
cnRUb1ByZXZpb3VzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShjcmVhdGVNb2NrUHJvamVjdCgpLCAi
dXJpNiIsICJvcmlnaW5VUkw2IiwgInVybDYiLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
Y3JpcHQpOwotICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGNvbnRlbnRS
ZWNlaXZlZCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGNvbnRlbnRSZWNlaXZlZCgpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbnRl
bnQgcmVxdWVzdGVkLiIpOwotICAgICAgICAgICAgICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2
aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdv
cmtpbmdDb3B5KCJjb250ZW50MSIpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRX
b3JraW5nQ29weSgiY29udGVudDIiKTsKLSAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuY29t
bWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7IH0pOwotCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkZpcnN0IHJldmlzaW9uIGFkZGVkLiIpOwotICAgICAgICAgICAg
ICAgIGR1bXBVSVNvdXJjZUNvZGVXaXRoUmV2aXNpb25zKHVpU291cmNlQ29kZSk7Ci0gICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KCJjb250ZW50MyIpOwotICAgICAg
ICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiY29udGVudDQiKTsKLSAgICAg
ICAgICAgICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZnVuY3Rpb24oKSB7IH0p
OwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNlY29uZCByZXZp
c2lvbiBhZGRlZC4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVUlTb3VyY2VDb2RlV2l0aFJldmlz
aW9ucyh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5oaXN0b3J5
WzBdLnJldmVydFRvVGhpcygpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJSZXZlcnRlZCB0byBwcmV2aW91cyByZXZpc2lvbi4iKTsKLSAgICAgICAgICAgICAgICBk
dW1wVUlTb3VyY2VDb2RlV2l0aFJldmlzaW9ucyh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICBdKTsKLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGVzdHMgcmV2aXNp
b24gc3VwcG9ydCBpbiBVSVNvdXJjZUNvZGUuPC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjY5Ij5CdWcgOTc2Njk8L2E+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXNlci1tZXRyaWNzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91c2VyLW1ldHJpY3MtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGVkOTBkMDA5MjQ0ZmM5MWM5YWQ0
MjhhNjhjYWY4ZDAyNTM1NmQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91c2VyLW1ldHJpY3MtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotVGVzdHMgbGlzdCBvZiB1c2VyIG1ldHJp
Y3MgY29kZXMgYW5kIGludm9jYXRpb25zLgotCi1yZWNvcmRBY3Rpb25UYWtlbjoKLXsKLSAgICBB
dWRpdHNTdGFydGVkIDogNwotICAgIENvbnNvbGVFdmFsdWF0ZWQgOiA4Ci0gICAgUHJvZmlsZXND
UFVQcm9maWxlVGFrZW4gOiA1Ci0gICAgUHJvZmlsZXNIZWFwUHJvZmlsZVRha2VuIDogNgotICAg
IFNjcmlwdHNCcmVha3BvaW50U2V0IDogMwotICAgIFRpbWVsaW5lU3RhcnRlZCA6IDQKLSAgICBX
aW5kb3dEb2NrZWQgOiAxCi0gICAgV2luZG93VW5kb2NrZWQgOiAyCi19Ci1BY3Rpb24gdGFrZW46
IFdpbmRvd0RvY2tlZAotQWN0aW9uIHRha2VuOiBXaW5kb3dVbmRvY2tlZAotCi1yZWNvcmRQYW5l
bFNob3duOgotewotICAgIGF1ZGl0cyA6IDcKLSAgICBjb25zb2xlIDogOAotICAgIGVsZW1lbnRz
IDogMQotICAgIG5ldHdvcmsgOiAzCi0gICAgcHJvZmlsZXMgOiA2Ci0gICAgcmVzb3VyY2VzIDog
MgotICAgIHNjcmlwdHMgOiA0Ci0gICAgdGltZWxpbmUgOiA1Ci19Ci1QYW5lbCBzaG93bjogcHJv
ZmlsZXMKLVBhbmVsIHNob3duOiB0aW1lbGluZQotUGFuZWwgc2hvd246IGF1ZGl0cwotCi1yZWNv
cmRTZXR0aW5nQ2hhbmdlZDoKLXsKLSAgICBDb25zb2xlTW9uaXRvclhIUk9mZiA6IDQKLSAgICBD
b25zb2xlTW9uaXRvclhIUk9uIDogMwotICAgIENvbnNvbGVQcmVzZXJ2ZUxvZ09mZiA6IDYKLSAg
ICBDb25zb2xlUHJlc2VydmVMb2dPbiA6IDUKLSAgICBFbGVtZW50c0RPTVdyYXBPZmYgOiAyCi0g
ICAgRWxlbWVudHNET01XcmFwT24gOiAxCi0gICAgTmV0d29ya1Nob3dMYXJnZVJvd3NPZmYgOiA4
Ci0gICAgTmV0d29ya1Nob3dMYXJnZVJvd3NPbiA6IDcKLX0KLVNldHRpbmcgY2hhbmdlZDogQ29u
c29sZU1vbml0b3JYSFJPbgotU2V0dGluZyBjaGFuZ2VkOiBDb25zb2xlTW9uaXRvclhIUk9mZgot
U2V0dGluZyBjaGFuZ2VkOiBDb25zb2xlUHJlc2VydmVMb2dPbgotU2V0dGluZyBjaGFuZ2VkOiBD
b25zb2xlUHJlc2VydmVMb2dPZmYKLVNldHRpbmcgY2hhbmdlZDogTmV0d29ya1Nob3dMYXJnZVJv
d3NPZmYKLVNldHRpbmcgY2hhbmdlZDogTmV0d29ya1Nob3dMYXJnZVJvd3NPbgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXNlci1tZXRyaWNzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdXNlci1tZXRyaWNzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ0YmJlNzFiZmZiM2ViMDk4ZmFlODA1NjkwM2U2MDFhNDBmZDEyMmUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3VzZXItbWV0cmljcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QucmVjb3JkQWN0aW9uVGFrZW4gPSBmdW5jdGlvbihhY3Rpb25D
b2RlKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFjdGlvbiB0YWtl
bjogIiArIG5hbWVPZihXZWJJbnNwZWN0b3IuVXNlck1ldHJpY3MuX0FjdGlvbkNvZGVzLCBhY3Rp
b25Db2RlKSk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnJlY29yZFBhbmVs
U2hvd24gPSBmdW5jdGlvbihwYW5lbENvZGUpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiUGFuZWwgc2hvd246ICIgKyBuYW1lT2YoV2ViSW5zcGVjdG9yLlVzZXJNZXRy
aWNzLl9QYW5lbENvZGVzLCBwYW5lbENvZGUpKTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3QucmVjb3JkU2V0dGluZ0NoYW5nZWQgPSBmdW5jdGlvbihzZXR0aW5nQ29kZSkKLSAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXR0aW5nIGNoYW5nZWQ6ICIg
KyBuYW1lT2YoV2ViSW5zcGVjdG9yLlVzZXJNZXRyaWNzLl9TZXR0aW5nQ29kZXMsIHNldHRpbmdD
b2RlKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbmFtZU9mKG9iamVjdCwgY29kZSkKLSAgICB7
Ci0gICAgICAgIGZvciAodmFyIG5hbWUgaW4gb2JqZWN0KSB7Ci0gICAgICAgICAgICBpZiAob2Jq
ZWN0W25hbWVdID09PSBjb2RlKQotICAgICAgICAgICAgICAgIHJldHVybiBuYW1lOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJyZWNvcmRBY3Rpb25UYWtlbjoiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmR1bXAoV2Vi
SW5zcGVjdG9yLlVzZXJNZXRyaWNzLl9BY3Rpb25Db2Rlcyk7Ci0gICAgV2ViSW5zcGVjdG9yLnVz
ZXJNZXRyaWNzLldpbmRvd0RvY2tlZC5yZWNvcmQoKTsKLSAgICBXZWJJbnNwZWN0b3IudXNlck1l
dHJpY3MuV2luZG93VW5kb2NrZWQucmVjb3JkKCk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiXG5yZWNvcmRQYW5lbFNob3duOiIpOwotICAgIEluc3BlY3RvclRlc3QuZHVtcChXZWJJ
bnNwZWN0b3IuVXNlck1ldHJpY3MuX1BhbmVsQ29kZXMpOwotICAgIFdlYkluc3BlY3Rvci5zaG93
UGFuZWwoInByb2ZpbGVzIik7Ci0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgidGltZWxpbmUi
KTsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJhdWRpdHMiKTsKLQotICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJcbnJlY29yZFNldHRpbmdDaGFuZ2VkOiIpOwotICAgIEluc3BlY3Rv
clRlc3QuZHVtcChXZWJJbnNwZWN0b3IuVXNlck1ldHJpY3MuX1NldHRpbmdDb2Rlcyk7Ci0gICAg
V2ViSW5zcGVjdG9yLnNldHRpbmdzLm1vbml0b3JpbmdYSFJFbmFibGVkLnNldCh0cnVlKTsKLSAg
ICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQuc2V0KGZhbHNlKTsK
LSAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nLnNldCh0cnVlKTsK
LSAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJlc2VydmVDb25zb2xlTG9nLnNldChmYWxzZSk7
Ci0gICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnJlc291cmNlc0xhcmdlUm93cy5zZXQoZmFsc2Up
OwotICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5yZXNvdXJjZXNMYXJnZVJvd3Muc2V0KHRydWUp
OwotCi0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGxpc3Qgb2YgdXNl
ciBtZXRyaWNzIGNvZGVzIGFuZCBpbnZvY2F0aW9ucy48L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91dGlsaXRpZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3V0aWxpdGllcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1ZjI2YjkzN2M1ZDkxMDMzOTkzNDY1NzY4OGU0YTlmZjhl
NDA2YWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3V0aWxpdGllcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyNyArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tzIFdlYiBJbnNwZWN0b3IgdXRpbGl0aWVz
LgotCi0KLVJ1bm5pbmc6IGJpbmFyeUluZGV4T2ZUZXN0Ci0KLVJ1bm5pbmc6IHFzZWxlY3RUZXN0
Ci1BcnJheTogW10KLVJlZmVyZW5jZToge30KLUFjdHVhbDogICAge30KLUFycmF5OiBbMF0KLVJl
ZmVyZW5jZTogeyJtaW4iOjAsIm1lZGlhbiI6MCwibWF4IjowfQotQWN0dWFsOiAgICB7Im1pbiI6
MCwibWVkaWFuIjowLCJtYXgiOjB9Ci1BcnJheTogWzAsMCwwLDAsMCwwLDAsMF0KLVJlZmVyZW5j
ZTogeyJtaW4iOjAsIm1lZGlhbiI6MCwibWF4IjowfQotQWN0dWFsOiAgICB7Im1pbiI6MCwibWVk
aWFuIjowLCJtYXgiOjB9Ci1BcnJheTogWzQsMywyLDFdCi1SZWZlcmVuY2U6IHsibWluIjoxLCJt
ZWRpYW4iOjMsIm1heCI6NH0KLUFjdHVhbDogICAgeyJtaW4iOjEsIm1lZGlhbiI6MywibWF4Ijo0
fQotQXJyYXk6IFsxLDIsMyw0LDVdCi1SZWZlcmVuY2U6IHsibWluIjoxLCJtZWRpYW4iOjMsIm1h
eCI6NX0KLUFjdHVhbDogICAgeyJtaW4iOjEsIm1lZGlhbiI6MywibWF4Ijo1fQotQXJyYXk6IFst
MSwzLDIsNyw3LDcsMTAsMTIsMyw0LC0xLDJdCi1SZWZlcmVuY2U6IHsibWluIjotMSwibWVkaWFu
Ijo0LCJtYXgiOjEyfQotQWN0dWFsOiAgICB7Im1pbiI6LTEsIm1lZGlhbiI6NCwibWF4IjoxMn0K
LQotUnVubmluZzogc29ydFJhbmdlVGVzdAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdXRpbGl0aWVzLWhpZ2hsaWdodC1yZXN1bHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci91dGlsaXRpZXMtaGlnaGxpZ2h0LXJlc3VsdHMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjc4ZTdmOWI5YmIzZWM3MDFjYWE5YmQ3NmY5
ZjhkZGFmYTcyOTcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91dGlsaXRpZXMtaGlnaGxpZ2h0LXJlc3VsdHMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotVGVzdHMgaG93IHV0aWxp
dGllcyBmdW5jdGlvbnMgaGlnaGxpZ2h0IHRleHQgYW5kIHRoZW4gcmV2ZXJ0L3JlLWFwcGx5IGhp
Z2hsaWdodGluZyBjaGFuZ2VzLgotCi1CdWcgNzAyNDQKLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6
IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogW2Z1bmN0aW9uXQotQWZ0ZXIgcmV2ZXJ0OiBm
dW5jdGlvbgotQWZ0ZXIgYXBwbHk6IFtmdW5jdGlvbl0KLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6
IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogW2Z1bmN0aW9dbgotQWZ0ZXIgcmV2ZXJ0OiBm
dW5jdGlvbgotQWZ0ZXIgYXBwbHk6IFtmdW5jdGlvXW4KLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6
IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogZlt1bmN0aW9uXQotQWZ0ZXIgcmV2ZXJ0OiBm
dW5jdGlvbgotQWZ0ZXIgYXBwbHk6IGZbdW5jdGlvbl0KLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6
IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogZlt1bmN0aW9dbgotQWZ0ZXIgcmV2ZXJ0OiBm
dW5jdGlvbgotQWZ0ZXIgYXBwbHk6IGZbdW5jdGlvXW4KLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6
IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogW2Z1bmN0aW9uIGZ1bmN0aW9uTmFtZV0KLUFm
dGVyIHJldmVydDogZnVuY3Rpb24gZnVuY3Rpb25OYW1lCi1BZnRlciBhcHBseTogW2Z1bmN0aW9u
IGZ1bmN0aW9uTmFtZV0KLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6IC0tLS0tLS0tLS0KLUFmdGVy
IGhpZ2hsaWdodDogW2Z1bmN0aW9uIGZ1bmN0aW9uTmFtXWUKLUFmdGVyIHJldmVydDogZnVuY3Rp
b24gZnVuY3Rpb25OYW1lCi1BZnRlciBhcHBseTogW2Z1bmN0aW9uIGZ1bmN0aW9uTmFtXWUKLS0t
LS0tLS0tLSBSdW5uaW5nIHRlc3Q6IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogZlt1bmN0
aW9uIGZ1bmN0aW9uTmFtZV0KLUFmdGVyIHJldmVydDogZnVuY3Rpb24gZnVuY3Rpb25OYW1lCi1B
ZnRlciBhcHBseTogZlt1bmN0aW9uIGZ1bmN0aW9uTmFtZV0KLS0tLS0tLS0tLSBSdW5uaW5nIHRl
c3Q6IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogZlt1bmN0aW9uIGZ1bmN0aW9uTmFtXWUK
LUFmdGVyIHJldmVydDogZnVuY3Rpb24gZnVuY3Rpb25OYW1lCi1BZnRlciBhcHBseTogZlt1bmN0
aW9uIGZ1bmN0aW9uTmFtXWUKLS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6IC0tLS0tLS0tLS0KLUFm
dGVyIGhpZ2hsaWdodDogZnVuY3Rpb1tuIGZddW5jdGlvbk5hbWUKLUFmdGVyIHJldmVydDogZnVu
Y3Rpb24gZnVuY3Rpb25OYW1lCi1BZnRlciBhcHBseTogZnVuY3Rpb1tuIGZddW5jdGlvbk5hbWUK
LS0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6IC0tLS0tLS0tLS0KLUFmdGVyIGhpZ2hsaWdodDogW2Zd
dW5jdGlvblsgXVtmXXVuY3Rpb25OYW1lCi1BZnRlciByZXZlcnQ6IGZ1bmN0aW9uIGZ1bmN0aW9u
TmFtZQotQWZ0ZXIgYXBwbHk6IFtmXXVuY3Rpb25bIF1bZl11bmN0aW9uTmFtZQotLS0tLS0tLS0t
IFJ1bm5pbmcgdGVzdDogLS0tLS0tLS0tLQotQWZ0ZXIgaGlnaGxpZ2h0OiBmdW5jdGlvW25dWyBd
ZnVuY3Rpb25OYW1bZV0KLUFmdGVyIHJldmVydDogZnVuY3Rpb24gZnVuY3Rpb25OYW1lCi1BZnRl
ciBhcHBseTogZnVuY3Rpb1tuXVsgXWZ1bmN0aW9uTmFtW2VdCi0tLS0tLS0tLS0gUnVubmluZyB0
ZXN0OiAtLS0tLS0tLS0tCi1BZnRlciBoaWdobGlnaHQ6IFtmXXVuY3Rpb1tuIGZddW5jdGlvbk5h
bVtlXQotQWZ0ZXIgcmV2ZXJ0OiBmdW5jdGlvbiBmdW5jdGlvbk5hbWUKLUFmdGVyIGFwcGx5OiBb
Zl11bmN0aW9bbiBmXXVuY3Rpb25OYW1bZV0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3V0aWxpdGllcy1oaWdobGlnaHQtcmVzdWx0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3V0aWxpdGllcy1oaWdobGlnaHQtcmVzdWx0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjMzUzOWExYzYzZTUxMWQ5NzJkMTViNjUzODFkNmU1NGNiYTgzYjgwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci91dGlsaXRpZXMtaGlnaGxpZ2h0LXJlc3VsdHMuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDkyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
InV0aWxpdGllcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICBmdW5jdGlvbiBkdW1wVGV4dE5vZGVzQXNTdHJpbmcobm9kZSkKLSAgICB7Ci0gICAg
ICAgIHZhciByZXN1bHQgPSAiIjsKLSAgICAgICAgZnVuY3Rpb24gZHVtcFRleHROb2RlKG5vZGUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzdHIgPSBub2RlLnRleHRDb250ZW50OwotICAg
ICAgICAgICAgaWYgKG5vZGUucGFyZW50RWxlbWVudC5jbGFzc05hbWUpCi0gICAgICAgICAgICAg
ICAgcmVzdWx0ICs9ICJbIiArIHN0ciArICJdIjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gc3RyOwotICAgICAgICB9OwotCi0gICAgICAgIGZ1bmN0aW9uIGR1
bXBFbGVtZW50KGVsZW1lbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAgIGR1
bXBOb2RlKGVsZW1lbnQuY2hpbGROb2Rlc1tpXSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5j
dGlvbiBkdW1wTm9kZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAobm9kZS5ub2Rl
VHlwZSA9PT0gTm9kZS5URVhUX05PREUpCi0gICAgICAgICAgICAgICAgZHVtcFRleHROb2RlKG5v
ZGUpOwotICAgICAgICAgICAgZWxzZSBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5U
X05PREUpCi0gICAgICAgICAgICAgICAgZHVtcEVsZW1lbnQobm9kZSk7Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgZHVtcE5vZGUobm9kZSk7Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBwZXJmb3JtVGVzdEZvckVsZW1lbnQoZWxlbWVudCwgcmFuZ2VzKQot
ICAgIHsKLSAgICAgICAgdmFyIGNoYW5nZXMgPSBbXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIi0tLS0tLS0tLSBSdW5uaW5nIHRlc3Q6IC0tLS0tLS0tLS0iKTsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLmhpZ2hsaWdodFJhbmdlc1dpdGhTdHlsZUNsYXNzKGVsZW1lbnQsIHJhbmdl
cywgImhpZ2hsaWdodGVkIiwgY2hhbmdlcyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJBZnRlciBoaWdobGlnaHQ6ICIgKyBkdW1wVGV4dE5vZGVzQXNTdHJpbmcoZWxlbWVudCkp
OwotICAgICAgICBXZWJJbnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyhjaGFuZ2VzKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFmdGVyIHJldmVydDogIiArIGR1bXBUZXh0Tm9k
ZXNBc1N0cmluZyhlbGVtZW50KSk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5hcHBseURvbUNoYW5n
ZXMoY2hhbmdlcyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZnRlciBhcHBs
eTogIiArIGR1bXBUZXh0Tm9kZXNBc1N0cmluZyhlbGVtZW50KSk7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gdGV4dEVsZW1lbnQoc3RyaW5ncykKLSAgICB7Ci0gICAgICAgIHZhciBlbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgc3RyaW5ncy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0g
c3RyaW5nc1tpXTsKLSAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoc3Bhbik7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGVsZW1lbnQ7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcmFu
Z2Uob2Zmc2V0LCBsZW5ndGgpCi0gICAgewotICAgICAgICB2YXIgcmVzdWx0ID0ge307Ci0gICAg
ICAgIHJlc3VsdC5vZmZzZXQgPSBvZmZzZXQ7Ci0gICAgICAgIHJlc3VsdC5sZW5ndGggPSBsZW5n
dGg7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgcGVyZm9ybVRlc3RGb3JF
bGVtZW50KHRleHRFbGVtZW50KFsiZnVuY3Rpb24iXSksIFtyYW5nZSgwLCA4KV0pOyAvLyBIaWdo
bGlnaHQgd2hvbGUgdGV4dCBub2RlLgotICAgIHBlcmZvcm1UZXN0Rm9yRWxlbWVudCh0ZXh0RWxl
bWVudChbImZ1bmN0aW9uIl0pLCBbcmFuZ2UoMCwgNyldKTsgLy8gSGlnaGxpZ2h0IG9ubHkgdGV4
dCBub2RlIGJlZ2lubmluZy4KLSAgICBwZXJmb3JtVGVzdEZvckVsZW1lbnQodGV4dEVsZW1lbnQo
WyJmdW5jdGlvbiJdKSwgW3JhbmdlKDEsIDcpXSk7IC8vIEhpZ2hsaWdodCBvbmx5IHRleHQgbm9k
ZSBlbmRpbmcuCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVtZW50KHRleHRFbGVtZW50KFsiZnVuY3Rp
b24iXSksIFtyYW5nZSgxLCA2KV0pOyAvLyBIaWdobGlnaHQgaW4gdGhlIG1pZGRsZSBvZiB0ZXh0
IG5vZGUuCi0KLSAgICBwZXJmb3JtVGVzdEZvckVsZW1lbnQodGV4dEVsZW1lbnQoWyJmdW5jdGlv
biIsICIgIiwgImZ1bmN0aW9uTmFtZSJdKSwgW3JhbmdlKDAsIDIxKV0pOyAvLyBIaWdobGlnaHQg
YWxsIHRleHQgaW4gMyB0ZXh0IG5vZGVzLgotICAgIHBlcmZvcm1UZXN0Rm9yRWxlbWVudCh0ZXh0
RWxlbWVudChbImZ1bmN0aW9uIiwgIiAiLCAiZnVuY3Rpb25OYW1lIl0pLCBbcmFuZ2UoMCwgMjAp
XSk7IC8vIEhpZ2hsaWdodCBhbGwgdGV4dCBpbiAzIHRleHQgbm9kZXMgZXhjZXB0IGZvciB0aGUg
bGFzdCBjaGFyYWN0ZXIuCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVtZW50KHRleHRFbGVtZW50KFsi
ZnVuY3Rpb24iLCAiICIsICJmdW5jdGlvbk5hbWUiXSksIFtyYW5nZSgxLCAyMCldKTsgLy8gSGln
aGxpZ2h0IGFsbCB0ZXh0IGluIDMgdGV4dCBub2RlcyBleGNlcHQgZm9yIHRoZSBmaXJzdCBjaGFy
YWN0ZXIuCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVtZW50KHRleHRFbGVtZW50KFsiZnVuY3Rpb24i
LCAiICIsICJmdW5jdGlvbk5hbWUiXSksIFtyYW5nZSgxLCAxOSldKTsgLy8gSGlnaGxpZ2h0IGFs
bCB0ZXh0IGluIDMgdGV4dCBub2RlcyBleGNlcHQgZm9yIHRoZSBmaXJzdCBhbmQgdGhlIGxhc3Qg
Y2hhcmFjdGVycy4KLSAgICBwZXJmb3JtVGVzdEZvckVsZW1lbnQodGV4dEVsZW1lbnQoWyJmdW5j
dGlvbiIsICIgIiwgImZ1bmN0aW9uTmFtZSJdKSwgW3JhbmdlKDcsIDMpXSk7IC8vIEhpZ2hsaWdo
dCBsaWtlIHRoYXQgImZ1bmN0aW9bbiBmXXVuY3Rpb25OYW1lIgotCi0gICAgcGVyZm9ybVRlc3RG
b3JFbGVtZW50KHRleHRFbGVtZW50KFsiZnVuY3Rpb24iLCAiICIsICJmdW5jdGlvbk5hbWUiXSks
IFtyYW5nZSgwLCAxKSwgcmFuZ2UoOCwgMSksIHJhbmdlKDksIDEpXSk7IC8vIEhpZ2hsaWdodCBm
aXJzdCBjaGFyYWN0ZXJzIGluIHRleHQgbm9kZXMuCi0gICAgcGVyZm9ybVRlc3RGb3JFbGVtZW50
KHRleHRFbGVtZW50KFsiZnVuY3Rpb24iLCAiICIsICJmdW5jdGlvbk5hbWUiXSksIFtyYW5nZSg3
LCAxKSwgcmFuZ2UoOCwgMSksIHJhbmdlKDIwLCAxKV0pOyAvLyBIaWdobGlnaHQgbGFzdCBjaGFy
YWN0ZXJzIGluIHRleHQgbm9kZS4KLSAgICBwZXJmb3JtVGVzdEZvckVsZW1lbnQodGV4dEVsZW1l
bnQoWyJmdW5jdGlvbiIsICIgIiwgImZ1bmN0aW9uTmFtZSJdKSwgW3JhbmdlKDAsIDEpLCByYW5n
ZSg3LCAzKSwgcmFuZ2UoMjAsIDEpXSk7IC8vIEhpZ2hsaWdodCBsaWtlIHRoYXQ6ICJbZl11bmN0
aW9bbiBmXXVuY3Rpb25OYW1bZV0iCi0gICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxw
PlRlc3RzIGhvdyB1dGlsaXRpZXMgZnVuY3Rpb25zIGhpZ2hsaWdodCB0ZXh0IGFuZCB0aGVuIHJl
dmVydC9yZS1hcHBseSBoaWdobGlnaHRpbmcgY2hhbmdlcy48L3A+Ci0gICAgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjQ0Ij5CdWcgNzAyNDQ8L2E+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXRp
bGl0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdXRpbGl0aWVzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxM2ViMGQzYzI1ZTcxNDUwN2M5ZjU3ZTg2NDI3YzUx
ZDg2M2U3YjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3V0aWxpdGllcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTM0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBm
dW5jdGlvbiBiaW5hcnlJbmRleE9mVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgdGVzdEFycmF5cyA9IFsKLSAgICAgICAgICAgICAgICBbXSwKLSAgICAgICAgICAgICAgICBb
MV0sCi0gICAgICAgICAgICAgICAgWzEsIDEwXSwKLSAgICAgICAgICAgICAgICBbMSwgMTAsIDEx
LCAxMiwgMTMsIDE0LCAxMDBdLAotICAgICAgICAgICAgICAgIFstMTAwLCAtNTAsIDAsIDUwLCAx
MDBdLAotICAgICAgICAgICAgICAgIFstMTAwLCAtMTQsIC0xMywgLTEyLCAtMTEsIC0xMCwgLTFd
Ci0gICAgICAgICAgICBdOwotICAgICAKLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RBcnJheShh
cnJheSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBjb21wYXJhdG9y
KGEsIGIpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYSA8
IGIgPyAtMSA6IChhID4gYiA/IDEgOiAwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgIAotICAg
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAtMTAwOyBpIDw9IDEwMDsgKytpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHZhciByZWZlcmVuY2UgPSBhcnJheS5pbmRleE9mKGkpOwotICAgICAgICAg
ICAgICAgICAgICB2YXIgYWN0dWFsID0gYXJyYXkuYmluYXJ5SW5kZXhPZihpLCBjb21wYXJhdG9y
KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMocmVmZXJl
bmNlLCBhY3R1YWwsICJiaW5hcnlJbmRleE9mIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAKLSAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwLCBsID0gdGVzdEFycmF5cy5sZW5ndGg7IGkgPCBsOyArK2kpCi0gICAg
ICAgICAgICAgICAgdGVzdEFycmF5KHRlc3RBcnJheXNbaV0pOwotICAgICAgICAgICAgbmV4dCgp
OwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHFzZWxlY3RUZXN0KG5leHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHZhciB0ZXN0QXJyYXlzID0gWwotICAgICAgICAgICAgICAgIFtd
LAotICAgICAgICAgICAgICAgIFswXSwKLSAgICAgICAgICAgICAgICBbMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMF0sCi0gICAgICAgICAgICAgICAgWzQsIDMsIDIsIDFdLAotICAgICAgICAgICAgICAg
IFsxLCAyLCAzLCA0LCA1XSwKLSAgICAgICAgICAgICAgICBbLTEsIDMsIDIsIDcsIDcsIDcsIDEw
LCAxMiwgMywgNCwgLTEsIDJdCi0gICAgICAgICAgICBdOwotCi0gICAgICAgICAgICBmdW5jdGlv
biB0ZXN0QXJyYXkoYXJyYXkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gY29tcGFyZShhLCBiKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGEgLSBiOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YXIgc29y
dGVkID0gYXJyYXkuc2xpY2UoMCkuc29ydChjb21wYXJlKTsKLQotICAgICAgICAgICAgICAgIHZh
ciByZWZlcmVuY2UgPSB7Ci0gICAgICAgICAgICAgICAgICAgIG1pbjogc29ydGVkWzBdLAotICAg
ICAgICAgICAgICAgICAgICBtZWRpYW46IHNvcnRlZFtNYXRoLmZsb29yKHNvcnRlZC5sZW5ndGgg
LyAyKV0sCi0gICAgICAgICAgICAgICAgICAgIG1heDogc29ydGVkW3NvcnRlZC5sZW5ndGggLSAx
XQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHZhciBhY3R1YWwgPSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG1pbjogYXJyYXkuc2xpY2UoMCkucXNlbGVjdCgwKSwKLSAgICAg
ICAgICAgICAgICAgICAgbWVkaWFuOiBhcnJheS5zbGljZSgwKS5xc2VsZWN0KE1hdGguZmxvb3Io
YXJyYXkubGVuZ3RoIC8gMikpLAotICAgICAgICAgICAgICAgICAgICBtYXg6IGFycmF5LnNsaWNl
KDApLnFzZWxlY3QoYXJyYXkubGVuZ3RoIC0gMSkKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFycmF5OiAiICsgSlNPTi5zdHJpbmdp
ZnkoYXJyYXkpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVm
ZXJlbmNlOiAiICsgSlNPTi5zdHJpbmdpZnkocmVmZXJlbmNlKSk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFjdHVhbDogICAgIiArIEpTT04uc3RyaW5naWZ5KGFj
dHVhbCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSB0
ZXN0QXJyYXlzLmxlbmd0aDsgaSA8IGw7ICsraSkKLSAgICAgICAgICAgICAgICB0ZXN0QXJyYXko
dGVzdEFycmF5c1tpXSk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgZnVuY3Rpb24gc29ydFJhbmdlVGVzdChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgdGVzdEFycmF5cyA9IFsKLSAgICAgICAgICAgICAgICBbXSwKLSAgICAgICAgICAgICAgICBb
MV0sCi0gICAgICAgICAgICAgICAgWzIsIDFdLAotICAgICAgICAgICAgICAgIFs2LCA0LCAyLCA3
LCAxMCwgMTUsIDFdLAotICAgICAgICAgICAgICAgIFsxMCwgNDQsIDMsIDYsIDU2LCA2NiwgMTAs
IDU1LCAzMiwgNTYsIDIsIDVdCi0gICAgICAgICAgICBdOwotCi0gICAgICAgICAgICBmdW5jdGlv
biB0ZXN0QXJyYXkoYXJyYXkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZnVuY3Rp
b24gY29tcGFyYXRvcihhLCBiKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGEgPCBiID8gLTEgOiAoYSA+IGIgPyAxIDogMCk7Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gY29tcGFyZUFycmF5cyhhLCBiLCBtZXNzYWdl
KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoSlNPTi5zdHJpbmdpZnkoYSksIEpTT04uc3RyaW5naWZ5KGIpLCBtZXNzYWdl
KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBmb3IgKHZhciBsZWZ0ID0g
MCwgbCA9IGFycmF5Lmxlbmd0aCAtIDE7IGxlZnQgPCBsOyArK2xlZnQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgIGZvciAodmFyIHJpZ2h0ID0gbGVmdCArIDEsIHIgPSBhcnJheS5sZW5ndGg7IHJp
Z2h0IDwgcjsgKytyaWdodCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgY291
bnQgPSAxLCBrID0gcmlnaHQgLSBsZWZ0ICsgMTsgY291bnQgPD0gazsgKytjb3VudCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFjdHVhbCA9IGFycmF5LnNsaWNlKDApOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsLnNvcnRSYW5nZShjb21wYXJhdG9y
LCBsZWZ0LCByaWdodCwgY291bnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
cGFyZUFycmF5cyhhcnJheS5zbGljZSgwLCBsZWZ0KSwgYWN0dWFsLnNsaWNlKDAsIGxlZnQpLCAi
bGVmdCAiICsgbGVmdCArICIgIiArIHJpZ2h0ICsgIiAiICsgY291bnQpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29tcGFyZUFycmF5cyhhcnJheS5zbGljZShyaWdodCArIDEpLCBh
Y3R1YWwuc2xpY2UocmlnaHQgKyAxKSwgInJpZ2h0ICIgKyBsZWZ0ICsgIiAiICsgcmlnaHQgKyAi
ICIgKyBjb3VudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWlkZGxlID0g
YXJyYXkuc2xpY2UobGVmdCwgcmlnaHQgKyAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1pZGRsZS5zb3J0KGNvbXBhcmF0b3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tcGFyZUFycmF5cyhtaWRkbGUuc2xpY2UoMCwgY291bnQpLCBhY3R1YWwuc2xpY2UobGVm
dCwgbGVmdCArIGNvdW50KSwgInNvcnRlZCAiICsgbGVmdCArICIgIiArIHJpZ2h0ICsgIiAiICsg
Y291bnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsUmVzdCA9IGFjdHVh
bC5zbGljZShsZWZ0ICsgY291bnQsIHJpZ2h0ICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhY3R1YWxSZXN0LnNvcnQoY29tcGFyYXRvcik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21wYXJlQXJyYXlzKG1pZGRsZS5zbGljZShjb3VudCksIGFjdHVhbFJlc3Qs
ICJ1bnNvcnRlZCAiICsgbGVmdCArICIgIiArIHJpZ2h0ICsgIiAiICsgY291bnQpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGVzdEFycmF5cy5sZW5ndGg7IGkg
PCBsZW47ICsraSkKLSAgICAgICAgICAgICAgICB0ZXN0QXJyYXkodGVzdEFycmF5c1tpXSk7Ci0g
ICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0IGNoZWNr
cyBXZWIgSW5zcGVjdG9yIHV0aWxpdGllcy4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZlcnNpb24tY29udHJvbGxlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdmVyc2lvbi1jb250cm9sbGVyLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJlOWQyYzAyNWM5M2FiODQxZjZk
ODM5YmJkYTEzZmFiZjI3ZjkwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdmVyc2lvbi1jb250cm9sbGVyLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLVRlc3RzIGluc3BlY3RvciB2
ZXJzaW9uIGNvbnRyb2xsZXIuCi0KLQotUnVubmluZzogdGVzdE1ldGhvZHNUb1J1blRvVXBkYXRl
VmVyc2lvbgotVGVzdGluZyBtZXRob2RzIHRvIHJ1biB0byB1cGdyYWRlIGZyb20gMCB0byAwLgot
TWV0aG9kcyB0byBydW46IFtdCi0KLVRlc3RpbmcgbWV0aG9kcyB0byBydW4gdG8gdXBncmFkZSBm
cm9tIDAgdG8gMS4KLU1ldGhvZHMgdG8gcnVuOiBbIl91cGRhdGVWZXJzaW9uRnJvbTBUbzEiXQot
Ci1UZXN0aW5nIG1ldGhvZHMgdG8gcnVuIHRvIHVwZ3JhZGUgZnJvbSAwIHRvIDIuCi1NZXRob2Rz
IHRvIHJ1bjogWyJfdXBkYXRlVmVyc2lvbkZyb20wVG8xIiwiX3VwZGF0ZVZlcnNpb25Gcm9tMVRv
MiJdCi0KLVRlc3RpbmcgbWV0aG9kcyB0byBydW4gdG8gdXBncmFkZSBmcm9tIDAgdG8gMy4KLU1l
dGhvZHMgdG8gcnVuOiBbIl91cGRhdGVWZXJzaW9uRnJvbTBUbzEiLCJfdXBkYXRlVmVyc2lvbkZy
b20xVG8yIiwiX3VwZGF0ZVZlcnNpb25Gcm9tMlRvMyJdCi0KLVRlc3RpbmcgbWV0aG9kcyB0byBy
dW4gdG8gdXBncmFkZSBmcm9tIDEgdG8gMS4KLU1ldGhvZHMgdG8gcnVuOiBbXQotCi1UZXN0aW5n
IG1ldGhvZHMgdG8gcnVuIHRvIHVwZ3JhZGUgZnJvbSAxIHRvIDIuCi1NZXRob2RzIHRvIHJ1bjog
WyJfdXBkYXRlVmVyc2lvbkZyb20xVG8yIl0KLQotVGVzdGluZyBtZXRob2RzIHRvIHJ1biB0byB1
cGdyYWRlIGZyb20gMSB0byAzLgotTWV0aG9kcyB0byBydW46IFsiX3VwZGF0ZVZlcnNpb25Gcm9t
MVRvMiIsIl91cGRhdGVWZXJzaW9uRnJvbTJUbzMiXQotCi1UZXN0aW5nIG1ldGhvZHMgdG8gcnVu
IHRvIHVwZ3JhZGUgZnJvbSAyIHRvIDIuCi1NZXRob2RzIHRvIHJ1bjogW10KLQotVGVzdGluZyBt
ZXRob2RzIHRvIHJ1biB0byB1cGdyYWRlIGZyb20gMiB0byAzLgotTWV0aG9kcyB0byBydW46IFsi
X3VwZGF0ZVZlcnNpb25Gcm9tMlRvMyJdCi0KLQotUnVubmluZzogdGVzdENsZWFyQnJlYWtwb2lu
dHNXaGVuVG9vTWFueQotU3RhcnRpbmcgdGVzdCB3aXRoIDAgYnJlYWtwb2ludHMgYW5kIDUwMCBh
bGxvd2VkIGF0IG1heC4KLU51bWJlciBvZiBicmVha3BvaW50cyBsZWZ0IGluIHRoZSBzZXR0aW5n
IGFmdGVyIHRoZSB0ZXN0OiAwLgotCi1TdGFydGluZyB0ZXN0IHdpdGggMSBicmVha3BvaW50cyBh
bmQgNTAwIGFsbG93ZWQgYXQgbWF4LgotTnVtYmVyIG9mIGJyZWFrcG9pbnRzIGxlZnQgaW4gdGhl
IHNldHRpbmcgYWZ0ZXIgdGhlIHRlc3Q6IDEuCi0KLVN0YXJ0aW5nIHRlc3Qgd2l0aCAyIGJyZWFr
cG9pbnRzIGFuZCA1MDAgYWxsb3dlZCBhdCBtYXguCi1OdW1iZXIgb2YgYnJlYWtwb2ludHMgbGVm
dCBpbiB0aGUgc2V0dGluZyBhZnRlciB0aGUgdGVzdDogMi4KLQotU3RhcnRpbmcgdGVzdCB3aXRo
IDQ5OSBicmVha3BvaW50cyBhbmQgNTAwIGFsbG93ZWQgYXQgbWF4LgotTnVtYmVyIG9mIGJyZWFr
cG9pbnRzIGxlZnQgaW4gdGhlIHNldHRpbmcgYWZ0ZXIgdGhlIHRlc3Q6IDQ5OS4KLQotU3RhcnRp
bmcgdGVzdCB3aXRoIDUwMCBicmVha3BvaW50cyBhbmQgNTAwIGFsbG93ZWQgYXQgbWF4LgotTnVt
YmVyIG9mIGJyZWFrcG9pbnRzIGxlZnQgaW4gdGhlIHNldHRpbmcgYWZ0ZXIgdGhlIHRlc3Q6IDUw
MC4KLQotU3RhcnRpbmcgdGVzdCB3aXRoIDUwMSBicmVha3BvaW50cyBhbmQgNTAwIGFsbG93ZWQg
YXQgbWF4LgotTnVtYmVyIG9mIGJyZWFrcG9pbnRzIGxlZnQgaW4gdGhlIHNldHRpbmcgYWZ0ZXIg
dGhlIHRlc3Q6IDAuCi0KLVN0YXJ0aW5nIHRlc3Qgd2l0aCAxMDAwIGJyZWFrcG9pbnRzIGFuZCA1
MDAgYWxsb3dlZCBhdCBtYXguCi1OdW1iZXIgb2YgYnJlYWtwb2ludHMgbGVmdCBpbiB0aGUgc2V0
dGluZyBhZnRlciB0aGUgdGVzdDogMC4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdmVyc2lvbi1jb250cm9sbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdmVy
c2lvbi1jb250cm9sbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyODlm
MWYxZTYxMWQ5MDU5ODQ0MjRiNjc1YzNjZjMyMDhmZGYxZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZlcnNpb24t
Y29udHJvbGxlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rp
b24gY3JlYXRlQnJlYWtwb2ludCh1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlciwgY29uZGl0aW9u
LCBlbmFibGVkKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHsgc291cmNlRmlsZUlkOiB1aVNvdXJj
ZUNvZGVJZCwgbGluZU51bWJlcjogbGluZU51bWJlciwgY29uZGl0aW9uOiBjb25kaXRpb24sIGVu
YWJsZWQ6IGVuYWJsZWQgfTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0
ZShbCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RNZXRob2RzVG9SdW5Ub1VwZGF0ZVZlcnNpb24obmV4
dCkKLSAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb24gcnVuVmVyc2lvbkNvbnRyb2xsZXJU
ZXN0KG9sZFZlcnNpb24sIGN1cnJlbnRWZXJzaW9uKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0aW5nIG1ldGhvZHMgdG8gcnVuIHRv
IHVwZ3JhZGUgZnJvbSAiICsgb2xkVmVyc2lvbiArICIgdG8gIiArIGN1cnJlbnRWZXJzaW9uICsg
Ii4iKTsKLSAgICAgICAgICAgICAgICB2YXIgdmVyc2lvbkNvbnRyb2xsZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlZlcnNpb25Db250cm9sbGVyKCk7Ci0gICAgICAgICAgICAgICAgdmFyIG1ldGhvZHNU
b1J1biA9IHZlcnNpb25Db250cm9sbGVyLl9tZXRob2RzVG9SdW5Ub1VwZGF0ZVZlcnNpb24ob2xk
VmVyc2lvbiwgY3VycmVudFZlcnNpb24pOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJNZXRob2RzIHRvIHJ1bjogIiArIEpTT04uc3RyaW5naWZ5KG1ldGhvZHNUb1J1
bikpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgcnVuVmVyc2lvbkNvbnRyb2xsZXJUZXN0KDAsIDApOwot
ICAgICAgICAgICAgcnVuVmVyc2lvbkNvbnRyb2xsZXJUZXN0KDAsIDEpOwotICAgICAgICAgICAg
cnVuVmVyc2lvbkNvbnRyb2xsZXJUZXN0KDAsIDIpOwotICAgICAgICAgICAgcnVuVmVyc2lvbkNv
bnRyb2xsZXJUZXN0KDAsIDMpOwotICAgICAgICAgICAgcnVuVmVyc2lvbkNvbnRyb2xsZXJUZXN0
KDEsIDEpOwotICAgICAgICAgICAgcnVuVmVyc2lvbkNvbnRyb2xsZXJUZXN0KDEsIDIpOwotICAg
ICAgICAgICAgcnVuVmVyc2lvbkNvbnRyb2xsZXJUZXN0KDEsIDMpOwotICAgICAgICAgICAgcnVu
VmVyc2lvbkNvbnRyb2xsZXJUZXN0KDIsIDIpOwotICAgICAgICAgICAgcnVuVmVyc2lvbkNvbnRy
b2xsZXJUZXN0KDIsIDMpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAg
ICAgIGZ1bmN0aW9uIHRlc3RDbGVhckJyZWFrcG9pbnRzV2hlblRvb01hbnkobmV4dCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZnVuY3Rpb24gcnVuQ2xlYXJCcmVha3BvaW50c1Rlc3QoYnJlYWtw
b2ludHNDb3VudCwgbWF4QnJlYWtwb2ludHNDb3VudCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3RhcnRpbmcgdGVzdCB3aXRoICIgKyBi
cmVha3BvaW50c0NvdW50ICsgIiBicmVha3BvaW50cyBhbmQgIiArIG1heEJyZWFrcG9pbnRzQ291
bnQgKyAiIGFsbG93ZWQgYXQgbWF4LiIpOwotICAgICAgICAgICAgICAgIHZhciB2ZXJzaW9uQ29u
dHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuVmVyc2lvbkNvbnRyb2xsZXIoKTsKLSAgICAgICAg
ICAgICAgICB2YXIgc2VyaWFsaXplZEJyZWFrcG9pbnRzID0gW107Ci0gICAgICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50c0NvdW50OyArK2kpCi0gICAgICAgICAgICAg
ICAgICAgIHNlcmlhbGl6ZWRCcmVha3BvaW50cy5wdXNoKGNyZWF0ZUJyZWFrcG9pbnQoImZpbGUi
ICsgaSArICIuanMiLCBpICUgMTAsICIiLCB0cnVlKSk7Ci0gICAgICAgICAgICAgICAgdmFyIGJy
ZWFrcG9pbnRzU2V0dGluZyA9IG5ldyBJbnNwZWN0b3JUZXN0Lk1vY2tTZXR0aW5nKHNlcmlhbGl6
ZWRCcmVha3BvaW50cyk7Ci0gICAgICAgICAgICAgICAgdmVyc2lvbkNvbnRyb2xsZXIuX2NsZWFy
QnJlYWtwb2ludHNXaGVuVG9vTWFueShicmVha3BvaW50c1NldHRpbmcsIG1heEJyZWFrcG9pbnRz
Q291bnQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJOdW1iZXIg
b2YgYnJlYWtwb2ludHMgbGVmdCBpbiB0aGUgc2V0dGluZyBhZnRlciB0aGUgdGVzdDogIiArIGJy
ZWFrcG9pbnRzU2V0dGluZy5nZXQoKS5sZW5ndGggKyAiLiIpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
cnVuQ2xlYXJCcmVha3BvaW50c1Rlc3QoMCwgNTAwKTsKLSAgICAgICAgICAgIHJ1bkNsZWFyQnJl
YWtwb2ludHNUZXN0KDEsIDUwMCk7Ci0gICAgICAgICAgICBydW5DbGVhckJyZWFrcG9pbnRzVGVz
dCgyLCA1MDApOwotICAgICAgICAgICAgcnVuQ2xlYXJCcmVha3BvaW50c1Rlc3QoNDk5LCA1MDAp
OwotICAgICAgICAgICAgcnVuQ2xlYXJCcmVha3BvaW50c1Rlc3QoNTAwLCA1MDApOwotICAgICAg
ICAgICAgcnVuQ2xlYXJCcmVha3BvaW50c1Rlc3QoNTAxLCA1MDApOwotICAgICAgICAgICAgcnVu
Q2xlYXJCcmVha3BvaW50c1Rlc3QoMTAwMCwgNTAwKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAg
ICAgICAgfQotICAgIF0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08cD5UZXN0cyBpbnNwZWN0b3IgdmVyc2lvbiBjb250cm9sbGVyLjwvcD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWNz
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1jc3MtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzI0MDk5MjkxM2IxYTI5M2Q5OGIw
NGMzOTJiYTY2MzEyMzU5NDM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWNzcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIHRlc3RzIHRoYXQgQ1NTIGZpbGVzIGFy
ZSBwcm9wZXJseSBsb2FkZWQgLyB1bmxvYWRlZCB1cG9uIHZpZXcgc2hvdyAvIGRldGFjaC4KLQot
Ci1SdW5uaW5nOiB0ZXN0RXZlbnRzCi1QYXJlbnQuc2hvdygpCi0gIExPQUQgcGFyZW50LmNzcwot
Q2hpbGQgMS5zaG93KCkKLSAgTE9BRCBjaGlsZC5jc3MKLSAgTE9BRCBjaGlsZDEuY3NzCi1DaGls
ZCAyLnNob3coKQotICBMT0FEIGNoaWxkMi5jc3MKLUNoaWxkIDIuZGV0YWNoKCkKLSAgVU5MT0FE
IGNoaWxkMi5jc3MKLVBhcmVudC5kZXRhY2goKQotICBVTkxPQUQgcGFyZW50LmNzcwotICBVTkxP
QUQgY2hpbGQuY3NzCi0gIFVOTE9BRCBjaGlsZDEuY3NzCi1QYXJlbnQuc2hvdygpCi0gIExPQUQg
cGFyZW50LmNzcwotICBMT0FEIGNoaWxkLmNzcwotICBMT0FEIGNoaWxkMS5jc3MKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivdmlldy1jc3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ2
YmM0NWJmMzRlOGRhYWM1MDNmNmE0NmQxMTYyZDdiYTE1M2ExZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1j
c3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gVGVz
dFZpZXcodmlld05hbWUsIHJlcXVpcmVkQ1NTLCByZXF1aXJlZENTUzIpCi0gICAgewotICAgICAg
ICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwotCi0gICAgICAgIHRoaXMucmVnaXN0ZXJS
ZXF1aXJlZENTUyhyZXF1aXJlZENTUyk7Ci0gICAgICAgIGlmIChyZXF1aXJlZENTUzIpCi0gICAg
ICAgICAgICB0aGlzLnJlZ2lzdGVyUmVxdWlyZWRDU1MocmVxdWlyZWRDU1MyKTsKLSAgICAgICAg
dGhpcy5fdmlld05hbWUgPSB2aWV3TmFtZTsKLSAgICB9Ci0KLSAgICBUZXN0Vmlldy5wcm90b3R5
cGUgPSB7Ci0gICAgICAgIHNob3c6IGZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRoaXMuX3ZpZXdOYW1lICsgIi5z
aG93KCkiKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNh
bGwodGhpcywgcGFyZW50RWxlbWVudCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZGV0YWNoOiBm
dW5jdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KHRoaXMuX3ZpZXdOYW1lICsgIi5kZXRhY2goKSIpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LlZpZXcucHJvdG90eXBlLmRldGFjaC5jYWxsKHRoaXMpOwotICAgICAgICB9LAotCi0gICAgICAg
IF9kb0xvYWRDU1M6IGZ1bmN0aW9uKGNzc0ZpbGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgIExPQUQgIiArIGNzc0ZpbGUpOwotICAgICAgICB9LAot
Ci0gICAgICAgIF9kb1VubG9hZENTUzogZnVuY3Rpb24oY3NzRmlsZSkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgVU5MT0FEICIgKyBjc3NGaWxlKTsK
LSAgICAgICAgfQotICAgIH07Ci0KLSAgICBUZXN0Vmlldy5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0
U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRzKG5leHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiLCAicGFyZW50
LmNzcyIpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0
b3JWaWV3LmVsZW1lbnQpOwotCi0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3MSA9IG5ldyBUZXN0
VmlldygiQ2hpbGQgMSIsICJjaGlsZC5jc3MiLCAiY2hpbGQxLmNzcyIpOwotICAgICAgICAgICAg
dmFyIGNoaWxkVmlldzIgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIDIiLCAiY2hpbGQuY3NzIiwgImNo
aWxkMi5jc3MiKTsKLQotICAgICAgICAgICAgY2hpbGRWaWV3MS5zaG93KHBhcmVudFZpZXcuZWxl
bWVudCk7Ci0gICAgICAgICAgICBjaGlsZFZpZXcyLnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsK
LQotICAgICAgICAgICAgY2hpbGRWaWV3Mi5kZXRhY2gocGFyZW50Vmlldy5lbGVtZW50KTsKLQot
ICAgICAgICAgICAgcGFyZW50Vmlldy5kZXRhY2goKTsKLQotICAgICAgICAgICAgcGFyZW50Vmll
dy5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOwotCi0gICAgICAgICAg
ICBuZXh0KCk7Ci0gICAgICAgIH0KLSAgICBdKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPgotVGhpcyB0ZXN0cyB0aGF0IENTUyBmaWxl
cyBhcmUgcHJvcGVybHkgbG9hZGVkIC8gdW5sb2FkZWQgdXBvbiB2aWV3IHNob3cgLyBkZXRhY2gu
Ci08L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci92aWV3LWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmll
dy1ldmVudHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTcy
MzAyNWY4ZDBhZWFlYTM5YWNkNzA5M2MyYTE2OTk5OGVkMTNmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2
ZW50cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMTIgKzAsMCBAQAotVGhpcyB0
ZXN0cyB0aGF0IGV2ZW50cyBhcmUgcHJvcGVybHkgcHJvcGFnYXRlZCB0aHJvdWdoIFZpZXcgaGll
cmFyY2h5LgotCi0KLVJ1bm5pbmc6IHRlc3RTaG93VmlldwotVmlldygpCi1WaWV3LnNob3coKQot
ICBWaWV3Lndhc1Nob3duKCkKLSAgVmlldy5vblJlc2l6ZSgpCi1WaWV3LmRldGFjaCgpCi0gIFZp
ZXcud2lsbEhpZGUoKQotCi1SdW5uaW5nOiB0ZXN0QXBwZW5kVmlhRE9NCi1WaWV3KCkKLUVycm9y
OiBBdHRlbXB0IHRvIGFkZCB2aWV3IHZpYSByZWd1bGFyIERPTSBvcGVyYXRpb24uCi0KLVJ1bm5p
bmc6IHRlc3RJbnNlcnRWaWFET00KLVZpZXcoKQotRXJyb3I6IEF0dGVtcHQgdG8gYWRkIHZpZXcg
dmlhIHJlZ3VsYXIgRE9NIG9wZXJhdGlvbi4KLQotUnVubmluZzogdGVzdEF0dGFjaFRvT3JwaGFu
Tm9kZQotVmlldygpCi1WaWV3LnNob3coKQotRXJyb3I6IEF0dGVtcHQgdG8gYXR0YWNoIHZpZXcg
dG8gb3JwaGFuIG5vZGUKLQotUnVubmluZzogdGVzdEltbWVkaWF0ZVBhcmVudAotUGFyZW50KCkK
LUNoaWxkKCkKLUNoaWxkLnNob3coKQotT0sKLQotUnVubmluZzogdGVzdERpc3RhbnRQYXJlbnQK
LVBhcmVudCgpCi1DaGlsZCgpCi1DaGlsZC5zaG93KCkKLU9LCi0KLVJ1bm5pbmc6IHRlc3RFdmVu
dHMKLVBhcmVudCgpCi1DaGlsZCgpCi1QYXJlbnQuc2hvdygpCi0gIFBhcmVudC53YXNTaG93bigp
Ci0gIFBhcmVudC5vblJlc2l6ZSgpCi1QYXJlbnQuZG9SZXNpemUoKQotICBQYXJlbnQub25SZXNp
emUoKQotQ2hpbGQuc2hvdygpCi0gIENoaWxkLndhc1Nob3duKCkKLSAgQ2hpbGQub25SZXNpemUo
KQotUGFyZW50LmRvUmVzaXplKCkKLSAgUGFyZW50Lm9uUmVzaXplKCkKLSAgQ2hpbGQub25SZXNp
emUoKQotUGFyZW50LmRldGFjaCgpCi0gIENoaWxkLndpbGxIaWRlKCkKLSAgUGFyZW50LndpbGxI
aWRlKCkKLVBhcmVudC5zaG93KCkKLSAgUGFyZW50Lndhc1Nob3duKCkKLSAgUGFyZW50Lm9uUmVz
aXplKCkKLSAgQ2hpbGQud2FzU2hvd24oKQotICBDaGlsZC5vblJlc2l6ZSgpCi1DaGlsZC5kZXRh
Y2goKQotICBDaGlsZC53aWxsSGlkZSgpCi1QYXJlbnQuZGV0YWNoKCkKLSAgUGFyZW50LndpbGxI
aWRlKCkKLQotUnVubmluZzogdGVzdEV2ZW50c0hpZGVPbkRldGFjaAotUGFyZW50KCkKLUNoaWxk
KCkKLVBhcmVudC5zaG93KCkKLSAgUGFyZW50Lndhc1Nob3duKCkKLSAgUGFyZW50Lm9uUmVzaXpl
KCkKLVBhcmVudC5kb1Jlc2l6ZSgpCi0gIFBhcmVudC5vblJlc2l6ZSgpCi1DaGlsZC5zaG93KCkK
LSAgQ2hpbGQud2FzU2hvd24oKQotICBDaGlsZC5vblJlc2l6ZSgpCi1QYXJlbnQuZG9SZXNpemUo
KQotICBQYXJlbnQub25SZXNpemUoKQotICBDaGlsZC5vblJlc2l6ZSgpCi1QYXJlbnQuZGV0YWNo
KCkKLSAgQ2hpbGQud2lsbEhpZGUoKQotICBQYXJlbnQud2lsbEhpZGUoKQotUGFyZW50LnNob3co
KQotICBQYXJlbnQud2FzU2hvd24oKQotICBQYXJlbnQub25SZXNpemUoKQotICBDaGlsZC53YXNT
aG93bigpCi0gIENoaWxkLm9uUmVzaXplKCkKLUNoaWxkLmRldGFjaCgpCi0gIENoaWxkLndpbGxI
aWRlKCkKLVBhcmVudC5kZXRhY2goKQotICBQYXJlbnQud2lsbEhpZGUoKQotCi1SdW5uaW5nOiB0
ZXN0Vmlld0NvdW50ZXIKLVBhcmVudCgpCi1QYXJlbnQuc2hvdygpCi0gIFBhcmVudC53YXNTaG93
bigpCi0gIFBhcmVudC5vblJlc2l6ZSgpCi1DaGlsZCgpCi1DaGlsZC5zaG93KCkKLSAgQ2hpbGQu
d2FzU2hvd24oKQotICBDaGlsZC5vblJlc2l6ZSgpCi0gIHZpZXcgY291bnRlcjogMQotQ2hpbGQg
MigpCi1DaGlsZCAyLnNob3coKQotICBDaGlsZCAyLndhc1Nob3duKCkKLSAgQ2hpbGQgMi5vblJl
c2l6ZSgpCi0gIHZpZXcgY291bnRlcjogMgotQ2hpbGQuZGV0YWNoKCkKLSAgQ2hpbGQud2lsbEhp
ZGUoKQotICB2aWV3IGNvdW50ZXI6IDEKLUNoaWxkIDIuZGV0YWNoKCkKLSAgQ2hpbGQgMi53aWxs
SGlkZSgpCi0gIHZpZXcgY291bnRlcjogMAotCi1SdW5uaW5nOiB0ZXN0UmVtb3ZlQ2hpbGQKLVBh
cmVudCgpCi1QYXJlbnQuc2hvdygpCi0gIFBhcmVudC53YXNTaG93bigpCi0gIFBhcmVudC5vblJl
c2l6ZSgpCi1DaGlsZCgpCi1DaGlsZC5zaG93KCkKLSAgQ2hpbGQud2FzU2hvd24oKQotICBDaGls
ZC5vblJlc2l6ZSgpCi1FcnJvcjogQXR0ZW1wdCB0byByZW1vdmUgZWxlbWVudCBjb250YWluaW5n
IHZpZXcgdmlhIHJlZ3VsYXIgRE9NIG9wZXJhdGlvbgotCi1SdW5uaW5nOiB0ZXN0SW1wbGljaXRS
ZW1vdmVDaGlsZAotUGFyZW50KCkKLUNoaWxkKCkKLUNoaWxkLnNob3coKQotRXJyb3I6IEF0dGVt
cHQgdG8gcmVtb3ZlIGVsZW1lbnQgY29udGFpbmluZyB2aWV3IHZpYSByZWd1bGFyIERPTSBvcGVy
YXRpb24KLQotUnVubmluZzogdGVzdFJlbW92ZUNoaWxkcmVuCi1QYXJlbnQoKQotQ2hpbGQoKQot
Q2hpbGQuc2hvdygpCi1FcnJvcjogQXR0ZW1wdCB0byByZW1vdmUgZWxlbWVudCBjb250YWluaW5n
IHZpZXcgdmlhIHJlZ3VsYXIgRE9NIG9wZXJhdGlvbgotCi1SdW5uaW5nOiB0ZXN0SW1wbGljaXRS
ZW1vdmVDaGlsZHJlbgotUGFyZW50KCkKLUNoaWxkKCkKLUNoaWxkLnNob3coKQotRXJyb3I6IEF0
dGVtcHQgdG8gcmVtb3ZlIGVsZW1lbnQgY29udGFpbmluZyB2aWV3IHZpYSByZWd1bGFyIERPTSBv
cGVyYXRpb24KLQotUnVubmluZzogdGVzdFNob3dPbldhc1Nob3duCi1QYXJlbnQoKQotQ2hpbGQo
KQotUGFyZW50LnNob3coKQotICBQYXJlbnQud2FzU2hvd24oKQotQ2hpbGQuc2hvdygpCi0gIFBh
cmVudC5vblJlc2l6ZSgpCi0gIENoaWxkLndhc1Nob3duKCkKLSAgQ2hpbGQub25SZXNpemUoKQot
UGFyZW50LmRldGFjaCgpCi0gIENoaWxkLndpbGxIaWRlKCkKLSAgUGFyZW50LndpbGxIaWRlKCkK
LQotUnVubmluZzogdGVzdERldGFjaE9uV2FzU2hvd24KLVBhcmVudCgpCi1DaGlsZCgpCi1DaGls
ZC5zaG93KCkKLVBhcmVudC5zaG93KCkKLSAgUGFyZW50Lndhc1Nob3duKCkKLUNoaWxkLmRldGFj
aCgpCi0gIFBhcmVudC5vblJlc2l6ZSgpCi1QYXJlbnQuZGV0YWNoKCkKLSAgUGFyZW50LndpbGxI
aWRlKCkKLQotUnVubmluZzogdGVzdFNob3dPbldpbGxIaWRlCi1QYXJlbnQoKQotQ2hpbGQoKQot
UGFyZW50LnNob3coKQotICBQYXJlbnQud2FzU2hvd24oKQotICBQYXJlbnQub25SZXNpemUoKQot
Q2hpbGQuc2hvdygpCi0gIENoaWxkLndhc1Nob3duKCkKLSAgQ2hpbGQub25SZXNpemUoKQotUGFy
ZW50LmRldGFjaCgpCi0gIENoaWxkLndpbGxIaWRlKCkKLSAgUGFyZW50LndpbGxIaWRlKCkKLUNo
aWxkLnNob3coKQotCi1SdW5uaW5nOiB0ZXN0RGV0YWNoT25XaWxsSGlkZQotUGFyZW50KCkKLUNo
aWxkKCkKLVBhcmVudC5zaG93KCkKLSAgUGFyZW50Lndhc1Nob3duKCkKLSAgUGFyZW50Lm9uUmVz
aXplKCkKLUNoaWxkLnNob3coKQotICBDaGlsZC53YXNTaG93bigpCi0gIENoaWxkLm9uUmVzaXpl
KCkKLVBhcmVudC5kZXRhY2goKQotICBDaGlsZC53aWxsSGlkZSgpCi0gIFBhcmVudC53aWxsSGlk
ZSgpCi1DaGlsZC5kZXRhY2goKQotCi1SdW5uaW5nOiB0ZXN0U2hvd0RldGFjaGVzRnJvbVByZXZp
b3VzCi1QYXJlbnQxKCkKLVBhcmVudDIoKQotQ2hpbGQoKQotUGFyZW50MS5zaG93KCkKLSAgUGFy
ZW50MS53YXNTaG93bigpCi0gIFBhcmVudDEub25SZXNpemUoKQotUGFyZW50Mi5zaG93KCkKLSAg
UGFyZW50Mi53YXNTaG93bigpCi0gIFBhcmVudDIub25SZXNpemUoKQotQ2hpbGQuc2hvdygpCi0g
IENoaWxkLndhc1Nob3duKCkKLSAgQ2hpbGQub25SZXNpemUoKQotQ2hpbGQuc2hvdygpCi1DaGls
ZC5kZXRhY2goKQotICBDaGlsZC53aWxsSGlkZSgpCi0gIENoaWxkLndhc1Nob3duKCkKLSAgQ2hp
bGQub25SZXNpemUoKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1l
dmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGQ2ZjY5MzdjYzkwN2FlZTRjMWJiYjFiOTJjOWQ5
ZGZiZTc5MjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzE1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gVGVzdFZpZXcodmlld05hbWUpCi0gICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwotCi0gICAgICAgIHRoaXMuX3Zp
ZXdOYW1lID0gdmlld05hbWU7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHRoaXMu
X3ZpZXdOYW1lICsgIigpIik7Ci0gICAgfQotCi0gICAgVGVzdFZpZXcucHJvdG90eXBlID0gewot
ICAgICAgICBzaG93OiBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0aGlzLl92aWV3TmFtZSArICIuc2hvdygpIik7
Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMs
IHBhcmVudEVsZW1lbnQpOwotICAgICAgICB9LAotCi0gICAgICAgIGRldGFjaDogZnVuY3Rpb24o
KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0aGlzLl92
aWV3TmFtZSArICIuZGV0YWNoKCkiKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnBy
b3RvdHlwZS5kZXRhY2guY2FsbCh0aGlzKTsKLSAgICAgICAgfSwKLQotICAgICAgICBkb1Jlc2l6
ZTogZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCh0aGlzLl92aWV3TmFtZSArICIuZG9SZXNpemUoKSIpOwotICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlLmRvUmVzaXplLmNhbGwodGhpcyk7Ci0gICAgICAgIH0sCi0K
LSAgICAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgIiArIHRoaXMuX3ZpZXdOYW1lICsgIi53YXNTaG93bigp
Iik7Ci0gICAgICAgICAgICBpZiAodGhpcy5zaG93T25XYXNTaG93bikKLSAgICAgICAgICAgICAg
ICB0aGlzLnNob3dPbldhc1Nob3duLnNob3codGhpcy5lbGVtZW50KTsKLSAgICAgICAgICAgIGlm
ICh0aGlzLmRldGFjaE9uV2FzU2hvd24pCi0gICAgICAgICAgICAgICAgdGhpcy5kZXRhY2hPbldh
c1Nob3duLmRldGFjaCgpOwotICAgICAgICB9LAotCi0gICAgICAgIHdpbGxIaWRlOiBmdW5jdGlv
bigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICIg
KyB0aGlzLl92aWV3TmFtZSArICIud2lsbEhpZGUoKSIpOwotICAgICAgICAgICAgaWYgKHRoaXMu
c2hvd09uV2lsbEhpZGUpCi0gICAgICAgICAgICAgICAgdGhpcy5zaG93T25XaWxsSGlkZS5zaG93
KHRoaXMuZWxlbWVudCk7Ci0gICAgICAgICAgICBpZiAodGhpcy5kZXRhY2hPbldpbGxIaWRlKQot
ICAgICAgICAgICAgICAgIHRoaXMuZGV0YWNoT25XaWxsSGlkZS5kZXRhY2goKTsKLSAgICAgICAg
fSwKLQotICAgICAgICBvblJlc2l6ZTogZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAiICsgdGhpcy5fdmlld05hbWUgKyAiLm9uUmVz
aXplKCkiKTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBUZXN0Vmlldy5wcm90b3R5cGUuX19w
cm90b19fID0gV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlOwotCi0gICAgSW5zcGVjdG9yVGVz
dC5ydW5UZXN0U3VpdGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2hvd1ZpZXcobmV4dCkKLSAg
ICAgICAgewotICAgICAgICAgICAgdmFyIHZpZXcgPSBuZXcgVGVzdFZpZXcoIlZpZXciKTsKLSAg
ICAgICAgICAgIHZpZXcuc2hvdyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsK
LSAgICAgICAgICAgIHZpZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAg
IH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdEFwcGVuZFZpYURPTShuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHZhciB2aWV3ID0gbmV3IFRlc3RW
aWV3KCJWaWV3Iik7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2
aWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
bmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJbnNlcnRWaWFET00o
bmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB2YXIg
dmlldyA9IG5ldyBUZXN0VmlldygiVmlldyIpOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuaW5zZXJ0QmVmb3JlKHZpZXcuZWxlbWVudCwgbnVsbCk7Ci0gICAgICAgICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVu
Y3Rpb24gdGVzdEF0dGFjaFRvT3JwaGFuTm9kZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB0cnkgewotICAgICAgICAgICAgICAgIHZhciB2aWV3ID0gbmV3IFRlc3RWaWV3KCJWaWV3Iik7
Ci0gICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwotICAgICAgICAgICAgICAgIHZpZXcuc2hvdyhkaXYpOwotICAgICAgICAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGUpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RJbW1lZGlhdGVQYXJlbnQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFy
IHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOwotICAgICAgICAgICAgdmFyIGNo
aWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIGNoaWxkVmlldy5z
aG93KHBhcmVudFZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBpZiAoY2hpbGRWaWV3Ll9wYXJl
bnRWaWV3ID09PSBwYXJlbnRWaWV3KQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJPSyIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJGQUlMRUQiKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAg
fSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0RGlzdGFudFBhcmVudChuZXh0KQotICAgICAgICB7
Ci0gICAgICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0g
ICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAg
ICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZGl2KTsKLSAgICAgICAgICAg
IHZhciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7Ci0gICAgICAgICAgICBjaGls
ZFZpZXcuc2hvdyhkaXYpOwotCi0gICAgICAgICAgICBpZiAoY2hpbGRWaWV3Ll9wYXJlbnRWaWV3
ID09PSBwYXJlbnRWaWV3KQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJPSyIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJGQUlMRUQiKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQot
ICAgICAgICBmdW5jdGlvbiB0ZXN0RXZlbnRzKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHBh
cmVudFZpZXcubWFya0FzUm9vdCgpOwotICAgICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBU
ZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuc2hvdyhXZWJJbnNwZWN0
b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKLQotICAgICAgICAgICAgcGFyZW50Vmlldy5kb1Jl
c2l6ZSgpOwotICAgICAgICAgICAgY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsK
LSAgICAgICAgICAgIHBhcmVudFZpZXcuZG9SZXNpemUoKTsKLSAgICAgICAgICAgIHBhcmVudFZp
ZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVjdG9yLmlu
c3BlY3RvclZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBjaGlsZFZpZXcuZGV0YWNoKCk7Ci0g
ICAgICAgICAgICBwYXJlbnRWaWV3LmRldGFjaCgpOwotICAgICAgICAgICAgbmV4dCgpOwotICAg
ICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RFdmVudHNIaWRlT25EZXRhY2gobmV4dCkK
LSAgICAgICAgewotICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBh
cmVudCIpOwotICAgICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQi
KTsKLSAgICAgICAgICAgIGNoaWxkVmlldy5zZXRIaWRlT25EZXRhY2goKTsKLSAgICAgICAgICAg
IHBhcmVudFZpZXcuc2hvdyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKLQot
ICAgICAgICAgICAgcGFyZW50Vmlldy5kb1Jlc2l6ZSgpOwotICAgICAgICAgICAgY2hpbGRWaWV3
LnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuZG9SZXNp
emUoKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBwYXJl
bnRWaWV3LnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0gICAgICAg
ICAgICBjaGlsZFZpZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LmRldGFjaCgp
OwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRl
c3RWaWV3Q291bnRlcihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgcGFyZW50Vmll
dyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3co
V2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0KLSAgICAgICAgICAgIHZhciBj
aGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7Ci0gICAgICAgICAgICBjaGlsZFZpZXcu
c2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgdmlldyBjb3VudGVyOiAiICsgcGFyZW50Vmlldy5lbGVtZW50Ll9fdmlld0NvdW50
ZXIpOwotCi0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3MiA9IG5ldyBUZXN0VmlldygiQ2hpbGQg
MiIpOwotICAgICAgICAgICAgY2hpbGRWaWV3Mi5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICB2aWV3IGNvdW50ZXI6ICIgKyBw
YXJlbnRWaWV3LmVsZW1lbnQuX192aWV3Q291bnRlcik7Ci0KLSAgICAgICAgICAgIGNoaWxkVmll
dy5kZXRhY2goKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgIHZpZXcg
Y291bnRlcjogIiArIHBhcmVudFZpZXcuZWxlbWVudC5fX3ZpZXdDb3VudGVyKTsKLQotICAgICAg
ICAgICAgY2hpbGRWaWV3Mi5kZXRhY2goKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIgIHZpZXcgY291bnRlcjogIiArIHBhcmVudFZpZXcuZWxlbWVudC5fX3ZpZXdDb3Vu
dGVyKTsKLQotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RSZW1vdmVDaGlsZChuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgcGFy
ZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3
LnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0KLSAgICAgICAgICAg
IHZhciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7Ci0gICAgICAgICAgICBjaGls
ZFZpZXcuc2hvdyhwYXJlbnRWaWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGRWaWV3LmVsZW1l
bnQpOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlbW92ZUNoaWxkKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3
KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuZWxlbWVudC5hcHBlbmRDaGlsZChkaXYp
OwotCi0gICAgICAgICAgICB2YXIgY2hpbGRWaWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwot
ICAgICAgICAgICAgY2hpbGRWaWV3LnNob3coZGl2KTsKLQotICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQucmVtb3ZlQ2hpbGQoZGl2KTsKLSAgICAg
ICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwK
LQotICAgICAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlQ2hpbGRyZW4obmV4dCkKLSAgICAgICAgewot
ICAgICAgICAgICAgdmFyIHBhcmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOwotICAg
ICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAg
ICAgIGNoaWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBwYXJl
bnRWaWV3LmVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikp
OwotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQu
cmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0SW1wbGljaXRS
ZW1vdmVDaGlsZHJlbihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgcGFyZW50Vmll
dyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LmVsZW1lbnQu
YXBwZW5kQ2hpbGQoZGl2KTsKLQotICAgICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0
VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIGNoaWxkVmlldy5zaG93KGRpdik7Ci0KLSAgICAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgcGFyZW50Vmlldy5lbGVtZW50LnJlbW92ZUNo
aWxkcmVuKCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFNob3dPbldhc1Nob3duKG5l
eHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3
KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuc2hvd09uV2FzU2hvd24gPSBuZXcg
VGVzdFZpZXcoIkNoaWxkIik7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVj
dG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LmRldGFj
aCgpOwotICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9u
IHRlc3REZXRhY2hPbldhc1Nob3duKG5leHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBw
YXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKLSAgICAgICAgICAgIHZhciBjaGls
ZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7Ci0gICAgICAgICAgICBjaGlsZFZpZXcuc2hv
dyhwYXJlbnRWaWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5kZXRhY2hPbldh
c1Nob3duID0gY2hpbGRWaWV3OwotICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93KFdlYkluc3Bl
Y3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5kZXRh
Y2goKTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlv
biB0ZXN0U2hvd09uV2lsbEhpZGUobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHBh
cmVudFZpZXcgPSBuZXcgVGVzdFZpZXcoIlBhcmVudCIpOwotICAgICAgICAgICAgdmFyIGNoaWxk
VmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuc2hv
dyhXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIGNoaWxk
Vmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNo
b3dPbldpbGxIaWRlID0gY2hpbGRWaWV3OwotICAgICAgICAgICAgcGFyZW50Vmlldy5kZXRhY2go
KTsKLSAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0
ZXN0RGV0YWNoT25XaWxsSGlkZShuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgcGFy
ZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAgICB2YXIgY2hpbGRW
aWV3ID0gbmV3IFRlc3RWaWV3KCJDaGlsZCIpOwotICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93
KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQpOwotICAgICAgICAgICAgY2hpbGRW
aWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuZGV0
YWNoT25XaWxsSGlkZSA9IGNoaWxkVmlldzsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuZGV0YWNo
KCk7Ci0gICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24g
dGVzdFNob3dEZXRhY2hlc0Zyb21QcmV2aW91cyhuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICB2YXIgcGFyZW50VmlldzEgPSBuZXcgVGVzdFZpZXcoIlBhcmVudDEiKTsKLSAgICAgICAgICAg
IHZhciBwYXJlbnRWaWV3MiA9IG5ldyBUZXN0VmlldygiUGFyZW50MiIpOwotICAgICAgICAgICAg
dmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKLSAgICAgICAgICAgIHBhcmVu
dFZpZXcxLnNob3coV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcuZWxlbWVudCk7Ci0gICAgICAg
ICAgICBwYXJlbnRWaWV3Mi5zaG93KFdlYkluc3BlY3Rvci5pbnNwZWN0b3JWaWV3LmVsZW1lbnQp
OwotICAgICAgICAgICAgY2hpbGRWaWV3LnNob3cocGFyZW50VmlldzEuZWxlbWVudCk7Ci0gICAg
ICAgICAgICBjaGlsZFZpZXcuc2hvdyhwYXJlbnRWaWV3Mi5lbGVtZW50KTsKLSAgICAgICAgICAg
IG5leHQoKTsKLSAgICAgICAgfQotICAgIF0pOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UaGlzIHRlc3RzIHRoYXQgZXZlbnRzIGFy
ZSBwcm9wZXJseSBwcm9wYWdhdGVkIHRocm91Z2ggVmlldyBoaWVyYXJjaHkuCi08L3A+Ci0KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3Jrc3Bh
Y2UtbWFwcGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNl
LW1hcHBpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjE0
YzM0OTQ2ZjcxZDc0ODYzYThmYzhiZmRjYjYyZmU3Yzk1OGNlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci93b3Jrc3Bh
Y2UtbWFwcGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1U
ZXN0cyB3b3Jrc3BhY2UgbWFwcGluZ3MKLQotICAgIHVybCBodHRwOi8vd3d3LmV4YW1wbGUuY29t
L2luZGV4Lmh0bWwgaXMgbm90IG1hcHBlZC4KLSAgICB1cmwgaHR0cDovL2xvY2FsaG9zdC9pbmRl
eC5odG1sIGlzIG1hcHBlZC4KLSAgICB1cmwgaHR0cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRt
bCBpcyBtYXBwZWQuCi0gICAgdXJsIGh0dHBzOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwgaXMgbm90
IG1hcHBlZC4KLQotICAgIHVybCBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWwgaXMg
bWFwcGVkIHRvIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vaW5kZXguaHRtbAotICAgIHVybCBodHRw
Oi8vbG9jYWxob3N0L2luZGV4Lmh0bWwgaXMgbWFwcGVkIHRvIGZpbGVzeXN0ZW06L3Zhci93d3cv
bG9jYWxob3N0L2luZGV4Lmh0bWwKLSAgICB1cmwgaHR0cDovL2xvY2FsaG9zdC9mb28vaW5kZXgu
aHRtbCBpcyBtYXBwZWQgdG8gbnVsbAotICAgIHVybCBodHRwczovL2xvY2FsaG9zdC9pbmRleC5o
dG1sIGlzIG1hcHBlZCB0byBodHRwczovL2xvY2FsaG9zdC9pbmRleC5odG1sCi0KLSAgICBwYXRo
IC9ob21lL2V4YW1wbGUuY29tL2Zvby9pbmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRwOi8vd3d3
LmV4YW1wbGUuY29tL2Zvby9pbmRleC5odG1sCi0gICAgcGF0aCAvaG9tZS9leGFtcGxlLmNvbS9p
bmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRwOi8vd3d3LmV4YW1wbGUuY29tL2luZGV4Lmh0bWwK
LSAgICBwYXRoIC92YXIvd3d3L2xvY2FsaG9zdC9pbmRleC5odG1sIGlzIG1hcHBlZCB0byBodHRw
Oi8vbG9jYWxob3N0L2luZGV4Lmh0bWwKLSAgICBwYXRoIC92YXIvd3d3L2xvY2FsaG9zdC9mb28v
aW5kZXguaHRtbCBpcyBtYXBwZWQgdG8gaHR0cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbAot
ICAgIHBhdGggL2hvbWUvZm9vL2luZGV4Lmh0bWwgaXMgbWFwcGVkIHRvIG51bGwKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS1tYXBwaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLW1hcHBpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2U2Zjk4MTU1OTA2NmQzYmE5ODE5M2Q0YjFkZGQ2OTc3NzMzMjkxNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivd29ya3NwYWNlLW1hcHBpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEw
NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHVpU291cmNlQ29kZXMgPSB7fTsKLSAgICB2YXIg
cHJvamVjdERlbGVnYXRlcyA9IHt9OwotICAgIGZ1bmN0aW9uIGNyZWF0ZVVJU291cmNlQ29kZShw
cm9qZWN0SWQsIHBhdGgpCi0gICAgewotICAgICAgICB2YXIgcHJvamVjdERlbGVnYXRlID0gcHJv
amVjdERlbGVnYXRlc1twcm9qZWN0SWRdOwotICAgICAgICBpZiAoIXByb2plY3REZWxlZ2F0ZXNb
cHJvamVjdElkXSkgewotICAgICAgICAgICAgcHJvamVjdERlbGVnYXRlID0gbmV3IE1vY2tQcm9q
ZWN0RGVsZWdhdGUocHJvamVjdElkKTsKLSAgICAgICAgICAgIHdvcmtzcGFjZS5hZGRQcm9qZWN0
KHByb2plY3REZWxlZ2F0ZSk7Ci0gICAgICAgICAgICBwcm9qZWN0RGVsZWdhdGVzW3Byb2plY3RJ
ZF0gPSBwcm9qZWN0RGVsZWdhdGU7Ci0gICAgICAgIH0KLQotICAgICAgICBwcm9qZWN0RGVsZWdh
dGUuYWRkVUlTb3VyY2VDb2RlKHBhdGgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIE1vY2tQcm9q
ZWN0RGVsZWdhdGUoaWQpCi0gICAgewotICAgICAgICB0aGlzLl9pZCA9IGlkOwotICAgIH0KLQot
ICAgIE1vY2tQcm9qZWN0RGVsZWdhdGUucHJvdG90eXBlID0gewotICAgICAgICBpZDogZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5faWQ7Ci0gICAgICAgIH0sCi0KLSAgICAg
ICAgYWRkVUlTb3VyY2VDb2RlOiBmdW5jdGlvbihwYXRoKSB7Ci0gICAgICAgICAgICB2YXIgZmls
ZURlc2NyaXB0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVEZXNjcmlwdG9yKHBhdGguc3BsaXQo
Ii8iKSwgcGF0aCwgcGF0aCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCB0cnVl
LCBmYWxzZSk7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuUHJvamVjdERlbGVnYXRlLkV2ZW50cy5GaWxlQWRkZWQsIGZpbGVEZXNjcmlwdG9y
KTsKLSAgICAgICAgfSwKLQotICAgICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlCi0gICAgfTsKLQotICAgIHZhciBmaWxlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0
b3IuRmlsZU1hcHBpbmcoKTsKLSAgICB2YXIgbWFwcGluZ0VudHJpZXMgPSBbXTsKLSAgICBtYXBw
aW5nRW50cmllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6
Ly9sb2NhbGhvc3QvIiwgIi92YXIvd3d3L2xvY2FsaG9zdC8iKSk7Ci0gICAgbWFwcGluZ0VudHJp
ZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmV4
YW1wbGUuY29tLyIsICIvaG9tZS9leGFtcGxlLmNvbS8iKSk7Ci0gICAgbWFwcGluZ0VudHJpZXMu
cHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmZvby5j
b20vIiwgIi9iYXIvIikpOwotICAgIGZpbGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKG1hcHBp
bmdFbnRyaWVzKTsKLQotICAgIHZhciBmaWxlU3lzdGVtTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbU1hcHBpbmdJbXBsKCk7Ci0gICAgdmFyIGZpbGVTeXN0ZW1QYXRoID0gIi92
YXIvd3d3IjsKLSAgICB2YXIgcHJvamVjdElkID0gV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Qcm9q
ZWN0RGVsZWdhdGUucHJvamVjdElkKGZpbGVTeXN0ZW1QYXRoKTsKLSAgICBmaWxlU3lzdGVtTWFw
cGluZy5hZGRGaWxlU3lzdGVtTWFwcGluZygiL3Zhci93d3ciKTsKLQotICAgIHZhciB3b3Jrc3Bh
Y2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZShmaWxlTWFwcGluZywgZmlsZVN5c3RlbU1h
cHBpbmcpOwotCi0gICAgZnVuY3Rpb24gZHVtcEhhc01hcHBpbmdGb3JVUkwodXJsKQotICAgIHsK
LSAgICAgICAgdmFyIHJlc3VsdCA9IHdvcmtzcGFjZS5oYXNNYXBwaW5nRm9yVVJMKHVybCkKLSAg
ICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIg
ICAgdXJsICIgKyB1cmwgKyAiIGlzIG1hcHBlZC4iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICB1cmwgIiArIHVybCArICIgaXMgbm90IG1h
cHBlZC4iKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wVUlTb3VyY2VDb2RlRm9yVVJMKHVy
bCkKLSAgICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB3b3Jrc3BhY2UudWlTb3VyY2VD
b2RlRm9yVVJMKHVybCkKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICB1cmwg
IiArIHVybCArICIgaXMgbWFwcGVkIHRvICIgKyAodWlTb3VyY2VDb2RlID8gdWlTb3VyY2VDb2Rl
LnVyaSgpIDogbnVsbCkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBVUkxGb3JQYXRoKHBh
dGgpCi0gICAgewotICAgICAgICB2YXIgdXJsID0gd29ya3NwYWNlLnVybEZvclBhdGgocGF0aCkK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBwYXRoICIgKyBwYXRoICsgIiBp
cyBtYXBwZWQgdG8gIiArICh1cmwgPyB1cmwgOiBudWxsKSk7Ci0gICAgfQotICAgIAotICAgIGNy
ZWF0ZVVJU291cmNlQ29kZShwcm9qZWN0SWQsICJsb2NhbGhvc3QvaW5kZXguaHRtbCIpOwotCi0g
ICAgY3JlYXRlVUlTb3VyY2VDb2RlKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiwgImluZGV4Lmh0
bWwiKTsKLSAgICBjcmVhdGVVSVNvdXJjZUNvZGUoImh0dHA6Ly9sb2NhbGhvc3QiLCAiaW5kZXgu
aHRtbCIpOwotICAgIGNyZWF0ZVVJU291cmNlQ29kZSgiaHR0cDovL2xvY2FsaG9zdCIsICJmb28v
aW5kZXguaHRtbCIpOwotICAgIGNyZWF0ZVVJU291cmNlQ29kZSgiaHR0cHM6Ly9sb2NhbGhvc3Qi
LCAiaW5kZXguaHRtbCIpOwotCi0gICAgZHVtcEhhc01hcHBpbmdGb3JVUkwoImh0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vaW5kZXguaHRtbCIpOwotICAgIGR1bXBIYXNNYXBwaW5nRm9yVVJMKCJodHRw
Oi8vbG9jYWxob3N0L2luZGV4Lmh0bWwiKTsKLSAgICBkdW1wSGFzTWFwcGluZ0ZvclVSTCgiaHR0
cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCIpOwotICAgIGR1bXBIYXNNYXBwaW5nRm9yVVJM
KCJodHRwczovL2xvY2FsaG9zdC9pbmRleC5odG1sIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiIpOwotCi0gICAgZHVtcFVJU291cmNlQ29kZUZvclVSTCgiaHR0cDovL3d3dy5leGFt
cGxlLmNvbS9pbmRleC5odG1sIik7Ci0gICAgZHVtcFVJU291cmNlQ29kZUZvclVSTCgiaHR0cDov
L2xvY2FsaG9zdC9pbmRleC5odG1sIik7Ci0gICAgZHVtcFVJU291cmNlQ29kZUZvclVSTCgiaHR0
cDovL2xvY2FsaG9zdC9mb28vaW5kZXguaHRtbCIpOwotICAgIGR1bXBVSVNvdXJjZUNvZGVGb3JV
UkwoImh0dHBzOi8vbG9jYWxob3N0L2luZGV4Lmh0bWwiKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiIik7Ci0KLSAgICBkdW1wVVJMRm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5jb20vZm9v
L2luZGV4Lmh0bWwiKTsKLSAgICBkdW1wVVJMRm9yUGF0aCgiL2hvbWUvZXhhbXBsZS5jb20vaW5k
ZXguaHRtbCIpOwotICAgIGR1bXBVUkxGb3JQYXRoKCIvdmFyL3d3dy9sb2NhbGhvc3QvaW5kZXgu
aHRtbCIpOwotICAgIGR1bXBVUkxGb3JQYXRoKCIvdmFyL3d3dy9sb2NhbGhvc3QvZm9vL2luZGV4
Lmh0bWwiKTsKLSAgICBkdW1wVVJMRm9yUGF0aCgiL2hvbWUvZm9vL2luZGV4Lmh0bWwiKTsKLQot
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIHdvcmtzcGFjZSBtYXBwaW5nczwv
cD4KLTwvYm9keT4KLTwvaHRtbD4K
</data>
<flag name="review"
          id="249024"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="249029"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>