<?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>172372</bug_id>
          
          <creation_ts>2017-05-19 11:57:16 -0700</creation_ts>
          <short_desc>Many accessibility js-tests use waitUntilDone</short_desc>
          <delta_ts>2017-05-19 23:45:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>168961</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>lforschler</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1310695</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-05-19 11:57:16 -0700</bug_when>
    <thetext>js-tests are incompatible with testRunner.waitUntilDone(), yet there are hundreds of tests that mix these techniques.

The common symptom is that TEST COMPLETE is printed before the test is complete. But there may be more, including flakiness. Some of these tests are malformed in other ways, such as using js-test-pre.js without js-test-post.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310697</commentid>
    <comment_count>1</comment_count>
      <attachid>310681</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-05-19 12:02:16 -0700</bug_when>
    <thetext>Created attachment 310681
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310749</commentid>
    <comment_count>2</comment_count>
      <attachid>310681</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-05-19 13:42:01 -0700</bug_when>
    <thetext>Comment on attachment 310681
proposed patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310766</commentid>
    <comment_count>3</comment_count>
      <attachid>310681</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-19 14:19:06 -0700</bug_when>
    <thetext>Comment on attachment 310681
proposed patch

Rejecting attachment 310681 from commit-queue.

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

Last 500 characters of output:
.webkit.org/git/WebKit
   dbd4584..7c5c449  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 217148 = dbd4584443870cc224a699c54c990aee659f7abc
r217149 = 7c5c4496c93dce138fa915f47bf12790ad2b7f22
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.webkit.org/results/3778831</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310859</commentid>
    <comment_count>4</comment_count>
      <attachid>310681</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-19 16:38:03 -0700</bug_when>
    <thetext>Comment on attachment 310681
proposed patch

Clearing flags on attachment: 310681

Committed r217171: &lt;http://trac.webkit.org/changeset/217171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310860</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-19 16:38:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310975</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-05-19 22:44:37 -0700</bug_when>
    <thetext>js-test.js is an out-of-date merge of js-test-pre.js and js-test-post.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310986</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-05-19 23:45:05 -0700</bug_when>
    <thetext>It&apos;s the better one to use in new tests. If some functions were only added to -pre, they should be added to js-test.js too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310681</attachid>
            <date>2017-05-19 12:02:16 -0700</date>
            <delta_ts>2017-05-19 16:38:03 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>js-test-accessibility.txt</filename>
            <type>text/plain</type>
            <size>91665</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxNzEzOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBAQAorMjAxNy0wNS0xOSAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBNYW55IGFjY2Vzc2liaWxpdHkganMtdGVz
dHMgdXNlIHdhaXRVbnRpbERvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MjM3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvcnJlY3RlZCB0aGUgdXNlIG9mIGpzLXRlc3QgaGFybmVzcywgdXBkYXRl
ZCB0aGUgdGVzdHMgdG8gdXNlIGpzLXRlc3QuanMgaW5zdGVhZAorICAgICAgICBvZiBqcy10ZXN0
LXByZS5qcyB3aGVyZSBwb3NzaWJsZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYW5vbnlt
b3VzLXJlbmRlci1ibG9jay1pbi1jb250aW51YXRpb24tY2F1c2VzLWNyYXNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Fub255bW91cy1yZW5kZXItYmxvY2staW4tY29u
dGludWF0aW9uLWNhdXNlcy1jcmFzaC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJp
YS1jaGVja2JveC1zZW5kcy1ub3RpZmljYXRpb24uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2FyaWEtaW52YWxpZC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1zd2l0
Y2gtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9kZWxl
dGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvZmlsZS11cGxvYWQtYnV0dG9uLXdpdGgtYXhwcmVzcy5odG1sOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvZnJhbWUtZGlzY29ubmVjdC10ZXh0bWFya2VyLWNhY2hlLWNyYXNoLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2ZyYW1lLWRpc2Nvbm5lY3QtdGV4dG1hcmtl
ci1jYWNoZS1jcmFzaC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL2FyaWEtbGlz
dGJveC1jcmFzaC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaGVhZGluZy10aXRsZS1p
bmNsdWRlcy1saW5rcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9oZWFk
aW5nLXRpdGxlLWluY2x1ZGVzLWxpbmtzLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
bWFnZS1tYXAtdXBkYXRlLXBhcmVudC1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pbWFnZS1tYXAtdXBkYXRlLXBhcmVudC1jcmFzaC5odG1sOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaW5zZXJ0LWNoaWxkcmVuLWFzc2VydC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9pbnNlcnQtY2hpbGRyZW4tYXNzZXJ0Lmh0bWw6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9pb3Mtc2ltdWxhdG9yL2ZvY3VzLWNoYW5nZS1ub3RpZmljYXRpb25z
Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9sYWJlbC1lbGVtZW50LXByZXNzLmh0bWw6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5o
dG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0
aW9ucy5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGlzdGJveC1zZWxl
Y3RlZGNoaWxkcmVuLWNoYW5nZS5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2Fy
aWEtbGl2ZXJlZ2lvbi1vbi1pbWFnZS5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L2FyaWEtbGl2ZXJlZ2lvbnMtYWRkZWRlbGVtZW50Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvYXJpYS1saXZlcmVnaW9ucy1jaGFuZ2VkYWx0Lmh0bWw6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9ucy1jaGFuZ2VkdGV4dC5odG1sOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbnMtcmVtb3ZlZGVsZW1lbnQuaHRt
bDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9jb21ib2JveC1hY3RpdmVkZXNjZW5kYW50
LW5vdGlmaWNhdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L2NvbWJvYm94LWFjdGl2ZWRlc2NlbmRhbnQtbm90aWZpY2F0aW9ucy5odG1sOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1u
b3QtY2xlYXJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2Zv
Y3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmcuaHRtbDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9odG1sLXNsaWRlci1pbmRpY2F0b3IuaHRtbDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2lucHV0LXJlcGxhY2V2YWx1
ZS11c2VyaW5mby5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL29yZGVyZWQtdGV4
dG1hcmtlci1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMv
b3JkZXJlZC10ZXh0bWFya2VyLWNyYXNoLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvc2VhcmNoLXdpdGgtZnJhbWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9zZWFyY2gtd2l0aC1mcmFtZXMuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmluZm8uaHRtbDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLWVsZW1lbnQtdGFiYmluZy10by1saW5rLmh0bWw6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFy
aWEtdGV4dGJveC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3N0YWxlLXRleHRt
YXJrZXItY3Jhc2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3N0
YWxlLXRleHRtYXJrZXItY3Jhc2guaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy90
ZXh0Ym94LXJvbGUtcmVwb3J0cy1ub3RpZmljYXRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy90ZXh0Ym94LXJvbGUtcmVwb3J0cy1ub3RpZmljYXRpb25zLmh0
bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvdmFsdWUtY2hhbmdlL3ZhbHVlLWNoYW5n
ZS11c2VyLWluZm8tY29udGVudGVkaXRhYmxlLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvdmFsdWUtY2hhbmdlL3ZhbHVlLWNoYW5nZS11c2VyLWluZm8tdGV4dGFyZWEuaHRtbDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1jaGFuZ2UvdmFsdWUtY2hhbmdlLXVz
ZXItaW5mby10ZXh0ZmllbGQuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21lZGlhLWVs
ZW1lbnQuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21lbnUtbGlzdC1zZW5kcy1jaGFu
Z2Utbm90aWZpY2F0aW9uLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tdWx0aXNlbGVj
dC1saXN0LXJlcG9ydHMtYWN0aXZlLW9wdGlvbi5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvcGFyYWdyYXBoLXdpdGgtbGluZWJyZWFrcy5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvcGxhdGZvcm0tbmFtZS5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcmFkaW8tYnV0
dG9uLWdyb3VwLW1lbWJlcnMuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1
dHRvbi10aXRsZS1sYWJlbC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LXN0YXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
c3RhdGVzLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9zcGluYnV0dG9uLXZhbHVlLmh0
bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9zdmctYm91bmRzLmh0bWw6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS90YWJsZS1jZWxsLWZvci1jb2x1bW4tYW5kLXJvdy1jcmFzaC5odG1sOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvdGFibGUtY2VsbHMtcm9sZXMuaHRtbDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L3RhYmxlLXJvbGVzLWhpZXJhcmNoeS5odG1sOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvdGFibGUtd2l0aC1hcmlhLXJvbGUuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L3RleHRhcmVhLWluc2VydGlvbi1wb2ludC1saW5lLW51bWJlci5odG1sOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0bWw6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS90aXRsZS11aS1lbGVtZW50LWNvcnJlY3RuZXNzLmh0bWw6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS91bmtub3duLXJvbGVzLW5vdC1leHBvc2VkLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3Vua25vd24tcm9sZXMtbm90LWV4cG9z
ZWQuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dpbi9ic3RyLWVsZW1lbnRzLXJvbGUu
aHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dpbi9kZXRhY2hlZC1vYmplY3Qtbm90aWZp
Y2F0aW9uLWNyYXNoLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vaGVhZGluZy1l
bGVtZW50cy5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL2ltZy1hbHQtYXR0cmli
dXRlLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vbGlua2VkLWVsZW1lbnRzLmh0
bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vbGlzdC1pdGVtLXJvbGUuaHRtbDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dpbi9saXN0LW1hcmtlci1yb2xlLmh0bWw6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS93aW4vbGlzdC1yb2xlLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS93aW4vbXVsdGlwbGUtc2VsZWN0LWVsZW1lbnQtcm9sZS5odG1sOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvd2luL29wdGlvbi1lbGVtZW50LXBvc2l0aW9uLWFuZC1zaXplLmh0bWw6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS93aW4vcGFyZW50LWVsZW1lbnQuaHRtbDoKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L3dpbi9zZWxlY3QtZWxlbWVudC1yb2xlLmh0bWw6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS93aW4vc2VsZWN0aW9uLWFuZC1mb2N1cy5odG1sOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvd2luL3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4tY2hhbmdlZC5odG1sOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4uaHRtbDoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L3dpbi90ZXh0LXJvbGUuaHRtbDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtdXBkYXRlcy1heHRyZWUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvYWNjZXNzaWJpbGl0eS9k
ZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2Fj
aGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L21l
ZGlhLWVsZW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3RhYmxlLWNlbGxzLXJvbGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS90YWJsZS1yb2xlcy1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Ogor
CiAyMDE3LTA1LTE5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1tdWx0aXBsZS1saXZlcmVnaW9ucy1u
b3RpZmljYXRpb24uaHRtbCBzaG91bGQgZm9yY2UgbGF5b3V0IGFmdGVyIHIyMTY3MjYuCkluZGV4
OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fub255bW91cy1yZW5kZXItYmxvY2staW4tY29u
dGludWF0aW9uLWNhdXNlcy1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hbm9ueW1vdXMtcmVuZGVyLWJsb2NrLWluLWNvbnRpbnVhdGlv
bi1jYXVzZXMtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2Fub255bW91cy1yZW5kZXItYmxvY2staW4tY29udGludWF0aW9u
LWNhdXNlcy1jcmFzaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw3IEBA
IFRoaXMgdGVzdHMgdGhhdCBoYXZpbmcgYW4gYW5vbnltb3VzIHJlbmQKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KIAogCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hbm9ueW1vdXMtcmVu
ZGVyLWJsb2NrLWluLWNvbnRpbnVhdGlvbi1jYXVzZXMtY3Jhc2guaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fub255bW91cy1yZW5kZXItYmxvY2staW4tY29u
dGludWF0aW9uLWNhdXNlcy1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2Fub255bW91cy1yZW5kZXItYmxvY2staW4tY29udGludWF0aW9u
LWNhdXNlcy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOCBAQAogPGh0bWw+
CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIGZ1bmN0aW9u
IHdhbGtBY2Nlc3NpYmlsaXR5VHJlZShhY2Nlc3NpYmlsaXR5T2JqZWN0KSB7CiAgICAgICAgIHZh
ciBjb3VudCA9IGFjY2Vzc2liaWxpdHlPYmplY3QuY2hpbGRyZW5Db3VudDsKQEAgLTE3LDkgKzE2
LDcgQEAKICAgICAgICAgd2luZG93LnJvb3QgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290
RWxlbWVudDsKICAgICAgICAgd2Fsa0FjY2Vzc2liaWxpdHlUcmVlKHJvb3QpOwogCi0gICAgICAg
IGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsK
LSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIAogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKSW5k
ZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1zZW5kcy1ub3RpZmlj
YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEt
Y2hlY2tib3gtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1zZW5kcy1ub3RpZmljYXRpb24u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSw5IEBACiA8aHRtbD4KIDxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICAgICBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBjaGVja2lu
ZyBvZiBhbiBhcmlhIGNoZWNrYm94IHNlbmRzIGEgbm90aWZpY2F0aW9uLiIpOwogCkBAIC0xOSw4
ICsxOCw3IEBACiAKICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb25Db3VudCA9PSAyKSB7CiAg
ICAgICAgICAgICAgICAgYWNjZXNzaWJsZUNoZWNrYm94LnJlbW92ZU5vdGlmaWNhdGlvbkxpc3Rl
bmVyKGxpc3RlbmVyKTsKLSAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFj
Y2Vzc2libGVDaGVja2JveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihsaXN0ZW5lcik7CkBAIC0z
MSwxNSArMjksMTEgQEAKICAgICB9OwogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keT4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KIAogPGRpdiBpZD0iY2hlY2tib3gxIiB0YWJpbmRleD0wIHJv
bGU9ImNoZWNrYm94IiBhcmlhLWNoZWNrZWQ9ImZhbHNlIj5UZXN0IENoZWNrYm94PC9kaXY+CiAK
IDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotICAgIHJ1blRlc3QoKTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWludmFsaWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaW52YWxpZC5odG1sCShyZXZpc2lvbiAyMTcx
MjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtaW52YWxpZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGlkPSJib2R5Ij4KIApAQCAtNTMs
NyArNTMsNyBAQAogICAgICAgICAgICAgJCgibm90aWZpY2F0aW9ucyIpLmlubmVySFRNTCArPSAi
Tm90aWZpY2F0aW9uIHJlY2VpdmVkIHN1Y2Nlc3NmdWxseS4iOwogICAgICAgICAgICAgYXhOb3Rp
ZmljYXRpb25FbGVtZW50LnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CiAgICAgICAgICAg
ICAkKCJleGFtcGxlcyIpLmhpZGRlbiA9IHRydWU7Ci0gICAgICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtNjYsNyArNjYsNyBAQAogICAgIH0KIAogICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICB2YXIg
ZXhhbXBsZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZXgiKTsKICAgICAgICAgZm9y
ICh2YXIgaSA9IDAsIGMgPSBleGFtcGxlcy5sZW5ndGg7IGkgPCBjOyBpKyspIHsKQEAgLTg3LDcg
Kzg3LDUgQEAKICAgICB9CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtc3dpdGNoLXNlbmRzLW5vdGlmaWNhdGlvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1zd2l0Y2gtc2Vu
ZHMtbm90aWZpY2F0aW9uLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvYXJpYS1zd2l0Y2gtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTAgKzEsOSBAQAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAg
ICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdG9nZ2xpbmcgYW4gYXJpYSBzd2l0
Y2ggc2VuZHMgYSBub3RpZmljYXRpb24uIik7CiAKQEAgLTE5LDggKzE4LDcgQEAKIAogICAgICAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvbkNvdW50ID09IDIpIHsKICAgICAgICAgICAgICAgICB3aWRn
ZXQucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIobGlzdGVuZXIpOwotICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgd2lkZ2V0LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKGxp
c3RlbmVyKTsKQEAgLTMwLDE1ICsyOCwxMSBAQAogICAgIH07CiA8L3NjcmlwdD4KIDwvaGVhZD4K
LTxib2R5PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogCiA8ZGl2IGlkPSJzd2l0Y2giIHJv
bGU9InN3aXRjaCIgYXJpYS1jaGVja2VkPSJmYWxzZSI+VGVzdCBTd2l0Y2g8L2Rpdj4KIAogPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+
Ci0gICAgcnVuVGVzdCgpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJhbWUt
ZGVzdHJveXMtYXhjYWNoZS5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1kZXN0cm95cy1heGNhY2hlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTAgKzEsOSBAQAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
YWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgewpA
QCAtNTUsOSArNTQsNyBAQAogICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhZnRlci5pc0VxdWFs
KG5ld0FmdGVyKSIpOwogICAgICAgICB9CiAKLSAgICAgICAgZGVidWcoJzxiciAvPjxzcGFuIGNs
YXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwotICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CiAgICAgfQogICAgIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgZnVuY3Rpb24oKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Zp
bGUtdXBsb2FkLWJ1dHRvbi13aXRoLWF4cHJlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2ZpbGUtdXBsb2FkLWJ1dHRvbi13aXRoLWF4cHJlc3MuaHRtbAko
cmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9maWxlLXVwbG9h
ZC1idXR0b24td2l0aC1heHByZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBA
CiA8IURPQ1RZUEUgSFRNTD4KIDxodG1sPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAKIDxpbnB1dCBpZD0iZmlsZXR5cGUiIHR5cGU9ImZpbGUi
PgogCkBAIC0xMywyMCArMTMsMTggQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgd2hl
biBBWFByZXNzIGlzIHVzZWQgRE9NQWN0aXZhdGUgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBpbnB1
dCBmaWxlIHR5cGUuIikKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikgewotICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAKICAgICB2YXIgaW5wdXRGaWxlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGV0eXBlIik7CiAKICAgICBpbnB1dEZpbGUuYWRk
RXZlbnRMaXN0ZW5lcigiRE9NQWN0aXZhdGUiLCBmdW5jdGlvbigpIHsgCiAgICAgICAgIGRlYnVn
KCJET01BY3RpdmF0ZSB3YXMgY2FsbGVkIik7IAotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7IAorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKIAogICAgIGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZmlsZXR5cGUiKS5w
cmVzcygpOwogfQogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9mcmFtZS1kaXNjb25uZWN0LXRleHRtYXJrZXItY2FjaGUtY3Jhc2gt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZnJh
bWUtZGlzY29ubmVjdC10ZXh0bWFya2VyLWNhY2hlLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mcmFtZS1kaXNjb25uZWN0
LXRleHRtYXJrZXItY2FjaGUtY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02
LDQgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiBQQVNT
IHN0cmluZyBpcyAnaGVsbG8nCiBQQVNTIHN0cmluZyBpcyAndGVzdCB0ZXh0JwogVEVTVCBQQVNT
RUQ6IE5PIENSQVNICitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9mcmFtZS1kaXNjb25uZWN0
LXRleHRtYXJrZXItY2FjaGUtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2ZyYW1lLWRpc2Nvbm5lY3QtdGV4dG1hcmtlci1jYWNoZS1jcmFzaC5odG1s
CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ZyYW1lLWRp
c2Nvbm5lY3QtdGV4dG1hcmtlci1jYWNoZS1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDcgKzEsNyBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5IGlkPSJib2R5Ij4KIApAQCAtNDMsOSArNDMsNyBAQAogCiAg
ICAgICAgICAgICBkZWJ1ZygiVEVTVCBQQVNTRUQ6IE5PIENSQVNIIik7CiAKLSAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgICAgICAgICBnYygpOwogICAgICAgICB9OwogCkBAIC03NCwxMiArNzIsOCBAQAogICAgICAg
ICBnYygpOwogICAgIH0KIAotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsKLSAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotICAgIH0KKyAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVhZGluZy10aXRsZS1pbmNsdWRlcy1saW5rcy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWFkaW5n
LXRpdGxlLWluY2x1ZGVzLWxpbmtzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQorKysg
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLXRpdGxlLWluY2x1ZGVzLWxpbmtzLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw4ICs1LDggQEAgVGhpcyB0ZXN0cyB0aGF0
IHRoZSB0aXRsZSBvZiBhIGhlYWRpbmcgdwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
K0hlYWRpbmcgdGl0bGU6IEFYVGl0bGU6IEFwcGxlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLUhlYWRpbmcgdGl0bGU6IEFYVGl0bGU6IEFwcGxlCiAK
SW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVhZGluZy10aXRsZS1pbmNsdWRlcy1s
aW5rcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVhZGlu
Zy10aXRsZS1pbmNsdWRlcy1saW5rcy5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2hlYWRpbmctdGl0bGUtaW5jbHVkZXMtbGlua3MuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJz
ZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKTsiPgogCkBAIC0xNiwyMSArMTYsMTcgQEAKIAogPHNj
cmlwdD4KIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgewotICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0KK2pz
VGVzdElzQXN5bmMgPSB0cnVlOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIHRpdGxlIG9mIGEgaGVhZGluZyB3aWxsIGluY2x1ZGUg
bGlua3MgaWYgYXZhaWxhYmxlLiIpOwogCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgewotCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKICAg
ICAgICAgZGVidWcoIkhlYWRpbmcgdGl0bGU6ICIgKyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImhlYWRpbmciKS50aXRsZSk7Ci0gICAgfQotICAgIHdpbmRv
dy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiA8
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
aW1hZ2UtbWFwLXVwZGF0ZS1wYXJlbnQtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwLXVwZGF0ZS1wYXJlbnQtY3Jhc2gt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2ltYWdlLW1hcC11cGRhdGUtcGFyZW50LWNyYXNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMyw0ICszLDcgQEAgVGhpcyB0ZXN0cyB0aGF0IGFuIGltYWdlIG1hcCdzIGhvbGQg
b24gaQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2ltYWdlLW1hcC11cGRhdGUtcGFyZW50LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbWFnZS1tYXAtdXBkYXRlLXBhcmVudC1jcmFzaC5o
dG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2ltYWdl
LW1hcC11cGRhdGUtcGFyZW50LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTUgKzEs
MTIgQEAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogZnVuY3Rp
b24gcnVuQVhUZXN0KCkgewotCi0KICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYW4g
aW1hZ2UgbWFwJ3MgaG9sZCBvbiBpdCdzIHBhcmVudCB3aWxsIGJlIGNsZWFyZWQgaWYgdGhlIHBh
cmVudCBnb2VzIGF3YXkuIik7CiAKICAgIC8vIEZpcnN0IGFjY2VzcyBhbGwgY2hpbGRyZW4gdXNp
bmcgQVgKQEAgLTIwLDEzICsxNywxMiBAQCBmdW5jdGlvbiBydW5BWFRlc3QoKSB7CiAgICAvLyBO
b3cgdmVyaWZ5IHdlIGhhdmVuJ3QgY3Jhc2hlZC4KICAgIHRvdWNoQWNjZXNzaWJpbGl0eVRyZWUo
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQpOwogCi0gICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIDwvc2NyaXB0PgogCiA8L2hlYWQ+Ci08Ym9keT4KKzxib2R5IG9ubG9hZD0icnVu
QVhUZXN0KCkiPgogCiA8bWFwIG5hbWU9Im1hcCI+CiA8ZGl2IGlkPSJvNyI+PC9kaXY+CkBAIC0z
NCw4ICszMCw2IEBAIGZ1bmN0aW9uIHJ1bkFYVGVzdCgpIHsKIAogPGltZyBpZD0iaW1nIiB1c2Vt
YXA9IiNtYXAiPjxzcGFuPjwvc3Bhbj4gCiAKLTxzY3JpcHQ+c2V0VGltZW91dCgicnVuQVhUZXN0
KCk7IiwgMSk7PC9zY3JpcHQ+IAotCiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgogCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2luc2Vy
dC1jaGlsZHJlbi1hc3NlcnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaW5zZXJ0LWNoaWxkcmVuLWFzc2VydC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW5zZXJ0LWNoaWxkcmVu
LWFzc2VydC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsNCArOCw3IEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyB2YWx1ZU9jY3VyYW5j
ZUluRWxlbWVudFRyZWUoY29udGVudCwgdmFsdWUpIGlzIDEKIFBBU1MgdmFsdWVPY2N1cmFuY2VJ
bkVsZW1lbnRUcmVlKGNvbnRlbnQsIHZhbHVlKSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pbnNlcnQtY2hpbGRyZW4tYXNzZXJ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9pbnNlcnQtY2hpbGRyZW4tYXNzZXJ0Lmh0bWwJKHJldmlzaW9uIDIx
NzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW5zZXJ0LWNoaWxkcmVuLWFzc2Vy
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIHZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKQEAgLTIzLDEwICsyMyw5IEBAIGJvZHkgewogCiA8c2Ny
aXB0PgogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgd2Ugb25seSBpbnNlcnQgdmFs
aWQgY2hpbGRyZW4gd2hlbiBidWlsZGluZyBheCB0cmVlLiIpOwotICAgIAorICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCiAgICAgaWYgKCJ3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiIgaW4gRWxl
bWVudC5wcm90b3R5cGUpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIHZhciBjb250ZW50ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjb250ZW50Iik7
CiAgICAgICAgIHZhciB2YWx1ZSA9ICJBWFZhbHVlOiBkIjsKICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRUb3A7CkBAIC0zNywxMCArMzYsOCBAQCBib2R5IHsKICAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQud2Vi
a2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogICAgICAgICAgICAgICAgIH0sIDApCi0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAg
ICAgICAgIHNob3VsZEJlKCJ2YWx1ZU9jY3VyYW5jZUluRWxlbWVudFRyZWUoY29udGVudCwgdmFs
dWUpIiwgIjEiKTsKICAgICAgICAgfTsKIApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9sYWJlbC1lbGVtZW50LXByZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9sYWJlbC1lbGVtZW50LXByZXNzLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysr
IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbGFiZWwtZWxlbWVudC1wcmVzcy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDEyICsxLDEyIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogCiA8Ym9keSBpZD0iYm9keSI+CiAKLTxs
YWJlbCB0YWJpbmRleD0wIG9uY2xpY2s9InBlcmZvcm1FdmVudCgpOyIgaWQ9ImxhYmVsRWxlbWVu
dCI+bGFiZWw8L2xhYmVsPgorPGxhYmVsIHRhYmluZGV4PTAgb25jbGljaz0iZmluaXNoSlNUZXN0
KCkiIGlkPSJsYWJlbEVsZW1lbnQiPmxhYmVsPC9sYWJlbD4KIAogPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KQEAgLTE0LDE0ICsxNCw5IEBACiA8c2Ny
aXB0PgogCiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBhIGxhYmVsIGVsZW1lbnQg
d2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgY29udHJvbCB3aWxsIHBlcmZvcm0gYSBwcmVzcyBhY3Rp
b24gb24gaXRzZWxmIGluc3RlYWQgb2Ygbm90aGluZy4iKTsKLSAKLSAgICBmdW5jdGlvbiBwZXJm
b3JtRXZlbnQoKSB7Ci0gICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfQorICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgewotIAotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5mb2N1cygpOwogICAgICAgICB2YXIg
Ym9keSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwogICAgICAgICB2
YXIgbGFiZWwgPSBib2R5LmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCk7CkBAIC0zMSw3
ICsyNiw1IEBACiAgICAgfQogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUt
dXBkYXRlcy1heHRyZWUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEwICsxLDkgQEAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAKICAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgewpAQCAtMzMs
OSArMzIsNyBAQAogICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgibmV3U3Vid2ViYXJlYS5j
aGlsZHJlbkNvdW50ID4gMCIpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBkZWJ1Zygn
PGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Ci0gICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfSwgZmFs
c2UpOwogCiAgICAgICAgIC8vIExvYWQgY29udGVudCBpbnRvIHRoZSBpZnJhbWUuIFRoaXMgd2ls
bCB0cmlnZ2VyIHRoZSBldmVudApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tZWRp
YS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
ZWRpYS1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDEwICs2LDcg
QEAKICAgICAgICAgICAgIHZhciB2aWRBWE9iamVjdDsKICAgICAgICAgICAgIHZhciBpbmRlbnRM
ZXZlbCA9IDA7CiAKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGluZGVudChjb3VudCkKICAg
ICAgICAgICAgIHsKQEAgLTYyLDggKzU5LDggQEAKICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBkdW1wQ2hpbGRyZW4odmlkQVhPYmplY3QpOwogCi0gICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIGV2ZW50LnR5cGUgPT0gJ2NhbnBsYXl0aHJvdWdoJykKLSAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7ICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAnY2FucGxheXRocm91Z2gnKQorICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+
CiAgICAgPC9oZWFkPgpAQCAtNzcsNiArNzQsNyBAQAogICAgIAogICAgIDxkaXYgaWQ9Y29uc29s
ZT48L2Rpdj4KIAorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tZW51LWxpc3Qtc2VuZHMtY2hhbmdlLW5vdGlmaWNhdGlvbi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWVudS1saXN0LXNlbmRzLWNoYW5nZS1u
b3RpZmljYXRpb24uaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tZW51LWxpc3Qtc2VuZHMtY2hhbmdlLW5vdGlmaWNhdGlvbi5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDkgKzEsOCBAQAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIGEgbWVudSBsaXN0
IHNlbmRzIGEgbm90aWZpY2F0aW9uIGV2ZW4gd2hlbiBpdCdzIG5vdCBwb3BwZWQgb3Blbi4iKTsK
QEAgLTE1LDkgKzE0LDcgQEAKICAgICAgICAgZnVuY3Rpb24gbGlzdGVuZXIobm90aWZpY2F0aW9u
KSB7CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVy
VGV4dCArPSAiR290IG5vdGlmaWNhdGlvbjogIiArIG5vdGlmaWNhdGlvbiArICJcbiI7CiAgICAg
ICAgICAgICBhY2Nlc3NpYmxlTWVudWxpc3QucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIobGlz
dGVuZXIpOwotICAgICAgICAgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNU
IENPTVBMRVRFPC9zcGFuPicpOwotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CiAgICAgICAgIH0KICAgICAgICAgYWNjZXNzaWJsZU1lbnVsaXN0LmFkZE5v
dGlmaWNhdGlvbkxpc3RlbmVyKGxpc3RlbmVyKTsKIApAQCAtMjYsOCArMjMsNyBAQAogCiAgICAg
ICAgIC8vIE1ha2UgdGhlIHRlc3QgZmluaXNoIHF1aWNrbHkgd2hldGhlciB3ZSBnZXQgdGhlIG5v
dGlmaWNhdGlvbiBvciBub3QuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAg
ICAgIH0sIDEwKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbXVs
dGlzZWxlY3QtbGlzdC1yZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L211bHRpc2VsZWN0LWxpc3QtcmVwb3J0cy1hY3RpdmUt
b3B0aW9uLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbXVsdGlzZWxlY3QtbGlzdC1yZXBvcnRzLWFjdGl2ZS1vcHRpb24uaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw5ICsxLDggQEAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgICAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyB0aGF0IG5hdmlnYXRpbmcgaW4gYSBtdWx0aXNlbGVjdCBsaXN0IHVw
ZGF0ZXMgc2VsZWN0aW9uIGFuZCB0aGUgYWN0aXZlIHNlbGVjdGVkIG9wdGlvbiBhbmQgc2VuZHMg
YSBub3RpZmljYXRpb24uIik7CkBAIC01NSwxMSArNTQsOSBAQAogCiAgICAgICAgIC8vIE1ha2Ug
dGhlIHRlc3QgZmluaXNoIHF1aWNrbHkgd2hldGhlciB3ZSBnZXQgdGhlIG5vdGlmaWNhdGlvbiBv
ciBub3QuCiAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicp
OwogICAgICAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKICAgICAg
ICAgICAgICAgICBhY2Nlc3NpYmxlTWVudWxpc3QucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KTsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
ICAgICB9LCAxMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bh
cmFncmFwaC13aXRoLWxpbmVicmVha3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L3BhcmFncmFwaC13aXRoLWxpbmVicmVha3MuaHRtbAkocmV2aXNpb24gMjE3
MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXJhZ3JhcGgtd2l0aC1saW5lYnJl
YWtzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiA8aHRtbD4KIDxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiAKQEAgLTIyLDggKzIyLDYgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgbGluZWJyZWFrcyBleHBsaWNpdGx5IHNldCBieSB0aGUgYXV0aG9yIGFyZSBwcm9wZXJseSBl
eHBvc2VkIHRvIEFUcy4iKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotCiAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsKIAogICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTsKQEAgLTQxLDggKzM5LDUgQEAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAgIH0KIH0KIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0tbmFtZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0tbmFtZS5odG1sCShy
ZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5h
bWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMSwxNSBAQAogPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGlkPSJi
b2R5Ij4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBqdXN0IHByaW50cyB0aGUgbmFtZSBv
ZiB0aGUgY3VycmVudCBwbGF0Zm9ybS4iKTsKLWlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0KLSAgZGVidWcoIlBsYXRmb3JtIG5hbWU6ICIgKyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5w
bGF0Zm9ybU5hbWUpOwotfQoraWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikKKyAgICBkZWJ1ZygiUGxhdGZvcm0gbmFtZTogIiArIGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLnBsYXRmb3JtTmFtZSk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJl
cnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1
dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSw5ICsxLDUgQEAKIDxodG1sPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KICAgICAK
ICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KQEAgLTg5LDYgKzg1LDUgQEAKICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRk
ZW4iOwogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi10aXRsZS1sYWJlbC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLXRpdGxlLWxh
YmVsLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
cmFkaW8tYnV0dG9uLXRpdGxlLWxhYmVsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEs
NyBAQAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0PgogPGJvZHk+CiAKIDxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpAQCAtNjIsOCArNTgsNSBAQAogCiAgICAgICAgIH0KICAg
ICA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotCiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1zdGF0ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXN0YXRlcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXN0YXRl
cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNCArOSw3IEBAIFBBU1MgYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW0KIFBBU1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDEpLmlzU2VsZWN0ZWQgaXMgZmFsc2UKIFBB
U1MgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDIp
LmlzU2VsZWN0YWJsZSBpcyBmYWxzZQogUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1
c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoMikuaXNTZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXN0YXRlcy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXN0YXRlcy5odG1sCShyZXZpc2lvbiAy
MTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1zdGF0ZXMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxodG1sPgogPGhlYWQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIAog
PGJvZHkgaWQ9ImJvZHkiPgpAQCAtMjEsOCArMjEsNiBAQAogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm5vdERSVCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
IAotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQogICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2VsZWN0RWxlbWVudCIpLmZvY3VzKCk7CiAKICAgICAgICAgc2hvdWxk
QmVUcnVlKCdhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5pc011bHRpU2Vs
ZWN0YWJsZScpOwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zcGluYnV0dG9uLXZh
bHVlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zcGluYnV0
dG9uLXZhbHVlLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvc3BpbmJ1dHRvbi12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogPCFET0NUWVBFIEhUTUw+CiA8aHRtbD4KIDxib2R5PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgogCiA8YnV0dG9uIGlkPSJ1bnRpdGxlZCI+PC9idXR0b24+
CiAKQEAgLTE4LDggKzE4LDYgQEAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYSBzcGlu
IGJ1dHRvbiBzdXBwb3J0cyByYW5nZSB2YWx1ZSBhdHRyaWJ1dGVzLiIpCiAKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICB3aW5k
b3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KICAgICBmdW5jdGlvbiBlbmRzV2l0aChzdHIs
IHN1ZmZpeCkgewogICAgICAgICBzdHIgPSAnJyArIHN0cjsKICAgICAgICAgcmV0dXJuIHN0ci5z
dWJzdHIoc3RyLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpID09IHN1ZmZpeDsKQEAgLTQ1LDcgKzQz
LDUgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYgogfQogCiA8L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9z
dmctYm91bmRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9z
dmctYm91bmRzLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvc3ZnLWJvdW5kcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFE
T0NUWVBFIEhUTUw+CiA8aHRtbD4KIDxib2R5PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAKIDxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9InBvc2l0
aW9uOiByZWxhdGl2ZTsgdG9wOiAxMDBweDsgbGVmdDogNjAwcHg7IHdpZHRoOjQwMHB4OyBoZWln
aHQ6IDQwMHB4OyIgcm9sZT0iZ3JvdXAiIHRhYmluZGV4PSIwIj4KQEAgLTM2LDggKzM2LDYgQEAg
ZnVuY3Rpb24gcGFnZVkoZWxlbWVudCkgewogfQogCiBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgd2luZG93LnRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotIAogICAgIHZhciBjb250YWluZXIgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInN2Z3Jvb3QiKTsKIAogICAgIHZhciB4ID0gcGFn
ZVgoY29udGFpbmVyKSAtIDE7CkBAIC05MSw4ICs4OSw2IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuYWNjZXNzaWIKIH0KIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KIApJ
bmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxsLWZvci1jb2x1bW4tYW5k
LXJvdy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
dGFibGUtY2VsbC1mb3ItY29sdW1uLWFuZC1yb3ctY3Jhc2guaHRtbAkocmV2aXNpb24gMjE3MTI3
KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxsLWZvci1jb2x1bW4tYW5k
LXJvdy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIAogPGJv
ZHkgaWQ9ImJvZHkiPgpAQCAtMTYsOCArMTYsNiBAQAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
dGhhdCByZXRyaWV2aW5nIGEgY2VsbCBmb3IgYSB0YWJsZSBtdWx0aXBsZSB0aW1lcyBkb2Vzbid0
IGNyYXNoLiIpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0KICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewogICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuZm9jdXMoKTsKICAgICB2YXIgYXhCb2R5
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CkBAIC0zOSw3ICszNyw1
IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICB9CiB9CiA8L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxscy1yb2xl
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtY2Vs
bHMtcm9sZXMuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS90YWJsZS1jZWxscy1yb2xlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsNSBA
QAogPGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci0gIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KIDxib2R5PgogCiA8dGFibGUgaWQ9InRhYmxlMSI+CkluZGV4OiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXJvbGVzLWhpZXJhcmNoeS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtcm9sZXMtaGllcmFyY2h5
Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFi
bGUtcm9sZXMtaGllcmFyY2h5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzEsMTAgQEAK
IDxodG1sPgogPGhlYWQ+Ci0gIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgogICA8c2NyaXB0PgogICAgIHZhciB0YWJsZUFYT2JqZWN0OwogICAgIHZhciBpbmRl
bnRMZXZlbCA9IDA7CiAKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIH0KLQogICAgIGZ1bmN0aW9uIGluZGVudChjb3VudCkg
ewogICAgICAgdmFyIHNwYWNlcyA9ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiOwogICAgICAgcmV0dXJuIHNwYWNlcy5zdWJzdHIoMCwgY291
bnQpOwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS13aXRoLWFyaWEtcm9s
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0
aC1hcmlhLXJvbGUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS90YWJsZS13aXRoLWFyaWEtcm9sZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkg
KzEsNSBAQAogPGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLTwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxib2R5IGlkPSJib2R5Ij4KIAogPGRpdiBp
ZD0iY29udGVudCI+CkBAIC0yOCw2ICsyNCw1IEBACiAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29udGVudCIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgIH0K
ICAgICA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvdGV4dGFyZWEtaW5zZXJ0aW9uLXBvaW50LWxpbmUtbnVtYmVyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0YXJlYS1pbnNlcnRpb24tcG9pbnQt
bGluZS1udW1iZXIuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS90ZXh0YXJlYS1pbnNlcnRpb24tcG9pbnQtbGluZS1udW1iZXIuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw5ICsxLDUgQEAKIDxodG1sPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci08L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KICAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KICAgICA8dGV4dGFyZWEgbmFtZT0iYXJlYTEiIGlk
PSJhcmVhMSIgcm93cz0iNSIgY29scz0iNDAiPgpAQCAtNjEsNiArNTcsNSBAQCBsaW5lIDMKICAg
ICAgICAgICAgIHNob3VsZEJlKCJ0ZXh0YXJlYUFYVUlFbGVtZW50Lmluc2VydGlvblBvaW50TGlu
ZU51bWJlciIsICIwIik7CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2Vs
ZWN0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0
Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90ZXh0Ym94LXJvbGUtcmVwb3J0cy1zZWxlY3Rpb24uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQz4K
IDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIFRoaXMgdGVzdHMgdGhhdCB0aGUgQVhTZWxlY3Rpb24gcHJv
cGVydHkgaXMgY29ycmVjdGx5IHJlcG9ydGVkIGZvciBub24tbmF0aXZlIHRleHQgYm94ZXMuPGJy
PgpAQCAtMzYsNyArMzYsNiBAQCBUaGlzIHRlc3RzIHRoYXQgdGhlIEFYU2VsZWN0aW9uIHByb3Bl
cnR5CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgICAgIHZhciBhcmlhVGV4dEJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh
cmlhVGV4dEJveCIpOwogICAgICAgICB2YXIgdGV4dExlbmd0aCA9IGFyaWFUZXh0Qm94LnRleHRD
b250ZW50Lmxlbmd0aDsKIApAQCAtNDksNyArNDgsNSBAQCBUaGlzIHRlc3RzIHRoYXQgdGhlIEFY
U2VsZWN0aW9uIHByb3BlcnR5CiAgICAgfQogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90aXRsZS11aS1lbGVtZW50LWNvcnJlY3Ru
ZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90aXRsZS11
aS1lbGVtZW50LWNvcnJlY3RuZXNzLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvdGl0bGUtdWktZWxlbWVudC1jb3JyZWN0bmVzcy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIEhUTUw+CiA8aHRtbD4KIDxib2R5
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogCiA8ZGl2IGlk
PSJjb250YWluZXIiPgogCkBAIC00NSw4ICs0NSw2IEBACiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IHRpdGxlVUlFbGVtZW50IHdvcmtzIGNvcnJlY3RseSBldmVuIHdoZW4gdGhpbmdzIGNo
YW5nZSBkeW5hbWljYWxseS4iKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
CiAgICAgZnVuY3Rpb24gaGFzVGl0bGVVSUVsZW1lbnQoYXhFbGVtZW50KSB7CiAgICAgICAgIHZh
ciBsYWJlbDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
ImxhYmVsMSIpOwogICAgICAgICB2YXIgdGl0bGVVSUVsZW1lbnQgPSBheEVsZW1lbnQudGl0bGVV
SUVsZW1lbnQoKTsKQEAgLTEwNyw3ICsxMDUsNSBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmFjY2Vzc2liCiB9CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Vua25vd24tcm9sZXMtbm90LWV4cG9zZWQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdW5rbm93bi1y
b2xlcy1ub3QtZXhwb3NlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvdW5rbm93bi1yb2xlcy1ub3QtZXhwb3NlZC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBAIFRoaXMgdGVzdHMgYWNjZXNzaWJpbGl0
eSBvYmplY3RzIHdpdGggcm8KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitQQVNTIGZp
bmRVbmtub3duQ2hpbGQoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQpID09
IG51bGwgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCi1QQVNTIGZpbmRVbmtub3duQ2hpbGQoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9j
dXNlZEVsZW1lbnQpID09IG51bGwgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L3Vua25vd24tcm9sZXMtbm90LWV4cG9zZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Vua25vd24tcm9sZXMtbm90LWV4cG9zZWQuaHRtbAkocmV2
aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS91bmtub3duLXJvbGVz
LW5vdC1leHBvc2VkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTIgKzEsOCBAQAogPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0K
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KIGZ1
bmN0aW9uIGZpbmRVbmtub3duQ2hpbGQoYWNjZXNzaWJpbGl0eU9iamVjdCkgewogICAgIGlmIChh
Y2Nlc3NpYmlsaXR5T2JqZWN0LnJvbGUgPT0gIkFYUm9sZTogQVhVbmtub3duIikKICAgICAgICAg
cmV0dXJuIGFjY2Vzc2liaWxpdHlPYmplY3Q7CkBAIC0zOSw2ICszNSw1IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKQogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgYWNjZXNzaWJpbGl0eSBvYmplY3RzIHdp
dGggcm9sZSAndW5rbm93bicgYXJlIG5vdCBiZWluZyBleHBvc2VkLiIpOwogCiA8L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL2FyaWEt
bGlzdGJveC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZ3RrL2FyaWEtbGlzdGJveC1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay9hcmlhLWxpc3Rib3gtY3Jhc2guaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNiArMSwxNCBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsK
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBzZWxlY3RpbmcgYW4gb3B0aW9uIGluIGFu
IEFSSUEgbGlzdGJveCBkb2Vzbid0IGNyYXNoLiIpOworICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAogICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQogICAgIC8vIFdlIGZvY3VzIG9u
IHRoZSBib2R5IGFuZCBnZXQgdGhlIGFzc29jaWF0ZWQgYWNjZXNzaWJpbGl0eQogICAgIC8vIG9i
amVjdCB0byBmb3JjZSB0aGUgY3JlYXRpb24gb2YgdGhlIGFjY2Vzc2liaWxpdHkgaGllcmFyY2h5
LgogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpCkBAIC0zMSw3ICsyOSw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgLy8gc2luY2UgaXQncyBzdXBwb3NlZCB0byBjcmFzaCBi
ZWNhdXNlIG9mIGEgbm90aWZpY2F0aW9uIGFib3V0IHRoZQogICAgLy8gc2VsZWN0aW9uIGNoYW5n
aW5nIGFuZCBzbyBpZiB3ZSBub3RpZnlEb25lKCkgbm93IGl0IHdvdWxkIGJlIHRvbwogICAgLy8g
c29vbiBhbmQgd2Ugd291bGQgc2tpcCBzdWNoIGVtaXNzaW9uLCBub3QgY3Jhc2hpbmcgYXQgYWxs
LgotICAgd2luZG93LnNldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwwKTsKKyAg
IHdpbmRvdy5zZXRUaW1lb3V0KGZpbmlzaEpTVGVzdCwgMCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVh
ZD4KQEAgLTQzLDcgKzQxLDUgQEAgZnVuY3Rpb24gdGVzdCgpCiAKIDxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW9zLXNpbXVsYXRvci9mb2N1cy1jaGFuZ2Ut
bm90aWZpY2F0aW9ucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvaW9zLXNpbXVsYXRvci9mb2N1cy1jaGFuZ2Utbm90aWZpY2F0aW9ucy5odG1sCShyZXZpc2lv
biAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvZm9j
dXMtY2hhbmdlLW5vdGlmaWNhdGlvbnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcg
QEAKIDxzY3JpcHQ+CiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7CiA8L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5IGlkPSJib2R5Ij4KIApAQCAtMjcsNyArMjcsNyBAQCB2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gZmFsc2U7CiAgICAgICAgICAgICAvLyBXZSBzaG91bGQgZ2V0IGEgdG90YWwgb2Yg
MiBmb2N1cyBjaGFuZ2VzLgogICAgICAgICAgICAgaWYgKGZvY3VzQ2hhbmdlQ291bnQgPT0gMikg
ewogICAgICAgICAgICAgICAgcm9vdEVsZW1lbnQucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KTsKLSAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQpAQCAtMzUsNyArMzUsNyBAQCB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7CiAgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewogICAgICAgICAvLyBNYWtlIHN1
cmUgQVggZ2V0cyB0dXJuZWQgb24uCiAgICAgICAgIHJvb3RFbGVtZW50ID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOwotICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCiAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHJvb3RFbGVtZW50LmFkZE5vdGlm
aWNhdGlvbkxpc3RlbmVyKGZvY3VzQ2FsbGJhY2spOwogICAgICAgICBpZiAoIWFkZGVkTm90aWZp
Y2F0aW9uKSB7CkBAIC01NCw3ICs1NCw1IEBAIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxz
ZTsKIAogICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBh
bmRlZC1ub3RpZmljYXRpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvYXJpYS1leHBhbmRlZC1ub3RpZmljYXRpb25zLmh0bWwJKHJldmlzaW9uIDIx
NzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90
aWZpY2F0aW9ucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5IGlkPSJib2R5Ij4KIApAQCAtNDIsMTUgKzQyLDEzIEBACiAgICAgICAgIGVsc2UgaWYg
KG5vdGlmeUNvdW50ID09IDMpIHsKICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bm90aWZ5TmFtZSIsICJBWFJvd0V4cGFuZGVkIik7CiAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwotICAgICAgICAgICAgdmFy
IHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICAg
ICAgICAgIHNjcmlwdEVsZW1lbnQuc3JjID0gIi4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qt
YXN5bmMuanMiOwotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHRF
bGVtZW50KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAgICAgICAg
IG5vdGlmeUNvdW50Kys7CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgewotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgIHZhciBkb21UcmVlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRyZWUwIik7CiAgICAgICAgIGRvbVRyZWUuZm9jdXMoKTsK
QEAgLTY4LDYgKzY2LDUgQEAKICAgICB9CiAKIDwvc2NyaXB0PgotCiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWxpc3Rib3gtc2VsZWN0
ZWRjaGlsZHJlbi1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9hcmlhLWxpc3Rib3gtc2VsZWN0ZWRjaGlsZHJlbi1jaGFuZ2UuaHRtbAkocmV2
aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXN0
Ym94LXNlbGVjdGVkY2hpbGRyZW4tY2hhbmdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyAr
MSw3IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8
aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgogPC9oZWFkPgogPGJvZHkgaWQ9ImJvZHkiPgogCkBAIC0yNywxMyArMjcsMTMgQEAK
ICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBnZXQgYSB0b3RhbCBvZiA0IGxpdmUgcmVnaW9uIGNo
YW5nZXMuCiAgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uQ291bnQgPT0gMikgewogICAgICAg
ICAgICAgICAgd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJlbW92ZU5vdGlmaWNhdGlv
bkxpc3RlbmVyKCk7Ci0gICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsK
LSAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGlz
dGJveCIpLmZvY3VzKCk7CiAgICAgICAgIGxpc3Rib3ggPSB3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CkBAIC00Nyw3ICs0Nyw1IEBACiAgICAgfQogCiA8L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvYXJpYS1saXZlcmVnaW9uLW9uLWltYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9uLW9uLWltYWdlLmh0bWwJKHJl
dmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2
ZXJlZ2lvbi1vbi1pbWFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5IGlkPSJib2R5Ij4KIApAQCAtMTgsMTIgKzE4LDEyIEBACiAgICAgZnVuY3Rp
b24gYXJpYUNhbGxiYWNrKG5vdGlmaWNhdGlvbikgewogICAgICAgICBpZiAobm90aWZpY2F0aW9u
ID09ICJBWExpdmVSZWdpb25DaGFuZ2VkIikgewogICAgICAgICAgICAgaW1hZ2UucmVtb3ZlTm90
aWZpY2F0aW9uTGlzdGVuZXIoKTsKLSAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAgICAgfQog
CiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOwogCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZSIpLmZvY3VzKCk7
CiAgICAgICAgIGltYWdlID0gd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OwpAQCAtMzYsNyArMzYsNSBAQAogICAgIH0KIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJl
Z2lvbnMtYWRkZWRlbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9ucy1hZGRlZGVsZW1lbnQuaHRtbAkocmV2aXNpb24g
MjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9u
cy1hZGRlZGVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keSBpZD0iYm9keSI+CiAKQEAgLTIzLDEyICsyMywxMiBAQAogICAgICAgICBpZiAo
bm90aWZpY2F0aW9uID09ICJBWExpdmVSZWdpb25DaGFuZ2VkIikgewogICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9ucyIpLmlubmVySFRNTCArPSAiU3VjY2Vz
c2Z1bGx5IHJlY2VpdmVkICIgKyBub3RpZmljYXRpb247CiAgICAgICAgICAgIGxpdmVSZWdpb24u
cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKLSAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfQog
ICAgIH0KIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGl2ZXJlZ2lv
biIpLmZvY3VzKCk7CiAgICAgICAgIGxpdmVSZWdpb24gPSB3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CkBAIC00MSw3ICs0MSw1IEBACiAgICAgfQogCiA8L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvYXJpYS1saXZlcmVnaW9ucy1jaGFuZ2VkYWx0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9ucy1jaGFuZ2VkYWx0Lmh0
bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Fy
aWEtbGl2ZXJlZ2lvbnMtY2hhbmdlZGFsdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEs
NyBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0
bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5IGlkPSJib2R5Ij4KIApAQCAtMjIsMTIgKzIyLDEyIEBACiAg
ICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYTGl2ZVJlZ2lvbkNoYW5nZWQiKSB7CiAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb25zIikuaW5uZXJIVE1M
ICs9ICJTdWNjZXNzZnVsbHkgcmVjZWl2ZWQgIiArIG5vdGlmaWNhdGlvbjsKICAgICAgICAgICAg
bGl2ZVJlZ2lvbkFsdC5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwotICAgICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgewotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJsaXZlcmVnaW9uIikuZm9jdXMoKTsKICAgICAgICAgbGl2ZVJlZ2lvbkFsdCA9IHdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKQEAgLTQwLDcgKzQwLDUg
QEAKICAgICB9CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWxpdmVyZWdpb25zLWNoYW5nZWR0ZXh0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVn
aW9ucy1jaGFuZ2VkdGV4dC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9hcmlhLWxpdmVyZWdpb25zLWNoYW5nZWR0ZXh0Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgaWQ9ImJvZHkiPgogCkBA
IC0yMiwxMiArMjIsMTIgQEAKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhMaXZlUmVn
aW9uQ2hhbmdlZCIpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlm
aWNhdGlvbnMiKS5pbm5lckhUTUwgKz0gIlN1Y2Nlc3NmdWxseSByZWNlaXZlZCAiICsgbm90aWZp
Y2F0aW9uOwogICAgICAgICAgICBsaXZlUmVnaW9uVGV4dC5yZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcigpOwotICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAg
IGxpdmVSZWdpb25UZXh0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJsaXZlcmVnaW9uIik7CiAKQEAgLTM5LDcgKzM5LDUgQEAKICAgICB9CiAKIDwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9hcmlhLWxpdmVyZWdpb25zLXJlbW92ZWRlbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9ucy1yZW1vdmVkZWxl
bWVudC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21hYy9hcmlhLWxpdmVyZWdpb25zLXJlbW92ZWRlbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgaWQ9ImJvZHkiPgogCkBAIC0yMywxMiAr
MjMsMTIgQEAKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhMaXZlUmVnaW9uQ2hhbmdl
ZCIpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbnMi
KS5pbm5lckhUTUwgKz0gIlN1Y2Nlc3NmdWxseSByZWNlaXZlZCAiICsgbm90aWZpY2F0aW9uOwog
ICAgICAgICAgICBsaXZlUmVnaW9uLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7Ci0gICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7Ci0gICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxpdmVyZWdpb24iKS5mb2N1cygpOwogICAgICAgICBsaXZlUmVnaW9uID0g
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwpAQCAtNDEsNyAr
NDEsNSBAQAogICAgIH0KIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2NvbWJvYm94LWFjdGl2ZWRlc2NlbmRhbnQtbm90
aWZpY2F0aW9ucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvY29tYm9ib3gtYWN0aXZlZGVzY2VuZGFudC1ub3RpZmljYXRpb25zLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvY29tYm9ib3gtYWN0aXZlZGVzY2VuZGFudC1ub3RpZmljYXRpb25zLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtOSw0ICs5LDcgQEAgUEFTUyBjb21iby5pc0VxdWFsKGFjY2Vzc2li
aWxpdHlDb250cm9sbAogVGhlIENvbWJvQm94IHNob3VsZCBzdGlsbCBiZSB0aGUgZm9jdXNlZCBl
bGVtZW50IGV2ZW4gYWZ0ZXIgdGhlIGFyaWEtYWN0aXZlZGVzY2VuZGFudCB3YXMgY2hhbmdlZC4K
IFBBU1MgY29tYm8uaXNFcXVhbChhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dCkgaXMgdHJ1ZQogUmVjZWl2ZWQgbm90aWZpY2F0aW9uOiBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApJ
bmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvY29tYm9ib3gtYWN0aXZlZGVzY2Vu
ZGFudC1ub3RpZmljYXRpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvY29tYm9ib3gtYWN0aXZlZGVzY2VuZGFudC1ub3RpZmljYXRpb25zLmh0bWwJ
KHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2NvbWJv
Ym94LWFjdGl2ZWRlc2NlbmRhbnQtbm90aWZpY2F0aW9ucy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDPgogPGh0bWw+CiA8aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgogCkBAIC0zMSw3ICszMSw3IEBACiAgICAgICAgICAgIGRlYnVnKCJSZWNlaXZlZCBu
b3RpZmljYXRpb246ICIgKyBub3RpZmljYXRpb24pOyAKICAgICAgICAgICAgaWYgKG5vdGlmaWNh
dGlvbiA9PSAiQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCIpIHsKICAgICAgICAgICAgICAgICBj
b21iby5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwotICAgICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKICAgICAgICAgICAgfQogICAgICAgICB9KTsKIApAQCAtNDMsNyArNDMsNSBAQAogICAgIH0K
IAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xl
YXJpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmct
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9mb2N1cy1zZXR0aW5nLXNlbGVjdGlvbi1zeW5jcm9uaXppbmctbm90LWNsZWFyaW5n
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAsOCArMTAsOCBAQCBQQVNTIGFkZGVk
Tm90aWZpY2F0aW9uIGlzIHRydWUKIFBBU1MgYXhUZXh0U3RhdGVTeW5jT25lIGlzIHVuZGVmaW5l
ZAogUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIjEi
KS5pc0ZvY3VzYWJsZSBpcyB0cnVlCiBQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3Vz
ZWRFbGVtZW50LmlzRXF1YWwoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCIxIikpIGlzIHRydWUKK1BBU1MgYXhUZXh0U3RhdGVTeW5jVHdvIGlzIHVuZGVmaW5l
ZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1QQVNT
IGF4VGV4dFN0YXRlU3luY1R3byBpcyB1bmRlZmluZWQKIApJbmRleDogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvZm9jdXMtc2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1j
bGVhcmluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L2ZvY3VzLXNldHRpbmctc2VsZWN0aW9uLXN5bmNyb25pemluZy1ub3QtY2xlYXJpbmcuaHRtbAko
cmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZm9jdXMt
c2V0dGluZy1zZWxlY3Rpb24tc3luY3Jvbml6aW5nLW5vdC1jbGVhcmluZy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGlkPSJib2R5Ij4KIApAQCAt
NTUsMTIgKzU1LDEyIEBACiAgICAgICAgIH0KICAgICAgICAgaWYgKHNlbGVjdENvdW50ID09IDIg
JiYgZm9jdXNDb3VudCA9PSAzKSB7CiAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNh
dGlvbkxpc3RlbmVyKCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIHRlc3RS
dW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIs
IDEpOwogCiAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNj
ZXNzaWJpbGl0eSh0cnVlKTsKQEAgLTc0LDcgKzc0LDUgQEAKICAgICB9CiAKIDwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9o
dG1sLXNsaWRlci1pbmRpY2F0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L21hYy9odG1sLXNsaWRlci1pbmRpY2F0b3IuaHRtbAkocmV2aXNpb24gMjE3MTI3
KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaHRtbC1zbGlkZXItaW5kaWNhdG9y
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiA8aHRtbD4KIDxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHkgaWQ9ImJvZHkiPgogCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogICAgICAgICBpZiAodmFs
dWVDaGFuZ2VDb3VudCA9PSAyKSB7CiAgICAgICAgICAgIHJhbmdlLnJlbW92ZU5vdGlmaWNhdGlv
bkxpc3RlbmVyKCk7Ci0gICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJhbmdlMSIpLmZvY3VzKCk7CiAgICAgICAg
IHJhbmdlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CkBAIC02Myw3
ICs2Myw1IEBACiAgICAgfQogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcx
MjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnB1dC1yZXBsYWNldmFsdWUt
dXNlcmluZm8tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDkgKzUsNiBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogUEFTUyBhZGRlZE5vdGlm
aWNhdGlvbiBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKIFBBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKIFBBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgog
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4
dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKQEAgLTE3LDQgKzE0LDcgQEAgUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVgogUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdAogUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1b
IkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIiAiCiBQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlw
ZUluc2VydAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CiAKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2lucHV0LXJlcGxhY2V2YWx1
ZS11c2VyaW5mby5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisr
KyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmlu
Zm8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxi
b2R5IGlkPSJib2R5Ij4KQEAgLTQ3LDcgKzQ3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKIAogICAgICAgICAg
ICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICB9CkBAIC02NCw3ICs2NCw3IEBACiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKIAogICAgICAgICBpZiAod2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CiAKICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNj
ZXNzaWJpbGl0eSh0cnVlKTsKIApAQCAtNzcsNyArNzcsNSBAQAogICAgICAgICAgICAgc2V0c2Vj
dXJldmFsdWUoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgotCi0gICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvb3JkZXJlZC10ZXh0bWFy
a2VyLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L21hYy9vcmRlcmVkLXRleHRtYXJrZXItY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9vcmRlcmVkLXRleHRt
YXJrZXItY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDQgKzQsNyBAQCBU
aGlzIHRlc3RzIHRoYXQgY29tcGFyaW5nIHRleHQgbWFya2VycyB0CiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL29yZGVyZWQtdGV4
dG1hcmtlci1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL29yZGVyZWQtdGV4dG1hcmtlci1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisr
KyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9vcmRlcmVkLXRleHRtYXJrZXItY3Jhc2gu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBpZD0i
Ym9keSIgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCk7JywgMSkiPgorPGJvZHkgaWQ9ImJv
ZHkiIG9ubG9hZD0icnVuVGVzdCgpIj4KIAogPGRpdiBpZD0iY29udGVudDEiPgogPGlmcmFtZSBz
cmM9ImRhdGE6dGV4dC9odG1sLDxib2R5PjxkaXY+aGVsbG88L2Rpdj4iPjwvaWZyYW1lPgpAQCAt
MTUsOSArMTUsNyBAQAogCiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBjb21wYXJp
bmcgdGV4dCBtYXJrZXJzIHRoYXQgaGF2ZSBubyBjb21tb24gdHJlZSBzY29wZSB3b24ndCBjcmFz
aCIpOwogCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlciAmJiB3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0gICAg
fQorICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
IApAQCAtMzgsMTIgKzM2LDEwIEBACiAgICAgICAgIC8vIEFzayBmb3IgdGhlIHRleHQgbWFya2Vy
IHJhbmdlIHdpdGggdGhlIG1hcmtlcnMgaW4gYSBkaWZmZXJlbnQgdHJlZS4KICAgICAgICAgLy8g
VGhpcyBzaG91bGQgTk9UIGNyYXNoIQogICAgICAgICB2YXIgcmFuZ2UgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCkudGV4dE1hcmtlclJhbmdlRm9y
TWFya2VycyhtYXJrZXIxLCBtYXJrZXIyKTsKLSAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIAogPC9zY3JpcHQ+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3NlYXJjaC13aXRoLWZyYW1lcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VhcmNoLXdpdGgtZnJhbWVzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VhcmNoLXdp
dGgtZnJhbWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDYgQEAgVGhp
cyB0ZXN0cyB3aGV0aGVyIHNlYXJjaGluZyB3b3JrcyB0byBmaQogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQogUEFTUyByZXN1bHRFbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogQVhCdXR0b24nCiBQQVNT
IHJlc3VsdEVsZW1lbnQudGl0bGUgaXMgJ0FYVGl0bGU6IGJ1dHRvbjEnCiBQQVNTIHJlc3VsdEVs
ZW1lbnQucm9sZSBpcyAnQVhSb2xlOiBBWEJ1dHRvbicKQEAgLTIxLDQgKzE4LDcgQEAgUEFTUyBy
ZXN1bHRFbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogQVhXZQogUEFTUyByZXN1bHRFbGVtZW50LmRl
c2NyaXB0aW9uIGlzICdBWERlc2NyaXB0aW9uOiBmcmFtZTFhJwogUEFTUyByZXN1bHRFbGVtZW50
LnJvbGUgaXMgJ0FYUm9sZTogQVhXZWJBcmVhJwogUEFTUyByZXN1bHRFbGVtZW50LmRlc2NyaXB0
aW9uIGlzICdBWERlc2NyaXB0aW9uOiBmcmFtZTInCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9tYWMvc2VhcmNoLXdpdGgtZnJhbWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9tYWMvc2VhcmNoLXdpdGgtZnJhbWVzLmh0bWwJKHJldmlzaW9uIDIxNzEy
NykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlYXJjaC13aXRoLWZyYW1lcy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0PgotdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBpZD0iYm9k
eSI+CiAKQEAgLTE2LDcgKzEzLDcgQEAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOwog
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci0gICAgd2luZG93LnRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8g
V2UgaGF2ZSB0byBwbGF5IHNvbWUgZ2FtZXMgdG8gZ2V0IHRoZXNlIGZyYW1lcyB0byBsb2FkIHRo
ZWlyIHNvdXJjZXMgaW4gYSB0aW1lbHkgZmFzaGlvbi4KICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZnJhbWUxIikuc3JjID0gImRhdGE6dGV4dC9odG1sLDxib2R5IGlkPSdib2R5MSc+PGJ1
dHRvbiBpZD1idXR0b24xPmJ1dHRvbjE8L2J1dHRvbj48QlI+PEJSPjxCUj48L2JvZHk+IjsKQEAg
LTExMiwxMSArMTA5LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9CiAKICAgICBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1ib3VuZGFy
eS11c2VyaW5mby5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
bWFjL3NlbGVjdGlvbi1ib3VuZGFyeS11c2VyaW5mby5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisr
KyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tYm91bmRhcnktdXNlcmlu
Zm8uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBp
ZD0iYm9keSI+CiAKQEAgLTE0OCwxMyArMTQ4LDEzIEBACiAgICAgICAgICAgICAgICAgc2hvdWxk
QmVSZXN1bHRzKHRydWUpOwogCiAgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmlj
YXRpb25MaXN0ZW5lcigpOwotICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIpIHsKLSAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CiAKQEAgLTE3OSw3ICsxNzksNSBA
QAogICAgIH0KIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBpZD0iYm9keSI+CiAKQEAgLTE4MCwxMyAr
MTgwLDEzIEBACiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZCIpOwogCiAgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcigpOwotICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVF
bmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CiAKQEAgLTIxMSw3ICsyMTEsNSBAQAogICAgIH0K
IAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3NlbGVjdGlvbi1lbGVtZW50LXRhYmJpbmctdG8tbGluay5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdGlvbi1lbGVtZW50
LXRhYmJpbmctdG8tbGluay5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24tZWxlbWVudC10YWJiaW5nLXRvLWxpbmsuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBpZD0iYm9keSI+
CiAKQEAgLTQ4LDEzICs0OCwxMyBAQAogICAgICAgICAgICAgICAgIGxpbmtPbmUgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIm9uZSIpOwogICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJhbmNlc3RvcldpdGhSb2xlKGNoYW5nZUVsZW1lbnRUd28sIFwiQVhS
b2xlOiBBWExpbmtcIikuaXNFcXVhbChsaW5rT25lKSIsICJ0cnVlIik7CiAgICAgICAgICAgICAg
ICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwotICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIHRlc3RSdW5uZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOwogCiAg
ICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0
eSh0cnVlKTsKQEAgLTcyLDcgKzcyLDUgQEAKICAgICB9CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEt
dGV4dGJveC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgaWQ9ImJvZHkiPgog
CkBAIC0yMiw3ICsyMiw3IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIGlmIChub3RpZmljYXRp
b24gPT0gIkFYVmFsdWVDaGFuZ2VkIikgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibm90aWZpY2F0aW9ucyIpLmlubmVySFRNTCArPSAiU3VjY2Vzc2Z1bGx5IHJlY2VpdmVk
ICIgKyBub3RpZmljYXRpb24gKyAiPGJyPiI7CiAgICAgICAgICAgIGF4VGV4dGJveC5yZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lcigpOwotICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAgICAgICAg
IGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFuZ2VkIikgewogICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9ucyIpLmlubmVySFRN
TCArPSAiU3VjY2Vzc2Z1bGx5IHJlY2VpdmVkICIgKyBub3RpZmljYXRpb24gKyAiPGJyPiI7CkBA
IC0zMCw3ICszMCw3IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgIHRl
eHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwogICAgICAgICB0ZXh0
Ym94LmZvY3VzKCk7CkBAIC01Miw3ICs1Miw1IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgfQogCiA8
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvc3RhbGUtdGV4dG1hcmtlci1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc3RhbGUtdGV4dG1hcmtlci1jcmFzaC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3N0YWxlLXRleHRtYXJrZXItY3Jhc2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC03LDQgKzcsNyBAQCBUZXh0IG1hcmtlciAxIGlzIHZhbGlkOiB0cnVlCiBUZXh0IG1hcmtl
ciAyIGlzIHZhbGlkOiB0cnVlCiBUZXh0IG1hcmtlciAxIGlzIHZhbGlkOiBmYWxzZQogVGV4dCBt
YXJrZXIgMiBpcyB2YWxpZDogZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9z
dGFsZS10ZXh0bWFya2VyLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvc3RhbGUtdGV4dG1hcmtlci1jcmFzaC5odG1sCShyZXZpc2lvbiAyMTcx
MjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zdGFsZS10ZXh0bWFya2VyLWNy
YXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkg
aWQ9ImJvZHkiIG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpOycsIDEpIj4KIApAQCAtMTcs
OSArMTcsNyBAQAogCiAgICAgdmFyIGNhY2hlZE1hcmtlcjEgPSAwOwogICAgIHZhciBjYWNoZWRN
YXJrZXIyID0gMDsKLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyICYmIHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LSAgICB9CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICBmdW5jdGlvbiBydW5UZXN0
KCkgewogCkBAIC01MiwxMiArNTAsOSBAQAogICAgICAgICB2YXIgaW5kZXgyID0gY29uc29sZS5p
bmRleEZvclRleHRNYXJrZXIoY2FjaGVkTWFya2VyMik7CiAgICAgICAgIGRlYnVnKCJUZXh0IG1h
cmtlciAyIGlzIHZhbGlkOiAiICsgY29uc29sZS5pc1RleHRNYXJrZXJWYWxpZChjYWNoZWRNYXJr
ZXIyKSk7CiAKLSAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90ZXh0Ym94LXJvbGUtcmVwb3J0
cy1ub3RpZmljYXRpb25zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21hYy90ZXh0Ym94LXJvbGUtcmVwb3J0cy1ub3RpZmljYXRpb25zLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvdGV4dGJveC1yb2xlLXJlcG9ydHMtbm90aWZpY2F0aW9ucy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNiArMSwxMyBAQAogVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWFZhbHVlQ2hh
bmdlZCBub3RpZmljYXRpb24gaXMgY29ycmVjdGx5IHJlcG9ydGVkIGZvciBub24tbmF0aXZlIHRl
eHQgYm94ZXMgd2hlbiBjb250ZW50IGlzIGNoYW5nZWQuCiBjaGFuZ2VkIGlubmVyVGV4dAorCisK
KworCiBTdWNjZXNzZnVsbHkgcmVjZWl2ZWQgQVhWYWx1ZUNoYW5nZWQuCiBTdWNjZXNzZnVsbHkg
cmVjZWl2ZWQgQVhWYWx1ZUNoYW5nZWQuCiBTdWNjZXNzZnVsbHkgcmVjZWl2ZWQgQVhWYWx1ZUNo
YW5nZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
IApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGV4dGJveC1yb2xlLXJlcG9y
dHMtbm90aWZpY2F0aW9ucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3RleHRib3gtcm9sZS1yZXBvcnRzLW5vdGlmaWNhdGlvbnMuaHRtbAkocmV2aXNp
b24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGV4dGJveC1yb2xl
LXJlcG9ydHMtbm90aWZpY2F0aW9ucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIwICsxLDE3
IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUM+Cis8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keT4KLVRoaXMgdGVzdHMgdGhhdCB0aGUgQVhWYWx1ZUNoYW5nZWQgbm90aWZpY2F0
aW9uIGlzIGNvcnJlY3RseSByZXBvcnRlZCBmb3Igbm9uLW5hdGl2ZSB0ZXh0IGJveGVzIHdoZW4g
Y29udGVudCBpcyBjaGFuZ2VkLjxicj4KKzxkaXY+VGhpcyB0ZXN0cyB0aGF0IHRoZSBBWFZhbHVl
Q2hhbmdlZCBub3RpZmljYXRpb24gaXMgY29ycmVjdGx5IHJlcG9ydGVkIGZvciBub24tbmF0aXZl
IHRleHQgYm94ZXMgd2hlbiBjb250ZW50IGlzIGNoYW5nZWQuPC9kaXY+CiA8ZGl2IHJvbGU9InRl
eHRib3giIGlkPSJhcmlhVGV4dEJveCIgYXJpYS1tdWx0aWxpbmU9ImZhbHNlIiB0YWJpbmRleD0i
MCI+U29tZSB0ZXh0IGluIGEgdGV4dGJveC48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIjwvZGl2
PgogPHNjcmlwdD4KICAgICB2YXIgdGV4dGJveEF4RWxlbWVudDsKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQorICAgICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIubG9nQWNjZXNzaWJpbGl0
eUV2ZW50cygpOwotICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAg
ICAgICAgdmFyIGFyaWFUZXh0Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFyaWFUZXh0
Qm94Iik7CiAgICAgICAgIGFyaWFUZXh0Qm94LmZvY3VzKCk7CkBAIC0yOCwxNyArMjUsMTUgQEAg
VGhpcyB0ZXN0cyB0aGF0IHRoZSBBWFZhbHVlQ2hhbmdlZCBub3RpZgogCiAgICAgZnVuY3Rpb24g
bG9nTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikgewogICAgICAgICBpZiAobm90aWZpY2F0aW9u
ID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJub3RpZmljYXRpb25zIikuaW5uZXJIVE1MICs9ICJTdWNjZXNzZnVsbHkgcmVjZWl2ZWQg
QVhWYWx1ZUNoYW5nZWQuPGJyPiI7CisgICAgICAgICAgICBkZWJ1ZygiU3VjY2Vzc2Z1bGx5IHJl
Y2VpdmVkIEFYVmFsdWVDaGFuZ2VkLiIpOwogICAgICAgICAgICAgcGVuZGluZ05vdGlmaWNhdGlv
bnMtLTsKICAgICAgICAgICAgIGlmIChwZW5kaW5nTm90aWZpY2F0aW9ucyA9PSAwKSB7CiAgICAg
ICAgICAgICAgICAgdGV4dGJveEF4RWxlbWVudC5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
OwotICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZvLWNvbnRlbnRl
ZGl0YWJsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFj
L3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZvLWNvbnRlbnRlZGl0YWJsZS5odG1s
CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy92YWx1
ZS1jaGFuZ2UvdmFsdWUtY2hhbmdlLXVzZXItaW5mby1jb250ZW50ZWRpdGFibGUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0idmFsdWUtY2hhbmdlLWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPC9oZWFkPgpAQCAtNjAsMTMg
KzYwLDEzIEBACiAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlSW5zZXJ0UmVwbGFjZSgiMiIs
ICIzIik7CiAKICAgICAgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25M
aXN0ZW5lcigpOwotICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAg
ICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmls
aXR5KHRydWUpOwogCkBAIC0xMDIsNyArMTAyLDUgQEAKICAgICAgICAgICAgIGV4ZWNSZWRvQ29t
bWFuZCgpOwogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+Ci0KLSAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1jaGFuZ2UvdmFs
dWUtY2hhbmdlLXVzZXItaW5mby10ZXh0YXJlYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZv
LXRleHRhcmVhLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZvLXRleHRhcmVhLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9InZhbHVlLWNoYW5nZS1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KQEAg
LTYyLDEzICs2MiwxMyBAQAogICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUluc2VydFJlcGxh
Y2UoIjUiLCAiNiIpOwogCiAgICAgICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZp
Y2F0aW9uTGlzdGVuZXIoKTsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAod2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CiAKICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNj
ZXNzaWJpbGl0eSh0cnVlKTsKIApAQCAtMTA0LDcgKzEwNCw1IEBACiAgICAgICAgICAgICBleGVj
UmVkb0NvbW1hbmQoKTsKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgotCi0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdmFsdWUtY2hh
bmdlL3ZhbHVlLWNoYW5nZS11c2VyLWluZm8tdGV4dGZpZWxkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdmFsdWUtY2hhbmdlL3ZhbHVlLWNoYW5nZS11
c2VyLWluZm8tdGV4dGZpZWxkLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZvLXRl
eHRmaWVsZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLSAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJ2YWx1ZS1jaGFuZ2UtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8
L2hlYWQ+CkBAIC02MCwxMyArNjAsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVJ
bnNlcnRSZXBsYWNlKCI4IiwgIjkiKTsKIAogICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJl
bW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy50
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgICAgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCiAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVF
bmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CiAKQEAgLTEwMCw3ICsxMDAsNSBAQAogICAgICAg
ICAgICAgZXhlY1JlZG9Db21tYW5kKCk7CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KLQotICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2lu
L2JzdHItZWxlbWVudHMtcm9sZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvd2luL2JzdHItZWxlbWVudHMtcm9sZS5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisr
KyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9ic3RyLWVsZW1lbnRzLXJvbGUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSw2IEBACiA8aHRtbD4KICAgICA8aGVhZD4KLSAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci0KLSAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgPC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPC9oZWFkPgogICAgIDxib2R5IGlkPSJib2R5Ij4KICAgICAgICAgPGFiYnI+
YWJicjwvYWJicj4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL2RldGFjaGVk
LW9iamVjdC1ub3RpZmljYXRpb24tY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L3dpbi9kZXRhY2hlZC1vYmplY3Qtbm90aWZpY2F0aW9uLWNyYXNoLmh0
bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL2Rl
dGFjaGVkLW9iamVjdC1ub3RpZmljYXRpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIDxodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIAogPGJvZHkgaWQ9ImJvZHki
PgpAQCAtMjIsMTMgKzIyLDEyIEBAIG5vdCBjYXVzZSBhIGNyYXNoLjwvcD4KICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBkZWJ1ZygiUEFTUzogRGlkbid0IGNyYXNoLiIpOwotICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAg
fQogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdERSVCIpLnN0eWxl
LnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKIAotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCiAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImF2bkVsZW1lbnQiKTsKICAgICAgICAgZWxlbWVudC5mb2N1cygpOwpJbmRleDogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vaGVhZGluZy1lbGVtZW50cy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL2hlYWRpbmctZWxlbWVudHMuaHRt
bAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vaGVh
ZGluZy1lbGVtZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDYgQEAKIDxodG1s
PgogICAgIDxoZWFkPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLQotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHkgaWQ9ImJv
ZHkiPgogICAgICAgICA8aDE+aDE8L2gxPgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS93aW4vaW1nLWFsdC1hdHRyaWJ1dGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L3dpbi9pbWctYWx0LWF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAyMTcxMjcp
CisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9pbWctYWx0LWF0dHJpYnV0ZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDYgQEAKIDxodG1sPgogICAgIDxoZWFkPgotICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLQotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICA8L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+CiAgICAgICAgIDxpbWcgYXJpYS1sYWJl
bGVkYnk9ImRlc2MiIGFsdD0iYWx0ZXJuYXRlIHRleHQiIHRpdGxlPSJ0aXRsZSI+CkluZGV4OiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9saW5rZWQtZWxlbWVudHMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9saW5rZWQtZWxlbWVudHMuaHRt
bAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vbGlu
a2VkLWVsZW1lbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEsNiBAQAogPGh0bWw+
CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotCi0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogICAgIDwvaGVhZD4KICAgICA8Ym9keSBpZD0iYm9k
eSI+CiAgICAgICAgIDxhIGlkPSJsaW5rMSIgaHJlZj0iaW1nLmh0bWwiIHRpdGxlPSJ0aXRsZSB0
ZXh0Ij48aW1nIHNyYz0iNDA0LnBuZyIgYWx0PSJhbHQgdGV4dCIgdGl0bGU9InRpdGxlIHRleHQi
PjwvYT4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL2xpc3QtaXRlbS1yb2xl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vbGlzdC1p
dGVtLXJvbGUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS93aW4vbGlzdC1pdGVtLXJvbGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSw2
IEBACiA8aHRtbD4KICAgICA8aGVhZD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0KLSAgICAgICAgPHNjcmlwdD4KLSAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPC9oZWFkPgogICAgIDxi
b2R5IGlkPSJib2R5Ij4KICAgICAgICAgPHA+CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3dpbi9saXN0LW1hcmtlci1yb2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS93aW4vbGlzdC1tYXJrZXItcm9sZS5odG1sCShyZXZpc2lvbiAyMTcxMjcp
CisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9saXN0LW1hcmtlci1yb2xlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEsNiBAQAogPGh0bWw+CiAgICAgPGhlYWQ+Ci0gICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotCi0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIDwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgogICAgIDwvaGVhZD4KICAgICA8Ym9keSBpZD0iYm9keSI+CiAgICAgICAgIDxwPgpJ
bmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vbGlzdC1yb2xlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vbGlzdC1yb2xlLmh0bWwJKHJl
dmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL2xpc3Qtcm9s
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDYgQEAKIDxodG1sPgogICAgIDxoZWFk
PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLQotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAg
ICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHkgaWQ9ImJvZHkiPgogICAgICAg
ICA8cD4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL211bHRpcGxlLXNlbGVj
dC1lbGVtZW50LXJvbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3dpbi9tdWx0aXBsZS1zZWxlY3QtZWxlbWVudC1yb2xlLmh0bWwJKHJldmlzaW9uIDIxNzEy
NykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL211bHRpcGxlLXNlbGVjdC1lbGVt
ZW50LXJvbGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxodG1sPgogPGhl
YWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIAogPGJvZHkgaWQ9ImJvZHkiPgpAQCAtMjIsOCArMjIsNiBAQCBlbGVt
ZW50cy48L3A+CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgewogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90RFJU
Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogCi0gICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotCiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RFbGVt
ZW50IikuZm9jdXMoKTsKICAgICAgICAgc2hvdWxkQmUoJ2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmZvY3VzZWRFbGVtZW50LnJvbGUnLCAnIkFYUm9sZTogQVhMaXN0IicpOwogICAgICAgICBzaG91
bGRCZSgnYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApLnJvbGUnLCAnIkFYUm9sZTogQVhTdGF0aWNUZXh0IicpOwpJbmRleDogTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS93aW4vb3B0aW9uLWVsZW1lbnQtcG9zaXRpb24tYW5kLXNpemUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9vcHRpb24tZWxlbWVu
dC1wb3NpdGlvbi1hbmQtc2l6ZS5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L3dpbi9vcHRpb24tZWxlbWVudC1wb3NpdGlvbi1hbmQtc2l6ZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+CiAKIDxoZWFkPgotICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiAKIDxib2R5IGlkPSJib2R5Ij4KQEAgLTIwLDggKzIwLDYgQEAKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CiAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3REUlQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhp
ZGRlbiI7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVjdEVsZW1lbnQiKS5mb2N1cygpOwogCiAgICAgICAg
IHZhciBvcHRpb25FbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1l
bnQuY2hpbGRBdEluZGV4KDApOwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4v
cGFyZW50LWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3dpbi9wYXJlbnQtZWxlbWVudC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9wYXJlbnQtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+CiAKIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5IGlk
PSJib2R5Ij4KQEAgLTIwLDggKzIwLDYgQEAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJub3REUlQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAKLSAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlbGVjdEVsZW1lbnQiKS5mb2N1cygpOwogCiAgICAgICAgIHZhciBvcHRpb25FbGVt
ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApOwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vc2VsZWN0LWVsZW1lbnQt
cm9sZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL3Nl
bGVjdC1lbGVtZW50LXJvbGUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS93aW4vc2VsZWN0LWVsZW1lbnQtcm9sZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDcgKzEsNyBAQAogPGh0bWw+CiAKIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5IGlk
PSJib2R5Ij4KQEAgLTIwLDggKzIwLDYgQEAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJub3REUlQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAKLSAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlbGVjdEVsZW1lbnQiKS5mb2N1cygpOwogCiAgICAgICAgIHNob3VsZEJlKCdhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5yb2xlJywgJyJBWFJvbGU6IEFYQ29t
Ym9Cb3giJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9zZWxlY3Rpb24t
YW5kLWZvY3VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93
aW4vc2VsZWN0aW9uLWFuZC1mb2N1cy5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9zZWxlY3Rpb24tYW5kLWZvY3VzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw2IEBACiA8aHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5
PgpAQCAtMzcsOCArMzcsNiBAQAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm5vdERSVCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKIAotICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCiAgICAgICAgIGRvY3VtZW50LmJvZHkuZm9j
dXMoKTsKICAgICAgICAgc2hvdWxkQmUoJ2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50LnJvbGUnLCAnImRvY3VtZW50IicpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L3dpbi9zaW5nbGUtc2VsZWN0LWNoaWxkcmVuLWNoYW5nZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dpbi9zaW5nbGUtc2VsZWN0LWNoaWxkcmVu
LWNoYW5nZWQuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS93aW4vc2luZ2xlLXNlbGVjdC1jaGlsZHJlbi1jaGFuZ2VkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNiArMSw2IEBACiA8aHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5IGlk
PSJib2R5Ij4KQEAgLTE5LDggKzE5LDYgQEAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJub3REUlQiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAKLSAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlbGVjdEVsZW1lbnQiKS5mb2N1cygpOwogICAgICAgICB2YXIgc2VsZWN0RWxlbWVu
dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwogICAgICAgICB2YXIg
bGlzdCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmNoaWxkQXRJbmRl
eCgwKTsKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL3NpbmdsZS1zZWxlY3Qt
Y2hpbGRyZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3dp
bi9zaW5nbGUtc2VsZWN0LWNoaWxkcmVuLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL3NpbmdsZS1zZWxlY3QtY2hpbGRyZW4uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxodG1sPgogPGhlYWQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIAog
PGJvZHkgaWQ9ImJvZHkiPgpAQCAtMzksOCArMzksNiBAQAogICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm5vdERSVCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
IAotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLQogICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2VsZWN0RWxlbWVudCIpLmZvY3VzKCk7CiAgICAgICAgIHZhciBzZWxl
Y3RFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CiAgICAg
ICAgIHNob3VsZEJlKCdzZWxlY3RFbGVtZW50LnJvbGUnLCAnIkFYUm9sZTogY29tYm8gYm94Iicp
OwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vdGV4dC1yb2xlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS93aW4vdGV4dC1yb2xlLmh0bWwJ
KHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvd2luL3RleHQt
cm9sZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDYgQEAKIDxodG1sPgogICAgIDxo
ZWFkPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLQotICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHkgaWQ9ImJvZHkiPgogICAg
ICAgICA8cD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0
eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZy
YW1lLXVwZGF0ZXMtYXh0cmVlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXVw
ZGF0ZXMtYXh0cmVlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTQsNiArMTQsNyBA
QCBpZnJhbWUuaXNFcXVhbChuZXdJZnJhbWUpOiB0cnVlCiBzY3JvbGxhcmVhLmlzRXF1YWwobmV3
U2Nyb2xsYXJlYSk6IHRydWUKIHN1YndlYmFyZWEuaXNFcXVhbChuZXdTdWJ3ZWJhcmVhKTogZmFs
c2UKIFBBU1MgbmV3U3Vid2ViYXJlYS5jaGlsZHJlbkNvdW50ID4gMCBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9hY2Nlc3NpYmlsaXR5L2RlbGV0aW5nLWlmcmFtZS1kZXN0
cm95cy1heGNhY2hlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL2FjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2Fj
aGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL2FjY2Vzc2liaWxpdHkvZGVsZXRpbmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBAIFBBU1Mgcm9vdC5p
c0VxdWFsKG5ld1Jvb3QpIGlzIHRydWUKIFBBU1MgYm9keS5pc0VxdWFsKG5ld0JvZHkpIGlzIHRy
dWUKIFBBU1MgYmVmb3JlLmlzRXF1YWwobmV3QmVmb3JlKSBpcyB0cnVlCiBQQVNTIGFmdGVyLmlz
RXF1YWwobmV3QWZ0ZXIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9kZWxldGluZy1pZnJhbWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvZGVsZXRp
bmctaWZyYW1lLWRlc3Ryb3lzLWF4Y2FjaGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9kZWxldGluZy1pZnJh
bWUtZGVzdHJveXMtYXhjYWNoZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYg
KzQwLDcgQEAgUEFTUyByb290LmlzRXF1YWwobmV3Um9vdCkgaXMgdHJ1ZQogUEFTUyBib2R5Lmlz
RXF1YWwobmV3Qm9keSkgaXMgdHJ1ZQogUEFTUyBiZWZvcmUuaXNFcXVhbChuZXdCZWZvcmUpIGlz
IHRydWUKIFBBU1MgYWZ0ZXIuaXNFcXVhbChuZXdBZnRlcikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L21lZGlhLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L21lZGlh
LWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtOTIsNCArOTIsNyBAQCBTdGF0ZSBhdCAnY2FucGxheXRocm91Z2gnIGV2
ZW50OgogICAgICAgICAgICAgcm9sZTogQVhSb2xlOiBBWEJ1dHRvbgogCiAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxscy1yb2xlcy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
dGFibGUtY2VsbHMtcm9sZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS90YWJsZS1jZWxscy1yb2xlcy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1LDQgKzI1LDcgQEAgVGhlIHRhYmxlMiBjZWxs
IGF0ICgyLDApIGN1cnJlbnRseSBoYXMgcgogVGhlIHRhYmxlMiBjZWxsIGF0ICgxLDIpIGN1cnJl
bnRseSBoYXMgcm9sZSAgQVhSb2xlOiBBWENlbGwgLgogVGhlIHRhYmxlMiBjZWxsIGF0ICgyLDMp
IGN1cnJlbnRseSBoYXMgcm9sZSAgQVhSb2xlOiBBWENlbGwgLgogVGhlIHRhYmxlMiBjZWxsIGF0
ICgwLDIpIGN1cnJlbnRseSBoYXMgcm9sZSAgQVhSb2xlOiBBWENlbGwgLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3RhYmxlLXJvbGVzLWhpZXJhcmNoeS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvdGFibGUtcm9sZXMtaGllcmFyY2h5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdGFibGUtcm9sZXMtaGll
cmFyY2h5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODMsNCArODMsNyBAQCByb2xl
OiBBWFJvbGU6IEFYVGFibGUKICAgICAgICAgICAgIHJvbGU6IEFYUm9sZTogQVhTdGF0aWNUZXh0
CiAgICAgICAgIHJvbGU6IEFYUm9sZTogQVhDZWxsCiAgICAgICAgICAgICByb2xlOiBBWFJvbGU6
IEFYU3RhdGljVGV4dAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>