<?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>205417</bug_id>
          
          <creation_ts>2019-12-18 14:51:07 -0800</creation_ts>
          <short_desc>Resync web-platform-tests/beacon tests from upstream</short_desc>
          <delta_ts>2019-12-19 09:56:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600012</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-18 14:51:07 -0800</bug_when>
    <thetext>Resync web-platform-tests/beacon tests from upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600014</commentid>
    <comment_count>1</comment_count>
      <attachid>386010</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-18 14:52:23 -0800</bug_when>
    <thetext>Created attachment 386010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600130</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-12-18 20:58:49 -0800</bug_when>
    <thetext>The failure of imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window.html on iOS &amp; macOS WK2 seems real.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600188</commentid>
    <comment_count>3</comment_count>
      <attachid>386010</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-19 00:41:03 -0800</bug_when>
    <thetext>Comment on attachment 386010
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=386010&amp;action=review

&gt; LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window-expected.txt:21
&gt; +Blocked access to external URL http://www.localhost:8800/beacon/resources/beacon.py?cmd=store&amp;sid=5edb8afd-19c1-44c8-861c-546f9537bcca&amp;tid=SmallCORSContentTypeText-PREFLIGHT-ALLOW&amp;tidx=0&amp;origin=http://localhost:8800&amp;credentials=true&amp;preflightExpected=true

We should skip this test for now since it is using www.localhost.
We should then modify the test to replace domains[www] by {hosts[alt][]} so as to use 127.0.0.1 in our CI instead of www.localhost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600285</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-19 08:32:06 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 386010 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386010&amp;action=review
&gt; 
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/beacon/beacon-cors.sub.window-expected.txt:21
&gt; &gt; +Blocked access to external URL http://www.localhost:8800/beacon/resources/beacon.py?cmd=store&amp;sid=5edb8afd-19c1-44c8-861c-546f9537bcca&amp;tid=SmallCORSContentTypeText-PREFLIGHT-ALLOW&amp;tidx=0&amp;origin=http://localhost:8800&amp;credentials=true&amp;preflightExpected=true
&gt; 
&gt; We should skip this test for now since it is using www.localhost.
&gt; We should then modify the test to replace domains[www] by {hosts[alt][]} so
&gt; as to use 127.0.0.1 in our CI instead of www.localhost.

It seems the Blink import script takes care of this for them:
imported/w3c/web-platform-tests/service-workers/tools/blink-import.py

It would be good if our import script could do the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600303</commentid>
    <comment_count>5</comment_count>
      <attachid>386108</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-19 09:09:45 -0800</bug_when>
    <thetext>Created attachment 386108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600304</commentid>
    <comment_count>6</comment_count>
      <attachid>386108</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-19 09:11:06 -0800</bug_when>
    <thetext>Comment on attachment 386108
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=386108&amp;action=review

&gt; Tools/Scripts/webkitpy/w3c/test_converter.py:53
&gt; +    contents = contents.replace(&apos;{{domains[www]}}&apos;, &apos;{{hosts[alt][]}}&apos;)

I updated our import script to replace {{domains[www]}} with {{hosts[alt][]}} automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600338</commentid>
    <comment_count>7</comment_count>
      <attachid>386108</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-19 09:51:52 -0800</bug_when>
    <thetext>Comment on attachment 386108
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=386108&amp;action=review

&gt;&gt; Tools/Scripts/webkitpy/w3c/test_converter.py:53
&gt;&gt; +    contents = contents.replace(&apos;{{domains[www]}}&apos;, &apos;{{hosts[alt][]}}&apos;)
&gt; 
&gt; I updated our import script to replace {{domains[www]}} with {{hosts[alt][]}} automatically.

We should probably add a unit test for this in Tools/Scripts/webkitpy/w3c/test_converter_unittest.py.
Some tests will still not be converted properly as they might be using things like &apos;www&apos; + location.host, but this seems convenient and will fix many tests I believe.

I think we should still work on fixing these tests upstream instead of relying on this conversion.
Note also that this conversion is wrong in a few cases since some tests actually require www.localhost instead of 127.0.0.1.
We probably do not care since we do not have the infra to run these tests in WebKit CI.

&gt; Tools/Scripts/webkitpy/w3c/test_importer.py:449
&gt; +        folders_needing_file_rewriting = [&apos;web-platform-tests/&apos;, ]

Could remove the &apos;, &apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600339</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-19 09:55:45 -0800</bug_when>
    <thetext>Committed r253760: &lt;https://trac.webkit.org/changeset/253760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600340</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-19 09:56:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/58082541&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386010</attachid>
            <date>2019-12-18 14:52:23 -0800</date>
            <delta_ts>2019-12-19 09:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205417-20191218145222.patch</filename>
            <type>text/plain</type>
            <size>56240</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNzIyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA4ZWY2OGRkNmVkNjk3YzRkYjhiNzEyN2MzNWIzNjYwZDM0Zjg5ODFmLi42N2UzYmJjODVi
ZWIxODk2NDY2NDllYTAyMmZiYWI0MjBlNGYzYWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMi0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uIHRl
c3RzIGZyb20gdXBzdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uIHRlc3RzIGZyb20gdXBz
dHJlYW0gMzNkZTcwY2FmN2YwNzZlLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Jl
YWNvbi8qOiBVcGRhdGVkLgorCiAyMDE5LTEyLTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmViYXNlbGluZSBhbGwgc2VydmljZSB3b3Jr
ZXJzIHRlc3RzIGFuZCB1bnNraXAgMiB0aGF0IG5vIGxvbmdlciB0aW1lIG91dC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL01F
VEEueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFj
b24vTUVUQS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJkOTRlMzIwNjRjNzg1NTM2NjY0MjRlMWQwZWUzMGJj
YTQ5ODdmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL01FVEEueW1sCkBAIC0wLDAgKzEsMyBAQAorc3BlYzogaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL2JlYWNvbi8KK3N1Z2dlc3RlZF9yZXZpZXdlcnM6CisgIC0gaWdy
aWdvcmlrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi9PV05FUlMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2JlYWNvbi9PV05FUlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcx
OWViNjljZjUyYjI4ZDQwNWNlOWRiYTA3ZDljYWM1MjM5NzIzNjguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vT1dORVJTCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1AdG9kZHJlaWZzdGVjawotQGlncmlnb3JpawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvbW1vbi5zdWIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9i
ZWFjb24tY29tbW9uLnN1Yi5qcwppbmRleCAwYTM2MjgzYjI2Mzc5ZTE2Y2NmZDJjMzNjZjA1ZTAz
OTVkYzE4MzMxLi5hZTJmMTY5ZjI3MmU5ZWZiYmVhM2I3NDY0ZWE3N2MzNGZlNjVjNmUxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNv
bi9iZWFjb24tY29tbW9uLnN1Yi5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29tbW9uLnN1Yi5qcwpAQCAtMTM4LDMzICsx
MzgsMjMgQEAgZnVuY3Rpb24gaW5pdFNlc3Npb24odGVzdENhc2VzKSB7CiAvLyBTY2hlZHVsZXMg
YXN5bmNfdGVzdCdzIGZvciBlYWNoIG9mIHRoZSB0ZXN0IGNhc2VzLCB0cmVhdGluZyB0aGVtIGFz
IGEgc2luZ2xlIHNlc3Npb24sCiAvLyBhbmQgd2lyZXMgdXAgdGhlIGNvbnRpbnVlQWZ0ZXJTZW5k
aW5nQmVhY29uKCkgYW5kIHdhaXRGb3JSZXN1bHRzKCkgY2FsbHMuCiAvLyBUaGUgbWV0aG9kIGxv
b2tzIGZvciBzZXZlcmFsICJleHRlbnNpb24iIGZ1bmN0aW9ucyBpbiB0aGUgZ2xvYmFsIHNjb3Bl
OgotLy8gICAtIHNlbGYuYnVpbGRJZDogaWYgcHJlc2VudCwgY2FuIGNoYW5nZSB0aGUgZGlzcGxh
eSBuYW1lIG9mIGEgdGVzdC4KIC8vICAgLSBzZWxmLmJ1aWxkQmFzZVVybDogaWYgcHJlc2VudCwg
Y2FuIGNoYW5nZSB0aGUgYmFzZSBVUkwgb2YgYSBiZWFjb24gdGFyZ2V0IFVSTCAodGhpcwogLy8g
ICAgIGlzIHRoZSBzY2hlbWUsIGhvc3RuYW1lLCBhbmQgcG9ydCkuCiAvLyAgIC0gc2VsZi5idWls
ZFRhcmdldFVybDogaWYgcHJlc2VudCwgY2FuIG1vZGlmeSBhIGJlYWNvbiB0YXJnZXQgVVJMIChm
b3IgZXhhbXBsZSB3cmFwIGl0KS4KIC8vIFBhcmFtZXRlcnM6CiAvLyAgICAgdGVzdENhc2VzOiBB
biBhcnJheSBvZiB0ZXN0IGNhc2VzLgotZnVuY3Rpb24gcnVuVGVzdHModGVzdENhc2VzKSB7Ci0g
ICAgdmFyIHNlc3Npb24gPSBpbml0U2Vzc2lvbih0ZXN0Q2FzZXMpOworLy8gICAgIHNlbmREYXRh
IFtvcHRpb25hbF06IEEgZnVuY3Rpb24gdGhhdCBzZW5kcyB0aGUgYmVhY29uLgorZnVuY3Rpb24g
cnVuVGVzdHModGVzdENhc2VzLCBzZW5kRGF0YSA9IHNlbGYuc2VuZERhdGEpIHsKKyAgICBjb25z
dCBzZXNzaW9uID0gaW5pdFNlc3Npb24odGVzdENhc2VzKTsKIAogICAgIHRlc3RDYXNlcy5mb3JF
YWNoKGZ1bmN0aW9uKHRlc3RDYXNlLCB0ZXN0SW5kZXgpIHsKICAgICAgICAgLy8gTWFrZSBhIGNv
cHkgb2YgdGhlIHRlc3QgY2FzZSBhcyB3ZSdsbCBiZSBzdG9yaW5nIHNvbWUgbWV0YWRhdGEgb24g
aXQsCiAgICAgICAgIC8vIHN1Y2ggYXMgd2hpY2ggc2Vzc2lvbiBpdCBiZWxvbmdzIHRvLgotICAg
ICAgICB2YXIgdGVzdENhc2VDb3B5ID0gT2JqZWN0LmFzc2lnbih7IHNlc3Npb246IHNlc3Npb24g
fSwgdGVzdENhc2UpOworICAgICAgICBjb25zdCB0ZXN0Q2FzZUNvcHkgPSBPYmplY3QuYXNzaWdu
KHsgc2Vzc2lvbjogc2Vzc2lvbiB9LCB0ZXN0Q2FzZSk7CiAKLSAgICAgICAgLy8gRXh0ZW5zaW9u
IHBvaW50OiBnZW5lcmF0ZSB0aGUgdGVzdCBpZC4KLSAgICAgICAgdmFyIHRlc3RJZCA9IHRlc3RD
YXNlLmlkOwotICAgICAgICBpZiAoc2VsZi5idWlsZElkKSB7Ci0gICAgICAgICAgICB0ZXN0SWQg
PSBzZWxmLmJ1aWxkSWQodGVzdElkKTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0Q2FzZUNvcHku
b3JpZ0lkID0gdGVzdENhc2VDb3B5LmlkOwotICAgICAgICB0ZXN0Q2FzZUNvcHkuaWQgPSB0ZXN0
SWQ7CiAgICAgICAgIHRlc3RDYXNlQ29weS5pbmRleCA9IHRlc3RJbmRleDsKIAotICAgICAgICBz
ZXNzaW9uLmFkZCh0ZXN0Q2FzZUNvcHkpOwotCi0gICAgICAgIC8vIFNjaGVkdWxlIHRoZSBzZW5k
YmVhY29uIGluIGFuIGFzeW5jIHRlc3QuCi0gICAgICAgIGFzeW5jX3Rlc3QoZnVuY3Rpb24odGVz
dCkgeworICAgICAgICBhc3luY190ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgICAgICAvLyBTYXZl
IHRoZSB0ZXN0aGFybmVzcy5qcyAndGVzdCcgb2JqZWN0LCBzbyB0aGF0IHdlIG9ubHkgaGF2ZSBv
bmUgb2JqZWN0CiAgICAgICAgICAgICAvLyB0byBwYXNzIGFyb3VuZC4KICAgICAgICAgICAgIHRl
c3RDYXNlQ29weS50ZXN0ID0gdGVzdDsKQEAgLTE3NCwyMiArMTY0LDE1IEBAIGZ1bmN0aW9uIHJ1
blRlc3RzKHRlc3RDYXNlcykgewogICAgICAgICAgICAgaWYgKHNlbGYuYnVpbGRCYXNlVXJsKSB7
CiAgICAgICAgICAgICAgICAgYmFzZVVybCA9IHNlbGYuYnVpbGRCYXNlVXJsKGJhc2VVcmwpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIHRhcmdldFVybCA9IGAke2Jhc2VVcmx9L2Jl
YWNvbi9yZXNvdXJjZXMvYmVhY29uLnB5P2NtZD1zdG9yZSZzaWQ9JHtzZXNzaW9uLmlkfSZ0aWQ9
JHt0ZXN0SWR9JnRpZHg9JHt0ZXN0SW5kZXh9YDsKKyAgICAgICAgICAgIHZhciB0YXJnZXRVcmwg
PSBgJHtiYXNlVXJsfS9iZWFjb24vcmVzb3VyY2VzL2JlYWNvbi5weT9jbWQ9c3RvcmUmc2lkPSR7
c2Vzc2lvbi5pZH0mdGlkPSR7dGVzdENhc2VDb3B5LmlkfSZ0aWR4PSR7dGVzdEluZGV4fWA7CiAg
ICAgICAgICAgICBpZiAoc2VsZi5idWlsZFRhcmdldFVybCkgewogICAgICAgICAgICAgICAgIHRh
cmdldFVybCA9IHNlbGYuYnVpbGRUYXJnZXRVcmwodGFyZ2V0VXJsKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIC8vIEF0dGFjaCB0aGUgVVJMIHRvIHRoZSB0ZXN0IG9iamVjdCBmb3IgZGVi
dWdnaW5nIHB1cnBvc2VzLgogICAgICAgICAgICAgdGVzdENhc2VDb3B5LnVybCA9IHRhcmdldFVy
bDsKIAotICAgICAgICAgICAgLy8gRXh0ZW5zaW9uIHBvaW50OiBzZW5kIHRoZSBiZWFjb24gaW1t
ZWRpYXRlbHksIG9yIGRlZmVyLgotICAgICAgICAgICAgdmFyIHNlbmRGdW5jID0gdGVzdC5zdGVw
X2Z1bmMoZnVuY3Rpb24gc2VuZEltbWVkaWF0ZWx5KHRlc3RDYXNlKSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIHNlbmRSZXN1bHQgPSBzZW5kRGF0YSh0ZXN0Q2FzZSk7Ci0gICAgICAgICAgICAgICAg
Y29udGludWVBZnRlclNlbmRpbmdCZWFjb24oc2VuZFJlc3VsdCwgdGVzdENhc2UpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAoc2VsZi5zZW5kRnVuYykgewotICAgICAgICAgICAg
ICAgIHNlbmRGdW5jID0gdGVzdC5zdGVwX2Z1bmMoc2VsZi5zZW5kRnVuYyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBzZW5kRnVuYyh0ZXN0Q2FzZUNvcHkpOworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoc2VuZERhdGEodGVzdENhc2VDb3B5KSwgJ3NlbmRCZWFjb24gc2hvdWxkIHN1Y2Nl
ZWQnKTsKKyAgICAgICAgICAgIHdhaXRGb3JSZXN1bHQodGVzdENhc2VDb3B5KS50aGVuKCgpID0+
IHRlc3QuZG9uZSgpLCB0ZXN0LnN0ZXBfZnVuYygoZSkgPT4ge3Rocm93IGU7fSkpOwogICAgICAg
ICB9LCBgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMg
Zm9yIHZhcmlhbnQ6ICR7dGVzdENhc2VDb3B5LmlkfWApOwogICAgIH0pOwogfQpAQCAtMjAxLDE2
MSArMTg0LDU0IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKHRlc3RDYXNlcykgewogLy8gdGhlIHRlc3Qu
CiAvLyBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlICdzZW5kYmVhY29uKCknIGZ1bmN0aW9uIGNh
bGwsIHRydWUgb3IgZmFsc2UuCiBmdW5jdGlvbiBzZW5kRGF0YSh0ZXN0Q2FzZSkgewotICAgIHZh
ciBzZW50ID0gZmFsc2U7Ci0gICAgaWYgKHRlc3RDYXNlLmRhdGEpIHsKLSAgICAgICAgc2VudCA9
IHNlbGYubmF2aWdhdG9yLnNlbmRCZWFjb24odGVzdENhc2UudXJsLCB0ZXN0Q2FzZS5kYXRhKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBzZW50ID0gc2VsZi5uYXZpZ2F0b3Iuc2VuZEJlYWNvbih0
ZXN0Q2FzZS51cmwpCi0gICAgfQotICAgIHJldHVybiBzZW50OworICAgIHJldHVybiBzZWxmLm5h
dmlnYXRvci5zZW5kQmVhY29uKHRlc3RDYXNlLnVybCwgdGVzdENhc2UuZGF0YSk7CiB9CiAKLS8v
IENvbnRpbnVlcyBhIHNpbmdsZSB0ZXN0IGFmdGVyIHRoZSBiZWFjb24gaGFzIGJlZW4gc2VudCBm
b3IgdGhhdCB0ZXN0LgotLy8gV2lsbCB0cmlnZ2VyIHdhaXRGb3JSZXN1bHRzKCkgZm9yIHRoZSBz
ZXNzaW9uIGlmIHRoaXMgaXMgdGhlIGxhc3QgdGVzdAotLy8gaW4gdGhlIHNlc3Npb24gdG8gc2Vu
ZCBpdHMgYmVhY29uLgotLy8gQXNzdW1wdGlvbjogd2lsbCBiZSBjYWxsZWQgb24gdGhlIHRlc3Qn
cyBzdGVwX2Z1bmMgc28gdGhhdCBhc3NlcnQncyBkbwotLy8gbm90IGhhdmUgdG8gYmUgd3JhcHBl
ZC4KLWZ1bmN0aW9uIGNvbnRpbnVlQWZ0ZXJTZW5kaW5nQmVhY29uKHNlbmRSZXN1bHQsIHRlc3RD
YXNlKSB7Ci0gICAgdmFyIHNlc3Npb24gPSB0ZXN0Q2FzZS5zZXNzaW9uOwotCi0gICAgLy8gUmVj
YWNsdWxhdGUgdGhlIHNlbnQgdnMuIHRvdGFsIGNvdW50cy4KLSAgICBpZiAoc2VuZFJlc3VsdCkg
ewotICAgICAgICBzZXNzaW9uLnNlbnRDb3VudCsrOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNl
c3Npb24udG90YWxDb3VudC0tOwotICAgIH0KLQotICAgIC8vIElmIHRoaXMgd2FzIHRoZSBsYXN0
IHRlc3QgaW4gdGhlIHNlc3Npb24gdG8gc2VuZCBpdHMgYmVhY29uLCBzdGFydCBwb2xsaW5nIGZv
ciByZXN1bHRzLgotICAgIC8vIE5vdGUgdGhhdCB3ZSBzdGFydCBwb2xsaW5nIGV2ZW4gaWYganVz
dCBvbmUgdGVzdCBpbiB0aGUgc2Vzc2lvbiBzZW5kcyBzdWNjZXNzZnVsbHksCi0gICAgLy8gc28g
dGhhdCBpZiBhbnkgb2YgdGhlIG90aGVycyBmYWlsLCB3ZSBzdGlsbCBnZXQgcmVzdWx0cyBmcm9t
IHRoZSB0ZXN0cyB0aGF0IGRpZCBzZW5kLgotICAgIGlmIChzZXNzaW9uLnNlbnRDb3VudCA9PSBz
ZXNzaW9uLnRvdGFsQ291bnQpIHsKLSAgICAgICAgLy8gRXhpdCB0aGUgY3VycmVudCB0ZXN0J3Mg
ZXhlY3V0aW9uIGNvbnRleHQgaW4gb3JkZXIgdG8gcnVuIHRoZSBwb2xsCi0gICAgICAgIC8vIGxv
b3AgZnJvbSB0aGUgaGFybmVzcyBjb250ZXh0LgotICAgICAgICBzdGVwX3RpbWVvdXQod2FpdEZv
clJlc3VsdHMuYmluZCh0aGlzLCBzZXNzaW9uKSwgMCk7Ci0gICAgfQotCi0gICAgLy8gTm93IGZh
aWwgdGhpcyB0ZXN0IGlmIHRoZSBiZWFjb24gZGlkIG5vdCBzZW5kLiBJdCB3aWxsIGJlIGV4Y2x1
ZGVkIGZyb20gdGhlIHBvbGwKLSAgICAvLyBsb29wIGJlY2F1c2Ugb2YgdGhlIGNhbGN1bGF0aW9u
IGFkanVzdG1lbnQgYWJvdmUuCi0gICAgYXNzZXJ0X3RydWUoc2VuZFJlc3VsdCwgIidzZW5kYmVh
Y29uJyBmdW5jdGlvbiBjYWxsIG11c3Qgc3VjY2VlZCIpOwotfQotCi0vLyBLaWNrcyBvZmYgYW4g
YXN5bmNocm9ub3VzIG1vbml0b3IgdG8gcG9sbCB0aGUgc2VydmVyIGZvciB0ZXN0IHJlc3VsdHMu
IEFzIHdlCi0vLyB2ZXJpZnkgdGhhdCB0aGUgc2VydmVyIGhhcyByZWNlaXZlZCBhbmQgdmFsaWRh
dGVkIGEgYmVhY29uLCB3ZSB3aWxsIGNvbXBsZXRlCi0vLyBpdHMgdGVzdGhhcm5lc3MgdGVzdC4K
LWZ1bmN0aW9uIHdhaXRGb3JSZXN1bHRzKHNlc3Npb24pIHsKLSAgICAvLyBQb2xsIGZvciBzdGF0
dXMgdW50aWwgYWxsIG9mIHRoZSByZXN1bHRzIGNvbWUgaW4uCi0gICAgZmV0Y2goYHJlc291cmNl
cy9iZWFjb24ucHk/Y21kPXN0YXQmc2lkPSR7c2Vzc2lvbi5pZH0mdGlkeF9taW49MCZ0aWR4X21h
eD0ke3Nlc3Npb24udG90YWxDb3VudC0xfWApLnRoZW4oCi0gICAgICAgIGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7Ci0gICAgICAgICAgICAvLyBQYXJzZSBhcyB0ZXh0KCksIG5vdCBqc29uKCksIHNvIHRo
YXQgd2UgY2FuIGxvZyB0aGUgcmF3IHJlc3BvbnNlIGlmCi0gICAgICAgICAgICAvLyBpdCdzIGlu
dmFsaWQuCi0gICAgICAgICAgICByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbihyYXdSZXNw
b25zZSkgewotICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgd2UgZ290IGEgcmVzcG9uc2Ug
d2UgZXhwZWN0IGFuZCBrbm93IGhvdyB0byBoYW5kbGUuCi0gICAgICAgICAgICAgICAgdmFyIHJl
c3VsdHM7Ci0gICAgICAgICAgICAgICAgdmFyIGZhaWx1cmU7Ci0gICAgICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9IEpTT04ucGFyc2UocmF3UmVzcG9uc2Up
OwotCi0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gdW5kZWZpbmVk
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlID0gYGJhZCB2YWxpZGF0aW9uIHJl
c3BvbnNlIHNjaGVtYTogcmF3UmVzcG9uc2U9JyR7cmF3UmVzcG9uc2V9J2A7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZhaWx1cmUgPSBgYmFkIHZhbGlkYXRpb24gcmVzcG9uc2U6IHJhd1Jlc3BvbnNlPSck
e3Jhd1Jlc3BvbnNlfScsIGdvdCBwYXJzZSBlcnJvciAnJHtlfSdgOwotICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgIGlmIChmYWlsdXJlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIEF0IHRoaXMgcG9pbnQgd2UgY2FuJ3QgZGV0ZXJtaW5pc3RpY2FsbHkgZ2V0IHJlc3VsdHMg
Zm9yIGFsbCBvZiB0aGUKLSAgICAgICAgICAgICAgICAgICAgLy8gdGVzdHMgaW4gdGhlIHNlc3Np
b24sIHNvIGZhaWwgdGhlIGVudGlyZSBzZXNzaW9uLgotICAgICAgICAgICAgICAgICAgICBmYWls
U2Vzc2lvbihzZXNzaW9uLCBmYWlsdXJlKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vIFRoZSAnc3RhdCcgY2FsbCB3
aWxsIHJldHVybiBhbiBhcnJheSBvZiB6ZXJvIG9yIG1vcmUgcmVzdWx0cwotICAgICAgICAgICAg
ICAgIC8vIG9mIHNlbmRiZWFjb24oKSBjYWxscyB0aGF0IHRoZSBzZXJ2ZXIgaGFzIHJlY2VpdmVk
IGFuZCB2YWxpZGF0ZWQuCi0gICAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICB2YXIgdGVzdENhc2UgPSBzZXNzaW9uLnRl
c3RDYXNlTG9va3VwW3Jlc3VsdC5pZF07Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gV2hpbGUg
c3Rhc2gudGFrZSBvbiB0aGUgc2VydmVyIGlzIHN1cHBvc2VkIHRvIGhvbm9yIHJlYWQtb25jZSwg
c2luY2Ugd2UncmUKLSAgICAgICAgICAgICAgICAgICAgLy8gcG9sbGluZyBzbyBmcmVxdWVudGx5
IGl0IGlzIHBvc3NpYmxlIHRoYXQgd2Ugd2lsbCByZWNlaXZlIHRoZSBzYW1lIHRlc3QgcmVzdWx0
Ci0gICAgICAgICAgICAgICAgICAgIC8vIG1vcmUgdGhhbiBvbmNlLgotICAgICAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RDYXNlLmRvbmUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RD
YXNlLmRvbmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5kb25lQ291
bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIC8vIFZh
bGlkYXRlIHRoYXQgdGhlIHNlbmRiZWFjb24oKSB3YXMgYWN0dWFsbHkgc2VudCB0byB0aGUgc2Vy
dmVyLgotICAgICAgICAgICAgICAgICAgICB2YXIgdGVzdCA9IHRlc3RDYXNlLnRlc3Q7Ci0gICAg
ICAgICAgICAgICAgICAgIHRlc3Quc3RlcChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIG51bGwgSlNPTiB2YWx1ZXMgcGFyc2UgYXMgbnVsbCwgbm90IHVuZGVmaW5lZAot
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZXJyb3IsIG51bGws
ICInc2VuZGJlYWNvbicgZGF0YSBtdXN0IG5vdCBmYWlsIHZhbGlkYXRpb24iKTsKLSAgICAgICAg
ICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7Ci0gICAg
ICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICAvLyBDb250aW51ZSBwb2xsaW5nIHVu
dGlsIGFsbCBvZiB0aGUgcmVzdWx0cyBjb21lIGluLgotICAgICAgICAgICAgICAgIGlmIChzZXNz
aW9uLmRvbmVDb3VudCA8IHNlc3Npb24uc2VudENvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIHRlc3RoYXJuZXNzLmpzIGZyb3ducyB1cG9uIHRoZSB1c2Ugb2YgZXhwbGljaXQgdGltZW91
dHMsIGJ1dCB0aGVyZSBpcyBubyB3YXkKLSAgICAgICAgICAgICAgICAgICAgLy8gYXJvdW5kIHRo
ZSBuZWVkIHRvIHBvbGwgZm9yIHRoZXNlIHRlc3RzLCBhbmQgdGhlcmUgaXMgbm8gdXNlIHNwYW1t
aW5nIHRoZSBzZXJ2ZXIKLSAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKSBqdXN0IHRvIGF2b2lkIHRoZSB1c2Ugb2Ygc3RlcF90aW1lb3V0LgotICAgICAg
ICAgICAgICAgICAgICBzdGVwX3RpbWVvdXQod2FpdEZvclJlc3VsdHMuYmluZCh0aGlzLCBzZXNz
aW9uKSwgMTAwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KS5jYXRjaChmdW5j
dGlvbihlcnJvcikgewotICAgICAgICAgICAgICAgIGZhaWxTZXNzaW9uKHNlc3Npb24sIGB1bmV4
cGVjdGVkIGVycm9yIHJlYWRpbmcgcmVzcG9uc2UsIGVycm9yPScke2Vycm9yfSdgKTsKLSAgICAg
ICAgICAgIH0pOworLy8gUG9sbCB0aGUgc2VydmVyIGZvciB0aGUgdGVzdCByZXN1bHQuCithc3lu
YyBmdW5jdGlvbiB3YWl0Rm9yUmVzdWx0KHRlc3RDYXNlKSB7CisgICAgY29uc3Qgc2Vzc2lvbiA9
IHRlc3RDYXNlLnNlc3Npb247CisgICAgY29uc3QgaW5kZXggPSB0ZXN0Q2FzZS5pbmRleDsKKyAg
ICBjb25zdCB1cmwgPSBgcmVzb3VyY2VzL2JlYWNvbi5weT9jbWQ9c3RhdCZzaWQ9JHtzZXNzaW9u
LmlkfSZ0aWR4X21pbj0ke2luZGV4fSZ0aWR4X21heD0ke2luZGV4fWA7CisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCAzMDsgKytpKSB7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0
Y2godXJsKTsKKyAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKKyAg
ICAgICAgY29uc3QgcmVzdWx0cyA9IEpTT04ucGFyc2UodGV4dCk7CisKKyAgICAgICAgaWYgKHJl
c3VsdHMubGVuZ3RoID09PSAwKSB7CisgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2
ZSA9PiBzdGVwX3RpbWVvdXQocmVzb2x2ZSwgMTAwKSk7CisgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KLSAgICApOwotfQotCi0vLyBGYWlscyBhbGwgb2YgdGhlIHRlc3RzIGluIHRoZSBz
ZXNzaW9uLCBtZWFudCB0byBiZSBjYWxsZWQgd2hlbiBhbiBpbmZyYXN0cnVjdHVyYWwKLS8vIGlz
c3VlIHByZXZlbnRzIHVzIGZyb20gZGV0ZXJtaW5pc3RpY2FsbHkgY29tcGxldGluZyB0aGUgaW5k
aXZpZHVhbCB0ZXN0cy4KLWZ1bmN0aW9uIGZhaWxTZXNzaW9uKHNlc3Npb24sIHJlYXNvbikgewot
ICAgIHNlc3Npb24udGVzdENhc2VzLmZvckVhY2goZnVuY3Rpb24odGVzdENhc2UpIHsKLSAgICAg
ICAgdmFyIHRlc3QgPSB0ZXN0Q2FzZS50ZXN0OwotICAgICAgICB0ZXN0LnVucmVhY2hlZF9mdW5j
KHJlYXNvbikoKTsKLSAgICB9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzLmxlbmd0
aCwgMSwgYGJhZCByZXNwb25zZTogJyR7dGV4dH0nYCk7OworICAgICAgICAvLyBudWxsIEpTT04g
dmFsdWVzIHBhcnNlIGFzIG51bGwsIG5vdCB1bmRlZmluZWQKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXN1bHRzWzBdLmVycm9yLCBudWxsLCAiJ3NlbmRiZWFjb24nIGRhdGEgbXVzdCBub3QgZmFp
bCB2YWxpZGF0aW9uIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXNzZXJ0X3RydWUo
ZmFsc2UsICd0aW1lb3V0Jyk7CiB9CiAKIC8vIENyZWF0ZXMgYW4gaWZyYW1lIG9uIHRoZSBkb2N1
bWVudCdzIGJvZHkgYW5kIHJ1bnMgdGhlIHNhbXBsZSB0ZXN0cyBmcm9tIHRoZSBpZnJhbWUuCiAv
LyBUaGUgaWZyYW1lIGlzIG5hdmlnYXRlZCBpbW1lZGlhdGVseSBhZnRlciBpdCBzZW5kcyB0aGUg
ZGF0YSwgYW5kIHRoZSB3aW5kb3cgdmVyaWZpZXMKIC8vIHRoYXQgdGhlIGRhdGEgaXMgc3RpbGwg
c3VjY2Vzc2Z1bGx5IHNlbnQuCi0vLyAgICBmdW5jTmFtZTogImJlYWNvbiIgdG8gc2VuZCB0aGUg
ZGF0YSB2aWEgbmF2aWdhdG9yLnNlbmRCZWFjb24oKSwKLS8vICAgICAgICAgICAgICAiZmV0Y2gi
IHRvIHNlbmQgdGhlIGRhdGEgdmlhIGZldGNoKCkgd2l0aCB0aGUga2VlcGFsaXZlIGZsYWcuCi1m
dW5jdGlvbiBydW5TZW5kSW5JZnJhbWVBbmROYXZpZ2F0ZVRlc3RzKGZ1bmNOYW1lKSB7CitmdW5j
dGlvbiBydW5TZW5kSW5JZnJhbWVBbmROYXZpZ2F0ZVRlc3RzKCkgewogICAgIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKICAgICBpZnJhbWUuaWQgPSAiaWZy
YW1lIjsKICAgICBpZnJhbWUub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB0ZXN0
cyA9IEFycmF5KCk7Ci0KICAgICAgICAgLy8gQ2xlYXIgb3VyIG9ubG9hZCBoYW5kbGVyIHRvIHBy
ZXZlbnQgcmUtcnVubmluZyB0aGUgdGVzdHMgYXMgd2UgbmF2aWdhdGUgYXdheS4KLSAgICAgICAg
dGhpcy5vbmxvYWQgPSBudWxsOwotCi0gICAgICAgIC8vIEltcGxlbWVudCB0aGUgc2VsZi5idWls
ZElkIGV4dGVuc2lvbiB0byBpZGVudGlmeSB0aGUgcGFyYW1ldGVyaXplZAotICAgICAgICAvLyB0
ZXN0IGluIHRoZSByZXBvcnQuCi0gICAgICAgIHNlbGYuYnVpbGRJZCA9IGZ1bmN0aW9uKGJhc2VJ
ZCkgewotICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VJZH0tJHtmdW5jTmFtZX0tTkFWSUdBVEVg
OwotICAgICAgICB9OwotCi0gICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICAvLyBUaGUgaWZyYW1lIHdpbGwgZXhlY3V0ZSBzZW5kRGF0YSgpIGZvciB1
cyBhbmQgcmV0dXJuIHRoZSByZXN1bHQuCi0gICAgICAgICAgICB2YXIgdGVzdENhc2UgPSB0ZXN0
c1tlLmRhdGFdOwotICAgICAgICAgICAgY29udGludWVBZnRlclNlbmRpbmdCZWFjb24odHJ1ZSAv
KiBzZW5kUmVzdWx0ICovLCB0ZXN0Q2FzZSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgLy8gSW1w
bGVtZW50IHRoZSBzZWxmLnNlbmRGdW5jIGV4dGVuc2lvbiB0byBzZW5kIHRoZSBiZWFjb24gaW5k
aXJlY3RseSwKLSAgICAgICAgLy8gZnJvbSBhbiBpRnJhbWUgdGhhdCB3ZSBjYW4gdGhlbiBuYXZp
Z2F0ZS4KLSAgICAgICAgc2VsZi5zZW5kRnVuYyA9IGZ1bmN0aW9uKHRlc3RDYXNlKSB7Ci0gICAg
ICAgICAgICB2YXIgaWZyYW1lV2luZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFt
ZSIpLmNvbnRlbnRXaW5kb3c7Ci0gICAgICAgICAgICAvLyBXZSBydW4gaW50byBwcm9ibGVtcyBw
YXNzaW5nIHRoZSB0ZXN0Q2FzZSBvdmVyIHRoZSBkb2N1bWVudCBib3VuZGFyeSwKLSAgICAgICAg
ICAgIC8vIGJlY2F1c2Ugb2Ygc3RydWN0dXJlZCBjbG9uaW5nIGNvbnN0cmFpbnRzLiBJbnN0ZWFk
IHdlJ2xsIHNlbmQgb3ZlciB0aGUKLSAgICAgICAgICAgIC8vIHRlc3QgY2FzZSBpZCwgYW5kIHRo
ZSBpRnJhbWUgY2FuIGxvYWQgdGhlIHN0YXRpYyB0ZXN0IGNhc2UgYnkgaW5jbHVkaW5nCi0gICAg
ICAgICAgICAvLyBiZWFjb24tY29tbW9uLmpzLgotICAgICAgICAgICAgdGVzdHNbdGVzdENhc2Uu
b3JpZ0lkXSA9IHRlc3RDYXNlOwotICAgICAgICAgICAgaWZyYW1lV2luZG93LnBvc3RNZXNzYWdl
KFt0ZXN0Q2FzZS5vcmlnSWQsIHRlc3RDYXNlLnVybCwgZnVuY05hbWVdLCAiKiIpOwotICAgICAg
ICB9OwotCi0gICAgICAgIHJ1blRlc3RzKHNhbXBsZVRlc3RzKTsKKyAgICAgICAgaWZyYW1lLm9u
bG9hZCA9IG51bGw7CisgICAgICAgIGZ1bmN0aW9uIHNlbmREYXRhKHRlc3RDYXNlKSB7CisgICAg
ICAgICAgICByZXR1cm4gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24o
dGVzdENhc2UudXJsLCB0ZXN0Q2FzZS5kYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjb25zdCB0
ZXN0cyA9IFtdOworICAgICAgICBmb3IgKGNvbnN0IHRlc3Qgb2Ygc2FtcGxlVGVzdHMpIHsKKyAg
ICAgICAgICAgIGNvbnN0IGNvcHkgPSBPYmplY3QuYXNzaWduKHt9LCB0ZXN0KTsKKyAgICAgICAg
ICAgIGNvcHkuaWQgPSBgJHt0ZXN0LmlkfS1OQVZJR0FURWA7CisgICAgICAgICAgICB0ZXN0cy5w
dXNoKGNvcHkpOworICAgICAgICB9CisgICAgICAgIHJ1blRlc3RzKHRlc3RzLCBzZW5kRGF0YSk7
CisgICAgICAgIC8vIE5vdyBuYXZpZ2F0ZSBvdXJzZWx2ZXMuCisgICAgICAgIGlmcmFtZS5jb250
ZW50V2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0v
IjsKICAgICB9OwogCi0gICAgaWZyYW1lLnNyYyA9ICJuYXZpZ2F0ZS5pRnJhbWUuc3ViLmh0bWwi
OworICAgIGlmcmFtZS5zcmNkb2MgPSAnPGh0bWw+PC9odG1sPic7CiAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpZnJhbWUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndpbmRvdy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9iZWFjb24tY29ycy5zdWIud2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MzIyMTNkM2NlMDk0ZGQ1YTBiYTVkNzM2MTgzM2EyN2I5OWY1Yzc2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVh
Y29uLWNvcnMuc3ViLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NCBAQAorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvYmVhY29u
L3Jlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0b3JlJnNpZD1hYTZjNDg1NS1mNDliLTQ2ZjAtOGFm
OC0xNmZkNWZhZmRjOGEmdGlkPU5vRGF0YS1DT1JTLUFMTE9XJnRpZHg9MCZvcmlnaW49aHR0cDov
L2xvY2FsaG9zdDo4ODAwJmNyZWRlbnRpYWxzPXRydWUKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29u
LnB5P2NtZD1zdG9yZSZzaWQ9YWE2YzQ4NTUtZjQ5Yi00NmYwLThhZjgtMTZmZDVmYWZkYzhhJnRp
ZD1OdWxsRGF0YS1DT1JTLUFMTE9XJnRpZHg9MSZvcmlnaW49aHR0cDovL2xvY2FsaG9zdDo4ODAw
JmNyZWRlbnRpYWxzPXRydWUKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8v
d3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLnB5P2NtZD1zdG9yZSZz
aWQ9YWE2YzQ4NTUtZjQ5Yi00NmYwLThhZjgtMTZmZDVmYWZkYzhhJnRpZD1VbmRlZmluZWREYXRh
LUNPUlMtQUxMT1cmdGlkeD0yJm9yaWdpbj1odHRwOi8vbG9jYWxob3N0Ojg4MDAmY3JlZGVudGlh
bHM9dHJ1ZQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cubG9jYWxo
b3N0Ojg4MDAvYmVhY29uL3Jlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0b3JlJnNpZD1hYTZjNDg1
NS1mNDliLTQ2ZjAtOGFmOC0xNmZkNWZhZmRjOGEmdGlkPVNtYWxsU3RyaW5nLUNPUlMtQUxMT1cm
dGlkeD0zJm9yaWdpbj1odHRwOi8vbG9jYWxob3N0Ojg4MDAmY3JlZGVudGlhbHM9dHJ1ZQorQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvYmVh
Y29uL3Jlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0b3JlJnNpZD1hYTZjNDg1NS1mNDliLTQ2ZjAt
OGFmOC0xNmZkNWZhZmRjOGEmdGlkPVNtYWxsQmxvYi1DT1JTLUFMTE9XJnRpZHg9NCZvcmlnaW49
aHR0cDovL2xvY2FsaG9zdDo4ODAwJmNyZWRlbnRpYWxzPXRydWUKK0Jsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMv
YmVhY29uLnB5P2NtZD1zdG9yZSZzaWQ9YWE2YzQ4NTUtZjQ5Yi00NmYwLThhZjgtMTZmZDVmYWZk
YzhhJnRpZD1TbWFsbEJ1ZmZlclNvdXJjZS1DT1JTLUFMTE9XJnRpZHg9NSZvcmlnaW49aHR0cDov
L2xvY2FsaG9zdDo4ODAwJmNyZWRlbnRpYWxzPXRydWUKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29u
LnB5P2NtZD1zdG9yZSZzaWQ9YWE2YzQ4NTUtZjQ5Yi00NmYwLThhZjgtMTZmZDVmYWZkYzhhJnRp
ZD1TbWFsbEZvcm1EYXRhLUNPUlMtQUxMT1cmdGlkeD02Jm9yaWdpbj1odHRwOi8vbG9jYWxob3N0
Ojg4MDAmY3JlZGVudGlhbHM9dHJ1ZQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvYmVhY29uL3Jlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0
b3JlJnNpZD1hYTZjNDg1NS1mNDliLTQ2ZjAtOGFmOC0xNmZkNWZhZmRjOGEmdGlkPVNtYWxsU2Fm
ZUNvbnRlbnRUeXBlRW5jb2RlZC1DT1JTLUFMTE9XJnRpZHg9NyZvcmlnaW49aHR0cDovL2xvY2Fs
aG9zdDo4ODAwJmNyZWRlbnRpYWxzPXRydWUKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLnB5P2Nt
ZD1zdG9yZSZzaWQ9YWE2YzQ4NTUtZjQ5Yi00NmYwLThhZjgtMTZmZDVmYWZkYzhhJnRpZD1TbWFs
bFNhZmVDb250ZW50VHlwZUZvcm0tQ09SUy1BTExPVyZ0aWR4PTgmb3JpZ2luPWh0dHA6Ly9sb2Nh
bGhvc3Q6ODgwMCZjcmVkZW50aWFscz10cnVlCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cDovL3d3dy5sb2NhbGhvc3Q6ODgwMC9iZWFjb24vcmVzb3VyY2VzL2JlYWNvbi5weT9j
bWQ9c3RvcmUmc2lkPWFhNmM0ODU1LWY0OWItNDZmMC04YWY4LTE2ZmQ1ZmFmZGM4YSZ0aWQ9U21h
bGxTYWZlQ29udGVudFR5cGVUZXh0LUNPUlMtQUxMT1cmdGlkeD05Jm9yaWdpbj1odHRwOi8vbG9j
YWxob3N0Ojg4MDAmY3JlZGVudGlhbHM9dHJ1ZQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvYmVhY29uL3Jlc291cmNlcy9iZWFjb24ucHk/
Y21kPXN0b3JlJnNpZD01ODM1OWZiZC1kNTE4LTRmMGItYjUyMS0xMTEzMzZlOTU4NjcmdGlkPU5v
RGF0YS1DT1JTLUZPUkJJRCZ0aWR4PTAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLnB5P2NtZD1z
dG9yZSZzaWQ9NTgzNTlmYmQtZDUxOC00ZjBiLWI1MjEtMTExMzM2ZTk1ODY3JnRpZD1OdWxsRGF0
YS1DT1JTLUZPUkJJRCZ0aWR4PTEKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLnB5P2NtZD1zdG9y
ZSZzaWQ9NTgzNTlmYmQtZDUxOC00ZjBiLWI1MjEtMTExMzM2ZTk1ODY3JnRpZD1VbmRlZmluZWRE
YXRhLUNPUlMtRk9SQklEJnRpZHg9MgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvYmVhY29uL3Jlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0
b3JlJnNpZD01ODM1OWZiZC1kNTE4LTRmMGItYjUyMS0xMTEzMzZlOTU4NjcmdGlkPVNtYWxsU3Ry
aW5nLUNPUlMtRk9SQklEJnRpZHg9MworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvYmVhY29uL3Jlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0
b3JlJnNpZD01ODM1OWZiZC1kNTE4LTRmMGItYjUyMS0xMTEzMzZlOTU4NjcmdGlkPVNtYWxsQmxv
Yi1DT1JTLUZPUkJJRCZ0aWR4PTQKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
Oi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLnB5P2NtZD1zdG9y
ZSZzaWQ9NTgzNTlmYmQtZDUxOC00ZjBiLWI1MjEtMTExMzM2ZTk1ODY3JnRpZD1TbWFsbEJ1ZmZl
clNvdXJjZS1DT1JTLUZPUkJJRCZ0aWR4PTUKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvYmVhY29uLnB5P2Nt
ZD1zdG9yZSZzaWQ9NTgzNTlmYmQtZDUxOC00ZjBiLWI1MjEtMTExMzM2ZTk1ODY3JnRpZD1TbWFs
bEZvcm1EYXRhLUNPUlMtRk9SQklEJnRpZHg9NgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHA6Ly93d3cubG9jYWxob3N0Ojg4MDAvYmVhY29uL3Jlc291cmNlcy9iZWFjb24ucHk/
Y21kPXN0b3JlJnNpZD01ODM1OWZiZC1kNTE4LTRmMGItYjUyMS0xMTEzMzZlOTU4NjcmdGlkPVNt
YWxsU2FmZUNvbnRlbnRUeXBlRW5jb2RlZC1DT1JTLUZPUkJJRCZ0aWR4PTcKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3LmxvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNv
dXJjZXMvYmVhY29uLnB5P2NtZD1zdG9yZSZzaWQ9NTgzNTlmYmQtZDUxOC00ZjBiLWI1MjEtMTEx
MzM2ZTk1ODY3JnRpZD1TbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tQ09SUy1GT1JCSUQmdGlkeD04
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dy5sb2NhbGhvc3Q6ODgw
MC9iZWFjb24vcmVzb3VyY2VzL2JlYWNvbi5weT9jbWQ9c3RvcmUmc2lkPTU4MzU5ZmJkLWQ1MTgt
NGYwYi1iNTIxLTExMTMzNmU5NTg2NyZ0aWQ9U21hbGxTYWZlQ29udGVudFR5cGVUZXh0LUNPUlMt
Rk9SQklEJnRpZHg9OQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cu
bG9jYWxob3N0Ojg4MDAvYmVhY29uL3Jlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0b3JlJnNpZD01
ZWRiOGFmZC0xOWMxLTQ0YzgtODYxYy01NDZmOTUzN2JjY2EmdGlkPVNtYWxsQ09SU0NvbnRlbnRU
eXBlVGV4dC1QUkVGTElHSFQtQUxMT1cmdGlkeD0wJm9yaWdpbj1odHRwOi8vbG9jYWxob3N0Ojg4
MDAmY3JlZGVudGlhbHM9dHJ1ZSZwcmVmbGlnaHRFeHBlY3RlZD10cnVlCisKK0ZBSUwgVmVyaWZ5
ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6
IE5vRGF0YS1DT1JTLUFMTE9XIGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVk
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFj
b24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBOdWxsRGF0YS1DT1JTLUFMTE9X
IGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitGQUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5
IHNlbmRzIGZvciB2YXJpYW50OiBVbmRlZmluZWREYXRhLUNPUlMtQUxMT1cgYXNzZXJ0X3RydWU6
IHNlbmRCZWFjb24gc2hvdWxkIHN1Y2NlZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwg
VmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZh
cmlhbnQ6IFNtYWxsU3RyaW5nLUNPUlMtQUxMT1cgYXNzZXJ0X3RydWU6IHNlbmRCZWFjb24gc2hv
dWxkIHN1Y2NlZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgVmVyaWZ5ICduYXZpZ2F0
b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsQmxv
Yi1DT1JTLUFMTE9XIGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScg
c3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJ1ZmZlclNvdXJjZS1DT1JTLUFM
TE9XIGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1
bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEZvcm1EYXRhLUNPUlMtQUxMT1cgYXNzZXJ0X3Ry
dWU6IHNlbmRCZWFjb24gc2hvdWxkIHN1Y2NlZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9y
IHZhcmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRUeXBlRW5jb2RlZC1DT1JTLUFMTE9XIGFzc2VydF90
cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZv
ciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tQ09SUy1BTExPVyBhc3NlcnRfdHJ1
ZTogc2VuZEJlYWNvbiBzaG91bGQgc3VjY2VlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3Ig
dmFyaWFudDogU21hbGxTYWZlQ29udGVudFR5cGVUZXh0LUNPUlMtQUxMT1cgYXNzZXJ0X3RydWU6
IHNlbmRCZWFjb24gc2hvdWxkIHN1Y2NlZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwg
VmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZh
cmlhbnQ6IE5vRGF0YS1DT1JTLUZPUkJJRCBhc3NlcnRfdHJ1ZTogc2VuZEJlYWNvbiBzaG91bGQg
c3VjY2VlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBWZXJpZnkgJ25hdmlnYXRvci5z
ZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogTnVsbERhdGEtQ09S
Uy1GT1JCSUQgYXNzZXJ0X3RydWU6IHNlbmRCZWFjb24gc2hvdWxkIHN1Y2NlZWQgZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNj
ZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFVuZGVmaW5lZERhdGEtQ09SUy1GT1JCSUQgYXNz
ZXJ0X3RydWU6IHNlbmRCZWFjb24gc2hvdWxkIHN1Y2NlZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2Vu
ZHMgZm9yIHZhcmlhbnQ6IFNtYWxsU3RyaW5nLUNPUlMtRk9SQklEIGFzc2VydF90cnVlOiBzZW5k
QmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFZlcmlm
eSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50
OiBTbWFsbEJsb2ItQ09SUy1GT1JCSUQgYXNzZXJ0X3RydWU6IHNlbmRCZWFjb24gc2hvdWxkIHN1
Y2NlZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgVmVyaWZ5ICduYXZpZ2F0b3Iuc2Vu
ZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsQnVmZmVyU291
cmNlLUNPUlMtRk9SQklEIGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24o
KScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEZvcm1EYXRhLUNPUlMtRk9S
QklEIGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1
bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUVuY29kZWQtQ09SUy1G
T1JCSUQgYXNzZXJ0X3RydWU6IHNlbmRCZWFjb24gc2hvdWxkIHN1Y2NlZWQgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK0ZBSUwgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNz
ZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRUeXBlRm9ybS1DT1JTLUZP
UkJJRCBhc3NlcnRfdHJ1ZTogc2VuZEJlYWNvbiBzaG91bGQgc3VjY2VlZCBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3Nm
dWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxTYWZlQ29udGVudFR5cGVUZXh0LUNPUlMtRk9S
QklEIGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1
bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbENPUlNDb250ZW50VHlwZVRleHQtUFJFRkxJR0hU
LUFMTE9XIGFzc2VydF90cnVlOiBzZW5kQmVhY29uIHNob3VsZCBzdWNjZWVkIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1jb3JzLnN1Yi53aW5kb3cuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1jb3Jz
LnN1Yi53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1
MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndpbmRvdy5odG1sCkBA
IC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBp
bmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1jb3JzLnN1Yi53aW5kb3cuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29ycy5z
dWIud2luZG93LmpzCmluZGV4IGY0YmNjZjE3N2UzYjQ1ODVhNWVmZTBiNmNkMGQ2ZWRjMjRmZTQ4
ZjkuLjRhOGU0ZGZiYzY1NzBlNThhZTdkNTdlNDA5ZDRmYmJjNzJhNDc5NjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNv
bi1jb3JzLnN1Yi53aW5kb3cuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndpbmRvdy5qcwpAQCAtMSwzICsx
LDQgQEAKKy8vIE1FVEE6IHRpbWVvdXQ9bG9uZwogLy8gTUVUQTogc2NyaXB0PS9jb21tb24vdXRp
bHMuanMKIC8vIE1FVEE6IHNjcmlwdD1iZWFjb24tY29tbW9uLnN1Yi5qcwogCkBAIC03LDEyICs4
LDYgQEAKIC8vIHRoZSBiZWFjb24gaGFuZGxlciB3aWxsIHJldHVybiBDT1JTIGhlYWRlcnMuIFRo
aXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlCiAvLyBzZW5kQmVhY29uKCkgc3VjY2VlZHMgaW4gZWl0
aGVyIGNhc2UuCiBbdHJ1ZSwgZmFsc2VdLmZvckVhY2goZnVuY3Rpb24oYWxsb3dDb3JzKSB7Ci0g
ICAgLy8gSW1wbGVtZW50IHRoZSBzZWxmLmJ1aWxkSWQgZXh0ZW5zaW9uIHRvIGlkZW50aWZ5IHRo
ZSBwYXJhbWV0ZXJpemVkCi0gICAgLy8gdGVzdCBpbiB0aGUgcmVwb3J0LgotICAgIHNlbGYuYnVp
bGRJZCA9IGZ1bmN0aW9uKGJhc2VJZCkgewotICAgICAgICByZXR1cm4gYCR7YmFzZUlkfS0ke2Fs
bG93Q29ycyA/ICJDT1JTLUFMTE9XIiA6ICJDT1JTLUZPUkJJRCJ9YDsKLSAgICB9OwotCiAgICAg
Ly8gSW1wbGVtZW50IHRoZSBzZWxmLmJ1aWxkQmFzZVVybCBhbmQgc2VsZi5idWlsZFRhcmdldFVy
bCBleHRlbnNpb25zCiAgICAgLy8gdG8gY2hhbmdlIHRoZSB0YXJnZXQgVVJMIHRvIHVzZSBhIGNy
b3NzLW9yaWdpbiBkb21haW4gbmFtZS4KICAgICBzZWxmLmJ1aWxkQmFzZVVybCA9IGZ1bmN0aW9u
KGJhc2VVcmwpIHsKQEAgLTM1LDcgKzMwLDEzIEBACiAgICAgICAgIHJldHVybiBhbGxvd0NvcnMg
PyBgJHt0YXJnZXRVcmx9Jm9yaWdpbj1odHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19
JmNyZWRlbnRpYWxzPXRydWVgIDogdGFyZ2V0VXJsOwogICAgIH0KIAotICAgIHJ1blRlc3RzKHNh
bXBsZVRlc3RzKTsKKyAgICBjb25zdCB0ZXN0cyA9IFtdOworICAgIGZvciAoY29uc3QgdGVzdCBv
ZiBzYW1wbGVUZXN0cykgeworICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0LmFzc2lnbih7fSwg
dGVzdCk7CisgICAgICAgIGNvcHkuaWQgPSBgJHt0ZXN0LmlkfS0ke2FsbG93Q29ycyA/ICJDT1JT
LUFMTE9XIiA6ICJDT1JTLUZPUkJJRCJ9YDsKKyAgICAgICAgdGVzdHMucHVzaChjb3B5KTsKKyAg
ICB9CisgICAgcnVuVGVzdHModGVzdHMpOwogfSk7CiAKIC8vIE5vdyB0ZXN0IGEgY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3QgdGhhdCBkb2Vzbid0IHVzZSBhIHNhZmVsaXN0ZWQgQ29udGVudC1UeXBlIGFu
ZCBlbnN1cmUKQEAgLTQzLDEyICs0NCw2IEBACiAvLyBoZWFkZXIgaXMgdXNlZCB0aGVyZSBzaG91
bGQgYmUgYSBwcmVmbGlnaHQvb3B0aW9ucyByZXF1ZXN0IGFuZCB3ZSBzaG91bGQgb25seSBzdWNj
ZWVkCiAvLyBzZW5kIHRoZSBwYXlsb2FkIGlmIHRoZSBwcm9wZXIgQ09SUyBoZWFkZXJzIGFyZSB1
c2VkLgogewotICAgIC8vIEltcGxlbWVudCB0aGUgc2VsZi5idWlsZElkIGV4dGVuc2lvbiB0byBp
ZGVudGlmeSB0aGUgcGFyYW1ldGVyaXplZAotICAgIC8vIHRlc3QgaW4gdGhlIHJlcG9ydC4KLSAg
ICBzZWxmLmJ1aWxkSWQgPSBmdW5jdGlvbiAoYmFzZUlkKSB7Ci0gICAgICAgIHJldHVybiBgJHti
YXNlSWR9LVBSRUZMSUdIVC1BTExPV2A7Ci0gICAgfTsKLQogICAgIC8vIEltcGxlbWVudCB0aGUg
c2VsZi5idWlsZEJhc2VVcmwgYW5kIHNlbGYuYnVpbGRUYXJnZXRVcmwgZXh0ZW5zaW9ucwogICAg
IC8vIHRvIGNoYW5nZSB0aGUgdGFyZ2V0IFVSTCB0byB1c2UgYSBjcm9zcy1vcmlnaW4gZG9tYWlu
IG5hbWUuCiAgICAgc2VsZi5idWlsZEJhc2VVcmwgPSBmdW5jdGlvbiAoYmFzZVVybCkgewpAQCAt
NjAsOCArNTUsMTMgQEAKICAgICBzZWxmLmJ1aWxkVGFyZ2V0VXJsID0gZnVuY3Rpb24gKHRhcmdl
dFVybCkgewogICAgICAgICByZXR1cm4gYCR7dGFyZ2V0VXJsfSZvcmlnaW49aHR0cDovL3t7aG9z
dH19Ont7cG9ydHNbaHR0cF1bMF19fSZjcmVkZW50aWFscz10cnVlJnByZWZsaWdodEV4cGVjdGVk
PXRydWVgOwogICAgIH0KLQotICAgIHJ1blRlc3RzKHByZWZsaWdodFRlc3RzKTsKKyAgICBjb25z
dCB0ZXN0cyA9IFtdOworICAgIGZvciAoY29uc3QgdGVzdCBvZiBwcmVmbGlnaHRUZXN0cykgewor
ICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0LmFzc2lnbih7fSwgdGVzdCk7CisgICAgICAgIGNv
cHkuaWQgPSBgJHt0ZXN0LmlkfS1QUkVGTElHSFQtQUxMT1dgOworICAgICAgICB0ZXN0cy5wdXNo
KGNvcHkpOworICAgIH0KKyAgICBydW5UZXN0cyh0ZXN0cyk7CiB9CiAKLWRvbmUoKTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iuc3ViLndp
bmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iuc3ViLndpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmUzMDEzMTlhMzE1M2Q1NmRkNGIxZGI2ZmM0YTM5NzI1ZDE2NzIwMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVh
Y29uL2JlYWNvbi1lcnJvci5zdWIud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
KworUEFTUyBWZXJpZnkgY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBhIGxh
cmdlIHBheWxvYWQgcmV0dXJucyAnZmFsc2UnLiAKK1BBU1MgVmVyaWZ5IGNhbGxpbmcgJ25hdmln
YXRvci5zZW5kQmVhY29uKCknIHdpdGggYW4gaW52YWxpZCBVUkwgdGhyb3dzIGFuIGV4Y2VwdGlv
bi4gCitQQVNTIFZlcmlmeSBjYWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIGEg
VVJMIHRoYXQgaXMgbm90IGEgaHR0cChzKSBzY2hlbWUgdGhyb3dzIGFuIGV4Y2VwdGlvbi4gCitQ
QVNTIFZlcmlmeSB0aGUgYmVoYXZpb3IgYWZ0ZXIgdGhlIHF1b3RhIGlzIGV4aGF1c3RlZC4gCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2JlYWNvbi1lcnJvci5zdWIud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iuc3ViLndpbmRvdy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iuc3ViLndpbmRvdy5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYmVhY29uL2JlYWNvbi1lcnJvci5zdWIud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWVycm9yLnN1Yi53aW5kb3cu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjJjNWU5NWEyNzZjMjU3Mzg3ZTFjZDg1YzJiY2I3MDA5MGQxMTMyYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci5zdWIud2luZG93LmpzCkBAIC0wLDAgKzEsNDggQEAK
Ky8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9YmVhY29u
LWNvbW1vbi5zdWIuanMKKworInVzZSBzdHJpY3QiOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAg
IC8vIFBheWxvYWQgdGhhdCBzaG91bGQgY2F1c2Ugc2VuZEJlYWNvbiB0byByZXR1cm4gZmFsc2Ug
YmVjYXVzZSBpdCBleGNlZWRzIHRoZSBtYXhpbXVtIHBheWxvYWQgc2l6ZS4KKyAgICB2YXIgZXhj
ZWVkUGF5bG9hZCA9IEFycmF5KG1heFBheWxvYWRTaXplICsgMSkuZmlsbCgneicpLmpvaW4oIiIp
OworCisgICAgdmFyIHN1Y2Nlc3MgPSBuYXZpZ2F0b3Iuc2VuZEJlYWNvbigiaHR0cDovL3t7aG9z
dHNbXVtub25leGlzdGVudF19fSIsIGV4Y2VlZFBheWxvYWQpOworICAgIGFzc2VydF9mYWxzZShz
dWNjZXNzLCAiY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBwYXlsb2FkIHNp
emUgZXhjZWVkaW5nIHRoZSBtYXhpbXVtIHNpemUgbXVzdCBmYWlsIik7Cit9LCAiVmVyaWZ5IGNh
bGxpbmcgJ25hdmlnYXRvci5zZW5kQmVhY29uKCknIHdpdGggYSBsYXJnZSBwYXlsb2FkIHJldHVy
bnMgJ2ZhbHNlJy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgaW52YWxpZFVybCA9
ICJodHRwOi8vaW52YWxpZDp1cmwiOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCBmdW5jdGlvbigpIHsgbmF2aWdhdG9yLnNlbmRCZWFjb24oaW52YWxpZFVybCwgc21hbGxQYXls
b2FkKTsgfSwKKyAgICAgICAgYGNhbGxpbmcgJ25hdmlnYXRvci5zZW5kQmVhY29uKCknIHdpdGgg
YW4gaW52YWxpZCBVUkwgJyR7aW52YWxpZFVybH0nIG11c3QgdGhyb3cgYSBUeXBlRXJyb3JgKTsK
K30sICJWZXJpZnkgY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBhbiBpbnZh
bGlkIFVSTCB0aHJvd3MgYW4gZXhjZXB0aW9uLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAg
IHZhciBpbnZhbGlkVXJsID0gIm5vdGh0dHA6Ly9pbnZhbGlkLnVybCI7CisgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBuYXZpZ2F0b3Iuc2VuZEJlYWNvbihp
bnZhbGlkVXJsLCBzbWFsbFBheWxvYWQpOyB9LAorICAgICAgICAgYGNhbGxpbmcgJ25hdmlnYXRv
ci5zZW5kQmVhY29uKCknIHdpdGggYSBub24taHR0cChzKSBVUkwgJyR7aW52YWxpZFVybH0nIG11
c3QgdGhyb3cgYSBUeXBlRXJyb3JgKTsKK30sICJWZXJpZnkgY2FsbGluZyAnbmF2aWdhdG9yLnNl
bmRCZWFjb24oKScgd2l0aCBhIFVSTCB0aGF0IGlzIG5vdCBhIGh0dHAocykgc2NoZW1lIHRocm93
cyBhbiBleGNlcHRpb24uIik7CisKKy8vIFdlJ2xsIHZhbGlkYXRlIHRoYXQgd2UgY2FuIHNlbmQg
b25lIGJlYWNvbiB0aGF0IHVzZXMgb3VyIGVudGlyZSBRdW90YSBhbmQgdGhlbiBmYWlsIHRvIHNl
bmQgb25lIHRoYXQgaXMganVzdCBvbmUgY2hhci4KK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7
CisgICAgZnVuY3Rpb24gd2FpdChtcykgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
ID0+IHN0ZXBfdGltZW91dChyZXMsIG1zKSk7CisgICAgfQorICAgIGNvbnN0IHVybCA9ICcvZmV0
Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5P2NvdW50PTEmbXM9MCc7CisgICAgYXNzZXJ0X3Ry
dWUobmF2aWdhdG9yLnNlbmRCZWFjb24odXJsLCBtYXhQYXlsb2FkKSwKKyAgICAgICAgICAgICAg
ICAiY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBvdXIgbWF4IHBheWxvYWQg
c2l6ZSBzaG91bGQgc3VjY2VlZC4iKTsKKworICAgIC8vIE5vdyB3ZSdsbCBzZW5kIGp1c3Qgb25l
IGNoYXJhY3Rlci4KKyAgICBhc3NlcnRfZmFsc2UobmF2aWdhdG9yLnNlbmRCZWFjb24odXJsLCAn
MScpLAorICAgICAgICAgICAgICAgICAiY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScg
d2l0aCBqdXN0IG9uZSBjaGFyIHNob3VsZCBmYWlsIHdoaWxlIG91ciBRdW90YSBpcyB1c2VkIHVw
LiIpOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgKytpKSB7CisgICAgICAgIGF3YWl0
IHdhaXQoMTAwKTsKKyAgICAgICAgaWYgKG5hdmlnYXRvci5zZW5kQmVhY29uKHVybCwgbWF4UGF5
bG9hZCkpIHsKKyAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGFzc2Vy
dF91bnJlYWNoZWQoJ1RoZSBxdW90YSBzaG91bGQgcmVjb3ZlciBhZnRlciBmZXRjaGluZy4nKTsK
K30sICJWZXJpZnkgdGhlIGJlaGF2aW9yIGFmdGVyIHRoZSBxdW90YSBpcyBleGhhdXN0ZWQuIik7
CisKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iud2luZG93
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTMzNTNhYmMxZWEyOTY3OTIxNjQ4
OGVmMTdjOWM5YTAxMGE0MzRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVh
Y29uL2JlYWNvbi1lcnJvci53aW5kb3cuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBA
Ci0vLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcwotLy8gTUVUQTogc2NyaXB0PWJlYWNv
bi1jb21tb24uc3ViLmpzCi0KLSJ1c2Ugc3RyaWN0IjsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAg
ICAvLyBQYXlsb2FkIHRoYXQgc2hvdWxkIGNhdXNlIHNlbmRCZWFjb24gdG8gcmV0dXJuIGZhbHNl
IGJlY2F1c2UgaXQgZXhjZWVkcyB0aGUgbWF4aW11bSBwYXlsb2FkIHNpemUuCi0gICAgdmFyIGV4
Y2VlZFBheWxvYWQgPSBBcnJheShtYXhQYXlsb2FkU2l6ZSArIDEpLmZpbGwoJ3onKS5qb2luKCIi
KTsKLQotICAgIHZhciBzdWNjZXNzID0gbmF2aWdhdG9yLnNlbmRCZWFjb24oImh0dHA6Ly9kb2Vz
bm90bWF0dGVyIiwgZXhjZWVkUGF5bG9hZCk7Ci0gICAgYXNzZXJ0X2ZhbHNlKHN1Y2Nlc3MsICJj
YWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIHBheWxvYWQgc2l6ZSBleGNlZWRp
bmcgdGhlIG1heGltdW0gc2l6ZSBtdXN0IGZhaWwiKTsKLX0sICJWZXJpZnkgY2FsbGluZyAnbmF2
aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBhIGxhcmdlIHBheWxvYWQgcmV0dXJucyAnZmFsc2Un
LiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIHZhciBpbnZhbGlkVXJsID0gImh0dHA6Ly9p
bnZhbGlkOnVybCI7Ci0gICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9u
KCkgeyBuYXZpZ2F0b3Iuc2VuZEJlYWNvbihpbnZhbGlkVXJsLCBzbWFsbFBheWxvYWQpOyB9LAot
ICAgICAgICBgY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBhbiBpbnZhbGlk
IFVSTCAnJHtpbnZhbGlkVXJsfScgbXVzdCB0aHJvdyBhIFR5cGVFcnJvcmApOwotfSwgIlZlcmlm
eSBjYWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIGFuIGludmFsaWQgVVJMIHRo
cm93cyBhbiBleGNlcHRpb24uIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGludmFs
aWRVcmwgPSAibm90aHR0cDovL2ludmFsaWQudXJsIjsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IG5hdmlnYXRvci5zZW5kQmVhY29uKGludmFsaWRVcmws
IHNtYWxsUGF5bG9hZCk7IH0sCi0gICAgICAgICBgY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFj
b24oKScgd2l0aCBhIG5vbi1odHRwKHMpIFVSTCAnJHtpbnZhbGlkVXJsfScgbXVzdCB0aHJvdyBh
IFR5cGVFcnJvcmApOwotfSwgIlZlcmlmeSBjYWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigp
JyB3aXRoIGEgVVJMIHRoYXQgaXMgbm90IGEgaHR0cChzKSBzY2hlbWUgdGhyb3dzIGFuIGV4Y2Vw
dGlvbi4iKTsKLQotLy8gV2UnbGwgdmFsaWRhdGUgdGhhdCB3ZSBjYW4gc2VuZCBvbmUgYmVhY29u
IHRoYXQgdXNlcyBvdXIgZW50aXJlIFF1b3RhIGFuZCB0aGVuIGZhaWwgdG8gc2VuZCBvbmUgdGhh
dCBpcyBqdXN0IG9uZSBjaGFyLgotcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKLSAgICBmdW5j
dGlvbiB3YWl0KG1zKSB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXMgPT4gc3RlcF90
aW1lb3V0KHJlcywgbXMpKTsKLSAgICB9Ci0gICAgY29uc3QgdXJsID0gJy9mZXRjaC9hcGkvcmVz
b3VyY2VzL3RyaWNrbGUucHk/Y291bnQ9MSZtcz0wJzsKLSAgICBhc3NlcnRfdHJ1ZShuYXZpZ2F0
b3Iuc2VuZEJlYWNvbih1cmwsIG1heFBheWxvYWQpLAotICAgICAgICAgICAgICAgICJjYWxsaW5n
ICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIG91ciBtYXggcGF5bG9hZCBzaXplIHNob3Vs
ZCBzdWNjZWVkLiIpOwotCi0gICAgLy8gTm93IHdlJ2xsIHNlbmQganVzdCBvbmUgY2hhcmFjdGVy
LgotICAgIGFzc2VydF9mYWxzZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih1cmwsICcxJyksCi0gICAg
ICAgICAgICAgICAgICJjYWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIGp1c3Qg
b25lIGNoYXIgc2hvdWxkIGZhaWwgd2hpbGUgb3VyIFF1b3RhIGlzIHVzZWQgdXAuIik7Ci0KLSAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyArK2kpIHsKLSAgICAgICAgYXdhaXQgd2FpdCgxMDAp
OwotICAgICAgICBpZiAobmF2aWdhdG9yLnNlbmRCZWFjb24odXJsLCBtYXhQYXlsb2FkKSkgewot
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgYXNzZXJ0X3VucmVhY2hl
ZCgnVGhlIHF1b3RhIHNob3VsZCByZWNvdmVyIGFmdGVyIGZldGNoaW5nLicpOwotfSwgIlZlcmlm
eSB0aGUgYmVoYXZpb3IgYWZ0ZXIgdGhlIHF1b3RhIGlzIGV4aGF1c3RlZC4iKTsKLQotZG9uZSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9iZWFjb24vYmVhY29uLW5hdmlnYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1uYXZpZ2F0ZS1leHBlY3Rl
ZC50eHQKaW5kZXggZDU0NTBjMGI3ZmVjZjNjMzMxOGZlMGU2MjNjZjY5NzdmN2RmNGU0YS4uYjg4
OWI5NjZlZGM3ODUyZGRmN2Y1MzE4ZDFjNGNiMjQzNmM4YjBkNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLW5hdmln
YXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tbmF2aWdhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsx
LDEzIEBACiAKIAotUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3Nm
dWxseSBzZW5kcyBmb3IgdmFyaWFudDogTm9EYXRhLWJlYWNvbi1OQVZJR0FURSAKLVBBU1MgVmVy
aWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlh
bnQ6IE51bGxEYXRhLWJlYWNvbi1OQVZJR0FURSAKLVBBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2Vu
ZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFVuZGVmaW5lZERhdGEt
YmVhY29uLU5BVklHQVRFIAotUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1
Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxTdHJpbmctYmVhY29uLU5BVklHQVRF
IAotUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5k
cyBmb3IgdmFyaWFudDogU21hbGxCbG9iLWJlYWNvbi1OQVZJR0FURSAKLVBBU1MgVmVyaWZ5ICdu
YXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNt
YWxsQnVmZmVyU291cmNlLWJlYWNvbi1OQVZJR0FURSAKLVBBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iu
c2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsRm9ybURh
dGEtYmVhY29uLU5BVklHQVRFIAotUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCkn
IHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxTYWZlQ29udGVudFR5cGVFbmNv
ZGVkLWJlYWNvbi1OQVZJR0FURSAKLVBBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigp
JyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRUeXBlRm9y
bS1iZWFjb24tTkFWSUdBVEUgCi1QQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScg
c3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZVRleHQt
YmVhY29uLU5BVklHQVRFIAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1
Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogTm9EYXRhLU5BVklHQVRFIAorUEFTUyBWZXJp
ZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFu
dDogTnVsbERhdGEtTkFWSUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24o
KScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBVbmRlZmluZWREYXRhLU5BVklHQVRF
IAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5k
cyBmb3IgdmFyaWFudDogU21hbGxTdHJpbmctTkFWSUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdh
dG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJs
b2ItTkFWSUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vz
c2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJ1ZmZlclNvdXJjZS1OQVZJR0FURSAKK1BB
U1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9y
IHZhcmlhbnQ6IFNtYWxsRm9ybURhdGEtTkFWSUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9y
LnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVD
b250ZW50VHlwZUVuY29kZWQtTkFWSUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRi
ZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50
VHlwZUZvcm0tTkFWSUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScg
c3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZVRleHQt
TkFWSUdBVEUgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWFkYWJsZXN0cmVhbS53aW5kb3ctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24v
YmVhY29uLXJlYWRhYmxlc3RyZWFtLndpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc4
NmM5YjRkNmIwMDAzMWZlMDk4YzgzYjIwYzk4YmQ1Yzc5Y2ZjZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNv
bi1yZWFkYWJsZXN0cmVhbS53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIHNlbmRCZWFjb24oKSB3aXRoIGEgc3RyZWFtIGRvZXMgbm90IHdvcmsgZHVlIHRvIHRoZSBr
ZWVwYWxpdmUgZmxhZyBiZWluZyBzZXQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWFkYWJsZXN0cmVhbS53
aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2JlYWNvbi1yZWFkYWJsZXN0cmVhbS53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgy
OTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29u
LXJlYWRhYmxlc3RyZWFtLndpbmRvdy5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRl
bXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNv
bi1yZWFkYWJsZXN0cmVhbS53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tcmVhZGFibGVzdHJlYW0ud2luZG93LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZjN2Y4MWY4ODRiZGY0N2I2ZWI3NmY2ZDliMjM3YmMzODU1NmVmYTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9iZWFjb24tcmVhZGFibGVzdHJlYW0ud2luZG93LmpzCkBAIC0wLDAgKzEsMyBAQAor
dGVzdCgoKSA9PiB7CisgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBuYXZp
Z2F0b3Iuc2VuZEJlYWNvbigiLi4uIiwgbmV3IFJlYWRhYmxlU3RyZWFtKCkpKTsKK30sICJzZW5k
QmVhY29uKCkgd2l0aCBhIHN0cmVhbSBkb2VzIG5vdCB3b3JrIGR1ZSB0byB0aGUga2VlcGFsaXZl
IGZsYWcgYmVpbmcgc2V0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tcmVkaXJlY3Qud2luZG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29u
L2JlYWNvbi1yZWRpcmVjdC53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMDIwNGU3
NjBjNGUzNjU1M2Q3ODk3OTc4NTJjNzUxM2I3Y2IyODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tcmVk
aXJlY3Qud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACisKK1BBU1MgVmVyaWZ5
ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6
IE5vRGF0YS0zMDcgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vz
c2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBOdWxsRGF0YS0zMDcgCitQQVNTIFZlcmlmeSAnbmF2
aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBVbmRl
ZmluZWREYXRhLTMwNyAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNj
ZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsU3RyaW5nLTMwNyAKK1BBU1MgVmVyaWZ5
ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6
IFNtYWxsQmxvYi0zMDcgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3Vj
Y2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJ1ZmZlclNvdXJjZS0zMDcgCitQQVNT
IFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2
YXJpYW50OiBTbWFsbEZvcm1EYXRhLTMwNyAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJl
YWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRU
eXBlRW5jb2RlZC0zMDcgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3Vj
Y2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tMzA3
IAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5k
cyBmb3IgdmFyaWFudDogU21hbGxTYWZlQ29udGVudFR5cGVUZXh0LTMwNyAKK1BBU1MgVmVyaWZ5
ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6
IE5vRGF0YS0zMDggCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vz
c2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBOdWxsRGF0YS0zMDggCitQQVNTIFZlcmlmeSAnbmF2
aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBVbmRl
ZmluZWREYXRhLTMwOCAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNj
ZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsU3RyaW5nLTMwOCAKK1BBU1MgVmVyaWZ5
ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6
IFNtYWxsQmxvYi0zMDggCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3Vj
Y2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJ1ZmZlclNvdXJjZS0zMDggCitQQVNT
IFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2
YXJpYW50OiBTbWFsbEZvcm1EYXRhLTMwOCAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJl
YWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRU
eXBlRW5jb2RlZC0zMDggCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3Vj
Y2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tMzA4
IAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5k
cyBmb3IgdmFyaWFudDogU21hbGxTYWZlQ29udGVudFR5cGVUZXh0LTMwOCAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVh
Y29uLXJlZGlyZWN0LndpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLXJlZGlyZWN0LndpbmRvdy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNv
bi9iZWFjb24tcmVkaXJlY3Qud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZp
bGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUg
dGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVh
Y29uLXJlZGlyZWN0LndpbmRvdy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWRpcmVjdC53aW5kb3cuanMKaW5kZXggNjU5NzU5
YmFhM2Y1YzU4YjI2YjllZDA0MjA0NzM0OGI2N2EyM2U0NC4uM2E4YWVmM2M3NDJiNjgzNDhmYTJj
MjczMDNlMjk3ZTgzODY3NjhiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLXJlZGlyZWN0LndpbmRvdy5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFj
b24tcmVkaXJlY3Qud2luZG93LmpzCkBAIC0xLDMgKzEsNCBAQAorLy8gTUVUQTogdGltZW91dD1s
b25nCiAvLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91dGlscy5qcwogLy8gTUVUQTogc2NyaXB0PWJl
YWNvbi1jb21tb24uc3ViLmpzCiAKQEAgLTcsMTkgKzgsMTggQEAKIC8vIE5vdGUgdGhhdCBzdGF0
dXMgY29kZXMgMzA3IGFuZCAzMDggYXJlIHRoZSBvbmx5IGNvZGVzIHRoYXQgd2lsbCBtYWludGFp
biBQT1NUIGRhdGEKIC8vIHRocm91Z2ggYSByZWRpcmVjdC4KIFszMDcsIDMwOF0uZm9yRWFjaChm
dW5jdGlvbihzdGF0dXMpIHsKLSAgICAvLyBJbXBsZW1lbnQgdGhlIHNlbGYuYnVpbGRJZCBleHRl
bnNpb24gdG8gaWRlbnRpZnkgdGhlIHBhcmFtZXRlcml6ZWQKLSAgICAvLyB0ZXN0IGluIHRoZSBy
ZXBvcnQuCi0gICAgc2VsZi5idWlsZElkID0gZnVuY3Rpb24oYmFzZUlkKSB7Ci0gICAgICAgIHJl
dHVybiBgJHtiYXNlSWR9LSR7c3RhdHVzfWA7Ci0gICAgfTsKLQogICAgIC8vIEltcGxlbWVudCB0
aGUgc2VsZi5idWlsZFRhcmdldFVybCBleHRlbnNpb24gdG8gaW5qZWN0IGEgcmVkaXJlY3QgdG8K
ICAgICAvLyB0aGUgc2VuZEJlYWNvbiB0YXJnZXQuCiAgICAgc2VsZi5idWlsZFRhcmdldFVybCA9
IGZ1bmN0aW9uKHRhcmdldFVybCkgewogICAgICAgICByZXR1cm4gYC9jb21tb24vcmVkaXJlY3Qu
cHk/c3RhdHVzPSR7c3RhdHVzfSZsb2NhdGlvbj0ke2VuY29kZVVSSUNvbXBvbmVudCh0YXJnZXRV
cmwpfWA7CiAgICAgfTsKLQotICAgIHJ1blRlc3RzKHNhbXBsZVRlc3RzKTsKKyAgICBjb25zdCB0
ZXN0cyA9IFtdOworICAgIGZvciAoY29uc3QgdGVzdCBvZiBzYW1wbGVUZXN0cykgeworICAgICAg
ICBjb25zdCBjb3B5ID0gT2JqZWN0LmFzc2lnbih7fSwgdGVzdCk7CisgICAgICAgIGNvcHkuaWQg
PSBgJHt0ZXN0LmlkfS0ke3N0YXR1c31gOworICAgICAgICB0ZXN0cy5wdXNoKGNvcHkpOworICAg
IH0KKyAgICBydW5UZXN0cyh0ZXN0cyk7CiB9KTsKIAogZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9o
ZWFkZXItcmVmZXJyZXItc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jl
YWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA4Y2Y2ODFjNjEyMjcwNTg5YWNkNzA5YzFjNzVj
ZDU1YWRlNzAxOTFmLi5jNzM1MjI5ZjFmM2FmOTE4MTQ3ODEzZWFjODFmMzU5YzEwYjk0YzczIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jl
YWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAK
IAotUEFTUyBUZXN0IHJlZmVyZXIgaGVhZGVyIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvYmVhY29u
L3Jlc291cmNlcy8gCi1QQVNTIFRlc3QgcmVmZXJlciBoZWFkZXIgaHR0cDovL2xvY2FsaG9zdDo4
ODAwL2JlYWNvbi9yZXNvdXJjZXMvIAorUEFTUyBUZXN0IHJlZmVyZXIgaGVhZGVyIGh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMvYmVhY29uL3Jlc291cmNlcy8gCitQQVNTIFRlc3QgcmVmZXJlciBoZWFk
ZXIgaHR0cDovLzEyNy4wLjAuMTo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFk
ZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNv
bi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
Lmh0dHBzLmh0bWwKaW5kZXggZWY2YTU5ODQwNjZhODE2MTliNzliMDQxNmQ3MDU2OTg4MTI4MDg4
NC4uZjMxMDAzNTAwOTQxNjM2ZWFlZjFjOWE2MWNlMzg4NTFjNGNiMWIyMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVy
cy9oZWFkZXItcmVmZXJyZXItc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVh
Y29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLXN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4uaHR0cHMuaHRtbApAQCAtMTIsMTAgKzEyLDEwIEBACiAgICAgPHNjcmlwdCBzcmM9Ii9jb21t
b24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIvYmVh
Y29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0Pgot
ICAgICAgdmFyIHRlc3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX09SSUdJTiArICBSRVNP
VVJDRVNfRElSOworICAgICAgdmFyIHRlc3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX1JF
TU9URV9PUklHSU4gKyAgUkVTT1VSQ0VTX0RJUjsKICAgICAgIHRlc3RSZWZlcnJlckhlYWRlcih0
ZXN0QmFzZSwgcmVmZXJyZXJPcmlnaW4pOwotICAgICAgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZv
KCkuSFRUUF9PUklHSU4gKyBSRVNPVVJDRVNfRElSOwotICAgICAgdGVzdFJlZmVycmVySGVhZGVy
KHRlc3RCYXNlLCAiIik7CisgICAgICB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JF
TU9URV9PUklHSU4gKyBSRVNPVVJDRVNfRElSOworICAgICAgdGVzdFJlZmVycmVySGVhZGVyKHRl
c3RCYXNlLCAiIiwgdHJ1ZSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVh
Y29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLXN0cmljdC1vcmlnaW4uaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMv
aGVhZGVyLXJlZmVycmVyLXN0cmljdC1vcmlnaW4uaHR0cHMuaHRtbAppbmRleCBlZjZhNTk4NDA2
NmE4MTYxOWI3OWIwNDE2ZDcwNTY5ODgxMjgwODg0Li5iNjViYzc5NWQyYzgyZThjMmIzZjI5Nzc0
ZDlmMmMxODJkYTdjNWMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3Jp
Z2luLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItc3RyaWN0LW9yaWdpbi5odHRw
cy5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiAgICAgICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9p
bmZvKCkuSFRUUFNfT1JJR0lOICsgIFJFU09VUkNFU19ESVI7CiAgICAgICB0ZXN0UmVmZXJyZXJI
ZWFkZXIodGVzdEJhc2UsIHJlZmVycmVyT3JpZ2luKTsKICAgICAgIHRlc3RCYXNlID0gZ2V0X2hv
c3RfaW5mbygpLkhUVFBfT1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKLSAgICAgIHRlc3RSZWZlcnJl
ckhlYWRlcih0ZXN0QmFzZSwgIiIpOworICAgICAgdGVzdFJlZmVycmVySGVhZGVyKHRlc3RCYXNl
LCAiIiwgdHJ1ZSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hl
YWRlcnMvaGVhZGVyLXJlZmVycmVyLXVuc2FmZS11cmwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9o
ZWFkZXItcmVmZXJyZXItdW5zYWZlLXVybC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzM5Yzdl
ODU0OTU5N2E0MzU5YmNjMmY3MThjN2YyYTNmNTM0YWZjYy4uOGNmNjgxYzYxMjI3MDU4OWFjZDcw
OWMxYzc1Y2Q1NWFkZTcwMTkxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZl
LXVybC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZlLXVy
bC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACiAKK1BBU1MgVGVzdCByZWZlcmVy
IGhlYWRlciBodHRwczovL2xvY2FsaG9zdDo5NDQzL2JlYWNvbi9yZXNvdXJjZXMvIAogUEFTUyBU
ZXN0IHJlZmVyZXIgaGVhZGVyIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9iZWFjb24vcmVzb3VyY2Vz
LyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZlLXVybC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVh
ZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZlLXVybC5odHRwcy5odG1sCmluZGV4IDlhM2JjY2Zi
YmZmYzZlYTE3NTNhOGZkZTEzYTAwNDVlZDAyMDlmNzMuLjI2YTA2MmViZDg1YzIyMWRmNDBiNjc1
M2Q3N2RkMzNjZDM3NzZjMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLXVuc2FmZS11
cmwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci11bnNhZmUtdXJsLmh0dHBzLmh0
bWwKQEAgLTEyLDggKzEyLDEwIEBACiAgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3Qt
aW5mby5zdWIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIvYmVhY29uL2hlYWRlcnMv
aGVhZGVyLXJlZmVycmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgICAgdmFyIHRl
c3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfT1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKKyAg
ICAgIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQU19PUklHSU4gKyAgUkVTT1VS
Q0VTX0RJUjsKICAgICAgIHRlc3RSZWZlcnJlckhlYWRlcih0ZXN0QmFzZSwgcmVmZXJyZXJVcmwp
OworICAgICAgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9PUklHSU4gKyBSRVNPVVJD
RVNfRElSOworICAgICAgdGVzdFJlZmVycmVySGVhZGVyKHRlc3RCYXNlLCByZWZlcnJlclVybCwg
dHJ1ZSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMv
aGVhZGVyLXJlZmVycmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXIuanMKaW5kZXggMDI2YjA5MTgy
OGM0M2FhNTNhMGE2MDg2ZmFmMDgyZTI1YTFmOWJkNS4uZWJkNjdkZjFkNzY3NjM2YTUwNDRjZWMx
MDVlZTVkM2IxYTNlNjA2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXIuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVy
cy9oZWFkZXItcmVmZXJyZXIuanMKQEAgLTMsMTIgKzMsMTUgQEAgdmFyIFJFU09VUkNFU19ESVIg
PSAiL2JlYWNvbi9yZXNvdXJjZXMvIjsKIHZhciByZWZlcnJlck9yaWdpbiA9IHNlbGYubG9jYXRp
b24ub3JpZ2luICsgJy8nOwogdmFyIHJlZmVycmVyVXJsID0gc2VsZi5sb2NhdGlvbi5ocmVmOwog
Ci1mdW5jdGlvbiB0ZXN0UmVmZXJyZXJIZWFkZXIodGVzdEJhc2UsIGV4cGVjdGVkUmVmZXJyZXIp
IHsKK2Z1bmN0aW9uIHRlc3RSZWZlcnJlckhlYWRlcih0ZXN0QmFzZSwgZXhwZWN0ZWRSZWZlcnJl
ciwgbWF5QmVCbG9ja2VkQXNNaXhlZENvbnRlbnQgPSBmYWxzZSkgewogICB2YXIgaWQgPSBzZWxm
LnRva2VuKCk7CiAgIHZhciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiaW5zcGVjdC1oZWFkZXIucHk/
aGVhZGVyPXJlZmVyZXImY21kPXB1dCZpZD0iICsgaWQ7CiAKICAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHRlc3QpIHsKLSAgICBhc3NlcnRfdHJ1ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0VXJs
KSwgIlNlbmRCZWFjb24gU3VjY2VlZGVkIik7CisgICAgY29uc3Qgc2VudEJlYWNvbiA9IG5hdmln
YXRvci5zZW5kQmVhY29uKHRlc3RVcmwpOworICAgIGlmIChtYXlCZUJsb2NrZWRBc01peGVkQ29u
dGVudCAmJiAhc2VudEJlYWNvbikKKyAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAg
ICBhc3NlcnRfdHJ1ZShzZW50QmVhY29uLCAiU2VuZEJlYWNvbiBTdWNjZWVkZWQiKTsKICAgICBy
ZXR1cm4gcG9sbFJlc3VsdChleHBlY3RlZFJlZmVycmVyLCBpZCkgLnRoZW4ocmVzdWx0ID0+IHsK
ICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCBleHBlY3RlZFJlZmVycmVyLCAiQ29ycmVjdCBy
ZWZlcnJlciBoZWFkZXIgcmVzdWx0Iik7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFj
b24vaGVhZGVycy93M2MtaW1wb3J0LmxvZwppbmRleCBhZWYxMWY3OTMzZTJlNTY4MGVmMjA4YTc5
Y2U4NDRhOTE2ZmE5NzkyLi5lMTdmMWI1YjM5NmYwNzNkOGVhYTNmMjk2MzczZGYxZGJjY2I4Yjcw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9oZWFkZXJzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMvdzNjLWltcG9ydC5sb2cKQEAg
LTEsNyArMSw3IEBACiBUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgogSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisJaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKIAogVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFj
b24vaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNkODg5NTUyYWNkY2Q4NDAwNDhjNTNkYWJjYzZjYTAwNGU4ZDMyMzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitQ
QVNTIGlkbF90ZXN0IHNldHVwIAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uIAorUEFTUyBQYXJ0
aWFsIGludGVyZmFjZSBOYXZpZ2F0b3I6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAorUEFT
UyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3I6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAor
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFy
ZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5ndWFn
ZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZp
Z2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BB
U1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25j
dXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3Ig
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2VuZEJlYWNvbihVU1ZTdHJpbmcsIEJvZHlJbml0KSAKK1BB
U1MgTmF2aWdhdG9yIGludGVyZmFjZTogbmF2aWdhdG9yIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
c2VuZEJlYWNvbihVU1ZTdHJpbmcsIEJvZHlJbml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQ
QVNTIE5hdmlnYXRvciBpbnRlcmZhY2U6IGNhbGxpbmcgc2VuZEJlYWNvbihVU1ZTdHJpbmcsIEJv
ZHlJbml0KSBvbiBuYXZpZ2F0b3Igd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2lkbGhhcm5lc3MuYW55Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVt
cGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFy
bmVzcy5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9pZGxoYXJuZXNzLmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjI2N2FiOGJkY2U1MmNlMzJk
ZjRlYTNhNTNiMzBiNmQzNWM4MDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnkuanMKQEAg
LTAsMCArMSwxNCBAQAorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpz
CisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9iZWFjb24vCisKK2lkbF90ZXN0KAorICBbJ2JlYWNvbiddLAorICBbJ2h0
bWwnXSwKKyAgaWRsX2FycmF5ID0+IHsKKyAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAg
ICAgTmF2aWdhdG9yOiBbJ25hdmlnYXRvciddLAorICAgIH0pOworICB9CispOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRs
aGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODIzYTliMDU3NTJkMDRkYmZkYTRjOWM0M2MyOTBmY2FhODU4YWQy
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNiBAQAorCitQQVNTIGlkbF90ZXN0IHNldHVwIAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0
aW9uIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3I6IG9yaWdpbmFsIGludGVyZmFj
ZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3I6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JJRDog
bWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0
b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBO
YXZpZ2F0b3JMYW5ndWFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRv
ciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZSAKK1BBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1l
bWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9y
UGx1Z2luczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRl
cyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAor
UEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIG9iamVjdCAKK1BBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogbmF2aWdhdG9yIG11c3Qg
bm90IGhhdmUgcHJvcGVydHkgInNlbmRCZWFjb24iIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS53
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2lkbGhhcm5lc3MuYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFu
eS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAt
LT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9uYXZpZ2F0ZS5pRnJhbWUuc3Vi
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNv
bi9uYXZpZ2F0ZS5pRnJhbWUuc3ViLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY0Yzc4NDZlNTIyYjU1Mzk4NWNjMGFkMjUzZTQzOWJkNmQzMTU5NzUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vbmF2aWdhdGUuaUZyYW1lLnN1Yi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotICAgIDx0aXRsZT5XM0MgQmVhY29uIEFzIEZldGNoIChGZXRjaCBLZWVwQWxpdmUpIE5hdmln
YXRlIFRlc3Q8L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPHNjcmlwdCBzcmM9ImJlYWNv
bi1jb21tb24uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0PgotICAgICAgICAidXNlIHN0
cmljdCI7Ci0KLSAgICAgICAgLy8gQW4gYXJyYXkgc2hvdWxkIGJlIHBhc3NlZCB0aHJvdWdoIHBv
c3RNZXNzYWdlIHRvIHRoaXMgaUZyYW1lLCB3aGVyZQotICAgICAgICAvLyAgICAgWzBdIGNvbnRh
aW5zIGEgdGVzdCBjYXNlIGlkIGFzIGRlZmluZWQgaW4gYmVhY29uLWNvbW1vbi5qcy4KLSAgICAg
ICAgLy8gICAgIFsxXSBpcyB0aGUgVVJMIGZvciB0aGUga2VlcCBhbGl2ZSBmZXRjaCgpIG9yIHNl
bmRCZWFjb24oKS4KLSAgICAgICAgLy8gICAgIFsyXSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgZnVu
Y3Rpb24gdG8gY2FsbCAtICJmZXRjaCIgdG8gY2FsbCBmZXRjaCgpIG9yICJiZWFjb24iIHRvIGNh
bGwgc2VuZEJlYWNvbigpLgotICAgICAgICAvLyBUaGUgdGVzdGNhc2UgaWQgaXMgcmV0dXJuZWQg
YmFjayB0byB0aGUgd2luZG93IHRocm91Z2ggcG9zdE1lc2FnZS4KLSAgICAgICAgdmFyIHRlc3Rz
ID0gMDsKLSAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIHZhciB0ZXN0Q2FzZUlkID0gZS5kYXRhWzBdOwotICAgICAgICAgICAgdmFyIHVybCA9IGUu
ZGF0YVsxXTsKLSAgICAgICAgICAgIHZhciBmdW5jID0gZS5kYXRhWzJdOwotICAgICAgICAgICAg
dGVzdHMrKzsKLQotICAgICAgICAgICAgLy8gUmVjb25zdHJ1Y3QgZW5vdWdoIG9mIHRoZSB0ZXN0
IGNhc2UgdG8gc2VuZCB0aGUga2VlcCBhbGl2ZSBmZXRjaCAoZGF0YSBhbmQgdXJsKS4KLSAgICAg
ICAgICAgIHZhciB0ZXN0Q2FzZSA9IHRlc3RMb29rdXBbdGVzdENhc2VJZF07Ci0gICAgICAgICAg
ICB0ZXN0Q2FzZS51cmwgPSB1cmw7Ci0KLSAgICAgICAgICAgIGlmIChmdW5jID09PSAiYmVhY29u
IikgewotICAgICAgICAgICAgICAgIC8vIHNlbmREYXRhIGNhbGxzIHNlbmRCZWFjb24KLSAgICAg
ICAgICAgICAgICBzZW5kRGF0YSh0ZXN0Q2FzZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZnVuYyArICIgaXMgYW4g
aW52YWxpZCBmdW5jdGlvbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBMZXQg
dGhlIG1haW4gcGFnZSBjb250aW51ZSB0aGUgdGVzdCBpZiB3ZSBkb24ndCBpbW1lZGlhdGVseSB0
aHJvdyBhbiBleGNlcHRpb24uCi0gICAgICAgICAgICBwYXJlbnQucG9zdE1lc3NhZ2UodGVzdENh
c2VJZCwgIioiKTsKLQotICAgICAgICAgICAgLy8gTm93IG5hdmlnYXRlIG91cnNlbHZlcy4KLSAg
ICAgICAgICAgIGlmICh0ZXN0cyA9PSBzYW1wbGVUZXN0cy5sZW5ndGgpIHsKLSAgICAgICAgICAg
ICAgICB3aW5kb3cubG9jYXRpb24gPSAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19
fS8iOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9yZXNvdXJjZXMvdzNjLWltcG9ydC5s
b2cKaW5kZXggMDc4ODBkNmE5MTVhMTE0NTg4MjgwMDkxODAzZmU1YTQ3ZmI4YzhmMC4uNTk1YWJk
MjIzOTlkNGZiYjQ5ZWU3NGQ4MjA1MTE1NTYwMzYxMzVmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vcmVzb3VyY2VzL3czYy1p
bXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYmVhY29uL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpAQCAtMSw3ICsxLDcgQEAKIFRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgogRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCiBJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKwlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAogCiBUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL3czYy1p
bXBvcnQubG9nCmluZGV4IDA4ODczNzZiMDkyODVmZmNmNzA3ZDQ1OGRiOWVlNGJlYzYzMGNlZWUu
LjA3NDllMTkzOTcwYjk0MzY2MmFjOGZkMWU1OGVlNjQyZjY2NjZkOGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL3czYy1pbXBv
cnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL3czYy1pbXBvcnQubG9nCkBAIC0xLDcgKzEsNyBAQAogVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCiBEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KIEluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cworCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0CiAKIFRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CiAKQEAgLTE0LDcgKzE0LDcgQEAgUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFj
b24vT1dORVJTCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9i
ZWFjb24vTUVUQS55bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JlYWNvbi9iZWFjb24tYmFzaWMtYmxvYi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWJhc2ljLWJsb2JNYXguaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNv
bi1iYXNpYy1idWZmZXJzb3VyY2UuaHRtbApAQCAtMjUsNyArMjUsOCBAQCBMaXN0IG9mIGZpbGVz
OgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2Jl
YWNvbi1iYXNpYy1zdHJpbmdNYXguaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1jb21tb24uc3ViLmpzCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndp
bmRvdy5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVh
Y29uL2JlYWNvbi1lcnJvci53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iuc3ViLndpbmRvdy5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1uYXZp
Z2F0ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9i
ZWFjb24vYmVhY29uLXJlYWRhYmxlc3RyZWFtLndpbmRvdy5qcwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWRpcmVjdC53aW5kb3cu
anMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9u
YXZpZ2F0ZS5pRnJhbWUuc3ViLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS5qcwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386108</attachid>
            <date>2019-12-19 09:09:45 -0800</date>
            <delta_ts>2019-12-19 09:51:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205417-20191219090944.patch</filename>
            <type>text/plain</type>
            <size>54104</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNzIyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3czYy90ZXN0X2NvbnZlcnRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNj
L3Rlc3RfY29udmVydGVyLnB5CmluZGV4IDQ5OGVhYTU3ZDExOGM0OGNmYmExYjExNzBiN2U5Y2Fk
MDE2NjFiYzEuLjI0YjUwYjQwZmZlOTBjMWNkNDNjNjBjNzE0YTM0ZDM1NmYyNTc3MTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfY29udmVydGVyLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfY29udmVydGVyLnB5CkBAIC00OCw5ICs0
OCwxNSBAQCBkZWYgY29udmVydF9mb3Jfd2Via2l0KG5ld19wYXRoLCBmaWxlbmFtZSwgcmVmZXJl
bmNlX3N1cHBvcnRfaW5mbywgaG9zdD1Ib3N0KCksCiAKICAgICBSZXR1cm5zIHRoZSBsaXN0IG9m
IG1vZGlmaWVkIHByb3BlcnRpZXMgYW5kIHRoZSBtb2RpZmllZCB0ZXh0IGlmIHRoZSBmaWxlIHdh
cyBtb2RpZmVkLCBOb25lIG90aGVyd2lzZS4iIiIKICAgICBjb250ZW50cyA9IGhvc3QuZmlsZXN5
c3RlbS5yZWFkX3RleHRfZmlsZShmaWxlbmFtZSkKKworICAgICMgV2ViS2l0IGRvZXMgbm90IGhh
dmUgYSB3d3cgdGVzdCBkb21haW4uCisgICAgY29udGVudHMgPSBjb250ZW50cy5yZXBsYWNlKCd7
e2RvbWFpbnNbd3d3XX19JywgJ3t7aG9zdHNbYWx0XVtdfX0nKQorCiAgICAgY29udmVydGVyID0g
X1czQ1Rlc3RDb252ZXJ0ZXIobmV3X3BhdGgsIGZpbGVuYW1lLCByZWZlcmVuY2Vfc3VwcG9ydF9p
bmZvLCBob3N0LCBjb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcywgd2Via2l0X3Rlc3RfcnVubmVy
X29wdGlvbnMpCiAgICAgaWYgZmlsZW5hbWUuZW5kc3dpdGgoJy5jc3MnKToKICAgICAgICAgcmV0
dXJuIGNvbnZlcnRlci5hZGRfd2Via2l0X3ByZWZpeF90b191bnByZWZpeGVkX3Byb3BlcnRpZXNf
YW5kX3ZhbHVlcyhjb250ZW50cykKKyAgICBlbGlmIGZpbGVuYW1lLmVuZHN3aXRoKCcuanMnKToK
KyAgICAgICAgcmV0dXJuIChbXSwgW10sIGNvbnRlbnRzKQogICAgIGVsc2U6CiAgICAgICAgIGNv
bnZlcnRlci5mZWVkKGNvbnRlbnRzKQogICAgICAgICBjb252ZXJ0ZXIuY2xvc2UoKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkKaW5kZXggZmVlZDIyYTYzNjNm
MDdhY2M0YmIwNmFhODRjZjIwNDJmYmE1MTVhYi4uMzIzYjI0NmQ2OWJmZmI3YzJhYmQzMzEwZWZh
NTkzMWYzOGI1NTYwZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVz
dF9pbXBvcnRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9y
dGVyLnB5CkBAIC00NDYsNyArNDQ2LDcgQEAgY2xhc3MgVGVzdEltcG9ydGVyKG9iamVjdCk6CiAK
ICAgICAgICAgIyBXZSBjdXJyZW50bHkgbmVlZCB0byByZXdyaXRlIGNzcyB3ZWItcGxhdGZvcm0t
dGVzdHMgYmVjYXVzZSB0aGV5IHVzZSBhIHNlcGFyYXRlICJyZWZlcmVuY2UiIGZvbGRlciBmb3IK
ICAgICAgICAgIyB0aGVpciByZWYtdGVzdHMnIHJlc3VsdHMuCi0gICAgICAgIGZvbGRlcnNfbmVl
ZGluZ19maWxlX3Jld3JpdGluZyA9IFsnd2ViLXBsYXRmb3JtLXRlc3RzL2NzcycsIF0KKyAgICAg
ICAgZm9sZGVyc19uZWVkaW5nX2ZpbGVfcmV3cml0aW5nID0gWyd3ZWItcGxhdGZvcm0tdGVzdHMv
JywgXQogCiAgICAgICAgIGZvciBkaXJfdG9fY29weSBpbiBzZWxmLmltcG9ydF9saXN0OgogICAg
ICAgICAgICAgdG90YWxfaW1wb3J0ZWRfdGVzdHMgKz0gZGlyX3RvX2NvcHlbJ3RvdGFsX3Rlc3Rz
J10KQEAgLTUxMCw3ICs1MTAsNyBAQCBjbGFzcyBUZXN0SW1wb3J0ZXIob2JqZWN0KToKICAgICAg
ICAgICAgICAgICAjIEZJWE1FOiBFdmVudHVhbGx5LCBzbyBzaG91bGQganMgd2hlbiBzdXBwb3J0
IGlzIGFkZGVkIGZvciB0aGlzIHR5cGUgb2YgY29udmVyc2lvbgogICAgICAgICAgICAgICAgIG1p
bWV0eXBlID0gbWltZXR5cGVzLmd1ZXNzX3R5cGUob3JpZ19maWxlcGF0aCkKICAgICAgICAgICAg
ICAgICBpZiBzaG91bGRfcmV3cml0ZV9maWxlcyBhbmQgKCd0ZXh0LycgaW4gc3RyKG1pbWV0eXBl
WzBdKSBvciAnYXBwbGljYXRpb24vJyBpbiBzdHIobWltZXR5cGVbMF0pKSBcCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kICgnaHRtbCcgaW4gc3RyKG1pbWV0eXBl
WzBdKSBvciAneG1sJyBpbiBzdHIobWltZXR5cGVbMF0pICBvciAnY3NzJyBpbiBzdHIobWltZXR5
cGVbMF0pKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgKCdo
dG1sJyBpbiBzdHIobWltZXR5cGVbMF0pIG9yICd4bWwnIGluIHN0cihtaW1ldHlwZVswXSkgIG9y
ICdjc3MnIGluIHN0cihtaW1ldHlwZVswXSkgb3IgJ2phdmFzY3JpcHQnIGluIHN0cihtaW1ldHlw
ZVswXSkpOgogICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIlJld3JpdGluZzogJXMiICUg
bmV3X2ZpbGVwYXRoKQogICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICBjb252ZXJ0ZWRfZmlsZSA9IGNvbnZlcnRfZm9yX3dlYmtpdChuZXdfcGF0aCwgZmls
ZW5hbWU9b3JpZ19maWxlcGF0aCwgcmVmZXJlbmNlX3N1cHBvcnRfaW5mbz1yZWZlcmVuY2Vfc3Vw
cG9ydF9pbmZvLCBob3N0PXNlbGYuaG9zdCwgY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3M9c2Vs
Zi5zaG91bGRfY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3Moc3VicGF0aCksIHdlYmtpdF90ZXN0
X3J1bm5lcl9vcHRpb25zPXNlbGYuX3dlYmtpdF90ZXN0X3J1bm5lcl9vcHRpb25zKG5ld19maWxl
cGF0aCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA4ZWY2OGRkNmVkNjk3YzRk
YjhiNzEyN2MzNWIzNjYwZDM0Zjg5ODFmLi42N2UzYmJjODViZWIxODk2NDY2NDllYTAyMmZiYWI0
MjBlNGYzYWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxOS0xMi0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uIHRlc3RzIGZyb20gdXBzdHJlYW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTQxNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc3luYyB3ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uIHRlc3RzIGZyb20gdXBzdHJlYW0gMzNkZTcwY2FmN2YwNzZl
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi8qOiBVcGRhdGVkLgorCiAy
MDE5LTEyLTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcmViYXNlbGluZSBhbGwgc2VydmljZSB3b3JrZXJzIHRlc3RzIGFuZCB1bnNraXAg
MiB0aGF0IG5vIGxvbmdlciB0aW1lIG91dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL01FVEEueW1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vTUVUQS55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGJkOTRlMzIwNjRjNzg1NTM2NjY0MjRlMWQwZWUzMGJjYTQ5ODdmYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29u
L01FVEEueW1sCkBAIC0wLDAgKzEsMyBAQAorc3BlYzogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jl
YWNvbi8KK3N1Z2dlc3RlZF9yZXZpZXdlcnM6CisgIC0gaWdyaWdvcmlrCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9PV05FUlMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9PV05F
UlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxOWViNjljZjUyYjI4ZDQwNWNlOWRi
YTA3ZDljYWM1MjM5NzIzNjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFj
b24vT1dORVJTCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1AdG9kZHJlaWZzdGVjawot
QGlncmlnb3JpawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvbW1vbi5zdWIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29tbW9uLnN1Yi5qcwpp
bmRleCAwYTM2MjgzYjI2Mzc5ZTE2Y2NmZDJjMzNjZjA1ZTAzOTVkYzE4MzMxLi5hZTJmMTY5ZjI3
MmU5ZWZiYmVhM2I3NDY0ZWE3N2MzNGZlNjVjNmUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29tbW9uLnN1Yi5q
cworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNv
bi9iZWFjb24tY29tbW9uLnN1Yi5qcwpAQCAtMTM4LDMzICsxMzgsMjMgQEAgZnVuY3Rpb24gaW5p
dFNlc3Npb24odGVzdENhc2VzKSB7CiAvLyBTY2hlZHVsZXMgYXN5bmNfdGVzdCdzIGZvciBlYWNo
IG9mIHRoZSB0ZXN0IGNhc2VzLCB0cmVhdGluZyB0aGVtIGFzIGEgc2luZ2xlIHNlc3Npb24sCiAv
LyBhbmQgd2lyZXMgdXAgdGhlIGNvbnRpbnVlQWZ0ZXJTZW5kaW5nQmVhY29uKCkgYW5kIHdhaXRG
b3JSZXN1bHRzKCkgY2FsbHMuCiAvLyBUaGUgbWV0aG9kIGxvb2tzIGZvciBzZXZlcmFsICJleHRl
bnNpb24iIGZ1bmN0aW9ucyBpbiB0aGUgZ2xvYmFsIHNjb3BlOgotLy8gICAtIHNlbGYuYnVpbGRJ
ZDogaWYgcHJlc2VudCwgY2FuIGNoYW5nZSB0aGUgZGlzcGxheSBuYW1lIG9mIGEgdGVzdC4KIC8v
ICAgLSBzZWxmLmJ1aWxkQmFzZVVybDogaWYgcHJlc2VudCwgY2FuIGNoYW5nZSB0aGUgYmFzZSBV
Ukwgb2YgYSBiZWFjb24gdGFyZ2V0IFVSTCAodGhpcwogLy8gICAgIGlzIHRoZSBzY2hlbWUsIGhv
c3RuYW1lLCBhbmQgcG9ydCkuCiAvLyAgIC0gc2VsZi5idWlsZFRhcmdldFVybDogaWYgcHJlc2Vu
dCwgY2FuIG1vZGlmeSBhIGJlYWNvbiB0YXJnZXQgVVJMIChmb3IgZXhhbXBsZSB3cmFwIGl0KS4K
IC8vIFBhcmFtZXRlcnM6CiAvLyAgICAgdGVzdENhc2VzOiBBbiBhcnJheSBvZiB0ZXN0IGNhc2Vz
LgotZnVuY3Rpb24gcnVuVGVzdHModGVzdENhc2VzKSB7Ci0gICAgdmFyIHNlc3Npb24gPSBpbml0
U2Vzc2lvbih0ZXN0Q2FzZXMpOworLy8gICAgIHNlbmREYXRhIFtvcHRpb25hbF06IEEgZnVuY3Rp
b24gdGhhdCBzZW5kcyB0aGUgYmVhY29uLgorZnVuY3Rpb24gcnVuVGVzdHModGVzdENhc2VzLCBz
ZW5kRGF0YSA9IHNlbGYuc2VuZERhdGEpIHsKKyAgICBjb25zdCBzZXNzaW9uID0gaW5pdFNlc3Np
b24odGVzdENhc2VzKTsKIAogICAgIHRlc3RDYXNlcy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RDYXNl
LCB0ZXN0SW5kZXgpIHsKICAgICAgICAgLy8gTWFrZSBhIGNvcHkgb2YgdGhlIHRlc3QgY2FzZSBh
cyB3ZSdsbCBiZSBzdG9yaW5nIHNvbWUgbWV0YWRhdGEgb24gaXQsCiAgICAgICAgIC8vIHN1Y2gg
YXMgd2hpY2ggc2Vzc2lvbiBpdCBiZWxvbmdzIHRvLgotICAgICAgICB2YXIgdGVzdENhc2VDb3B5
ID0gT2JqZWN0LmFzc2lnbih7IHNlc3Npb246IHNlc3Npb24gfSwgdGVzdENhc2UpOworICAgICAg
ICBjb25zdCB0ZXN0Q2FzZUNvcHkgPSBPYmplY3QuYXNzaWduKHsgc2Vzc2lvbjogc2Vzc2lvbiB9
LCB0ZXN0Q2FzZSk7CiAKLSAgICAgICAgLy8gRXh0ZW5zaW9uIHBvaW50OiBnZW5lcmF0ZSB0aGUg
dGVzdCBpZC4KLSAgICAgICAgdmFyIHRlc3RJZCA9IHRlc3RDYXNlLmlkOwotICAgICAgICBpZiAo
c2VsZi5idWlsZElkKSB7Ci0gICAgICAgICAgICB0ZXN0SWQgPSBzZWxmLmJ1aWxkSWQodGVzdElk
KTsKLSAgICAgICAgfQotICAgICAgICB0ZXN0Q2FzZUNvcHkub3JpZ0lkID0gdGVzdENhc2VDb3B5
LmlkOwotICAgICAgICB0ZXN0Q2FzZUNvcHkuaWQgPSB0ZXN0SWQ7CiAgICAgICAgIHRlc3RDYXNl
Q29weS5pbmRleCA9IHRlc3RJbmRleDsKIAotICAgICAgICBzZXNzaW9uLmFkZCh0ZXN0Q2FzZUNv
cHkpOwotCi0gICAgICAgIC8vIFNjaGVkdWxlIHRoZSBzZW5kYmVhY29uIGluIGFuIGFzeW5jIHRl
c3QuCi0gICAgICAgIGFzeW5jX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICBhc3luY190
ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgICAgICAvLyBTYXZlIHRoZSB0ZXN0aGFybmVzcy5qcyAn
dGVzdCcgb2JqZWN0LCBzbyB0aGF0IHdlIG9ubHkgaGF2ZSBvbmUgb2JqZWN0CiAgICAgICAgICAg
ICAvLyB0byBwYXNzIGFyb3VuZC4KICAgICAgICAgICAgIHRlc3RDYXNlQ29weS50ZXN0ID0gdGVz
dDsKQEAgLTE3NCwyMiArMTY0LDE1IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKHRlc3RDYXNlcykgewog
ICAgICAgICAgICAgaWYgKHNlbGYuYnVpbGRCYXNlVXJsKSB7CiAgICAgICAgICAgICAgICAgYmFz
ZVVybCA9IHNlbGYuYnVpbGRCYXNlVXJsKGJhc2VVcmwpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdmFyIHRhcmdldFVybCA9IGAke2Jhc2VVcmx9L2JlYWNvbi9yZXNvdXJjZXMvYmVhY29u
LnB5P2NtZD1zdG9yZSZzaWQ9JHtzZXNzaW9uLmlkfSZ0aWQ9JHt0ZXN0SWR9JnRpZHg9JHt0ZXN0
SW5kZXh9YDsKKyAgICAgICAgICAgIHZhciB0YXJnZXRVcmwgPSBgJHtiYXNlVXJsfS9iZWFjb24v
cmVzb3VyY2VzL2JlYWNvbi5weT9jbWQ9c3RvcmUmc2lkPSR7c2Vzc2lvbi5pZH0mdGlkPSR7dGVz
dENhc2VDb3B5LmlkfSZ0aWR4PSR7dGVzdEluZGV4fWA7CiAgICAgICAgICAgICBpZiAoc2VsZi5i
dWlsZFRhcmdldFVybCkgewogICAgICAgICAgICAgICAgIHRhcmdldFVybCA9IHNlbGYuYnVpbGRU
YXJnZXRVcmwodGFyZ2V0VXJsKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIEF0dGFj
aCB0aGUgVVJMIHRvIHRoZSB0ZXN0IG9iamVjdCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgogICAg
ICAgICAgICAgdGVzdENhc2VDb3B5LnVybCA9IHRhcmdldFVybDsKIAotICAgICAgICAgICAgLy8g
RXh0ZW5zaW9uIHBvaW50OiBzZW5kIHRoZSBiZWFjb24gaW1tZWRpYXRlbHksIG9yIGRlZmVyLgot
ICAgICAgICAgICAgdmFyIHNlbmRGdW5jID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24gc2VuZElt
bWVkaWF0ZWx5KHRlc3RDYXNlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHNlbmRSZXN1bHQgPSBz
ZW5kRGF0YSh0ZXN0Q2FzZSk7Ci0gICAgICAgICAgICAgICAgY29udGludWVBZnRlclNlbmRpbmdC
ZWFjb24oc2VuZFJlc3VsdCwgdGVzdENhc2UpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBpZiAoc2VsZi5zZW5kRnVuYykgewotICAgICAgICAgICAgICAgIHNlbmRGdW5jID0gdGVzdC5z
dGVwX2Z1bmMoc2VsZi5zZW5kRnVuYyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZW5k
RnVuYyh0ZXN0Q2FzZUNvcHkpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoc2VuZERhdGEodGVz
dENhc2VDb3B5KSwgJ3NlbmRCZWFjb24gc2hvdWxkIHN1Y2NlZWQnKTsKKyAgICAgICAgICAgIHdh
aXRGb3JSZXN1bHQodGVzdENhc2VDb3B5KS50aGVuKCgpID0+IHRlc3QuZG9uZSgpLCB0ZXN0LnN0
ZXBfZnVuYygoZSkgPT4ge3Rocm93IGU7fSkpOwogICAgICAgICB9LCBgVmVyaWZ5ICduYXZpZ2F0
b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6ICR7dGVzdENh
c2VDb3B5LmlkfWApOwogICAgIH0pOwogfQpAQCAtMjAxLDE2MSArMTg0LDU0IEBAIGZ1bmN0aW9u
IHJ1blRlc3RzKHRlc3RDYXNlcykgewogLy8gdGhlIHRlc3QuCiAvLyBSZXR1cm5zIHRoZSByZXN1
bHQgb2YgdGhlICdzZW5kYmVhY29uKCknIGZ1bmN0aW9uIGNhbGwsIHRydWUgb3IgZmFsc2UuCiBm
dW5jdGlvbiBzZW5kRGF0YSh0ZXN0Q2FzZSkgewotICAgIHZhciBzZW50ID0gZmFsc2U7Ci0gICAg
aWYgKHRlc3RDYXNlLmRhdGEpIHsKLSAgICAgICAgc2VudCA9IHNlbGYubmF2aWdhdG9yLnNlbmRC
ZWFjb24odGVzdENhc2UudXJsLCB0ZXN0Q2FzZS5kYXRhKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBzZW50ID0gc2VsZi5uYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0Q2FzZS51cmwpCi0gICAgfQot
ICAgIHJldHVybiBzZW50OworICAgIHJldHVybiBzZWxmLm5hdmlnYXRvci5zZW5kQmVhY29uKHRl
c3RDYXNlLnVybCwgdGVzdENhc2UuZGF0YSk7CiB9CiAKLS8vIENvbnRpbnVlcyBhIHNpbmdsZSB0
ZXN0IGFmdGVyIHRoZSBiZWFjb24gaGFzIGJlZW4gc2VudCBmb3IgdGhhdCB0ZXN0LgotLy8gV2ls
bCB0cmlnZ2VyIHdhaXRGb3JSZXN1bHRzKCkgZm9yIHRoZSBzZXNzaW9uIGlmIHRoaXMgaXMgdGhl
IGxhc3QgdGVzdAotLy8gaW4gdGhlIHNlc3Npb24gdG8gc2VuZCBpdHMgYmVhY29uLgotLy8gQXNz
dW1wdGlvbjogd2lsbCBiZSBjYWxsZWQgb24gdGhlIHRlc3QncyBzdGVwX2Z1bmMgc28gdGhhdCBh
c3NlcnQncyBkbwotLy8gbm90IGhhdmUgdG8gYmUgd3JhcHBlZC4KLWZ1bmN0aW9uIGNvbnRpbnVl
QWZ0ZXJTZW5kaW5nQmVhY29uKHNlbmRSZXN1bHQsIHRlc3RDYXNlKSB7Ci0gICAgdmFyIHNlc3Np
b24gPSB0ZXN0Q2FzZS5zZXNzaW9uOwotCi0gICAgLy8gUmVjYWNsdWxhdGUgdGhlIHNlbnQgdnMu
IHRvdGFsIGNvdW50cy4KLSAgICBpZiAoc2VuZFJlc3VsdCkgewotICAgICAgICBzZXNzaW9uLnNl
bnRDb3VudCsrOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNlc3Npb24udG90YWxDb3VudC0tOwot
ICAgIH0KLQotICAgIC8vIElmIHRoaXMgd2FzIHRoZSBsYXN0IHRlc3QgaW4gdGhlIHNlc3Npb24g
dG8gc2VuZCBpdHMgYmVhY29uLCBzdGFydCBwb2xsaW5nIGZvciByZXN1bHRzLgotICAgIC8vIE5v
dGUgdGhhdCB3ZSBzdGFydCBwb2xsaW5nIGV2ZW4gaWYganVzdCBvbmUgdGVzdCBpbiB0aGUgc2Vz
c2lvbiBzZW5kcyBzdWNjZXNzZnVsbHksCi0gICAgLy8gc28gdGhhdCBpZiBhbnkgb2YgdGhlIG90
aGVycyBmYWlsLCB3ZSBzdGlsbCBnZXQgcmVzdWx0cyBmcm9tIHRoZSB0ZXN0cyB0aGF0IGRpZCBz
ZW5kLgotICAgIGlmIChzZXNzaW9uLnNlbnRDb3VudCA9PSBzZXNzaW9uLnRvdGFsQ291bnQpIHsK
LSAgICAgICAgLy8gRXhpdCB0aGUgY3VycmVudCB0ZXN0J3MgZXhlY3V0aW9uIGNvbnRleHQgaW4g
b3JkZXIgdG8gcnVuIHRoZSBwb2xsCi0gICAgICAgIC8vIGxvb3AgZnJvbSB0aGUgaGFybmVzcyBj
b250ZXh0LgotICAgICAgICBzdGVwX3RpbWVvdXQod2FpdEZvclJlc3VsdHMuYmluZCh0aGlzLCBz
ZXNzaW9uKSwgMCk7Ci0gICAgfQotCi0gICAgLy8gTm93IGZhaWwgdGhpcyB0ZXN0IGlmIHRoZSBi
ZWFjb24gZGlkIG5vdCBzZW5kLiBJdCB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gdGhlIHBvbGwKLSAg
ICAvLyBsb29wIGJlY2F1c2Ugb2YgdGhlIGNhbGN1bGF0aW9uIGFkanVzdG1lbnQgYWJvdmUuCi0g
ICAgYXNzZXJ0X3RydWUoc2VuZFJlc3VsdCwgIidzZW5kYmVhY29uJyBmdW5jdGlvbiBjYWxsIG11
c3Qgc3VjY2VlZCIpOwotfQotCi0vLyBLaWNrcyBvZmYgYW4gYXN5bmNocm9ub3VzIG1vbml0b3Ig
dG8gcG9sbCB0aGUgc2VydmVyIGZvciB0ZXN0IHJlc3VsdHMuIEFzIHdlCi0vLyB2ZXJpZnkgdGhh
dCB0aGUgc2VydmVyIGhhcyByZWNlaXZlZCBhbmQgdmFsaWRhdGVkIGEgYmVhY29uLCB3ZSB3aWxs
IGNvbXBsZXRlCi0vLyBpdHMgdGVzdGhhcm5lc3MgdGVzdC4KLWZ1bmN0aW9uIHdhaXRGb3JSZXN1
bHRzKHNlc3Npb24pIHsKLSAgICAvLyBQb2xsIGZvciBzdGF0dXMgdW50aWwgYWxsIG9mIHRoZSBy
ZXN1bHRzIGNvbWUgaW4uCi0gICAgZmV0Y2goYHJlc291cmNlcy9iZWFjb24ucHk/Y21kPXN0YXQm
c2lkPSR7c2Vzc2lvbi5pZH0mdGlkeF9taW49MCZ0aWR4X21heD0ke3Nlc3Npb24udG90YWxDb3Vu
dC0xfWApLnRoZW4oCi0gICAgICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICAv
LyBQYXJzZSBhcyB0ZXh0KCksIG5vdCBqc29uKCksIHNvIHRoYXQgd2UgY2FuIGxvZyB0aGUgcmF3
IHJlc3BvbnNlIGlmCi0gICAgICAgICAgICAvLyBpdCdzIGludmFsaWQuCi0gICAgICAgICAgICBy
ZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbihyYXdSZXNwb25zZSkgewotICAgICAgICAgICAg
ICAgIC8vIENoZWNrIHRoYXQgd2UgZ290IGEgcmVzcG9uc2Ugd2UgZXhwZWN0IGFuZCBrbm93IGhv
dyB0byBoYW5kbGUuCi0gICAgICAgICAgICAgICAgdmFyIHJlc3VsdHM7Ci0gICAgICAgICAgICAg
ICAgdmFyIGZhaWx1cmU7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0cyA9IEpTT04ucGFyc2UocmF3UmVzcG9uc2UpOwotCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBmYWlsdXJlID0gYGJhZCB2YWxpZGF0aW9uIHJlc3BvbnNlIHNjaGVtYTogcmF3UmVz
cG9uc2U9JyR7cmF3UmVzcG9uc2V9J2A7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZhaWx1cmUgPSBgYmFk
IHZhbGlkYXRpb24gcmVzcG9uc2U6IHJhd1Jlc3BvbnNlPScke3Jhd1Jlc3BvbnNlfScsIGdvdCBw
YXJzZSBlcnJvciAnJHtlfSdgOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAg
IGlmIChmYWlsdXJlKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Ug
Y2FuJ3QgZGV0ZXJtaW5pc3RpY2FsbHkgZ2V0IHJlc3VsdHMgZm9yIGFsbCBvZiB0aGUKLSAgICAg
ICAgICAgICAgICAgICAgLy8gdGVzdHMgaW4gdGhlIHNlc3Npb24sIHNvIGZhaWwgdGhlIGVudGly
ZSBzZXNzaW9uLgotICAgICAgICAgICAgICAgICAgICBmYWlsU2Vzc2lvbihzZXNzaW9uLCBmYWls
dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIC8vIFRoZSAnc3RhdCcgY2FsbCB3aWxsIHJldHVybiBhbiBhcnJheSBv
ZiB6ZXJvIG9yIG1vcmUgcmVzdWx0cwotICAgICAgICAgICAgICAgIC8vIG9mIHNlbmRiZWFjb24o
KSBjYWxscyB0aGF0IHRoZSBzZXJ2ZXIgaGFzIHJlY2VpdmVkIGFuZCB2YWxpZGF0ZWQuCi0gICAg
ICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAg
ICAgICAgICAgICB2YXIgdGVzdENhc2UgPSBzZXNzaW9uLnRlc3RDYXNlTG9va3VwW3Jlc3VsdC5p
ZF07Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gV2hpbGUgc3Rhc2gudGFrZSBvbiB0aGUgc2Vy
dmVyIGlzIHN1cHBvc2VkIHRvIGhvbm9yIHJlYWQtb25jZSwgc2luY2Ugd2UncmUKLSAgICAgICAg
ICAgICAgICAgICAgLy8gcG9sbGluZyBzbyBmcmVxdWVudGx5IGl0IGlzIHBvc3NpYmxlIHRoYXQg
d2Ugd2lsbCByZWNlaXZlIHRoZSBzYW1lIHRlc3QgcmVzdWx0Ci0gICAgICAgICAgICAgICAgICAg
IC8vIG1vcmUgdGhhbiBvbmNlLgotICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RDYXNlLmRv
bmUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlLmRvbmUgPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5kb25lQ291bnQrKzsKLSAgICAgICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIHNlbmRi
ZWFjb24oKSB3YXMgYWN0dWFsbHkgc2VudCB0byB0aGUgc2VydmVyLgotICAgICAgICAgICAgICAg
ICAgICB2YXIgdGVzdCA9IHRlc3RDYXNlLnRlc3Q7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3Qu
c3RlcChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bGwgSlNPTiB2
YWx1ZXMgcGFyc2UgYXMgbnVsbCwgbm90IHVuZGVmaW5lZAotICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZXJyb3IsIG51bGwsICInc2VuZGJlYWNvbicgZGF0YSBt
dXN0IG5vdCBmYWlsIHZhbGlkYXRpb24iKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAg
ICAgICAgICAgICAgICAvLyBDb250aW51ZSBwb2xsaW5nIHVudGlsIGFsbCBvZiB0aGUgcmVzdWx0
cyBjb21lIGluLgotICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uLmRvbmVDb3VudCA8IHNlc3Np
b24uc2VudENvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIHRlc3RoYXJuZXNzLmpzIGZy
b3ducyB1cG9uIHRoZSB1c2Ugb2YgZXhwbGljaXQgdGltZW91dHMsIGJ1dCB0aGVyZSBpcyBubyB3
YXkKLSAgICAgICAgICAgICAgICAgICAgLy8gYXJvdW5kIHRoZSBuZWVkIHRvIHBvbGwgZm9yIHRo
ZXNlIHRlc3RzLCBhbmQgdGhlcmUgaXMgbm8gdXNlIHNwYW1taW5nIHRoZSBzZXJ2ZXIKLSAgICAg
ICAgICAgICAgICAgICAgLy8gd2l0aCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBqdXN0IHRvIGF2
b2lkIHRoZSB1c2Ugb2Ygc3RlcF90aW1lb3V0LgotICAgICAgICAgICAgICAgICAgICBzdGVwX3Rp
bWVvdXQod2FpdEZvclJlc3VsdHMuYmluZCh0aGlzLCBzZXNzaW9uKSwgMTAwKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikgewotICAgICAg
ICAgICAgICAgIGZhaWxTZXNzaW9uKHNlc3Npb24sIGB1bmV4cGVjdGVkIGVycm9yIHJlYWRpbmcg
cmVzcG9uc2UsIGVycm9yPScke2Vycm9yfSdgKTsKLSAgICAgICAgICAgIH0pOworLy8gUG9sbCB0
aGUgc2VydmVyIGZvciB0aGUgdGVzdCByZXN1bHQuCithc3luYyBmdW5jdGlvbiB3YWl0Rm9yUmVz
dWx0KHRlc3RDYXNlKSB7CisgICAgY29uc3Qgc2Vzc2lvbiA9IHRlc3RDYXNlLnNlc3Npb247Cisg
ICAgY29uc3QgaW5kZXggPSB0ZXN0Q2FzZS5pbmRleDsKKyAgICBjb25zdCB1cmwgPSBgcmVzb3Vy
Y2VzL2JlYWNvbi5weT9jbWQ9c3RhdCZzaWQ9JHtzZXNzaW9uLmlkfSZ0aWR4X21pbj0ke2luZGV4
fSZ0aWR4X21heD0ke2luZGV4fWA7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzMDsgKytpKSB7
CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsKKyAgICAgICAgY29u
c3QgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgY29uc3QgcmVzdWx0cyA9
IEpTT04ucGFyc2UodGV4dCk7CisKKyAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKSB7
CisgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzdGVwX3RpbWVvdXQocmVz
b2x2ZSwgMTAwKSk7CisgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICApOwotfQot
Ci0vLyBGYWlscyBhbGwgb2YgdGhlIHRlc3RzIGluIHRoZSBzZXNzaW9uLCBtZWFudCB0byBiZSBj
YWxsZWQgd2hlbiBhbiBpbmZyYXN0cnVjdHVyYWwKLS8vIGlzc3VlIHByZXZlbnRzIHVzIGZyb20g
ZGV0ZXJtaW5pc3RpY2FsbHkgY29tcGxldGluZyB0aGUgaW5kaXZpZHVhbCB0ZXN0cy4KLWZ1bmN0
aW9uIGZhaWxTZXNzaW9uKHNlc3Npb24sIHJlYXNvbikgewotICAgIHNlc3Npb24udGVzdENhc2Vz
LmZvckVhY2goZnVuY3Rpb24odGVzdENhc2UpIHsKLSAgICAgICAgdmFyIHRlc3QgPSB0ZXN0Q2Fz
ZS50ZXN0OwotICAgICAgICB0ZXN0LnVucmVhY2hlZF9mdW5jKHJlYXNvbikoKTsKLSAgICB9KTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzLmxlbmd0aCwgMSwgYGJhZCByZXNwb25zZTog
JyR7dGV4dH0nYCk7OworICAgICAgICAvLyBudWxsIEpTT04gdmFsdWVzIHBhcnNlIGFzIG51bGws
IG5vdCB1bmRlZmluZWQKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzWzBdLmVycm9yLCBu
dWxsLCAiJ3NlbmRiZWFjb24nIGRhdGEgbXVzdCBub3QgZmFpbCB2YWxpZGF0aW9uIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgYXNzZXJ0X3RydWUoZmFsc2UsICd0aW1lb3V0Jyk7CiB9
CiAKIC8vIENyZWF0ZXMgYW4gaWZyYW1lIG9uIHRoZSBkb2N1bWVudCdzIGJvZHkgYW5kIHJ1bnMg
dGhlIHNhbXBsZSB0ZXN0cyBmcm9tIHRoZSBpZnJhbWUuCiAvLyBUaGUgaWZyYW1lIGlzIG5hdmln
YXRlZCBpbW1lZGlhdGVseSBhZnRlciBpdCBzZW5kcyB0aGUgZGF0YSwgYW5kIHRoZSB3aW5kb3cg
dmVyaWZpZXMKIC8vIHRoYXQgdGhlIGRhdGEgaXMgc3RpbGwgc3VjY2Vzc2Z1bGx5IHNlbnQuCi0v
LyAgICBmdW5jTmFtZTogImJlYWNvbiIgdG8gc2VuZCB0aGUgZGF0YSB2aWEgbmF2aWdhdG9yLnNl
bmRCZWFjb24oKSwKLS8vICAgICAgICAgICAgICAiZmV0Y2giIHRvIHNlbmQgdGhlIGRhdGEgdmlh
IGZldGNoKCkgd2l0aCB0aGUga2VlcGFsaXZlIGZsYWcuCi1mdW5jdGlvbiBydW5TZW5kSW5JZnJh
bWVBbmROYXZpZ2F0ZVRlc3RzKGZ1bmNOYW1lKSB7CitmdW5jdGlvbiBydW5TZW5kSW5JZnJhbWVB
bmROYXZpZ2F0ZVRlc3RzKCkgewogICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpZnJhbWUiKTsKICAgICBpZnJhbWUuaWQgPSAiaWZyYW1lIjsKICAgICBpZnJhbWUub25s
b2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciB0ZXN0cyA9IEFycmF5KCk7Ci0KICAgICAg
ICAgLy8gQ2xlYXIgb3VyIG9ubG9hZCBoYW5kbGVyIHRvIHByZXZlbnQgcmUtcnVubmluZyB0aGUg
dGVzdHMgYXMgd2UgbmF2aWdhdGUgYXdheS4KLSAgICAgICAgdGhpcy5vbmxvYWQgPSBudWxsOwot
Ci0gICAgICAgIC8vIEltcGxlbWVudCB0aGUgc2VsZi5idWlsZElkIGV4dGVuc2lvbiB0byBpZGVu
dGlmeSB0aGUgcGFyYW1ldGVyaXplZAotICAgICAgICAvLyB0ZXN0IGluIHRoZSByZXBvcnQuCi0g
ICAgICAgIHNlbGYuYnVpbGRJZCA9IGZ1bmN0aW9uKGJhc2VJZCkgewotICAgICAgICAgICAgcmV0
dXJuIGAke2Jhc2VJZH0tJHtmdW5jTmFtZX0tTkFWSUdBVEVgOwotICAgICAgICB9OwotCi0gICAg
ICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAvLyBUaGUg
aWZyYW1lIHdpbGwgZXhlY3V0ZSBzZW5kRGF0YSgpIGZvciB1cyBhbmQgcmV0dXJuIHRoZSByZXN1
bHQuCi0gICAgICAgICAgICB2YXIgdGVzdENhc2UgPSB0ZXN0c1tlLmRhdGFdOwotICAgICAgICAg
ICAgY29udGludWVBZnRlclNlbmRpbmdCZWFjb24odHJ1ZSAvKiBzZW5kUmVzdWx0ICovLCB0ZXN0
Q2FzZSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgLy8gSW1wbGVtZW50IHRoZSBzZWxmLnNlbmRG
dW5jIGV4dGVuc2lvbiB0byBzZW5kIHRoZSBiZWFjb24gaW5kaXJlY3RseSwKLSAgICAgICAgLy8g
ZnJvbSBhbiBpRnJhbWUgdGhhdCB3ZSBjYW4gdGhlbiBuYXZpZ2F0ZS4KLSAgICAgICAgc2VsZi5z
ZW5kRnVuYyA9IGZ1bmN0aW9uKHRlc3RDYXNlKSB7Ci0gICAgICAgICAgICB2YXIgaWZyYW1lV2lu
ZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpLmNvbnRlbnRXaW5kb3c7Ci0g
ICAgICAgICAgICAvLyBXZSBydW4gaW50byBwcm9ibGVtcyBwYXNzaW5nIHRoZSB0ZXN0Q2FzZSBv
dmVyIHRoZSBkb2N1bWVudCBib3VuZGFyeSwKLSAgICAgICAgICAgIC8vIGJlY2F1c2Ugb2Ygc3Ry
dWN0dXJlZCBjbG9uaW5nIGNvbnN0cmFpbnRzLiBJbnN0ZWFkIHdlJ2xsIHNlbmQgb3ZlciB0aGUK
LSAgICAgICAgICAgIC8vIHRlc3QgY2FzZSBpZCwgYW5kIHRoZSBpRnJhbWUgY2FuIGxvYWQgdGhl
IHN0YXRpYyB0ZXN0IGNhc2UgYnkgaW5jbHVkaW5nCi0gICAgICAgICAgICAvLyBiZWFjb24tY29t
bW9uLmpzLgotICAgICAgICAgICAgdGVzdHNbdGVzdENhc2Uub3JpZ0lkXSA9IHRlc3RDYXNlOwot
ICAgICAgICAgICAgaWZyYW1lV2luZG93LnBvc3RNZXNzYWdlKFt0ZXN0Q2FzZS5vcmlnSWQsIHRl
c3RDYXNlLnVybCwgZnVuY05hbWVdLCAiKiIpOwotICAgICAgICB9OwotCi0gICAgICAgIHJ1blRl
c3RzKHNhbXBsZVRlc3RzKTsKKyAgICAgICAgaWZyYW1lLm9ubG9hZCA9IG51bGw7CisgICAgICAg
IGZ1bmN0aW9uIHNlbmREYXRhKHRlc3RDYXNlKSB7CisgICAgICAgICAgICByZXR1cm4gaWZyYW1l
LmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24odGVzdENhc2UudXJsLCB0ZXN0Q2Fz
ZS5kYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjb25zdCB0ZXN0cyA9IFtdOworICAgICAgICBm
b3IgKGNvbnN0IHRlc3Qgb2Ygc2FtcGxlVGVzdHMpIHsKKyAgICAgICAgICAgIGNvbnN0IGNvcHkg
PSBPYmplY3QuYXNzaWduKHt9LCB0ZXN0KTsKKyAgICAgICAgICAgIGNvcHkuaWQgPSBgJHt0ZXN0
LmlkfS1OQVZJR0FURWA7CisgICAgICAgICAgICB0ZXN0cy5wdXNoKGNvcHkpOworICAgICAgICB9
CisgICAgICAgIHJ1blRlc3RzKHRlc3RzLCBzZW5kRGF0YSk7CisgICAgICAgIC8vIE5vdyBuYXZp
Z2F0ZSBvdXJzZWx2ZXMuCisgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uID0g
Imh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIjsKICAgICB9OwogCi0gICAgaWZy
YW1lLnNyYyA9ICJuYXZpZ2F0ZS5pRnJhbWUuc3ViLmh0bWwiOworICAgIGlmcmFtZS5zcmNkb2Mg
PSAnPGh0bWw+PC9odG1sPic7CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUp
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29ycy5z
dWIud2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjUwMTU4YjI5MzMzODVlZjZiYTI1
ODg3OWJhN2U0NzJmM2E4YzUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndpbmRvdy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNl
bmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBOb0RhdGEtQ09SUy1B
TExPVyAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkg
c2VuZHMgZm9yIHZhcmlhbnQ6IE51bGxEYXRhLUNPUlMtQUxMT1cgCitQQVNTIFZlcmlmeSAnbmF2
aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBVbmRl
ZmluZWREYXRhLUNPUlMtQUxMT1cgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24o
KScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFN0cmluZy1DT1JTLUFMTE9X
IAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5k
cyBmb3IgdmFyaWFudDogU21hbGxCbG9iLUNPUlMtQUxMT1cgCitQQVNTIFZlcmlmeSAnbmF2aWdh
dG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJ1
ZmZlclNvdXJjZS1DT1JTLUFMTE9XIAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29u
KCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxGb3JtRGF0YS1DT1JTLUFM
TE9XIAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBz
ZW5kcyBmb3IgdmFyaWFudDogU21hbGxTYWZlQ29udGVudFR5cGVFbmNvZGVkLUNPUlMtQUxMT1cg
CitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRz
IGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tQ09SUy1BTExPVyAKK1BBU1Mg
VmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZh
cmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRUeXBlVGV4dC1DT1JTLUFMTE9XIAorUEFTUyBWZXJpZnkg
J25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDog
Tm9EYXRhLUNPUlMtRk9SQklEIAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCkn
IHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogTnVsbERhdGEtQ09SUy1GT1JCSUQgCitQ
QVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZv
ciB2YXJpYW50OiBVbmRlZmluZWREYXRhLUNPUlMtRk9SQklEIAorUEFTUyBWZXJpZnkgJ25hdmln
YXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxT
dHJpbmctQ09SUy1GT1JCSUQgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScg
c3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJsb2ItQ09SUy1GT1JCSUQgCitQ
QVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZv
ciB2YXJpYW50OiBTbWFsbEJ1ZmZlclNvdXJjZS1DT1JTLUZPUkJJRCAKK1BBU1MgVmVyaWZ5ICdu
YXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNt
YWxsRm9ybURhdGEtQ09SUy1GT1JCSUQgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFj
b24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlw
ZUVuY29kZWQtQ09SUy1GT1JCSUQgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24o
KScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUZv
cm0tQ09SUy1GT1JCSUQgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3Vj
Y2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZVRleHQtQ09S
Uy1GT1JCSUQgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1
bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbENPUlNDb250ZW50VHlwZVRleHQtUFJFRkxJR0hU
LUFMTE9XIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29ycy5zdWIud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29ycy5zdWIu
d2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4
MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1jb3JzLnN1Yi53aW5kb3cuaHRtbApAQCAtMCww
ICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29ycy5zdWIud2luZG93LmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndp
bmRvdy5qcwppbmRleCBmNGJjY2YxNzdlM2I0NTg1YTVlZmUwYjZjZDBkNmVkYzI0ZmU0OGY5Li43
OWFjZGUxZjAzNTAxOGJjY2NlZGI2MWI1ZDUwMzM1M2JmNzY5ZTg5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tY29y
cy5zdWIud2luZG93LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYmVhY29uL2JlYWNvbi1jb3JzLnN1Yi53aW5kb3cuanMKQEAgLTEsMyArMSw0IEBA
CisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKIC8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0aWxzLmpz
CiAvLyBNRVRBOiBzY3JpcHQ9YmVhY29uLWNvbW1vbi5zdWIuanMKIApAQCAtNywxNiArOCwxMCBA
QAogLy8gdGhlIGJlYWNvbiBoYW5kbGVyIHdpbGwgcmV0dXJuIENPUlMgaGVhZGVycy4gVGhpcyB0
ZXN0IGVuc3VyZXMgdGhhdCB0aGUKIC8vIHNlbmRCZWFjb24oKSBzdWNjZWVkcyBpbiBlaXRoZXIg
Y2FzZS4KIFt0cnVlLCBmYWxzZV0uZm9yRWFjaChmdW5jdGlvbihhbGxvd0NvcnMpIHsKLSAgICAv
LyBJbXBsZW1lbnQgdGhlIHNlbGYuYnVpbGRJZCBleHRlbnNpb24gdG8gaWRlbnRpZnkgdGhlIHBh
cmFtZXRlcml6ZWQKLSAgICAvLyB0ZXN0IGluIHRoZSByZXBvcnQuCi0gICAgc2VsZi5idWlsZElk
ID0gZnVuY3Rpb24oYmFzZUlkKSB7Ci0gICAgICAgIHJldHVybiBgJHtiYXNlSWR9LSR7YWxsb3dD
b3JzID8gIkNPUlMtQUxMT1ciIDogIkNPUlMtRk9SQklEIn1gOwotICAgIH07Ci0KICAgICAvLyBJ
bXBsZW1lbnQgdGhlIHNlbGYuYnVpbGRCYXNlVXJsIGFuZCBzZWxmLmJ1aWxkVGFyZ2V0VXJsIGV4
dGVuc2lvbnMKICAgICAvLyB0byBjaGFuZ2UgdGhlIHRhcmdldCBVUkwgdG8gdXNlIGEgY3Jvc3Mt
b3JpZ2luIGRvbWFpbiBuYW1lLgogICAgIHNlbGYuYnVpbGRCYXNlVXJsID0gZnVuY3Rpb24oYmFz
ZVVybCkgewotICAgICAgICByZXR1cm4gImh0dHA6Ly97e2RvbWFpbnNbd3d3XX19Ont7cG9ydHNb
aHR0cF1bMF19fSI7CisgICAgICAgIHJldHVybiAiaHR0cDovL3t7aG9zdHNbYWx0XVtdfX06e3tw
b3J0c1todHRwXVswXX19IjsKICAgICB9OwogICAgIC8vIEltcGxlbWVudCB0aGUgc2VsZi5idWls
ZFRhcmdldFVybCBleHRlbnNpb24gdG8gYXBwZW5kIGEgZGlyZWN0aXZlCiAgICAgLy8gdG8gdGhl
IGhhbmRsZXIsIHRoYXQgaXQgc2hvdWxkIHJldHVybiBDT1JTIGhlYWRlcnMsIGlmICdhbGxvd0Nv
cnMnCkBAIC0zNSw3ICszMCwxMyBAQAogICAgICAgICByZXR1cm4gYWxsb3dDb3JzID8gYCR7dGFy
Z2V0VXJsfSZvcmlnaW49aHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fSZjcmVkZW50
aWFscz10cnVlYCA6IHRhcmdldFVybDsKICAgICB9CiAKLSAgICBydW5UZXN0cyhzYW1wbGVUZXN0
cyk7CisgICAgY29uc3QgdGVzdHMgPSBbXTsKKyAgICBmb3IgKGNvbnN0IHRlc3Qgb2Ygc2FtcGxl
VGVzdHMpIHsKKyAgICAgICAgY29uc3QgY29weSA9IE9iamVjdC5hc3NpZ24oe30sIHRlc3QpOwor
ICAgICAgICBjb3B5LmlkID0gYCR7dGVzdC5pZH0tJHthbGxvd0NvcnMgPyAiQ09SUy1BTExPVyIg
OiAiQ09SUy1GT1JCSUQifWA7CisgICAgICAgIHRlc3RzLnB1c2goY29weSk7CisgICAgfQorICAg
IHJ1blRlc3RzKHRlc3RzKTsKIH0pOwogCiAvLyBOb3cgdGVzdCBhIGNyb3NzLW9yaWdpbiByZXF1
ZXN0IHRoYXQgZG9lc24ndCB1c2UgYSBzYWZlbGlzdGVkIENvbnRlbnQtVHlwZSBhbmQgZW5zdXJl
CkBAIC00MywxNiArNDQsMTAgQEAKIC8vIGhlYWRlciBpcyB1c2VkIHRoZXJlIHNob3VsZCBiZSBh
IHByZWZsaWdodC9vcHRpb25zIHJlcXVlc3QgYW5kIHdlIHNob3VsZCBvbmx5IHN1Y2NlZWQKIC8v
IHNlbmQgdGhlIHBheWxvYWQgaWYgdGhlIHByb3BlciBDT1JTIGhlYWRlcnMgYXJlIHVzZWQuCiB7
Ci0gICAgLy8gSW1wbGVtZW50IHRoZSBzZWxmLmJ1aWxkSWQgZXh0ZW5zaW9uIHRvIGlkZW50aWZ5
IHRoZSBwYXJhbWV0ZXJpemVkCi0gICAgLy8gdGVzdCBpbiB0aGUgcmVwb3J0LgotICAgIHNlbGYu
YnVpbGRJZCA9IGZ1bmN0aW9uIChiYXNlSWQpIHsKLSAgICAgICAgcmV0dXJuIGAke2Jhc2VJZH0t
UFJFRkxJR0hULUFMTE9XYDsKLSAgICB9OwotCiAgICAgLy8gSW1wbGVtZW50IHRoZSBzZWxmLmJ1
aWxkQmFzZVVybCBhbmQgc2VsZi5idWlsZFRhcmdldFVybCBleHRlbnNpb25zCiAgICAgLy8gdG8g
Y2hhbmdlIHRoZSB0YXJnZXQgVVJMIHRvIHVzZSBhIGNyb3NzLW9yaWdpbiBkb21haW4gbmFtZS4K
ICAgICBzZWxmLmJ1aWxkQmFzZVVybCA9IGZ1bmN0aW9uIChiYXNlVXJsKSB7Ci0gICAgICAgIHJl
dHVybiAiaHR0cDovL3t7ZG9tYWluc1t3d3ddfX06e3twb3J0c1todHRwXVswXX19IjsKKyAgICAg
ICAgcmV0dXJuICJodHRwOi8ve3tob3N0c1thbHRdW119fTp7e3BvcnRzW2h0dHBdWzBdfX0iOwog
ICAgIH07CiAKICAgICAvLyBJbXBsZW1lbnQgdGhlIHNlbGYuYnVpbGRUYXJnZXRVcmwgZXh0ZW5z
aW9uIHRvIGFwcGVuZCBhIGRpcmVjdGl2ZQpAQCAtNjAsOCArNTUsMTMgQEAKICAgICBzZWxmLmJ1
aWxkVGFyZ2V0VXJsID0gZnVuY3Rpb24gKHRhcmdldFVybCkgewogICAgICAgICByZXR1cm4gYCR7
dGFyZ2V0VXJsfSZvcmlnaW49aHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fSZjcmVk
ZW50aWFscz10cnVlJnByZWZsaWdodEV4cGVjdGVkPXRydWVgOwogICAgIH0KLQotICAgIHJ1blRl
c3RzKHByZWZsaWdodFRlc3RzKTsKKyAgICBjb25zdCB0ZXN0cyA9IFtdOworICAgIGZvciAoY29u
c3QgdGVzdCBvZiBwcmVmbGlnaHRUZXN0cykgeworICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0
LmFzc2lnbih7fSwgdGVzdCk7CisgICAgICAgIGNvcHkuaWQgPSBgJHt0ZXN0LmlkfS1QUkVGTElH
SFQtQUxMT1dgOworICAgICAgICB0ZXN0cy5wdXNoKGNvcHkpOworICAgIH0KKyAgICBydW5UZXN0
cyh0ZXN0cyk7CiB9CiAKLWRvbmUoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkb25l
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iuc3ViLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iu
c3ViLndpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmUzMDEzMTlhMzE1M2Q1NmRkNGIx
ZGI2ZmM0YTM5NzI1ZDE2NzIwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci5zdWIud2luZG93
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBWZXJpZnkgY2FsbGluZyAnbmF2
aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBhIGxhcmdlIHBheWxvYWQgcmV0dXJucyAnZmFsc2Un
LiAKK1BBU1MgVmVyaWZ5IGNhbGxpbmcgJ25hdmlnYXRvci5zZW5kQmVhY29uKCknIHdpdGggYW4g
aW52YWxpZCBVUkwgdGhyb3dzIGFuIGV4Y2VwdGlvbi4gCitQQVNTIFZlcmlmeSBjYWxsaW5nICdu
YXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIGEgVVJMIHRoYXQgaXMgbm90IGEgaHR0cChzKSBz
Y2hlbWUgdGhyb3dzIGFuIGV4Y2VwdGlvbi4gCitQQVNTIFZlcmlmeSB0aGUgYmVoYXZpb3IgYWZ0
ZXIgdGhlIHF1b3RhIGlzIGV4aGF1c3RlZC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci5zdWIud2lu
ZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Jl
YWNvbi9iZWFjb24tZXJyb3Iuc3ViLndpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iu
c3ViLndpbmRvdy5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0
IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci5zdWIu
d2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9i
ZWFjb24vYmVhY29uLWVycm9yLnN1Yi53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJjNWU5NWEyNzZj
MjU3Mzg3ZTFjZDg1YzJiY2I3MDA5MGQxMTMyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci5z
dWIud2luZG93LmpzCkBAIC0wLDAgKzEsNDggQEAKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0
aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9YmVhY29uLWNvbW1vbi5zdWIuanMKKworInVzZSBzdHJp
Y3QiOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIC8vIFBheWxvYWQgdGhhdCBzaG91bGQgY2F1
c2Ugc2VuZEJlYWNvbiB0byByZXR1cm4gZmFsc2UgYmVjYXVzZSBpdCBleGNlZWRzIHRoZSBtYXhp
bXVtIHBheWxvYWQgc2l6ZS4KKyAgICB2YXIgZXhjZWVkUGF5bG9hZCA9IEFycmF5KG1heFBheWxv
YWRTaXplICsgMSkuZmlsbCgneicpLmpvaW4oIiIpOworCisgICAgdmFyIHN1Y2Nlc3MgPSBuYXZp
Z2F0b3Iuc2VuZEJlYWNvbigiaHR0cDovL3t7aG9zdHNbXVtub25leGlzdGVudF19fSIsIGV4Y2Vl
ZFBheWxvYWQpOworICAgIGFzc2VydF9mYWxzZShzdWNjZXNzLCAiY2FsbGluZyAnbmF2aWdhdG9y
LnNlbmRCZWFjb24oKScgd2l0aCBwYXlsb2FkIHNpemUgZXhjZWVkaW5nIHRoZSBtYXhpbXVtIHNp
emUgbXVzdCBmYWlsIik7Cit9LCAiVmVyaWZ5IGNhbGxpbmcgJ25hdmlnYXRvci5zZW5kQmVhY29u
KCknIHdpdGggYSBsYXJnZSBwYXlsb2FkIHJldHVybnMgJ2ZhbHNlJy4iKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgICB2YXIgaW52YWxpZFVybCA9ICJodHRwOi8vaW52YWxpZDp1cmwiOworICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgbmF2aWdhdG9yLnNl
bmRCZWFjb24oaW52YWxpZFVybCwgc21hbGxQYXlsb2FkKTsgfSwKKyAgICAgICAgYGNhbGxpbmcg
J25hdmlnYXRvci5zZW5kQmVhY29uKCknIHdpdGggYW4gaW52YWxpZCBVUkwgJyR7aW52YWxpZFVy
bH0nIG11c3QgdGhyb3cgYSBUeXBlRXJyb3JgKTsKK30sICJWZXJpZnkgY2FsbGluZyAnbmF2aWdh
dG9yLnNlbmRCZWFjb24oKScgd2l0aCBhbiBpbnZhbGlkIFVSTCB0aHJvd3MgYW4gZXhjZXB0aW9u
LiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBpbnZhbGlkVXJsID0gIm5vdGh0dHA6
Ly9pbnZhbGlkLnVybCI7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0
aW9uKCkgeyBuYXZpZ2F0b3Iuc2VuZEJlYWNvbihpbnZhbGlkVXJsLCBzbWFsbFBheWxvYWQpOyB9
LAorICAgICAgICAgYGNhbGxpbmcgJ25hdmlnYXRvci5zZW5kQmVhY29uKCknIHdpdGggYSBub24t
aHR0cChzKSBVUkwgJyR7aW52YWxpZFVybH0nIG11c3QgdGhyb3cgYSBUeXBlRXJyb3JgKTsKK30s
ICJWZXJpZnkgY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBhIFVSTCB0aGF0
IGlzIG5vdCBhIGh0dHAocykgc2NoZW1lIHRocm93cyBhbiBleGNlcHRpb24uIik7CisKKy8vIFdl
J2xsIHZhbGlkYXRlIHRoYXQgd2UgY2FuIHNlbmQgb25lIGJlYWNvbiB0aGF0IHVzZXMgb3VyIGVu
dGlyZSBRdW90YSBhbmQgdGhlbiBmYWlsIHRvIHNlbmQgb25lIHRoYXQgaXMganVzdCBvbmUgY2hh
ci4KK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgZnVuY3Rpb24gd2FpdChtcykgewor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzID0+IHN0ZXBfdGltZW91dChyZXMsIG1zKSk7
CisgICAgfQorICAgIGNvbnN0IHVybCA9ICcvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5
P2NvdW50PTEmbXM9MCc7CisgICAgYXNzZXJ0X3RydWUobmF2aWdhdG9yLnNlbmRCZWFjb24odXJs
LCBtYXhQYXlsb2FkKSwKKyAgICAgICAgICAgICAgICAiY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRC
ZWFjb24oKScgd2l0aCBvdXIgbWF4IHBheWxvYWQgc2l6ZSBzaG91bGQgc3VjY2VlZC4iKTsKKwor
ICAgIC8vIE5vdyB3ZSdsbCBzZW5kIGp1c3Qgb25lIGNoYXJhY3Rlci4KKyAgICBhc3NlcnRfZmFs
c2UobmF2aWdhdG9yLnNlbmRCZWFjb24odXJsLCAnMScpLAorICAgICAgICAgICAgICAgICAiY2Fs
bGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBqdXN0IG9uZSBjaGFyIHNob3VsZCBm
YWlsIHdoaWxlIG91ciBRdW90YSBpcyB1c2VkIHVwLiIpOworCisgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAyMDsgKytpKSB7CisgICAgICAgIGF3YWl0IHdhaXQoMTAwKTsKKyAgICAgICAgaWYgKG5h
dmlnYXRvci5zZW5kQmVhY29uKHVybCwgbWF4UGF5bG9hZCkpIHsKKyAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorICAgIGFzc2VydF91bnJlYWNoZWQoJ1RoZSBxdW90YSBzaG91
bGQgcmVjb3ZlciBhZnRlciBmZXRjaGluZy4nKTsKK30sICJWZXJpZnkgdGhlIGJlaGF2aW9yIGFm
dGVyIHRoZSBxdW90YSBpcyBleGhhdXN0ZWQuIik7CisKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1l
cnJvci53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JlYWNvbi9iZWFjb24tZXJyb3Iud2luZG93LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNTMzNTNhYmMxZWEyOTY3OTIxNjQ4OGVmMTdjOWM5YTAxMGE0MzRkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci53aW5kb3cuanMK
KysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vLyBNRVRBOiBzY3JpcHQ9L2NvbW1vbi91
dGlscy5qcwotLy8gTUVUQTogc2NyaXB0PWJlYWNvbi1jb21tb24uc3ViLmpzCi0KLSJ1c2Ugc3Ry
aWN0IjsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICAvLyBQYXlsb2FkIHRoYXQgc2hvdWxkIGNh
dXNlIHNlbmRCZWFjb24gdG8gcmV0dXJuIGZhbHNlIGJlY2F1c2UgaXQgZXhjZWVkcyB0aGUgbWF4
aW11bSBwYXlsb2FkIHNpemUuCi0gICAgdmFyIGV4Y2VlZFBheWxvYWQgPSBBcnJheShtYXhQYXls
b2FkU2l6ZSArIDEpLmZpbGwoJ3onKS5qb2luKCIiKTsKLQotICAgIHZhciBzdWNjZXNzID0gbmF2
aWdhdG9yLnNlbmRCZWFjb24oImh0dHA6Ly9kb2Vzbm90bWF0dGVyIiwgZXhjZWVkUGF5bG9hZCk7
Ci0gICAgYXNzZXJ0X2ZhbHNlKHN1Y2Nlc3MsICJjYWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNv
bigpJyB3aXRoIHBheWxvYWQgc2l6ZSBleGNlZWRpbmcgdGhlIG1heGltdW0gc2l6ZSBtdXN0IGZh
aWwiKTsKLX0sICJWZXJpZnkgY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBh
IGxhcmdlIHBheWxvYWQgcmV0dXJucyAnZmFsc2UnLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewot
ICAgIHZhciBpbnZhbGlkVXJsID0gImh0dHA6Ly9pbnZhbGlkOnVybCI7Ci0gICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBuYXZpZ2F0b3Iuc2VuZEJlYWNvbihp
bnZhbGlkVXJsLCBzbWFsbFBheWxvYWQpOyB9LAotICAgICAgICBgY2FsbGluZyAnbmF2aWdhdG9y
LnNlbmRCZWFjb24oKScgd2l0aCBhbiBpbnZhbGlkIFVSTCAnJHtpbnZhbGlkVXJsfScgbXVzdCB0
aHJvdyBhIFR5cGVFcnJvcmApOwotfSwgIlZlcmlmeSBjYWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJl
YWNvbigpJyB3aXRoIGFuIGludmFsaWQgVVJMIHRocm93cyBhbiBleGNlcHRpb24uIik7Ci0KLXRl
c3QoZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGludmFsaWRVcmwgPSAibm90aHR0cDovL2ludmFsaWQu
dXJsIjsKLSAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IG5h
dmlnYXRvci5zZW5kQmVhY29uKGludmFsaWRVcmwsIHNtYWxsUGF5bG9hZCk7IH0sCi0gICAgICAg
ICBgY2FsbGluZyAnbmF2aWdhdG9yLnNlbmRCZWFjb24oKScgd2l0aCBhIG5vbi1odHRwKHMpIFVS
TCAnJHtpbnZhbGlkVXJsfScgbXVzdCB0aHJvdyBhIFR5cGVFcnJvcmApOwotfSwgIlZlcmlmeSBj
YWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIGEgVVJMIHRoYXQgaXMgbm90IGEg
aHR0cChzKSBzY2hlbWUgdGhyb3dzIGFuIGV4Y2VwdGlvbi4iKTsKLQotLy8gV2UnbGwgdmFsaWRh
dGUgdGhhdCB3ZSBjYW4gc2VuZCBvbmUgYmVhY29uIHRoYXQgdXNlcyBvdXIgZW50aXJlIFF1b3Rh
IGFuZCB0aGVuIGZhaWwgdG8gc2VuZCBvbmUgdGhhdCBpcyBqdXN0IG9uZSBjaGFyLgotcHJvbWlz
ZV90ZXN0KGFzeW5jICgpID0+IHsKLSAgICBmdW5jdGlvbiB3YWl0KG1zKSB7Ci0gICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShyZXMgPT4gc3RlcF90aW1lb3V0KHJlcywgbXMpKTsKLSAgICB9Ci0g
ICAgY29uc3QgdXJsID0gJy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RyaWNrbGUucHk/Y291bnQ9MSZt
cz0wJzsKLSAgICBhc3NlcnRfdHJ1ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih1cmwsIG1heFBheWxv
YWQpLAotICAgICAgICAgICAgICAgICJjYWxsaW5nICduYXZpZ2F0b3Iuc2VuZEJlYWNvbigpJyB3
aXRoIG91ciBtYXggcGF5bG9hZCBzaXplIHNob3VsZCBzdWNjZWVkLiIpOwotCi0gICAgLy8gTm93
IHdlJ2xsIHNlbmQganVzdCBvbmUgY2hhcmFjdGVyLgotICAgIGFzc2VydF9mYWxzZShuYXZpZ2F0
b3Iuc2VuZEJlYWNvbih1cmwsICcxJyksCi0gICAgICAgICAgICAgICAgICJjYWxsaW5nICduYXZp
Z2F0b3Iuc2VuZEJlYWNvbigpJyB3aXRoIGp1c3Qgb25lIGNoYXIgc2hvdWxkIGZhaWwgd2hpbGUg
b3VyIFF1b3RhIGlzIHVzZWQgdXAuIik7Ci0KLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyAr
K2kpIHsKLSAgICAgICAgYXdhaXQgd2FpdCgxMDApOwotICAgICAgICBpZiAobmF2aWdhdG9yLnNl
bmRCZWFjb24odXJsLCBtYXhQYXlsb2FkKSkgewotICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgYXNzZXJ0X3VucmVhY2hlZCgnVGhlIHF1b3RhIHNob3VsZCByZWNvdmVy
IGFmdGVyIGZldGNoaW5nLicpOwotfSwgIlZlcmlmeSB0aGUgYmVoYXZpb3IgYWZ0ZXIgdGhlIHF1
b3RhIGlzIGV4aGF1c3RlZC4iKTsKLQotZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLW5hdmlnYXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2JlYWNvbi1uYXZpZ2F0ZS1leHBlY3RlZC50eHQKaW5kZXggZDU0NTBjMGI3ZmVjZjNj
MzMxOGZlMGU2MjNjZjY5NzdmN2RmNGU0YS4uYjg4OWI5NjZlZGM3ODUyZGRmN2Y1MzE4ZDFjNGNi
MjQzNmM4YjBkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLW5hdmlnYXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tbmF2
aWdhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDEzIEBACiAKIAotUEFTUyBWZXJpZnkgJ25h
dmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogTm9E
YXRhLWJlYWNvbi1OQVZJR0FURSAKLVBBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigp
JyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IE51bGxEYXRhLWJlYWNvbi1OQVZJR0FU
RSAKLVBBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2Vu
ZHMgZm9yIHZhcmlhbnQ6IFVuZGVmaW5lZERhdGEtYmVhY29uLU5BVklHQVRFIAotUEFTUyBWZXJp
ZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFu
dDogU21hbGxTdHJpbmctYmVhY29uLU5BVklHQVRFIAotUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5z
ZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxCbG9iLWJl
YWNvbi1OQVZJR0FURSAKLVBBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNj
ZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsQnVmZmVyU291cmNlLWJlYWNvbi1OQVZJ
R0FURSAKLVBBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkg
c2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsRm9ybURhdGEtYmVhY29uLU5BVklHQVRFIAotUEFTUyBW
ZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFy
aWFudDogU21hbGxTYWZlQ29udGVudFR5cGVFbmNvZGVkLWJlYWNvbi1OQVZJR0FURSAKLVBBU1Mg
VmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZh
cmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRUeXBlRm9ybS1iZWFjb24tTkFWSUdBVEUgCi1QQVNTIFZl
cmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJp
YW50OiBTbWFsbFNhZmVDb250ZW50VHlwZVRleHQtYmVhY29uLU5BVklHQVRFIAorUEFTUyBWZXJp
ZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFu
dDogTm9EYXRhLU5BVklHQVRFIAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5zZW5kYmVhY29uKCkn
IHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogTnVsbERhdGEtTkFWSUdBVEUgCitQQVNT
IFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2
YXJpYW50OiBVbmRlZmluZWREYXRhLU5BVklHQVRFIAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5z
ZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxTdHJpbmct
TkFWSUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1
bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEJsb2ItTkFWSUdBVEUgCitQQVNTIFZlcmlmeSAn
bmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBT
bWFsbEJ1ZmZlclNvdXJjZS1OQVZJR0FURSAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJl
YWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsRm9ybURhdGEtTkFW
SUdBVEUgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5
IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUVuY29kZWQtTkFWSUdBVEUg
CitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRz
IGZvciB2YXJpYW50OiBTbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tTkFWSUdBVEUgCitQQVNTIFZl
cmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJp
YW50OiBTbWFsbFNhZmVDb250ZW50VHlwZVRleHQtTkFWSUdBVEUgCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1y
ZWFkYWJsZXN0cmVhbS53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLXJlYWRhYmxlc3RyZWFtLndpbmRv
dy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc4NmM5YjRkNmIwMDAzMWZlMDk4YzgzYjIwYzk4
YmQ1Yzc5Y2ZjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWFkYWJsZXN0cmVhbS53aW5kb3ctZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHNlbmRCZWFjb24oKSB3aXRoIGEgc3Ry
ZWFtIGRvZXMgbm90IHdvcmsgZHVlIHRvIHRoZSBrZWVwYWxpdmUgZmxhZyBiZWluZyBzZXQgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2JlYWNvbi1yZWFkYWJsZXN0cmVhbS53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWFkYWJsZXN0cmVh
bS53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYw
OTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLXJlYWRhYmxlc3RyZWFtLndpbmRvdy5odG1s
CkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVz
dCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWFkYWJsZXN0cmVhbS53aW5kb3cuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFj
b24tcmVhZGFibGVzdHJlYW0ud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjN2Y4MWY4ODRiZGY0N2I2
ZWI3NmY2ZDliMjM3YmMzODU1NmVmYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tcmVhZGFibGVzdHJl
YW0ud2luZG93LmpzCkBAIC0wLDAgKzEsMyBAQAordGVzdCgoKSA9PiB7CisgIGFzc2VydF90aHJv
d3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBuYXZpZ2F0b3Iuc2VuZEJlYWNvbigiLi4uIiwgbmV3
IFJlYWRhYmxlU3RyZWFtKCkpKTsKK30sICJzZW5kQmVhY29uKCkgd2l0aCBhIHN0cmVhbSBkb2Vz
IG5vdCB3b3JrIGR1ZSB0byB0aGUga2VlcGFsaXZlIGZsYWcgYmVpbmcgc2V0Iik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9i
ZWFjb24tcmVkaXJlY3Qud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1yZWRpcmVjdC53aW5kb3ctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMDIwNGU3NjBjNGUzNjU1M2Q3ODk3OTc4NTJjNzUxM2I3
Y2IyODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tcmVkaXJlY3Qud2luZG93LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIyIEBACisKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBz
dWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IE5vRGF0YS0zMDcgCitQQVNTIFZlcmlmeSAn
bmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBO
dWxsRGF0YS0zMDcgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vz
c2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBVbmRlZmluZWREYXRhLTMwNyAKK1BBU1MgVmVyaWZ5
ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6
IFNtYWxsU3RyaW5nLTMwNyAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBz
dWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsQmxvYi0zMDcgCitQQVNTIFZlcmlm
eSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50
OiBTbWFsbEJ1ZmZlclNvdXJjZS0zMDcgCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFj
b24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEZvcm1EYXRhLTMwNyAK
K1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMg
Zm9yIHZhcmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRUeXBlRW5jb2RlZC0zMDcgCitQQVNTIFZlcmlm
eSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50
OiBTbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tMzA3IAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5z
ZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxTYWZlQ29u
dGVudFR5cGVUZXh0LTMwNyAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBz
dWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IE5vRGF0YS0zMDggCitQQVNTIFZlcmlmeSAn
bmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBO
dWxsRGF0YS0zMDggCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vz
c2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBVbmRlZmluZWREYXRhLTMwOCAKK1BBU1MgVmVyaWZ5
ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6
IFNtYWxsU3RyaW5nLTMwOCAKK1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBz
dWNjZXNzZnVsbHkgc2VuZHMgZm9yIHZhcmlhbnQ6IFNtYWxsQmxvYi0zMDggCitQQVNTIFZlcmlm
eSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50
OiBTbWFsbEJ1ZmZlclNvdXJjZS0zMDggCitQQVNTIFZlcmlmeSAnbmF2aWdhdG9yLnNlbmRiZWFj
b24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50OiBTbWFsbEZvcm1EYXRhLTMwOCAK
K1BBU1MgVmVyaWZ5ICduYXZpZ2F0b3Iuc2VuZGJlYWNvbigpJyBzdWNjZXNzZnVsbHkgc2VuZHMg
Zm9yIHZhcmlhbnQ6IFNtYWxsU2FmZUNvbnRlbnRUeXBlRW5jb2RlZC0zMDggCitQQVNTIFZlcmlm
eSAnbmF2aWdhdG9yLnNlbmRiZWFjb24oKScgc3VjY2Vzc2Z1bGx5IHNlbmRzIGZvciB2YXJpYW50
OiBTbWFsbFNhZmVDb250ZW50VHlwZUZvcm0tMzA4IAorUEFTUyBWZXJpZnkgJ25hdmlnYXRvci5z
ZW5kYmVhY29uKCknIHN1Y2Nlc3NmdWxseSBzZW5kcyBmb3IgdmFyaWFudDogU21hbGxTYWZlQ29u
dGVudFR5cGVUZXh0LTMwOCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLXJlZGlyZWN0LndpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29u
LXJlZGlyZWN0LndpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2
NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tcmVkaXJlY3Qud2luZG93Lmh0
bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0
ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLXJlZGlyZWN0LndpbmRvdy5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1y
ZWRpcmVjdC53aW5kb3cuanMKaW5kZXggNjU5NzU5YmFhM2Y1YzU4YjI2YjllZDA0MjA0NzM0OGI2
N2EyM2U0NC4uM2E4YWVmM2M3NDJiNjgzNDhmYTJjMjczMDNlMjk3ZTgzODY3NjhiMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24v
YmVhY29uLXJlZGlyZWN0LndpbmRvdy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tcmVkaXJlY3Qud2luZG93LmpzCkBAIC0x
LDMgKzEsNCBAQAorLy8gTUVUQTogdGltZW91dD1sb25nCiAvLyBNRVRBOiBzY3JpcHQ9L2NvbW1v
bi91dGlscy5qcwogLy8gTUVUQTogc2NyaXB0PWJlYWNvbi1jb21tb24uc3ViLmpzCiAKQEAgLTcs
MTkgKzgsMTggQEAKIC8vIE5vdGUgdGhhdCBzdGF0dXMgY29kZXMgMzA3IGFuZCAzMDggYXJlIHRo
ZSBvbmx5IGNvZGVzIHRoYXQgd2lsbCBtYWludGFpbiBQT1NUIGRhdGEKIC8vIHRocm91Z2ggYSBy
ZWRpcmVjdC4KIFszMDcsIDMwOF0uZm9yRWFjaChmdW5jdGlvbihzdGF0dXMpIHsKLSAgICAvLyBJ
bXBsZW1lbnQgdGhlIHNlbGYuYnVpbGRJZCBleHRlbnNpb24gdG8gaWRlbnRpZnkgdGhlIHBhcmFt
ZXRlcml6ZWQKLSAgICAvLyB0ZXN0IGluIHRoZSByZXBvcnQuCi0gICAgc2VsZi5idWlsZElkID0g
ZnVuY3Rpb24oYmFzZUlkKSB7Ci0gICAgICAgIHJldHVybiBgJHtiYXNlSWR9LSR7c3RhdHVzfWA7
Ci0gICAgfTsKLQogICAgIC8vIEltcGxlbWVudCB0aGUgc2VsZi5idWlsZFRhcmdldFVybCBleHRl
bnNpb24gdG8gaW5qZWN0IGEgcmVkaXJlY3QgdG8KICAgICAvLyB0aGUgc2VuZEJlYWNvbiB0YXJn
ZXQuCiAgICAgc2VsZi5idWlsZFRhcmdldFVybCA9IGZ1bmN0aW9uKHRhcmdldFVybCkgewogICAg
ICAgICByZXR1cm4gYC9jb21tb24vcmVkaXJlY3QucHk/c3RhdHVzPSR7c3RhdHVzfSZsb2NhdGlv
bj0ke2VuY29kZVVSSUNvbXBvbmVudCh0YXJnZXRVcmwpfWA7CiAgICAgfTsKLQotICAgIHJ1blRl
c3RzKHNhbXBsZVRlc3RzKTsKKyAgICBjb25zdCB0ZXN0cyA9IFtdOworICAgIGZvciAoY29uc3Qg
dGVzdCBvZiBzYW1wbGVUZXN0cykgeworICAgICAgICBjb25zdCBjb3B5ID0gT2JqZWN0LmFzc2ln
bih7fSwgdGVzdCk7CisgICAgICAgIGNvcHkuaWQgPSBgJHt0ZXN0LmlkfS0ke3N0YXR1c31gOwor
ICAgICAgICB0ZXN0cy5wdXNoKGNvcHkpOworICAgIH0KKyAgICBydW5UZXN0cyh0ZXN0cyk7CiB9
KTsKIAogZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJl
ci1zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCA4Y2Y2ODFjNjEyMjcwNTg5YWNkNzA5YzFjNzVjZDU1YWRlNzAxOTFmLi5jNzM1MjI5ZjFmM2Fm
OTE4MTQ3ODEzZWFjODFmMzU5YzEwYjk0YzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJl
ci1zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFk
ZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotUEFTUyBUZXN0IHJlZmVyZXIgaGVhZGVy
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvYmVhY29uL3Jlc291cmNlcy8gCi1QQVNTIFRlc3QgcmVm
ZXJlciBoZWFkZXIgaHR0cDovL2xvY2FsaG9zdDo4ODAwL2JlYWNvbi9yZXNvdXJjZXMvIAorUEFT
UyBUZXN0IHJlZmVyZXIgaGVhZGVyIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvYmVhY29uL3Jlc291
cmNlcy8gCitQQVNTIFRlc3QgcmVmZXJlciBoZWFkZXIgaHR0cDovLzEyNy4wLjAuMTo4ODAwL2Jl
YWNvbi9yZXNvdXJjZXMvIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1yZWZlcnJlci1z
dHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKaW5kZXggZWY2YTU5ODQw
NjZhODE2MTliNzliMDQxNmQ3MDU2OTg4MTI4MDg4NC4uZjMxMDAzNTAwOTQxNjM2ZWFlZjFjOWE2
MWNlMzg4NTFjNGNiMWIyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItc3RyaWN0LW9y
aWdpbi13aGVuLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVy
LXN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApAQCAtMTIsMTAgKzEy
LDEwIEBACiAgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotICAgICAgdmFyIHRlc3RCYXNlID0gZ2V0X2hv
c3RfaW5mbygpLkhUVFBTX09SSUdJTiArICBSRVNPVVJDRVNfRElSOworICAgICAgdmFyIHRlc3RC
YXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX1JFTU9URV9PUklHSU4gKyAgUkVTT1VSQ0VTX0RJ
UjsKICAgICAgIHRlc3RSZWZlcnJlckhlYWRlcih0ZXN0QmFzZSwgcmVmZXJyZXJPcmlnaW4pOwot
ICAgICAgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9PUklHSU4gKyBSRVNPVVJDRVNf
RElSOwotICAgICAgdGVzdFJlZmVycmVySGVhZGVyKHRlc3RCYXNlLCAiIik7CisgICAgICB0ZXN0
QmFzZSA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JFTU9URV9PUklHSU4gKyBSRVNPVVJDRVNfRElS
OworICAgICAgdGVzdFJlZmVycmVySGVhZGVyKHRlc3RCYXNlLCAiIiwgdHJ1ZSk7CiAgICAgPC9z
Y3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVy
LXN0cmljdC1vcmlnaW4uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLXN0cmljdC1vcmln
aW4uaHR0cHMuaHRtbAppbmRleCBlZjZhNTk4NDA2NmE4MTYxOWI3OWIwNDE2ZDcwNTY5ODgxMjgw
ODg0Li5iNjViYzc5NWQyYzgyZThjMmIzZjI5Nzc0ZDlmMmMxODJkYTdjNWMyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFk
ZXJzL2hlYWRlci1yZWZlcnJlci1zdHJpY3Qtb3JpZ2luLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFk
ZXItcmVmZXJyZXItc3RyaWN0LW9yaWdpbi5odHRwcy5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiAg
ICAgICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUFNfT1JJR0lOICsgIFJFU09V
UkNFU19ESVI7CiAgICAgICB0ZXN0UmVmZXJyZXJIZWFkZXIodGVzdEJhc2UsIHJlZmVycmVyT3Jp
Z2luKTsKICAgICAgIHRlc3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfT1JJR0lOICsgUkVT
T1VSQ0VTX0RJUjsKLSAgICAgIHRlc3RSZWZlcnJlckhlYWRlcih0ZXN0QmFzZSwgIiIpOworICAg
ICAgdGVzdFJlZmVycmVySGVhZGVyKHRlc3RCYXNlLCAiIiwgdHJ1ZSk7CiAgICAgPC9zY3JpcHQ+
CiAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLXVuc2Fm
ZS11cmwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZlLXVybC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzM5YzdlODU0OTU5N2E0MzU5YmNjMmY3MThjN2YyYTNm
NTM0YWZjYy4uOGNmNjgxYzYxMjI3MDU4OWFjZDcwOWMxYzc1Y2Q1NWFkZTcwMTkxZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24v
aGVhZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZlLXVybC5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVh
ZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZlLXVybC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSw0IEBACiAKK1BBU1MgVGVzdCByZWZlcmVyIGhlYWRlciBodHRwczovL2xvY2FsaG9zdDo5
NDQzL2JlYWNvbi9yZXNvdXJjZXMvIAogUEFTUyBUZXN0IHJlZmVyZXIgaGVhZGVyIGh0dHA6Ly9s
b2NhbGhvc3Q6ODgwMC9iZWFjb24vcmVzb3VyY2VzLyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXIt
cmVmZXJyZXItdW5zYWZlLXVybC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXItdW5zYWZl
LXVybC5odHRwcy5odG1sCmluZGV4IDlhM2JjY2ZiYmZmYzZlYTE3NTNhOGZkZTEzYTAwNDVlZDAy
MDlmNzMuLjI2YTA2MmViZDg1YzIyMWRmNDBiNjc1M2Q3N2RkMzNjZDM3NzZjMTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2hl
YWRlcnMvaGVhZGVyLXJlZmVycmVyLXVuc2FmZS11cmwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRl
ci1yZWZlcnJlci11bnNhZmUtdXJsLmh0dHBzLmh0bWwKQEAgLTEyLDggKzEyLDEwIEBACiAgICAg
PHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSIvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0PgotICAgICAgdmFyIHRlc3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhU
VFBfT1JJR0lOICsgUkVTT1VSQ0VTX0RJUjsKKyAgICAgIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0
X2luZm8oKS5IVFRQU19PUklHSU4gKyAgUkVTT1VSQ0VTX0RJUjsKICAgICAgIHRlc3RSZWZlcnJl
ckhlYWRlcih0ZXN0QmFzZSwgcmVmZXJyZXJVcmwpOworICAgICAgdGVzdEJhc2UgPSBnZXRfaG9z
dF9pbmZvKCkuSFRUUF9PUklHSU4gKyBSRVNPVVJDRVNfRElSOworICAgICAgdGVzdFJlZmVycmVy
SGVhZGVyKHRlc3RCYXNlLCByZWZlcnJlclVybCwgdHJ1ZSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLXJlZmVycmVyLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFk
ZXItcmVmZXJyZXIuanMKaW5kZXggMDI2YjA5MTgyOGM0M2FhNTNhMGE2MDg2ZmFmMDgyZTI1YTFm
OWJkNS4uZWJkNjdkZjFkNzY3NjM2YTUwNDRjZWMxMDVlZTVkM2IxYTNlNjA2YSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVh
ZGVycy9oZWFkZXItcmVmZXJyZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy9oZWFkZXItcmVmZXJyZXIuanMKQEAgLTMs
MTIgKzMsMTUgQEAgdmFyIFJFU09VUkNFU19ESVIgPSAiL2JlYWNvbi9yZXNvdXJjZXMvIjsKIHZh
ciByZWZlcnJlck9yaWdpbiA9IHNlbGYubG9jYXRpb24ub3JpZ2luICsgJy8nOwogdmFyIHJlZmVy
cmVyVXJsID0gc2VsZi5sb2NhdGlvbi5ocmVmOwogCi1mdW5jdGlvbiB0ZXN0UmVmZXJyZXJIZWFk
ZXIodGVzdEJhc2UsIGV4cGVjdGVkUmVmZXJyZXIpIHsKK2Z1bmN0aW9uIHRlc3RSZWZlcnJlckhl
YWRlcih0ZXN0QmFzZSwgZXhwZWN0ZWRSZWZlcnJlciwgbWF5QmVCbG9ja2VkQXNNaXhlZENvbnRl
bnQgPSBmYWxzZSkgewogICB2YXIgaWQgPSBzZWxmLnRva2VuKCk7CiAgIHZhciB0ZXN0VXJsID0g
dGVzdEJhc2UgKyAiaW5zcGVjdC1oZWFkZXIucHk/aGVhZGVyPXJlZmVyZXImY21kPXB1dCZpZD0i
ICsgaWQ7CiAKICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICBhc3NlcnRfdHJ1
ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0VXJsKSwgIlNlbmRCZWFjb24gU3VjY2VlZGVkIik7
CisgICAgY29uc3Qgc2VudEJlYWNvbiA9IG5hdmlnYXRvci5zZW5kQmVhY29uKHRlc3RVcmwpOwor
ICAgIGlmIChtYXlCZUJsb2NrZWRBc01peGVkQ29udGVudCAmJiAhc2VudEJlYWNvbikKKyAgICAg
IHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICBhc3NlcnRfdHJ1ZShzZW50QmVhY29uLCAi
U2VuZEJlYWNvbiBTdWNjZWVkZWQiKTsKICAgICByZXR1cm4gcG9sbFJlc3VsdChleHBlY3RlZFJl
ZmVycmVyLCBpZCkgLnRoZW4ocmVzdWx0ID0+IHsKICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0
LCBleHBlY3RlZFJlZmVycmVyLCAiQ29ycmVjdCByZWZlcnJlciBoZWFkZXIgcmVzdWx0Iik7CiAg
ICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi9oZWFkZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVhZGVycy93M2MtaW1wb3J0LmxvZwpp
bmRleCBhZWYxMWY3OTMzZTJlNTY4MGVmMjA4YTc5Y2U4NDRhOTE2ZmE5NzkyLi5lMTdmMWI1YjM5
NmYwNzNkOGVhYTNmMjk2MzczZGYxZGJjY2I4YjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL3czYy1pbXBvcnQu
bG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVh
Y29uL2hlYWRlcnMvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyArMSw3IEBACiBUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgogSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKIAogVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24v
aWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkODg5NTUyYWNkY2Q4NDAw
NDhjNTNkYWJjYzZjYTAwNGU4ZDMyMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitQQVNTIGlkbF90ZXN0IHNldHVwIAorUEFTUyBp
ZGxfdGVzdCB2YWxpZGF0aW9uIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0b3I6IG9y
aWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBOYXZpZ2F0
b3I6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBtaXhp
biBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBp
bmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmln
YXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5ndWFnZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUg
CitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yQ29udGVudFV0aWxz
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgTmF2aWdhdG9yIGluY2x1ZGVzIE5hdmln
YXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW5j
bHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQQVNTIE5h
dmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2VuZEJl
YWNvbihVU1ZTdHJpbmcsIEJvZHlJbml0KSAKK1BBU1MgTmF2aWdhdG9yIGludGVyZmFjZTogbmF2
aWdhdG9yIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAic2VuZEJlYWNvbihVU1ZTdHJpbmcsIEJvZHlJ
bml0KSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgCitQQVNTIE5hdmlnYXRvciBpbnRlcmZhY2U6IGNh
bGxpbmcgc2VuZEJlYWNvbihVU1ZTdHJpbmcsIEJvZHlJbml0KSBvbiBuYXZpZ2F0b3Igd2l0aCB0
b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVz
cy5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2lkbGhhcm5lc3MuYW55Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lmh0bWwK
QEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0
IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnkuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZjI2N2FiOGJkY2U1MmNlMzJkZjRlYTNhNTNiMzBiNmQzNWM4MDAwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9iZWFjb24vaWRsaGFybmVzcy5hbnkuanMKQEAgLTAsMCArMSwxNCBAQAorLy8gTUVUQTogc2Ny
aXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzCisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNl
cy9pZGxoYXJuZXNzLmpzCisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9iZWFjb24vCisKK2lk
bF90ZXN0KAorICBbJ2JlYWNvbiddLAorICBbJ2h0bWwnXSwKKyAgaWRsX2FycmF5ID0+IHsKKyAg
ICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAgICAgTmF2aWdhdG9yOiBbJ25hdmlnYXRvcidd
LAorICAgIH0pOworICB9CispOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29u
L2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzYTliMDU3
NTJkMDRkYmZkYTRjOWM0M2MyOTBmY2FhODU4YWQyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3Mu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorCitQQVNTIGlkbF90ZXN0
IHNldHVwIAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uIAorUEFTUyBQYXJ0aWFsIGludGVyZmFj
ZSBOYXZpZ2F0b3I6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkIAorUEFTUyBQYXJ0aWFsIGlu
dGVyZmFjZSBOYXZpZ2F0b3I6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBQYXJ0aWFs
IGludGVyZmFjZSBtaXhpbiBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUgCitQ
QVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JJRDogbWVtYmVyIG5hbWVzIGFyZSB1bmlx
dWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JMYW5ndWFnZTogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JPbkxpbmU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdh
dG9yQ29udGVudFV0aWxzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZSAKK1BBU1MgTmF2aWdhdG9y
IGluY2x1ZGVzIE5hdmlnYXRvckNvb2tpZXM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFT
UyBOYXZpZ2F0b3IgaW5jbHVkZXMgTmF2aWdhdG9yUGx1Z2luczogbWVtYmVyIG5hbWVzIGFyZSB1
bmlxdWUgCitQQVNTIE5hdmlnYXRvciBpbmNsdWRlcyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdh
cmU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlIAorUEFTUyBOYXZpZ2F0b3IgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgTmF2aWdh
dG9yIGludGVyZmFjZTogbmF2aWdhdG9yIG11c3Qgbm90IGhhdmUgcHJvcGVydHkgInNlbmRCZWFj
b24iIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4
YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJuZXNzLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBA
Cis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1
cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2JlYWNvbi9uYXZpZ2F0ZS5pRnJhbWUuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9uYXZpZ2F0ZS5pRnJhbWUuc3ViLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0Yzc4NDZlNTIyYjU1Mzk4NWNjMGFkMjUz
ZTQzOWJkNmQzMTU5NzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24v
bmF2aWdhdGUuaUZyYW1lLnN1Yi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5XM0MgQmVhY29uIEFz
IEZldGNoIChGZXRjaCBLZWVwQWxpdmUpIE5hdmlnYXRlIFRlc3Q8L3RpdGxlPgotPC9oZWFkPgot
PGJvZHk+Ci0gICAgPHNjcmlwdCBzcmM9ImJlYWNvbi1jb21tb24uc3ViLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0PgotICAgICAgICAidXNlIHN0cmljdCI7Ci0KLSAgICAgICAgLy8gQW4gYXJy
YXkgc2hvdWxkIGJlIHBhc3NlZCB0aHJvdWdoIHBvc3RNZXNzYWdlIHRvIHRoaXMgaUZyYW1lLCB3
aGVyZQotICAgICAgICAvLyAgICAgWzBdIGNvbnRhaW5zIGEgdGVzdCBjYXNlIGlkIGFzIGRlZmlu
ZWQgaW4gYmVhY29uLWNvbW1vbi5qcy4KLSAgICAgICAgLy8gICAgIFsxXSBpcyB0aGUgVVJMIGZv
ciB0aGUga2VlcCBhbGl2ZSBmZXRjaCgpIG9yIHNlbmRCZWFjb24oKS4KLSAgICAgICAgLy8gICAg
IFsyXSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgZnVuY3Rpb24gdG8gY2FsbCAtICJmZXRjaCIgdG8g
Y2FsbCBmZXRjaCgpIG9yICJiZWFjb24iIHRvIGNhbGwgc2VuZEJlYWNvbigpLgotICAgICAgICAv
LyBUaGUgdGVzdGNhc2UgaWQgaXMgcmV0dXJuZWQgYmFjayB0byB0aGUgd2luZG93IHRocm91Z2gg
cG9zdE1lc2FnZS4KLSAgICAgICAgdmFyIHRlc3RzID0gMDsKLSAgICAgICAgd2luZG93Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIHZhciB0ZXN0Q2FzZUlkID0gZS5kYXRh
WzBdOwotICAgICAgICAgICAgdmFyIHVybCA9IGUuZGF0YVsxXTsKLSAgICAgICAgICAgIHZhciBm
dW5jID0gZS5kYXRhWzJdOwotICAgICAgICAgICAgdGVzdHMrKzsKLQotICAgICAgICAgICAgLy8g
UmVjb25zdHJ1Y3QgZW5vdWdoIG9mIHRoZSB0ZXN0IGNhc2UgdG8gc2VuZCB0aGUga2VlcCBhbGl2
ZSBmZXRjaCAoZGF0YSBhbmQgdXJsKS4KLSAgICAgICAgICAgIHZhciB0ZXN0Q2FzZSA9IHRlc3RM
b29rdXBbdGVzdENhc2VJZF07Ci0gICAgICAgICAgICB0ZXN0Q2FzZS51cmwgPSB1cmw7Ci0KLSAg
ICAgICAgICAgIGlmIChmdW5jID09PSAiYmVhY29uIikgewotICAgICAgICAgICAgICAgIC8vIHNl
bmREYXRhIGNhbGxzIHNlbmRCZWFjb24KLSAgICAgICAgICAgICAgICBzZW5kRGF0YSh0ZXN0Q2Fz
ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoZnVuYyArICIgaXMgYW4gaW52YWxpZCBmdW5jdGlvbiIpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAvLyBMZXQgdGhlIG1haW4gcGFnZSBjb250aW51ZSB0aGUg
dGVzdCBpZiB3ZSBkb24ndCBpbW1lZGlhdGVseSB0aHJvdyBhbiBleGNlcHRpb24uCi0gICAgICAg
ICAgICBwYXJlbnQucG9zdE1lc3NhZ2UodGVzdENhc2VJZCwgIioiKTsKLQotICAgICAgICAgICAg
Ly8gTm93IG5hdmlnYXRlIG91cnNlbHZlcy4KLSAgICAgICAgICAgIGlmICh0ZXN0cyA9PSBzYW1w
bGVUZXN0cy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiaHR0
cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9yZXNvdXJjZXMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2JlYWNvbi9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKaW5kZXggMDc4ODBkNmE5MTVhMTE0NTg4
MjgwMDkxODAzZmU1YTQ3ZmI4YzhmMC4uNTk1YWJkMjIzOTlkNGZiYjQ5ZWU3NGQ4MjA1MTE1NTYw
MzYxMzVmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iZWFjb24vcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL3Jlc291cmNlcy93M2MtaW1w
b3J0LmxvZwpAQCAtMSw3ICsxLDcgQEAKIFRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgogRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCiBJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAogCiBUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2JlYWNvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL3czYy1pbXBvcnQubG9nCmluZGV4IDA4ODczNzZiMDky
ODVmZmNmNzA3ZDQ1OGRiOWVlNGJlYzYzMGNlZWUuLjA3NDllMTkzOTcwYjk0MzY2MmFjOGZkMWU1
OGVlNjQyZjY2NjZkOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvYmVhY29uL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL3czYy1pbXBvcnQubG9nCkBAIC0x
LDcgKzEsNyBAQAogVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCiBEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KIEluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CiAKIFRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CiAKQEAgLTE0
LDcgKzE0LDcgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBO
b25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vT1dORVJTCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vTUVUQS55bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFjb24tYmFzaWMtYmxv
Yi5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFj
b24vYmVhY29uLWJhc2ljLWJsb2JNYXguaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1idWZmZXJzb3VyY2UuaHRtbApA
QCAtMjUsNyArMjUsOCBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1iYXNpYy1zdHJpbmdNYXguaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNv
bi1jb21tb24uc3ViLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9iZWFjb24vYmVhY29uLWNvcnMuc3ViLndpbmRvdy5qcwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1lcnJvci53aW5kb3cuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9iZWFj
b24tZXJyb3Iuc3ViLndpbmRvdy5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvYmVhY29uL2JlYWNvbi1uYXZpZ2F0ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vYmVhY29uLXJlYWRhYmxlc3RyZWFt
LndpbmRvdy5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
YmVhY29uL2JlYWNvbi1yZWRpcmVjdC53aW5kb3cuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9uYXZpZ2F0ZS5pRnJhbWUuc3ViLmh0bWwKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9pZGxoYXJu
ZXNzLmFueS5qcwo=
</data>
<flag name="review"
          id="401919"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>