<?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>45090</bug_id>
          
          <creation_ts>2010-09-01 22:56:28 -0700</creation_ts>
          <short_desc>new-run-webkit-tests: still more unit tests</short_desc>
          <delta_ts>2010-09-08 03:54:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273230</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-01 22:56:28 -0700</bug_when>
    <thetext>new-run-webkit-tests: still more unit tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273235</commentid>
    <comment_count>1</comment_count>
      <attachid>66336</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-01 23:26:42 -0700</bug_when>
    <thetext>Created attachment 66336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275460</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-07 17:46:52 -0700</bug_when>
    <thetext>Committed r66937: &lt;http://trac.webkit.org/changeset/66937&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275488</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-07 18:08:45 -0700</bug_when>
    <thetext>This change broke Chromium-linux.


test-webkitpy: INFO     Suppressing most webkitpy logging while running unit tests.
webkitpy.test.main: INFO     Excluding: webkitpy.common.checkout.scm_unittest (use --all to include)
...........................................................................................root: INFO     this should be logged
............................................................................................EE.................................................................................................................................................................................................................................................................................................................................................................................................
======================================================================
ERROR: test_http_server (webkitpy.layout_tests.port.mac_unittest.MacTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/port_testcase.py&quot;, line 54, in test_http_server
    port.start_http_server()
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/base.py&quot;, line 388, in start_http_server
    self._http_server.start()
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/apache_http_server.py&quot;, line 221, in start
    raise Exception(&apos;Failed to start http server&apos;)
Exception: Failed to start http server

======================================================================
ERROR: test_image_diff (webkitpy.layout_tests.port.mac_unittest.MacTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/port_testcase.py&quot;, line 65, in test_image_diff
    self.assertFalse(port.diff_image(file1, file1))
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py&quot;, line 137, in diff_image
    sp = self._diff_image_request(expected_filename, actual_filename, tolerance)
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/webkit.py&quot;, line 151, in _diff_image_request
    (actual_length, actual_file, expected_length, expected_file))
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/server_process.py&quot;, line 116, in write
    self._start()
  File &quot;/home/cltbld/google-linux-2/chromium-linux-release-tests/build/WebKitTools/Scripts/webkitpy/layout_tests/port/server_process.py&quot;, line 78, in _start
    env=self._env)
  File &quot;/usr/lib/python2.5/subprocess.py&quot;, line 594, in __init__
    errread, errwrite)
  File &quot;/usr/lib/python2.5/subprocess.py&quot;, line 1147, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

----------------------------------------------------------------------
Ran 570 tests in 27.910s

FAILED (errors=2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275517</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-07 18:37:44 -0700</bug_when>
    <thetext>looking ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275528</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-07 18:50:18 -0700</bug_when>
    <thetext>confirmed that it broke ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275537</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-07 19:04:42 -0700</bug_when>
    <thetext>okay, I&apos;ve uploaded a fix as bug 45357.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275732</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-08 03:54:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66937 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66336</attachid>
            <date>2010-09-01 23:26:42 -0700</date>
            <delta_ts>2010-09-07 17:01:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45090-20100901232641.patch</filename>
            <type>text/plain</type>
            <size>48064</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlNDY1Y2EyNmRhMWMwMjFlNzhlZjZmYmYyZDhhODlmNGVlNDg5MjU5Li4yZjlmZjYy
MmQzMzYxMGM3MmNkODY0ZmNlZjBhMzM3YmRhZGQ3M2QyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkgQEAK
IDIwMTAtMDktMDEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHM6IHN0aWxsIG1vcmUgdW5pdCB0ZXN0cworCisgICAgICAgIENsZWFuIHVwIGFuZCByZW1v
dmUgdW5uZWNlc3NhcnkgY29kZS4gQmlnZ2VzdCBub3RhYmxlIGNoYW5nZSBpcworICAgICAgICBt
b3ZpbmcgdGhlIGNocm9taXVtLXNwZWNpZmljIGltYWdlZGlmZiBjb2RlIGZyb20gcG9ydC9iYXNl
IHRvCisgICAgICAgIHBvcnQvY2hyb21pdW0uCisKKyAgICAgICAgQWRkIG1vcmUgdW5pdCB0ZXN0
cyBmb3IgcnVuX3dlYmtpdF90ZXN0cy5weSwgcG9ydC9iYXNlLnB5LAorICAgICAgICBwb3J0L2Zh
Y3RvcnkucHksIHBvcnQvZHJ5cnVuLnB5LCBhbmQKKyAgICAgICAgbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKworICAgICAgICBUaGlzIGNvdmVycyBhbG1vc3QgYWxs
IG9mIHRoZSBnZW5lcmljIGFuZCB0ZXN0IGNvZGUgcGF0aHMgZXhjZXB0IGZvcgorICAgICAgICBh
IGZldyBlcnJvciBwYXRocyBpbnZvbHZpbmcgaW52YWxpZCBvciBwb3J0LXNwZWNpZmljIGNvbW1h
bmQgbGluZQorICAgICAgICBhcmd1bWVudHMsIGFuZCB0aGUgY29kZSBwYXRoIGZvciB1cGxvYWRp
bmcgcmVzdWx0cyBmaWxlcyB0byB0aGUKKyAgICAgICAgYnVpbGRib3RzLgorICAgICAgICAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDkwCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2ZhaWx1cmVzL2V4cGVj
dGVkL2hhbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGF0YS9odHRwL3Rlc3RzL3Bhc3Nlcy90ZXh0LWV4cGVjdGVkLnR4dDogQ29waWVkIGZy
b20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9wYXNzZXMv
dGV4dC1leHBlY3RlZC50eHQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGF0YS9odHRwL3Rlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWw6IENvcGllZCBmcm9tIFdlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGFzc2VzL3RleHQuaHRtbC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2h0dHAvdGVzdHMv
c3NsL3RleHQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBXZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3Bhc3Nlcy90ZXh0LWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2h0dHAvdGVzdHMvc3NsL3Rl
eHQuaHRtbDogQ29waWVkIGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGF0YS9wYXNzZXMvdGV4dC5odG1sLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS93ZWJzb2NrZXQvdGVz
dHMvcGFzc2VzL3RleHQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBXZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3Bhc3Nlcy90ZXh0LWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3dlYnNvY2tldC90
ZXN0cy9wYXNzZXMvdGV4dC5odG1sOiBDb3BpZWQgZnJvbSBXZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3Bhc3Nlcy90ZXh0Lmh0bWwuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJl
ZV90aHJlYWQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWRfdW5pdHRlc3QucHk6IEFkZGVkLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3Qu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1
bi5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rv
cnlfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9tYWNfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3NlcnZlcl9wcm9jZXNzLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3Qu
cHk6CisKKzIwMTAtMDktMDEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KIAogICAgICAgICBMYW5kIGEgcGF0Y2hl
ZCB2ZXJzaW9uIG9mIHI2NjU0MiAtIGNoYW5nZSBUZXN0UnVubmVyIHRvIGhhdmUgYW4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvZmFp
bHVyZXMvZXhwZWN0ZWQvaGFuZy5odG1sIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvZGF0YS9mYWlsdXJlcy9leHBlY3RlZC9oYW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGUwZGUwODg3OTFiMDY0YWM2ZDU1MjhkMGRmNmNlM2NhNjUyMDcwMwotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvZmFpbHVy
ZXMvZXhwZWN0ZWQvaGFuZy5odG1sCkBAIC0wLDAgKzEgQEAKK3RpbWVvdXQtdGhyZWFkCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2h0
dHAvdGVzdHMvcGFzc2VzL3RleHQtZXhwZWN0ZWQudHh0IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9odHRwL3Rlc3RzL3Bhc3Nlcy90ZXh0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yYjM4YTA2YTQ5MDdkYzlkMWZhZWIxYWEyZjcxZmUyZTg5NWEzMTc2
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvZGF0YS9odHRwL3Rlc3RzL3Bhc3Nlcy90ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
IEBACit0ZXh0LXR4dApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvZGF0YS9odHRwL3Rlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWwgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL2h0dHAvdGVzdHMvcGFzc2VzL3Rl
eHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZTI3YmU3ZDYxNTRhMWY2OGVhOTE2MGVmMGUxODY5MWQyMDU2
MGRjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvZGF0YS9odHRwL3Rlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWwKQEAgLTAsMCArMSBAQAor
dGV4dApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGF0YS9odHRwL3Rlc3RzL3NzbC90ZXh0LWV4cGVjdGVkLnR4dCBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvaHR0cC90ZXN0cy9zc2wvdGV4dC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIzOGEwNmE0OTA3ZGM5ZDFmYWViMWFhMmY3MWZlMmU4OTVh
MzE3NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2RhdGEvaHR0cC90ZXN0cy9zc2wvdGV4dC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSBAQAordGV4dC10eHQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2RhdGEvaHR0cC90ZXN0cy9zc2wvdGV4dC5odG1sIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS9odHRwL3Rlc3RzL3NzbC90ZXh0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGUyN2JlN2Q2MTU0YTFmNjhlYTkxNjBlZjBlMTg2OTFkMjA1NjBkYwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2RhdGEvaHR0cC90ZXN0cy9zc2wvdGV4dC5odG1sCkBAIC0wLDAgKzEgQEAKK3RleHQKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEv
cGxhdGZvcm0vdGVzdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3BsYXRmb3JtL3Rlc3QvdGVzdF9leHBlY3RhdGlv
bnMudHh0CmluZGV4IDE2NTU2ZTNmOGMxOTQwNzExNDQxYmQ0NmUyYzg4OWEzYjE0YzI4OWIuLjA2
MTlmZGVhY2E4MzIzMzhlNGI0ZTUxOTc4MWViMGVlNjY5YmI0YzQgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvcGxhdGZvcm0vdGVzdC90
ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvZGF0YS9wbGF0Zm9ybS90ZXN0L3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAt
OCw1ICs4LDYgQEAgV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfaW1hZ2UuaHRt
bCA9IE1JU1NJTkcgUEFTUwogV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfdGV4
dC5odG1sID0gTUlTU0lORyBQQVNTCiBXT05URklYIDogZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5o
dG1sID0gVEVYVAogV09OVEZJWCA6IGZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCA9IFRJ
TUVPVVQKK1dPTlRGSVggU0tJUCA6IGZhaWx1cmVzL2V4cGVjdGVkL2hhbmcuaHRtbCA9IFRJTUVP
VVQKIFdPTlRGSVggU0tJUCA6IGZhaWx1cmVzL2V4cGVjdGVkL2tleWJvYXJkLmh0bWwgPSBDUkFT
SAogV09OVEZJWCBTS0lQIDogZmFpbHVyZXMvZXhwZWN0ZWQvZXhjZXB0aW9uLmh0bWwgPSBDUkFT
SApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
ZGF0YS93ZWJzb2NrZXQvdGVzdHMvcGFzc2VzL3RleHQtZXhwZWN0ZWQudHh0IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGF0YS93ZWJzb2NrZXQvdGVzdHMvcGFz
c2VzL3RleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiMzhhMDZhNDkwN2RjOWQxZmFlYjFh
YTJmNzFmZTJlODk1YTMxNzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3dlYnNvY2tldC90ZXN0cy9wYXNzZXMvdGV4dC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAordGV4dC10eHQKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RhdGEvd2Vic29ja2V0L3Rlc3RzL3Bh
c3Nlcy90ZXh0Lmh0bWwgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9kYXRhL3dlYnNvY2tldC90ZXN0cy9wYXNzZXMvdGV4dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMjdi
ZTdkNjE1NGExZjY4ZWE5MTYwZWYwZTE4NjkxZDIwNTYwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kYXRhL3dlYnNvY2tldC90
ZXN0cy9wYXNzZXMvdGV4dC5odG1sCkBAIC0wLDAgKzEgQEAKK3RleHQKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1
bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKaW5k
ZXggZWMzMzA4NmUxN2ZjOGRlNzI2NzY5OGViMzYwMGViNDNmMjYzZTQ5YS4uOWI5NjNjYTlmN2Rk
MGM1MzMzY2EyYjhkYWRmZjk0YmNjYjc0NTI0NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJl
ZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKQEAgLTQ3LDYgKzQ3
LDcgQEAgaW1wb3J0IHN5cwogaW1wb3J0IHRocmVhZAogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0
IHRpbWUKK2ltcG9ydCB0cmFjZWJhY2sKIAogaW1wb3J0IHRlc3RfZmFpbHVyZXMKIApAQCAtNTQs
NiArNTUsMjMgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5sYXlvdXRfdGVz
dHMubGF5b3V0X3BhY2thZ2UuIgogICAgICAgICAgICAgICAgICAgICAgICAgICJkdW1wX3JlbmRl
cl90cmVlX3RocmVhZCIpCiAKIAorZGVmIGZpbmRfdGhyZWFkX3N0YWNrKGlkKToKKyAgICAiIiJS
ZXR1cm5zIGEgc3RhY2sgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZHVtcCBhIHN0YWNrIHRy
YWNlIGZvcgorICAgIHRoZSBnaXZlbiB0aHJlYWQgaWQgKG9yIE5vbmUgaWYgdGhlIGlkIGlzIG5v
dCBmb3VuZCkuIiIiCisgICAgZm9yIHRocmVhZF9pZCwgc3RhY2sgaW4gc3lzLl9jdXJyZW50X2Zy
YW1lcygpLml0ZW1zKCk6CisgICAgICAgIGlmIHRocmVhZF9pZCA9PSBpZDoKKyAgICAgICAgICAg
IHJldHVybiBzdGFjaworICAgIHJldHVybiBOb25lCisKKworZGVmIGxvZ19zdGFjayhzdGFjayk6
CisgICAgIiIiTG9nIGEgc3RhY2sgdHJhY2UgdG8gbG9nLmVycm9yKCkuIiIiCisgICAgZm9yIGZp
bGVuYW1lLCBsaW5lbm8sIG5hbWUsIGxpbmUgaW4gdHJhY2ViYWNrLmV4dHJhY3Rfc3RhY2soc3Rh
Y2spOgorICAgICAgICBfbG9nLmVycm9yKCdGaWxlOiAiJXMiLCBsaW5lICVkLCBpbiAlcycgJSAo
ZmlsZW5hbWUsIGxpbmVubywgbmFtZSkpCisgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAgICBf
bG9nLmVycm9yKCcgICVzJyAlIGxpbmUuc3RyaXAoKSkKKworCiBkZWYgX3Byb2Nlc3Nfb3V0cHV0
KHBvcnQsIHRlc3RfaW5mbywgdGVzdF90eXBlcywgdGVzdF9hcmdzLCBjb25maWd1cmF0aW9uLAog
ICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZGlyLCBjcmFzaCwgdGltZW91dCwgdGVzdF9ydW5f
dGltZSwgYWN0dWFsX2NoZWNrc3VtLAogICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIGVycm9y
KToKQEAgLTE2Nyw2ICsxODUsNyBAQCBjbGFzcyBTaW5nbGVUZXN0VGhyZWFkKHRocmVhZGluZy5U
aHJlYWQpOgogICAgICAgICBzZWxmLl90ZXN0X2FyZ3MgPSB0ZXN0X2FyZ3MKICAgICAgICAgc2Vs
Zi5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24KICAgICAgICAgc2VsZi5fb3V0cHV0X2Rp
ciA9IG91dHB1dF9kaXIKKyAgICAgICAgc2VsZi5fZHJpdmVyID0gTm9uZQogCiAgICAgZGVmIHJ1
bihzZWxmKToKICAgICAgICAgc2VsZi5fY292ZXJlZF9ydW4oKQpAQCAtMTc1LDE4ICsxOTQsMTkg
QEAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgIyBG
SVhNRTogdGhpcyBpcyBhIHNlcGFyYXRlIHJvdXRpbmUgdG8gd29yayBhcm91bmQgYSBidWcKICAg
ICAgICAgIyBpbiBjb3ZlcmFnZTogc2VlIGh0dHA6Ly9iaXRidWNrZXQub3JnL25lZC9jb3ZlcmFn
ZXB5L2lzc3VlLzg1LgogICAgICAgICB0ZXN0X2luZm8gPSBzZWxmLl90ZXN0X2luZm8KLSAgICAg
ICAgZHJpdmVyID0gc2VsZi5fcG9ydC5jcmVhdGVfZHJpdmVyKHNlbGYuX2ltYWdlX3BhdGgsIHNl
bGYuX3NoZWxsX2FyZ3MpCi0gICAgICAgIGRyaXZlci5zdGFydCgpCisgICAgICAgIHNlbGYuX2Ry
aXZlciA9IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxmLl9pbWFnZV9wYXRoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2hlbGxfYXJn
cykKKyAgICAgICAgc2VsZi5fZHJpdmVyLnN0YXJ0KCkKICAgICAgICAgc3RhcnQgPSB0aW1lLnRp
bWUoKQogICAgICAgICBjcmFzaCwgdGltZW91dCwgYWN0dWFsX2NoZWNrc3VtLCBvdXRwdXQsIGVy
cm9yID0gXAotICAgICAgICAgICAgZHJpdmVyLnJ1bl90ZXN0KHRlc3RfaW5mby51cmkuc3RyaXAo
KSwgdGVzdF9pbmZvLnRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9p
bmZvLmltYWdlX2hhc2goKSkKKyAgICAgICAgICAgIHNlbGYuX2RyaXZlci5ydW5fdGVzdCh0ZXN0
X2luZm8udXJpLnN0cmlwKCksIHRlc3RfaW5mby50aW1lb3V0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfaW5mby5pbWFnZV9oYXNoKCkpCiAgICAgICAgIGVuZCA9IHRp
bWUudGltZSgpCiAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0ID0gX3Byb2Nlc3Nfb3V0cHV0KHNl
bGYuX3BvcnQsCiAgICAgICAgICAgICB0ZXN0X2luZm8sIHNlbGYuX3Rlc3RfdHlwZXMsIHNlbGYu
X3Rlc3RfYXJncywKICAgICAgICAgICAgIHNlbGYuX2NvbmZpZ3VyYXRpb24sIHNlbGYuX291dHB1
dF9kaXIsIGNyYXNoLCB0aW1lb3V0LCBlbmQgLSBzdGFydCwKICAgICAgICAgICAgIGFjdHVhbF9j
aGVja3N1bSwgb3V0cHV0LCBlcnJvcikKLSAgICAgICAgZHJpdmVyLnN0b3AoKQorICAgICAgICBz
ZWxmLl9kcml2ZXIuc3RvcCgpCiAKICAgICBkZWYgZ2V0X3Rlc3RfcmVzdWx0KHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHQKQEAgLTMxMiw5ICszMzIsNyBAQCBjbGFzcyBU
ZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAgICAgICMgU2F2ZSB0aGUg
ZXhjZXB0aW9uIGZvciBvdXIgY2FsbGVyIHRvIHNlZS4KICAgICAgICAgICAgIHNlbGYuX2V4Y2Vw
dGlvbl9pbmZvID0gc3lzLmV4Y19pbmZvKCkKICAgICAgICAgICAgIHNlbGYuX3N0b3BfdGltZSA9
IHRpbWUudGltZSgpCi0gICAgICAgICAgICAjIFJlLXJhaXNlIGl0IGFuZCBkaWUuCi0gICAgICAg
ICAgICBfbG9nLmVycm9yKCclcyBkeWluZywgZXhjZXB0aW9uIHJhaXNlZDogJXMnICUgKHNlbGYu
Z2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGNlcHRpb25faW5mbykp
CisgICAgICAgICAgICBfbG9nLmVycm9yKCclcyBkeWluZywgZXhjZXB0aW9uIHJhaXNlZCcgJSBz
ZWxmLmdldE5hbWUoKSkKIAogICAgICAgICBzZWxmLl9zdG9wX3RpbWUgPSB0aW1lLnRpbWUoKQog
CkBAIC00MjYsNyArNDQ0LDcgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVh
ZCk6CiAgICAgICAgIHdvcmtlci5zdGFydCgpCiAKICAgICAgICAgdGhyZWFkX3RpbWVvdXQgPSBf
bWlsbGlzZWNvbmRzX3RvX3NlY29uZHMoCi0gICAgICAgICAgICBfcGFkX3RpbWVvdXQodGVzdF9p
bmZvLnRpbWVvdXQpKQorICAgICAgICAgICAgX3BhZF90aW1lb3V0KGludCh0ZXN0X2luZm8udGlt
ZW91dCkpKQogICAgICAgICB0aHJlYWQuX25leHRfdGltZW91dCA9IHRpbWUudGltZSgpICsgdGhy
ZWFkX3RpbWVvdXQKICAgICAgICAgd29ya2VyLmpvaW4odGhyZWFkX3RpbWVvdXQpCiAgICAgICAg
IGlmIHdvcmtlci5pc0FsaXZlKCk6CkBAIC00MzksMTEgKzQ1NywxMyBAQCBjbGFzcyBUZXN0U2hl
bGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAgICAgICMgdGhhdCB0cmFkZW9mZiBp
biBvcmRlciB0byBhdm9pZCBsb3NpbmcgdGhlIHJlc3Qgb2YgdGhpcwogICAgICAgICAgICAgIyB0
aHJlYWQncyByZXN1bHRzLgogICAgICAgICAgICAgX2xvZy5lcnJvcignVGVzdCB0aHJlYWQgaHVu
Zzoga2lsbGluZyBhbGwgRHVtcFJlbmRlclRyZWVzJykKLSAgICAgICAgICAgIHdvcmtlci5fZHJp
dmVyLnN0b3AoKQorICAgICAgICAgICAgaWYgd29ya2VyLl9kcml2ZXI6CisgICAgICAgICAgICAg
ICAgd29ya2VyLl9kcml2ZXIuc3RvcCgpCiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmVz
dWx0ID0gd29ya2VyLmdldF90ZXN0X3Jlc3VsdCgpCiAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVF
cnJvciwgZToKKyAgICAgICAgICAgICMgVGhpcyBnZXRzIHJhaXNlZCBpZiB0aGUgd29ya2VyIHRo
cmVhZCBoYXMgYWxyZWFkeSBleGl0ZWQuCiAgICAgICAgICAgICBmYWlsdXJlcyA9IFtdCiAgICAg
ICAgICAgICBfbG9nLmVycm9yKCdDYW5ub3QgZ2V0IHJlc3VsdHMgb2YgdGVzdDogJXMnICUKICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbmZvLmZpbGVuYW1lKQpAQCAtNDc2LDcgKzQ5Niw3
IEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzdGFy
dCA9IHRpbWUudGltZSgpCiAKICAgICAgICAgdGhyZWFkX3RpbWVvdXQgPSBfbWlsbGlzZWNvbmRz
X3RvX3NlY29uZHMoCi0gICAgICAgICAgICAgX3BhZF90aW1lb3V0KHRlc3RfaW5mby50aW1lb3V0
KSkKKyAgICAgICAgICAgICBfcGFkX3RpbWVvdXQoaW50KHRlc3RfaW5mby50aW1lb3V0KSkpCiAg
ICAgICAgIHNlbGYuX25leHRfdGltZW91dCA9IHN0YXJ0ICsgdGhyZWFkX3RpbWVvdXQKIAogICAg
ICAgICBjcmFzaCwgdGltZW91dCwgYWN0dWFsX2NoZWNrc3VtLCBvdXRwdXQsIGVycm9yID0gXApk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3Jl
bmRlcl90cmVlX3RocmVhZF91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2Y4NmQ5M2Q4OTQ5NWVh
OTdjOWYwMWFhMTc0OTE2OGViNmFhYjhkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJf
dHJlZV90aHJlYWRfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw0OSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisj
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyIiIiJUZXN0cyBjb2RlIHBhdGhzIG5vdCBjb3ZlcmVkIGJ5IHRoZSByZWd1bGFyIHVuaXQgdGVz
dHMuIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorCitpbXBvcnQgZHVtcF9yZW5k
ZXJfdHJlZV90aHJlYWQKKworCitjbGFzcyBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBk
ZWYgdGVzdF9maW5kX3RocmVhZF9zdGFja19mb3VuZChzZWxmKToKKyAgICAgICAgaWQsIHN0YWNr
ID0gc3lzLl9jdXJyZW50X2ZyYW1lcygpLml0ZW1zKClbMF0KKyAgICAgICAgZm91bmRfc3RhY2sg
PSBkdW1wX3JlbmRlcl90cmVlX3RocmVhZC5maW5kX3RocmVhZF9zdGFjayhpZCkKKyAgICAgICAg
c2VsZi5hc3NlcnROb3RFcXVhbChmb3VuZF9zdGFjaywgTm9uZSkKKworICAgIGRlZiB0ZXN0X2Zp
bmRfdGhyZWFkX3N0YWNrX25vdF9mb3VuZChzZWxmKToKKyAgICAgICAgZm91bmRfc3RhY2sgPSBk
dW1wX3JlbmRlcl90cmVlX3RocmVhZC5maW5kX3RocmVhZF9zdGFjaygwKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZvdW5kX3N0YWNrLCBOb25lKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21h
aW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggMGRkYTc3NDFlYTJl
MDMxZGRmMzQwOGRiMTA3OTEzNzcwZWU0ZTY0MS4uMDljZDZiYTdmNzBmYzdjYzRkZDM2ZjRiNTli
OThlNzBjZmY1YjkzNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtMTIwLDcgKzEyMCw3IEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKIAogICAgIGRlZiBjaGVja19pbWFnZV9kaWZmKHNlbGYsIG92ZXJyaWRlX3N0
ZXA9Tm9uZSwgbG9nZ2luZz1UcnVlKToKICAgICAgICAgIiIiVGhpcyByb3V0aW5lIGlzIHVzZWQg
dG8gY2hlY2sgd2hldGhlciBpbWFnZV9kaWZmIGJpbmFyeSBleGlzdHMuIiIiCi0gICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkKCdQb3J0LmNoZWNrX2ltYWdlX2RpZmYnKQorICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmNoZWNrX2ltYWdlX2RpZmYnKQogCiAgICAgZGVm
IGNvbXBhcmVfdGV4dChzZWxmLCBleHBlY3RlZF90ZXh0LCBhY3R1YWxfdGV4dCk6CiAgICAgICAg
ICIiIlJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGUgdHdvIHN0cmluZ3MgYXJlICpub3QqIGVxdWFs
LiBUaGlzCkBAIC0xNDEsMjYgKzE0MSw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAg
fHRvbGVyYW5jZXwgc2hvdWxkIGJlIGEgcGVyY2VudGFnZSB2YWx1ZSAoMC4wIC0gMTAwLjApLgog
ICAgICAgICBJZiBpdCBpcyBvbWl0dGVkLCB0aGUgcG9ydCBkZWZhdWx0IHRvbGVyYW5jZSB2YWx1
ZSBpcyB1c2VkLgogCi0gICAgICAgIFdoaWxlIHRoaXMgaXMgYSBnZW5lcmljIHJvdXRpbmUsIHdl
IGluY2x1ZGUgaXQgaW4gdGhlIFBvcnQKLSAgICAgICAgaW50ZXJmYWNlIHNvIHRoYXQgaXQgY2Fu
IGJlIG92ZXJyaWRlbiBmb3IgdGVzdGluZyBwdXJwb3Nlcy4iIiIKLSAgICAgICAgZXhlY3V0YWJs
ZSA9IHNlbGYuX3BhdGhfdG9faW1hZ2VfZGlmZigpCisgICAgICAgICIiIgorICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LmRpZmZfaW1hZ2UnKQogCi0gICAgICAgIGlmIGRp
ZmZfZmlsZW5hbWU6Ci0gICAgICAgICAgICBjbWQgPSBbZXhlY3V0YWJsZSwgJy0tZGlmZicsIGV4
cGVjdGVkX2ZpbGVuYW1lLCBhY3R1YWxfZmlsZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgZGlm
Zl9maWxlbmFtZV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNtZCA9IFtleGVjdXRhYmxl
LCBleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lXQotCi0gICAgICAgIHJlc3VsdCA9
IFRydWUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgc2VsZi5fZXhlY3V0aXZlLnJ1bl9j
b21tYW5kKGNtZCwgcmV0dXJuX2V4aXRfY29kZT1UcnVlKSA9PSAwOgotICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQotICAgICAgICBleGNlcHQgT1NFcnJvciwgZToKLSAgICAgICAgICAgIGlm
IGUuZXJybm8gPT0gZXJybm8uRU5PRU5UIG9yIGUuZXJybm8gPT0gZXJybm8uRUFDQ0VTOgotICAg
ICAgICAgICAgICAgIF9jb21wYXJlX2F2YWlsYWJsZSA9IEZhbHNlCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHJhaXNlIGUKLSAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAg
ZGVmIGRpZmZfdGV4dChzZWxmLCBleHBlY3RlZF90ZXh0LCBhY3R1YWxfdGV4dCwKICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkX2ZpbGVuYW1lLCBhY3R1YWxfZmlsZW5hbWUpOgpAQCAtMzQxLDg0
ICszMjQsMTYgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBpZiB0aGUgcG9ydCBkb2Vz
IG5vdCB1c2UgZXhwZWN0YXRpb25zIGZpbGVzLiIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yKCdQb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmlsZScpCiAKLSAgICBk
ZWYgcmVtb3ZlX2RpcmVjdG9yeShzZWxmLCAqcGF0aCk6Ci0gICAgICAgICIiIlJlY3Vyc2l2ZWx5
IHJlbW92ZXMgYSBkaXJlY3RvcnksIGV2ZW4gaWYgaXQncyBtYXJrZWQgcmVhZC1vbmx5LgotCi0g
ICAgICAgIFJlbW92ZSB0aGUgZGlyZWN0b3J5IGxvY2F0ZWQgYXQgKnBhdGgsIGlmIGl0IGV4aXN0
cy4KLQotICAgICAgICBzaHV0aWwucm10cmVlKCkgZG9lc24ndCB3b3JrIG9uIFdpbmRvd3MgaWYg
YW55IG9mIHRoZSBmaWxlcwotICAgICAgICBvciBkaXJlY3RvcmllcyBhcmUgcmVhZC1vbmx5LCB3
aGljaCBzdm4gcmVwb3NpdG9yaWVzIGFuZAotICAgICAgICBzb21lIC5zdm4gZmlsZXMgYXJlLiAg
V2UgbmVlZCB0byBiZSBhYmxlIHRvIGZvcmNlIHRoZSBmaWxlcwotICAgICAgICB0byBiZSB3cml0
YWJsZSAoaS5lLiwgZGVsZXRhYmxlKSBhcyB3ZSB0cmF2ZXJzZSB0aGUgdHJlZS4KLQotICAgICAg
ICBFdmVuIHdpdGggYWxsIHRoaXMsIFdpbmRvd3Mgc3RpbGwgc29tZXRpbWVzIGZhaWxzIHRvIGRl
bGV0ZSBhIGZpbGUsCi0gICAgICAgIGNpdGluZyBhIHBlcm1pc3Npb24gZXJyb3IgKG1heWJlIHNv
bWV0aGluZyB0byBkbyB3aXRoIGFudGl2aXJ1cwotICAgICAgICBzY2FucyBvciBkaXNrIGluZGV4
aW5nKS4gIFRoZSBiZXN0IHN1Z2dlc3Rpb24gYW55IG9mIHRoZSB1c2VyCi0gICAgICAgIGZvcnVt
cyBoYWQgd2FzIHRvIHdhaXQgYSBiaXQgYW5kIHRyeSBhZ2Fpbiwgc28gd2UgZG8gdGhhdCB0b28u
Ci0gICAgICAgIEl0J3MgaGFuZC13YXZpbmcsIGJ1dCBzb21ldGltZXMgaXQgd29ya3MuIDovCi0g
ICAgICAgICIiIgotICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4oKnBhdGgpCi0gICAg
ICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhmaWxlX3BhdGgpOgotICAgICAgICAgICAgcmV0dXJu
Ci0KLSAgICAgICAgd2luMzIgPSBGYWxzZQotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dp
bjMyJzoKLSAgICAgICAgICAgIHdpbjMyID0gVHJ1ZQotICAgICAgICAgICAgIyBTb21lIHBlb3Bs
ZSBkb24ndCBoYXZlIHRoZSBBUElzIGluc3RhbGxlZC4gSW4gdGhhdCBjYXNlIHdlJ2xsIGRvCi0g
ICAgICAgICAgICAjIHdpdGhvdXQuCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
d2luMzJhcGkgPSBfX2ltcG9ydF9fKCd3aW4zMmFwaScpCi0gICAgICAgICAgICAgICAgd2luMzJj
b24gPSBfX2ltcG9ydF9fKCd3aW4zMmNvbicpCi0gICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJy
b3I6Ci0gICAgICAgICAgICAgICAgd2luMzIgPSBGYWxzZQotCi0gICAgICAgICAgICBkZWYgcmVt
b3ZlX3dpdGhfcmV0cnkocm1mdW5jLCBwYXRoKToKLSAgICAgICAgICAgICAgICBvcy5jaG1vZChw
YXRoLCBvcy5zdGF0LlNfSVdSSVRFKQotICAgICAgICAgICAgICAgIGlmIHdpbjMyOgotICAgICAg
ICAgICAgICAgICAgICB3aW4zMmFwaS5TZXRGaWxlQXR0cmlidXRlcyhwYXRoLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbjMyY29uLkZJTEVfQVRUUklC
VVRFX05PUk1BTCkKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBybWZ1bmMocGF0aCkKLSAgICAgICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJv
ciwgZToKLSAgICAgICAgICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FQUNDRVM6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgICAgICBwcmludCAn
RmFpbGVkIHRvIGRlbGV0ZSAlczogdHJ5aW5nIGFnYWluJyAlIHJlcHIocGF0aCkKLSAgICAgICAg
ICAgICAgICAgICAgdGltZS5zbGVlcCgwLjEpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBy
bWZ1bmMocGF0aCkKLSAgICAgICAgZWxzZToKLQotICAgICAgICAgICAgZGVmIHJlbW92ZV93aXRo
X3JldHJ5KHJtZnVuYywgcGF0aCk6Ci0gICAgICAgICAgICAgICAgaWYgb3MucGF0aC5pc2xpbmso
cGF0aCk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcy5yZW1vdmUocGF0aCkKLSAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm1mdW5jKHBhdGgp
Ci0KLSAgICAgICAgZm9yIHJvb3QsIGRpcnMsIGZpbGVzIGluIG9zLndhbGsoZmlsZV9wYXRoLCB0
b3Bkb3duPUZhbHNlKToKLSAgICAgICAgICAgICMgRm9yIFBPU0lYOiAgbWFraW5nIHRoZSBkaXJl
Y3Rvcnkgd3JpdGFibGUgZ3VhcmFudGVlcwotICAgICAgICAgICAgIyByZW1vdmFiaWxpdHkuIFdp
bmRvd3Mgd2lsbCBpZ25vcmUgdGhlIG5vbi1yZWFkLW9ubHkKLSAgICAgICAgICAgICMgYml0cyBp
biB0aGUgY2htb2QgdmFsdWUuCi0gICAgICAgICAgICBvcy5jaG1vZChyb290LCAwNzcwKQotICAg
ICAgICAgICAgZm9yIG5hbWUgaW4gZmlsZXM6Ci0gICAgICAgICAgICAgICAgcmVtb3ZlX3dpdGhf
cmV0cnkob3MucmVtb3ZlLCBvcy5wYXRoLmpvaW4ocm9vdCwgbmFtZSkpCi0gICAgICAgICAgICBm
b3IgbmFtZSBpbiBkaXJzOgotICAgICAgICAgICAgICAgIHJlbW92ZV93aXRoX3JldHJ5KG9zLnJt
ZGlyLCBvcy5wYXRoLmpvaW4ocm9vdCwgbmFtZSkpCi0KLSAgICAgICAgcmVtb3ZlX3dpdGhfcmV0
cnkob3Mucm1kaXIsIGZpbGVfcGF0aCkKLQotICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWUoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9uYW1lCi0KICAgICBkZWYgcmVsYXRpdmVfdGVzdF9m
aWxlbmFtZShzZWxmLCBmaWxlbmFtZSk6CiAgICAgICAgICIiIlJlbGF0aXZlIHVuaXgtc3R5bGUg
cGF0aCBmb3IgYSBmaWxlbmFtZSB1bmRlciB0aGUgTGF5b3V0VGVzdHMKICAgICAgICAgZGlyZWN0
b3J5LiBGaWxlbmFtZXMgb3V0c2lkZSB0aGUgTGF5b3V0VGVzdHMgZGlyZWN0b3J5IHNob3VsZCBy
YWlzZQogICAgICAgICBhbiBlcnJvci4iIiIKLSAgICAgICAgIyBGSVhNRSBUaGlzIHNob3VsZCBh
c3NlcnQoKSBoZXJlIGJ1dCBjYW5ub3QgZHVlIHRvIHByaW50aW5nX3VuaXR0ZXN0LlRlc3Rwcmlu
dGVyCi0gICAgICAgICMgYXNzZXJ0KGZpbGVuYW1lLnN0YXJ0c3dpdGgoc2VsZi5sYXlvdXRfdGVz
dHNfZGlyKCkpKQorICAgICAgICBhc3NlcnQoZmlsZW5hbWUuc3RhcnRzd2l0aChzZWxmLmxheW91
dF90ZXN0c19kaXIoKSkpCiAgICAgICAgIHJldHVybiBmaWxlbmFtZVtsZW4oc2VsZi5sYXlvdXRf
dGVzdHNfZGlyKCkpICsgMTpdCiAKICAgICBkZWYgcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CiAg
ICAgICAgICIiIkFic29sdXRlIHBhdGggdG8gdGhlIHBsYWNlIHRvIHN0b3JlIHRoZSB0ZXN0IHJl
c3VsdHMuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkKCdQb3J0LnJlc3VsdHNfZGly
ZWN0b3J5JykKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignUG9ydC5yZXN1bHRz
X2RpcmVjdG9yeScpCiAKICAgICBkZWYgc2V0dXBfdGVzdF9ydW4oc2VsZik6CiAgICAgICAgICIi
IlBlcmZvcm0gcG9ydC1zcGVjaWZpYyB3b3JrIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSB0ZXN0IHJ1
bi4iIiIKQEAgLTYwOCw3ICs1MjMsNiBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgX3dkaWZmX2F2YWlsYWJsZSA9IEZhbHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuICIi
CiAgICAgICAgICAgICByYWlzZQotICAgICAgICBhc3NlcnQoRmFsc2UpICAjIFNob3VsZCBuZXZl
ciBiZSByZWFjaGVkLgogCiAgICAgX3ByZXR0eV9wYXRjaF9lcnJvcl9odG1sID0gIkZhaWxlZCB0
byBydW4gUHJldHR5UGF0Y2gsIHNlZSBlcnJvciBjb25zb2xlLiIKIApAQCAtODA4LDEwICs3MjIs
NSBAQCBjbGFzcyBEcml2ZXI6CiAgICAgICAgIGlmIGl0IGhhcyBleGl0ZWQuIiIiCiAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ0RyaXZlci5wb2xsJykKIAotICAgIGRlZiByZXR1
cm5jb2RlKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBzeXN0ZW0tc3BlY2lmaWMgcmV0
dXJuY29kZSBpZiB0aGUgRHJpdmVyIGhhcyBzdG9wcGVkIG9yCi0gICAgICAgIGV4aXRlZC4iIiIK
LSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignRHJpdmVyLnJldHVybmNvZGUnKQot
CiAgICAgZGVmIHN0b3Aoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io
J0RyaXZlci5zdG9wJykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZV91bml0dGVzdC5weQppbmRleCBmODIxMzUz
NzRmNDM5MGRjNTI4ZmI0MzU2ZDc4ZmFmZjIxZjRjYTBhLi40Yzc4YjI0NWRlNmY0ZjUyOTc2ZmU3
YmExZTBkOGRjYjE1ODlhMzkwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CkBAIC0y
NywxNSArMjcsNDkgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IGJhc2UKLWltcG9ydCB1bml0
dGVzdAoraW1wb3J0IG9zCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBzeXMKIGltcG9ydCB0ZW1w
ZmlsZQoraW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVj
dXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkudGhpcmRw
YXJ0eS5tb2NrIGltcG9ydCBNb2NrCiAKIAotY2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgorIyBGSVhNRTogVGhpcyBtYWtlcyBTdHJpbmdJTyBvYmplY3RzIHdvcmsgd2l0aCAid2l0
aCIuIFJlbW92ZQorIyB3aGVuIHdlIHVwZ3JhZGUgdG8gMi42LgorY2xhc3MgTmV3U3RyaW5nSU8o
U3RyaW5nSU8uU3RyaW5nSU8pOgorICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgdHlwZSwgdmFsdWUsIHRyYWNlYmFj
ayk6CisgICAgICAgIHBhc3MKKworCitjbGFzcyBNb2NrRXhlY3V0aXZlKCk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGV4Y2VwdGlvbik6CisgICAgICAgIHNlbGYuX2V4Y2VwdGlvbiA9IGV4Y2Vw
dGlvbgorCisgICAgZGVmIHJ1bl9jb21tYW5kKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAg
ICAgIHJhaXNlIHNlbGYuX2V4Y2VwdGlvbgogCisKK2NsYXNzIFVuaXRUZXN0UG9ydChiYXNlLlBv
cnQpOgorICAgICIiIlN1YmNsYXNzIG9mIGJhc2UuUG9ydCB1c2VkIGZvciB1bml0IHRlc3Rpbmcu
IiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZ3VyYXRpb25fY29udGVudHM9Tm9uZSwg
ZXhlY3V0aXZlX2V4Y2VwdGlvbj1Ob25lKToKKyAgICAgICAgYmFzZS5Qb3J0Ll9faW5pdF9fKHNl
bGYpCisgICAgICAgIHNlbGYuX2NvbmZpZ3VyYXRpb25fY29udGVudHMgPSBjb25maWd1cmF0aW9u
X2NvbnRlbnRzCisgICAgICAgIGlmIGV4ZWN1dGl2ZV9leGNlcHRpb246CisgICAgICAgICAgICBz
ZWxmLl9leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlKGV4ZWN1dGl2ZV9leGNlcHRpb24pCisKKyAg
ICBkZWYgX29wZW5fY29uZmlndXJhdGlvbl9maWxlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9j
b25maWd1cmF0aW9uX2NvbnRlbnRzOgorICAgICAgICAgICAgcmV0dXJuIE5ld1N0cmluZ0lPKHNl
bGYuX2NvbmZpZ3VyYXRpb25fY29udGVudHMpCisgICAgICAgIHJldHVybiBiYXNlLlBvcnQuX29w
ZW5fY29uZmlndXJhdGlvbl9maWxlKHNlbGYpCisKKworY2xhc3MgUG9ydFRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2Zvcm1hdF93ZGlmZl9vdXRwdXRfYXNfaHRtbChzZWxm
KToKICAgICAgICAgb3V0cHV0ID0gIk9VVFBVVCAlcyAlcyAlcyIgJSAoYmFzZS5Qb3J0Ll9XRElG
Rl9ERUwsIGJhc2UuUG9ydC5fV0RJRkZfQURELCBiYXNlLlBvcnQuX1dESUZGX0VORCkKICAgICAg
ICAgaHRtbCA9IGJhc2UuUG9ydCgpLl9mb3JtYXRfd2RpZmZfb3V0cHV0X2FzX2h0bWwob3V0cHV0
KQpAQCAtNjMsNiArOTcsMjYgQEAgY2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBuZXdfZmlsZS5mbHVzaCgpCiAgICAgICAgIHJldHVybiBuZXdfZmlsZQogCisgICAg
ZGVmIHRlc3RfcHJldHR5X3BhdGNoX29zX2Vycm9yKHNlbGYpOgorICAgICAgICBwb3J0ID0gVW5p
dFRlc3RQb3J0KGV4ZWN1dGl2ZV9leGNlcHRpb249T1NFcnJvcikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwb3J0LnByZXR0eV9wYXRjaF90ZXh0KCJwYXRjaC50eHQiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBwb3J0Ll9wcmV0dHlfcGF0Y2hfZXJyb3JfaHRtbCkKKworICAgICAgICAj
IFRoaXMgdGVzdHMgcmVwZWF0ZWQgY2FsbHMgdG8gbWFrZSBzdXJlIHdlIGNhY2hlIHRoZSByZXN1
bHQuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5wcmV0dHlfcGF0Y2hfdGV4dCgicGF0
Y2gudHh0IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC5fcHJldHR5X3BhdGNoX2Vy
cm9yX2h0bWwpCisKKyAgICBkZWYgdGVzdF9wcmV0dHlfcGF0Y2hfc2NyaXB0X2Vycm9yKHNlbGYp
OgorICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHNvbWUgdWdseSB3aGl0ZS1ib3ggdGVzdCBoYWNr
aW5nIC4uLgorICAgICAgICBiYXNlLl9wcmV0dHlfcGF0Y2hfYXZhaWxhYmxlID0gVHJ1ZQorICAg
ICAgICBwb3J0ID0gVW5pdFRlc3RQb3J0KGV4ZWN1dGl2ZV9leGNlcHRpb249U2NyaXB0RXJyb3Ip
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5wcmV0dHlfcGF0Y2hfdGV4dCgicGF0Y2gu
dHh0IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC5fcHJldHR5X3BhdGNoX2Vycm9y
X2h0bWwpCisKKyAgICAgICAgIyBUaGlzIHRlc3RzIHJlcGVhdGVkIGNhbGxzIHRvIG1ha2Ugc3Vy
ZSB3ZSBjYWNoZSB0aGUgcmVzdWx0LgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQucHJl
dHR5X3BhdGNoX3RleHQoInBhdGNoLnR4dCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBv
cnQuX3ByZXR0eV9wYXRjaF9lcnJvcl9odG1sKQorCiAgICAgZGVmIHRlc3RfcnVuX3dkaWZmKHNl
bGYpOgogICAgICAgICBleGVjdXRpdmUgPSBFeGVjdXRpdmUoKQogICAgICAgICAjIFRoaXMgbWF5
IGZhaWwgb24gc29tZSBzeXN0ZW1zLiAgV2UgY291bGQgYXNrIHRoZSBwb3J0CkBAIC0xMDksNiAr
MTYzLDcxIEBAIGNsYXNzIFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShiYXNlLl93ZGlmZl9hdmFpbGFibGUpCiAgICAgICAgIGJhc2UuX3dkaWZm
X2F2YWlsYWJsZSA9IFRydWUKIAorICAgIGRlZiB0ZXN0X2RlZmF1bHRfY29uZmlndXJhdGlvbl9u
b3Rmb3VuZChzZWxmKToKKyAgICAgICAgcG9ydCA9IFVuaXRUZXN0UG9ydCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocG9ydC5kZWZhdWx0X2NvbmZpZ3VyYXRpb24oKSwgIlJlbGVhc2UiKQor
CisgICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uX2ZvdW5kKHNlbGYpOgorICAgICAg
ICBwb3J0ID0gVW5pdFRlc3RQb3J0KGNvbmZpZ3VyYXRpb25fY29udGVudHM9IkRlYnVnIikKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRlZmF1bHRfY29uZmlndXJhdGlvbigpLCAiRGVi
dWciKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9jb25maWd1cmF0aW9uX3Vua25vd24oc2VsZik6
CisgICAgICAgIHBvcnQgPSBVbml0VGVzdFBvcnQoY29uZmlndXJhdGlvbl9jb250ZW50cz0id2Vp
cmRfdmFsdWUiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGVmYXVsdF9jb25maWd1
cmF0aW9uKCksICJ3ZWlyZF92YWx1ZSIpCisKKyAgICBkZWYgdGVzdF9zZXR1cF90ZXN0X3J1bihz
ZWxmKToKKyAgICAgICAgcG9ydCA9IGJhc2UuUG9ydCgpCisgICAgICAgICMgVGhpcyByb3V0aW5l
IGlzIGEgbm8tb3AuIFdlIGp1c3QgdGVzdCBpdCBmb3IgY292ZXJhZ2UuCisgICAgICAgIHBvcnQu
c2V0dXBfdGVzdF9ydW4oKQorCisKK2NsYXNzIFZpcnR1YWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKKyAgICAiIiJUZXN0cyB0aGF0IHZhcmlvdXMgbWV0aG9kcyBleHBlY3RlZCB0byBiZSB2aXJ0
dWFsIGFyZS4iIiIKKyAgICBkZWYgYXNzZXJ0VmlydHVhbChzZWxmLCBtZXRob2QsICphcmdzLCAq
Kmt3YXJncyk6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3Is
IG1ldGhvZCwgKmFyZ3MsICoqa3dhcmdzKQorCisgICAgZGVmIHRlc3RfdmlydHVhbF9tZXRob2Rz
KHNlbGYpOgorICAgICAgICBwb3J0ID0gYmFzZS5Qb3J0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRW
aXJ0dWFsKHBvcnQuYmFzZWxpbmVfcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBv
cnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0
LmNoZWNrX2J1aWxkLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5jaGVj
a19pbWFnZV9kaWZmKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5jcmVhdGVfZHJp
dmVyLCBOb25lLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5kaWZmX2lt
YWdlLCBOb25lLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5wYXRoX3Rv
X3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0
LnRlc3RfcGxhdGZvcm1fbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQucmVz
dWx0c19kaXJlY3RvcnkpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnNob3dfaHRt
bF9yZXN1bHRzX2ZpbGUsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnRl
c3RfZXhwZWN0YXRpb25zKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC50ZXN0X2Jh
c2VfcGxhdGZvcm1fbmFtZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnRlc3Rf
cGxhdGZvcm1fbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQudGVzdF9wbGF0
Zm9ybXMpCisgICAgICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0LnRlc3RfcGxhdGZvcm1fbmFt
ZV90b19uYW1lLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC52ZXJzaW9u
KQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19hcGFjaGUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZSkK
KyAgICAgICAgc2VsZi5hc3NlcnRWaXJ0dWFsKHBvcnQuX3BhdGhfdG9fZHJpdmVyKQorICAgICAg
ICBzZWxmLmFzc2VydFZpcnR1YWwocG9ydC5fcGF0aF90b19oZWxwZXIpCisgICAgICAgIHNlbGYu
YXNzZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VmlydHVhbChwb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkKQorICAgICAgICBzZWxmLmFzc2VydFZp
cnR1YWwocG9ydC5fcGF0aF90b19saWdodHRwZF9tb2R1bGVzKQorICAgICAgICBzZWxmLmFzc2Vy
dFZpcnR1YWwocG9ydC5fcGF0aF90b19saWdodHRwZF9waHApCisgICAgICAgIHNlbGYuYXNzZXJ0
VmlydHVhbChwb3J0Ll9wYXRoX3RvX3dkaWZmKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwo
cG9ydC5fc2h1dF9kb3duX2h0dHBfc2VydmVyLCBOb25lKQorCisgICAgZGVmIHRlc3RfdmlydHVh
bF9kcml2ZXJfbWV0aG9kKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBs
ZW1lbnRlZEVycm9yLCBiYXNlLkRyaXZlciwgYmFzZS5Qb3J0LCAiIiwgTm9uZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRWaXJ0dWFsKGJhc2UuRHJpdmVyLCBiYXNlLlBvcnQsICIiLCBOb25lKQorCisg
ICAgZGVmIHRlc3RfdmlydHVhbF9kcml2ZXJfbWV0aG9kcyhzZWxmKToKKyAgICAgICAgY2xhc3Mg
VmlydHVhbERyaXZlcihiYXNlLkRyaXZlcik6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2Vs
Zik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGRyaXZlciA9IFZpcnR1YWxEcml2
ZXIoKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwoZHJpdmVyLnJ1bl90ZXN0LCBOb25lLCBO
b25lLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFZpcnR1YWwoZHJpdmVyLnBvbGwpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VmlydHVhbChkcml2ZXIuc3RvcCkKIAogY2xhc3MgRHJpdmVyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTEyNCwzICsyNDMsNyBAQCBjbGFzcyBEcml2ZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgY29tbWFuZF93aXRoX3NwYWNlcyA9ICJ2YWxn
cmluZCAtLXNtYy1jaGVjaz1cImNoZWNrIHdpdGggc3BhY2VzIVwiIC0tZm9vIgogICAgICAgICBl
eHBlY3RlZF9wYXJzZSA9IFsidmFsZ3JpbmQiLCAiLS1zbWMtY2hlY2s9Y2hlY2sgd2l0aCBzcGFj
ZXMhIiwgIi0tZm9vIl0KICAgICAgICAgc2VsZi5fYXNzZXJ0X3dyYXBwZXIoY29tbWFuZF93aXRo
X3NwYWNlcywgZXhwZWN0ZWRfcGFyc2UpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
KyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IDZjZmMwYjgxNGYy
MjYyYWUwMGY1YzgxNDJmN2M5OThjZmVhNzAwYzYuLmQ1Yzk2NjkzMTg1YjI5ZGVhYWY0NWNkYjcx
M2I0YzUxMGRlNDhhOTMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtMTI0LDYgKzEyNCwyNiBA
QCBjbGFzcyBDaHJvbWl1bVBvcnQoYmFzZS5Qb3J0KToKICAgICAgICAgcmV0dXJuIGNoZWNrX2Zp
bGVfZXhpc3RzKGltYWdlX2RpZmZfcGF0aCwgJ2ltYWdlIGRpZmYgZXhlJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlX3N0ZXAsIGxvZ2dpbmcpCiAKKyAgICBkZWYg
ZGlmZl9pbWFnZShzZWxmLCBleHBlY3RlZF9maWxlbmFtZSwgYWN0dWFsX2ZpbGVuYW1lLAorICAg
ICAgICAgICAgICAgICAgIGRpZmZfZmlsZW5hbWU9Tm9uZSwgdG9sZXJhbmNlPTApOgorICAgICAg
ICBleGVjdXRhYmxlID0gc2VsZi5fcGF0aF90b19pbWFnZV9kaWZmKCkKKyAgICAgICAgaWYgZGlm
Zl9maWxlbmFtZToKKyAgICAgICAgICAgIGNtZCA9IFtleGVjdXRhYmxlLCAnLS1kaWZmJywgZXhw
ZWN0ZWRfZmlsZW5hbWUsIGFjdHVhbF9maWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICBkaWZm
X2ZpbGVuYW1lXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY21kID0gW2V4ZWN1dGFibGUs
IGV4cGVjdGVkX2ZpbGVuYW1lLCBhY3R1YWxfZmlsZW5hbWVdCisKKyAgICAgICAgcmVzdWx0ID0g
VHJ1ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBzZWxmLl9leGVjdXRpdmUucnVuX2Nv
bW1hbmQoY21kLCByZXR1cm5fZXhpdF9jb2RlPVRydWUpID09IDA6CisgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yLCBlOgorICAgICAgICAgICAgaWYg
ZS5lcnJubyA9PSBlcnJuby5FTk9FTlQgb3IgZS5lcnJubyA9PSBlcnJuby5FQUNDRVM6CisgICAg
ICAgICAgICAgICAgX2NvbXBhcmVfYXZhaWxhYmxlID0gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcmFpc2UgZQorICAgICAgICByZXR1cm4gcmVzdWx0CisKICAgICBk
ZWYgZHJpdmVyX25hbWUoc2VsZik6CiAgICAgICAgIHJldHVybiAidGVzdF9zaGVsbCIKIApAQCAt
MzMwLDkgKzM1MCw2IEBAIGNsYXNzIENocm9taXVtRHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICAg
ICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTczMTcxNwogICAgICAgICByZXR1cm4g
c2VsZi5fcHJvYy5wb2xsKCkKIAotICAgIGRlZiByZXR1cm5jb2RlKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fcHJvYy5yZXR1cm5jb2RlCi0KICAgICBkZWYgX3dyaXRlX2NvbW1hbmRfYW5k
X3JlYWRfbGluZShzZWxmLCBpbnB1dD1Ob25lKToKICAgICAgICAgIiIiUmV0dXJucyBhIHR1cGxl
OiAobGluZSwgZGlkX2NyYXNoKSIiIgogICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CmluZGV4
IGUwMWJkMmZlMzZlYjJkZGVjZWVmZjk2Njk3ZDI4Y2FiODVlMWQyOTguLjFhZjAxYWQ5MDgzM2Qy
MTI3MDIyNWMxMWM1ZjRiZDgxZjYwMzNjN2UgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJ5cnVuLnB5CkBAIC03MCwxNCAr
NzAsMTEgQEAgZGVmIF9yZWFkX2ZpbGUocGF0aCwgbW9kZT0ncicpOgogZGVmIF93cml0ZV9maWxl
KHBhdGgsIGNvbnRlbnRzLCBtb2RlPSd3Jyk6CiAgICAgIiIiV3JpdGUgdGhlIHN0cmluZyB0byB0
aGUgc3BlY2lmaWVkIHBhdGguCiAKLSAgICBSZXR1cm5zIG5vdGhpbmcgaWYgdGhlIHdyaXRlIGZh
aWxzLCBpbnN0ZWFkIG9mIHJhaXNpbmcgYW4gSU9FcnJvci4KKyAgICBXcml0ZXMgc2hvdWxkIG5l
dmVyIGZhaWwsIHNvIHdlIG1heSByYWlzZSBJT0Vycm9yLgogCiAgICAgIiIiCi0gICAgdHJ5Ogot
ICAgICAgICB3aXRoIG9wZW4ocGF0aCwgbW9kZSkgYXMgZjoKKyAgICB3aXRoIG9wZW4ocGF0aCwg
bW9kZSkgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoY29udGVudHMpCi0gICAgZXhjZXB0IElP
RXJyb3I6Ci0gICAgICAgIHBhc3MKIAogCiBjbGFzcyBEcnlSdW5Qb3J0KG9iamVjdCk6CkBAIC0x
MzQsOSArMTMxLDYgQEAgY2xhc3MgRHJ5cnVuRHJpdmVyKGJhc2UuRHJpdmVyKToKICAgICBkZWYg
cG9sbChzZWxmKToKICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIGRlZiByZXR1cm5jb2RlKHNl
bGYpOgotICAgICAgICByZXR1cm4gMAotCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHVyaSwgdGlt
ZW91dG1zLCBpbWFnZV9oYXNoKToKICAgICAgICAgdGVzdF9uYW1lID0gc2VsZi5fdXJpX3RvX3Rl
c3QodXJpKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnlfdW5pdHRlc3QucHkKaW5kZXggZDhkZmZk
ZmM1YjIzZGU2MzNiNWEzODRmMjU5MjU4ODI3Mjg0MWJjZS4uZjRiNTg3MmE1MGZmMDczNGM0NWIw
Nzc4ZmUwNWUwZTlhOTYwNWUzNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5X3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeV91bml0dGVzdC5w
eQpAQCAtMzQsNiArMzQsNyBAQCBpbXBvcnQgY2hyb21pdW1fbWFjCiBpbXBvcnQgY2hyb21pdW1f
d2luCiBpbXBvcnQgZHJ5cnVuCiBpbXBvcnQgZmFjdG9yeQoraW1wb3J0IGdvb2dsZV9jaHJvbWUK
IGltcG9ydCBndGsKIGltcG9ydCBtYWMKIGltcG9ydCBxdApAQCAtMTE0LDYgKzExNSwxOCBAQCBj
bGFzcyBGYWN0b3J5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0
X3BsYXRmb3JtX3BvcnQoImN5Z3dpbiIsIE5vbmUsIHdpbi5XaW5Qb3J0KQogICAgICAgICBzZWxm
LmFzc2VydF9wbGF0Zm9ybV9wb3J0KCJjeWd3aW4iLCBzZWxmLndlYmtpdF9vcHRpb25zLCB3aW4u
V2luUG9ydCkKIAorICAgIGRlZiB0ZXN0X2dvb2dsZV9jaHJvbWUoc2VsZik6CisgICAgICAgICMg
VGhlIGFjdHVhbCBDaHJvbWUgY2xhc3MgbmFtZXMgYXJlbid0IGF2YWlsYWJsZSBzbyB3ZSB0ZXN0
IHRoYXQgdGhlCisgICAgICAgICMgb2JqZWN0cyB3ZSBnZXQgYXJlIGF0IGxlYXN0IHN1YmNsYXNz
ZXMgb2YgdGhlIENocm9taXVtIHZlcnNpb25zLgorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJn
b29nbGUtY2hyb21lLWxpbnV4MzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNocm9taXVt
X2xpbnV4LkNocm9taXVtTGludXhQb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29n
bGUtY2hyb21lLWxpbnV4NjQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNocm9taXVtX2xp
bnV4LkNocm9taXVtTGludXhQb3J0KQorICAgICAgICBzZWxmLmFzc2VydF9wb3J0KCJnb29nbGUt
Y2hyb21lLXdpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fd2luLkNocm9t
aXVtV2luUG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRfcG9ydCgiZ29vZ2xlLWNocm9tZS1tYWMi
LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQp
CisKICAgICBkZWYgdGVzdF9ndGsoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3BvcnQoImd0
ayIsIGd0ay5HdGtQb3J0KQogCkBAIC0xMzYsMyArMTQ5LDE5IEBAIGNsYXNzIEZhY3RvcnlUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KQogICAgICAgICBzZWxmLmFzc2VydF9wbGF0Zm9y
bV9wb3J0KCJjeWd3aW4iLCBzZWxmLmNocm9taXVtX29wdGlvbnMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKKworICAgIGRl
ZiB0ZXN0X3Vua25vd25fc3BlY2lmaWVkKHNlbGYpOgorICAgICAgICAjIFRlc3Qgd2hhdCBoYXBw
ZW5zIHdoZW4geW91IHNwZWNpZnkgYW4gdW5rbm93biBwb3J0LgorICAgICAgICBvcmlnX3BsYXRm
b3JtID0gc3lzLnBsYXRmb3JtCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVu
dGVkRXJyb3IsIGZhY3RvcnkuZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0X25h
bWU9J3Vua25vd24nKQorCisgICAgZGVmIHRlc3RfdW5rbm93bl9kZWZhdWx0KHNlbGYpOgorICAg
ICAgICAjIFRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4geW91J3JlIHJ1bm5pbmcgb24gYW4gdW5rbm93
biBwbGF0Zm9ybS4KKyAgICAgICAgb3JpZ19wbGF0Zm9ybSA9IHN5cy5wbGF0Zm9ybQorICAgICAg
ICBzeXMucGxhdGZvcm0gPSAndW5rbm93bicKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90
SW1wbGVtZW50ZWRFcnJvciwgZmFjdG9yeS5nZXQpCisgICAgICAgIHN5cy5wbGF0Zm9ybSA9IG9y
aWdfcGxhdGZvcm0KKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5t
YWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKaW5kZXggYWU3ZDQwYzQ1YWYwYjMzMWQ2
NGJmNjM2YTU4ZmMxOWVhNTU4MThjYS4uYjU3OTcwMzlhNGI1M2RkZjc0ZDdkN2Q2OWQxZTY0NjY1
YjY2OTk2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHkKQEAgLTI2LDE0ICsyNiwyMiBA
QAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IFN0cmluZ0lPCiBpbXBv
cnQgdW5pdHRlc3QKKwogaW1wb3J0IG1hYwotaW1wb3J0IFN0cmluZ0lPCitpbXBvcnQgcG9ydF90
ZXN0Y2FzZQorCiAKLWNsYXNzIE1hY1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgTWFj
VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CisgICAgZGVmIG1ha2VfcG9ydChzZWxm
LCBvcHRpb25zPXBvcnRfdGVzdGNhc2UuTW9ja09wdGlvbnMoKSk6CisgICAgICAgIHBvcnRfb2Jq
ID0gbWFjLk1hY1BvcnQob3B0aW9ucz1vcHRpb25zKQorICAgICAgICBwb3J0X29iai5fb3B0aW9u
cy5yZXN1bHRzX2RpcmVjdG9yeSA9IHBvcnRfb2JqLnJlc3VsdHNfZGlyZWN0b3J5KCkKKyAgICAg
ICAgcG9ydF9vYmouX29wdGlvbnMuY29uZmlndXJhdGlvbiA9ICdSZWxlYXNlJworICAgICAgICBy
ZXR1cm4gcG9ydF9vYmoKIAogICAgIGRlZiB0ZXN0X3NraXBwZWRfZmlsZV9wYXRocyhzZWxmKToK
LSAgICAgICAgcG9ydCA9IG1hYy5NYWNQb3J0KCkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9w
b3J0KCkKICAgICAgICAgc2tpcHBlZF9wYXRocyA9IHBvcnQuX3NraXBwZWRfZmlsZV9wYXRocygp
CiAgICAgICAgICMgRklYTUU6IF9za2lwcGVkX2ZpbGVfcGF0aHMgc2hvdWxkIHJldHVybiBXZWJL
aXQtcmVsYXRpdmUgcGF0aHMuCiAgICAgICAgICMgU28gdG8gbWFrZSBpdCB1bml0IHRlc3RhYmxl
LCB3ZSBzdHJpcCB0aGUgV2ViS2l0IGRpcmVjdG9yeSBmcm9tIHRoZSBwYXRoLgpAQCAtNTcsNyAr
NjUsNyBAQCBzdmcvYmF0aWsvdGV4dC9zbWFsbEZvbnRzLnN2ZwogICAgIF0KIAogICAgIGRlZiB0
ZXN0X3NraXBwZWRfZmlsZV9wYXRocyhzZWxmKToKLSAgICAgICAgcG9ydCA9IG1hYy5NYWNQb3J0
KCkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAgICAgICAgc2tpcHBlZF9maWxl
ID0gU3RyaW5nSU8uU3RyaW5nSU8oc2VsZi5leGFtcGxlX3NraXBwZWRfZmlsZSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwb3J0Ll90ZXN0c19mcm9tX3NraXBwZWRfZmlsZShza2lwcGVkX2Zp
bGUpLCBzZWxmLmV4YW1wbGVfc2tpcHBlZF90ZXN0cykKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3Rj
YXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdhOTc5MTZjMzVhZDIxMzBkMWYwZDJlNmRhY2MzYTUzMjU3YWVj
NjAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTAsMCArMSw3NiBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyIiIlVuaXQgdGVzdGluZyBiYXNlIGNsYXNzIGZvciBQb3J0IGltcGxlbWVudGF0aW9u
cy4iIiIKKworaW1wb3J0IG9zCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB1bml0dGVzdAorCisK
K2NsYXNzIE1vY2tPcHRpb25zKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAg
ICAgICAgICAgICAgIHJlc3VsdHNfZGlyZWN0b3J5PSdsYXlvdXQtdGVzdC1yZXN1bHRzJywKKyAg
ICAgICAgICAgICAgICAgdXNlX2FwYWNoZT1UcnVlLAorICAgICAgICAgICAgICAgICBjb25maWd1
cmF0aW9uPSdSZWxlYXNlJyk6CisgICAgICAgIHNlbGYucmVzdWx0c19kaXJlY3RvcnkgPSByZXN1
bHRzX2RpcmVjdG9yeQorICAgICAgICBzZWxmLnVzZV9hcGFjaGUgPSB1c2VfYXBhY2hlCisgICAg
ICAgIHNlbGYuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24KKworCitjbGFzcyBQb3J0VGVz
dENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRlc3RzIHRoZSBXZWJLaXQgcG9ydCBp
bXBsZW1lbnRhdGlvbi4iIiIKKyAgICBkZWYgbWFrZV9wb3J0KHNlbGYsIG9wdGlvbnM9TW9ja09w
dGlvbnMoKSk6CisgICAgICAgICIiIk92ZXJyaWRlIGluIHN1YmNsYXNzLiIiIgorICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiB0ZXN0X2h0dHBfc2VydmVyKHNl
bGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBwb3J0LnN0YXJ0
X2h0dHBfc2VydmVyKCkKKyAgICAgICAgcG9ydC5zdG9wX2h0dHBfc2VydmVyKCkKKworICAgIGRl
ZiB0ZXN0X2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgp
CisgICAgICAgIGRpciA9IHBvcnQubGF5b3V0X3Rlc3RzX2RpcigpCisgICAgICAgIGZpbGUxID0g
b3MucGF0aC5qb2luKGRpciwgJ2Zhc3QnLCAnY3NzJywgJ2J1dHRvbl9jZW50ZXIucG5nJykKKyAg
ICAgICAgZmlsZTIgPSBvcy5wYXRoLmpvaW4oZGlyLCAnZmFzdCcsICdjc3MnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAncmVtb3ZlLXNob3J0aGFuZC1leHBlY3RlZC5wbmcnKQorICAg
ICAgICB0bXBmaWxlID0gdGVtcGZpbGUubWt0ZW1wKCkKKworICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKHBvcnQuZGlmZl9pbWFnZShmaWxlMSwgZmlsZTEpKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocG9ydC5kaWZmX2ltYWdlKGZpbGUxLCBmaWxlMikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHBvcnQuZGlmZl9pbWFnZShmaWxlMSwgZmlsZTIsIHRtcGZpbGUpKQorICAgICAgICAjIEZJ
WE1FOiB0aGlzIG1heSBub3QgYmUgYmVpbmcgd3JpdHRlbj8KKyAgICAgICAgIyBzZWxmLmFzc2Vy
dFRydWUob3MucGF0aC5leGlzdHModG1wZmlsZSkpCisgICAgICAgICMgb3MucmVtb3ZlKHRtcGZp
bGUpCisKKyAgICBkZWYgdGVzdF93ZWJzb2NrZXRfc2VydmVyKHNlbGYpOgorICAgICAgICBwb3J0
ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBwb3J0LnN0YXJ0X3dlYnNvY2tldF9zZXJ2ZXIo
KQorICAgICAgICBwb3J0LnN0b3Bfd2Vic29ja2V0X3NlcnZlcigpCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3NlcnZlcl9wcm9jZXNz
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9zZXJ2
ZXJfcHJvY2Vzcy5weQppbmRleCA2MmNhNjkzMTJhYjA3YWUzYWI1OWZmM2U1Yzk0YjY3NTI1Mzhk
ZWJiLi5iY2NkZjE4MWQyNWU5N2FiMDIzYmI4N2Y3M2FjNzUzNjIyODk5Y2E3IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3NlcnZlcl9w
cm9jZXNzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkKQEAgLTEwOSwxNCArMTA5LDYgQEAgY2xhc3MgU2VydmVy
UHJvY2VzczoKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jLnBvbGwoKQogICAgICAgICBy
ZXR1cm4gTm9uZQogCi0gICAgZGVmIHJldHVybmNvZGUoc2VsZik6Ci0gICAgICAgICIiIlJldHVy
bnMgdGhlIGV4aXQgY29kZSBmcm9tIHRoZSBzdWJwcmNvZXNzOyByZXR1cm5zIE5vbmUgaWYgdGhl
Ci0gICAgICAgIHByb2Nlc3MgaGFzbid0IGV4aXRlZCAodGhpcyBpcyBhIHdyYXBwZXIgYXJvdW5k
IHN1YnByb2Nlc3MucmV0dXJuY29kZSkuCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9w
cm9jOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2MucmV0dXJuY29kZQotICAgICAgICBy
ZXR1cm4gTm9uZQotCiAgICAgZGVmIHdyaXRlKHNlbGYsIGlucHV0KToKICAgICAgICAgIiIiV3Jp
dGUgYSByZXF1ZXN0IHRvIHRoZSBzdWJwcm9jZXNzLiBUaGUgc3VicHJvY2VzcyBpcyAocmUtKXN0
YXJ0KCknZWQKICAgICAgICAgaWYgaXMgbm90IGFscmVhZHkgcnVubmluZy4iIiIKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5w
eQppbmRleCBlMzA5MzM0NmIxOGU0MWVkOWFlYTM5NDhkMTM0Y2YxZmIwYmQzMzlhLi4wZDc5ZjMy
ZTRjZTZiY2RkN2EzNTc3NTUyODliZDdkNzY2N2EwZjE5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CkBAIC0xNDUs
OSArMTQ1LDYgQEAgY2xhc3MgVGVzdERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgZGVmIHBvbGwo
c2VsZik6CiAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICBkZWYgcmV0dXJuY29kZShzZWxmKToK
LSAgICAgICAgcmV0dXJuIDAKLQogICAgIGRlZiBydW5fdGVzdChzZWxmLCB1cmksIHRpbWVvdXRt
cywgaW1hZ2VfaGFzaCk6CiAgICAgICAgIGJhc2VuYW1lID0gdXJpWyh1cmkucmZpbmQoIi8iKSAr
IDEpOnVyaS5yZmluZCgiLmh0bWwiKV0KIApAQCAtMTc5LDYgKzE3Niw3IEBAIGNsYXNzIFRlc3RE
cml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2V4
Y2VwdGlvbiBmcm9tICcgKyBiYXNlbmFtZSkKIAogICAgICAgICAgICAgY3Jhc2ggPSAnY3Jhc2gn
IGluIGJhc2VuYW1lCisgICAgICAgICAgICB0aW1lb3V0ID0gJ3RpbWVvdXQnIGluIGJhc2VuYW1l
IG9yICdoYW5nJyBpbiBiYXNlbmFtZQogICAgICAgICAgICAgdGltZW91dCA9ICd0aW1lb3V0JyBp
biBiYXNlbmFtZQogICAgICAgICAgICAgaWYgJ3RleHQnIGluIGJhc2VuYW1lOgogICAgICAgICAg
ICAgICAgIG91dHB1dCA9IGJhc2VuYW1lICsgJ19mYWlsZWQtdHh0XG4nCkBAIC0xOTYsNiArMTk0
LDkgQEAgY2xhc3MgVGVzdERyaXZlcihiYXNlLkRyaXZlcik6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBmLndyaXRlKGJhc2VuYW1lICsgIi1wbmdcbiIpCiAgICAgICAgICAgICAgICAgaWYgJ2No
ZWNrc3VtJyBpbiBiYXNlbmFtZToKICAgICAgICAgICAgICAgICAgICAgY2hlY2tzdW0gPSBiYXNl
bmFtZSArICJfZmFpbGVkLWNoZWNrc3VtXG4iCisKKyAgICAgICAgICAgIGlmICdoYW5nJyBpbiBi
YXNlbmFtZToKKyAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKChmbG9hdCh0aW1lb3V0bXMpICog
NCkgLyAxMDAwLjApCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjcmFzaCA9IEZhbHNlCiAg
ICAgICAgICAgICB0aW1lb3V0ID0gRmFsc2UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKaW5kZXggY2VkYzAyODY1
YTU1MDU4NTk2YWQ2MWUwZTdjNjk5MThkYjhhOWIxYS4uYmU5YzM3Y2ZkMTExYjkzZTAxOWU1ZjNh
ZGYzZTE5NTk4OWMyZGE5NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTM1OSw5ICszNTksNiBAQCBj
bGFzcyBXZWJLaXREcml2ZXIoYmFzZS5Ecml2ZXIpOgogICAgICAgICBzZWxmLl9zZXJ2ZXJfcHJv
Y2Vzcy5zdGFydCgpCiAgICAgICAgIHJldHVybgogCi0gICAgZGVmIHJldHVybmNvZGUoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9zZXJ2ZXJfcHJvY2Vzcy5yZXR1cm5jb2RlKCkKLQogICAg
ICMgRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgaHVnZS4KICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwg
dXJpLCB0aW1lb3V0bXMsIGltYWdlX2hhc2gpOgogICAgICAgICBpZiB1cmkuc3RhcnRzd2l0aCgi
ZmlsZTovLy8iKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDQxMzIyNjAwNmFhODFi
MTg2Mzk4N2U5NjkwMDNhNWI5MWU5MDc0NDMuLjc5ZTU2NmEyMGFkMGIzNWM5ZDAwZWQzNzQ3YWY1
N2IxYmQ4NmU3ZjcgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtNTMsNyArNTMsNiBA
QCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG1hdGgKIGltcG9ydCBvcHRwYXJzZQogaW1wb3J0IG9z
Ci1pbXBvcnQgcGRiCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBRdWV1ZQogaW1wb3J0IHJhbmRv
bQpAQCAtMzcxLDcgKzM3MCw3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgICAgICAgICAg
YXNzZXJ0KHRlc3Rfc2l6ZSA+IDApCiAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAg
ICAgX2xvZy5jcml0aWNhbCgiaW52YWxpZCBjaHVuayAnJXMnIiAlIGNodW5rX3ZhbHVlKQotICAg
ICAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAog
ICAgICAgICAgICAgIyBHZXQgdGhlIG51bWJlciBvZiB0ZXN0cwogICAgICAgICAgICAgbnVtX3Rl
c3RzID0gbGVuKHRlc3RfZmlsZXMpCkBAIC0xMzUwLDExICsxMzQ5LDE4IEBAIGNsYXNzIFRlc3RS
dW5uZXI6CiBkZWYgcmVhZF90ZXN0X2ZpbGVzKGZpbGVzKToKICAgICB0ZXN0cyA9IFtdCiAgICAg
Zm9yIGZpbGUgaW4gZmlsZXM6Ci0gICAgICAgICMgRklYTUU6IFRoaXMgY291bGQgYmUgY2xlYW5l
ciB1c2luZyBhIGxpc3QgY29tcHJlaGVuc2lvbi4KLSAgICAgICAgZm9yIGxpbmUgaW4gY29kZWNz
Lm9wZW4oZmlsZSwgInIiLCAidXRmLTgiKToKLSAgICAgICAgICAgIGxpbmUgPSB0ZXN0X2V4cGVj
dGF0aW9ucy5zdHJpcF9jb21tZW50cyhsaW5lKQotICAgICAgICAgICAgaWYgbGluZToKLSAgICAg
ICAgICAgICAgICB0ZXN0cy5hcHBlbmQobGluZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
d2l0aCBjb2RlY3Mub3BlbihmaWxlLCAncicsICd1dGYtOCcpIGFzIGZpbGVfY29udGVudHM6Cisg
ICAgICAgICAgICAgICAgIyBGSVhNRTogVGhpcyBjb3VsZCBiZSBjbGVhbmVyIHVzaW5nIGEgbGlz
dCBjb21wcmVoZW5zaW9uLgorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGZpbGVfY29udGVu
dHM6CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSB0ZXN0X2V4cGVjdGF0aW9ucy5zdHJpcF9j
b21tZW50cyhsaW5lKQorICAgICAgICAgICAgICAgICAgICBpZiBsaW5lOgorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdHMuYXBwZW5kKGxpbmUpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBl
OgorICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6CisgICAgICAgICAgICAg
ICAgX2xvZy5jcml0aWNhbCgnJykKKyAgICAgICAgICAgICAgICBfbG9nLmNyaXRpY2FsKCctLXRl
c3QtbGlzdCBmaWxlICIlcyIgbm90IGZvdW5kJyAlIGZpbGUpCisgICAgICAgICAgICByYWlzZQog
ICAgIHJldHVybiB0ZXN0cwogCiAKQEAgLTEzOTgsNyArMTQwNCwxMiBAQCBkZWYgcnVuKHBvcnQs
IG9wdGlvbnMsIGFyZ3MsIHJlZ3VsYXJfb3V0cHV0PXN5cy5zdGRlcnIsCiAgICAgICAgIHRlc3Rf
cnVubmVyLl9wcmludF9jb25maWcoKQogCiAgICAgICAgIHByaW50ZXIucHJpbnRfdXBkYXRlKCJD
b2xsZWN0aW5nIHRlc3RzIC4uLiIpCi0gICAgICAgIHRlc3RfcnVubmVyLmNvbGxlY3RfdGVzdHMo
YXJncywgbGFzdF91bmV4cGVjdGVkX3Jlc3VsdHMpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHRlc3RfcnVubmVyLmNvbGxlY3RfdGVzdHMoYXJncywgbGFzdF91bmV4cGVjdGVkX3Jlc3VsdHMp
CisgICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgorICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBl
cnJuby5FTk9FTlQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xCisgICAgICAgICAgICByYWlz
ZQogCiAgICAgICAgIHByaW50ZXIucHJpbnRfdXBkYXRlKCJQYXJzaW5nIGV4cGVjdGF0aW9ucyAu
Li4iKQogICAgICAgICBpZiBvcHRpb25zLmxpbnRfdGVzdF9maWxlczoKQEAgLTE2OTUsMzEgKzE3
MDYsMTQgQEAgZGVmIHBhcnNlX2FyZ3MoYXJncz1Ob25lKToKICAgICByZXR1cm4gb3B0aW9ucywg
YXJncwogCiAKLWRlZiBfZmluZF90aHJlYWRfc3RhY2soaWQpOgotICAgICIiIlJldHVybnMgYSBz
dGFjayBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBkdW1wIGEgc3RhY2sgdHJhY2UgZm9yCi0g
ICAgdGhlIGdpdmVuIHRocmVhZCBpZCAob3IgTm9uZSBpZiB0aGUgaWQgaXMgbm90IGZvdW5kKS4i
IiIKLSAgICBmb3IgdGhyZWFkX2lkLCBzdGFjayBpbiBzeXMuX2N1cnJlbnRfZnJhbWVzKCkuaXRl
bXMoKToKLSAgICAgICAgaWYgdGhyZWFkX2lkID09IGlkOgotICAgICAgICAgICAgcmV0dXJuIHN0
YWNrCi0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgX2xvZ19zdGFjayhzdGFjayk6Ci0gICAgIiIi
TG9nIGEgc3RhY2sgdHJhY2UgdG8gbG9nLmVycm9yKCkuIiIiCi0gICAgZm9yIGZpbGVuYW1lLCBs
aW5lbm8sIG5hbWUsIGxpbmUgaW4gdHJhY2ViYWNrLmV4dHJhY3Rfc3RhY2soc3RhY2spOgotICAg
ICAgICBfbG9nLmVycm9yKCdGaWxlOiAiJXMiLCBsaW5lICVkLCBpbiAlcycgJSAoZmlsZW5hbWUs
IGxpbmVubywgbmFtZSkpCi0gICAgICAgIGlmIGxpbmU6Ci0gICAgICAgICAgICBfbG9nLmVycm9y
KCcgICVzJyAlIGxpbmUuc3RyaXAoKSkKLQotCiBkZWYgX2xvZ193ZWRnZWRfdGhyZWFkKHRocmVh
ZCk6CiAgICAgIiIiTG9nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBnaXZlbiB0aHJlYWQgc3RhdGUu
IiIiCiAgICAgaWQgPSB0aHJlYWQuaWQoKQotICAgIHN0YWNrID0gX2ZpbmRfdGhyZWFkX3N0YWNr
KGlkKQorICAgIHN0YWNrID0gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuZmluZF90aHJlYWRfc3Rh
Y2soaWQpCiAgICAgYXNzZXJ0KHN0YWNrIGlzIG5vdCBOb25lKQogICAgIF9sb2cuZXJyb3IoIiIp
CiAgICAgX2xvZy5lcnJvcigidGhyZWFkICVzICglZCkgaXMgd2VkZ2VkIiAlICh0aHJlYWQuZ2V0
TmFtZSgpLCBpZCkpCi0gICAgX2xvZ19zdGFjayhzdGFjaykKKyAgICBkdW1wX3JlbmRlcl90cmVl
X3RocmVhZC5sb2dfc3RhY2soc3RhY2spCiAgICAgX2xvZy5lcnJvcigiIikKIAogCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQppbmRleCA0Y2JmZGZjZGY4YjlmZDVh
MzM4ZWYxNDg5NWI4N2I1ODFkNWM5ODk4Li5hYTk2OTYyNzJkOWE4NzhlNmE5Yjk2YTQ0MmE5ZDVh
M2JmYTk5OTQ0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkK
QEAgLTMyLDkgKzMyLDkgQEAKIGltcG9ydCBjb2RlY3MKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQg
b3MKLWltcG9ydCBwZGIKIGltcG9ydCBRdWV1ZQogaW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxl
CiBpbXBvcnQgdGhyZWFkCiBpbXBvcnQgdGltZQogaW1wb3J0IHRocmVhZGluZwpAQCAtNTksNyAr
NTksMTAgQEAgZGVmIHBhc3NpbmdfcnVuKGFyZ3M9W10sIHBvcnRfb2JqPU5vbmUsIHJlY29yZF9y
ZXN1bHRzPUZhbHNlLAogICAgIG5ld19hcmdzLmV4dGVuZChhcmdzKQogICAgIGlmIG5vdCB0ZXN0
c19pbmNsdWRlZDoKICAgICAgICAgIyBXZSB1c2UgdGhlIGdsb2IgdG8gdGVzdCB0aGF0IGdsb2Ji
aW5nIHdvcmtzLgotICAgICAgICBuZXdfYXJncy5leHRlbmQoWydwYXNzZXMnLCAnZmFpbHVyZXMv
ZXhwZWN0ZWQvKiddKQorICAgICAgICBuZXdfYXJncy5leHRlbmQoWydwYXNzZXMnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICdodHRwL3Rlc3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2Vic29ja2V0L3Rlc3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMv
ZXhwZWN0ZWQvKiddKQogICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcnVuX3dlYmtpdF90ZXN0
cy5wYXJzZV9hcmdzKG5ld19hcmdzKQogICAgIGlmIHBvcnRfb2JqIGlzIE5vbmU6CiAgICAgICAg
IHBvcnRfb2JqID0gcG9ydC5nZXQob3B0aW9ucy5wbGF0Zm9ybSwgb3B0aW9ucykKQEAgLTcxLDEw
ICs3NCwxMiBAQCBkZWYgbG9nZ2luZ19ydW4oYXJncz1bXSwgdGVzdHNfaW5jbHVkZWQ9RmFsc2Up
OgogICAgIG5ld19hcmdzID0gWyctLW5vLXJlY29yZC1yZXN1bHRzJ10KICAgICBpZiBub3QgJy0t
cGxhdGZvcm0nIGluIGFyZ3M6CiAgICAgICAgIG5ld19hcmdzLmV4dGVuZChbJy0tcGxhdGZvcm0n
LCAndGVzdCddKQotICAgIGlmIGFyZ3M6Ci0gICAgICAgIG5ld19hcmdzLmV4dGVuZChhcmdzKQor
ICAgIG5ld19hcmdzLmV4dGVuZChhcmdzKQogICAgIGlmIG5vdCB0ZXN0c19pbmNsdWRlZDoKLSAg
ICAgICAgbmV3X2FyZ3MuZXh0ZW5kKFsncGFzc2VzJywgJ2ZhaWx1cmVzL2V4cGVjdGVkLyonXSkK
KyAgICAgICAgbmV3X2FyZ3MuZXh0ZW5kKFsncGFzc2VzJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAnaHR0cC90ZXN0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAnd2Vic29ja2V0L3Rl
c3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvKiddKQog
ICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcnVuX3dlYmtpdF90ZXN0cy5wYXJzZV9hcmdzKG5l
d19hcmdzKQogICAgIHBvcnRfb2JqID0gcG9ydC5nZXQob3B0aW9ucy5wbGF0Zm9ybSwgb3B0aW9u
cykKICAgICBidWlsZGJvdF9vdXRwdXQgPSBhcnJheV9zdHJlYW0uQXJyYXlTdHJlYW0oKQpAQCAt
MTE5LDYgKzEyNCwxNCBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShlcnIuZW1wdHkoKSkKIAorICAgIGRlZiB0ZXN0X2h1bmdfdGhyZWFkKHNlbGYpOgorICAgICAg
ICByZXMsIG91dCwgZXJyID0gbG9nZ2luZ19ydW4oWyctLXJ1bi1zaW5nbHknLCAnLS10aW1lLW91
dC1tcz01MCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVz
L2V4cGVjdGVkL2hhbmcuaHRtbCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIDAp
CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3V0LmVtcHR5KCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoZXJyLmVtcHR5KCkpCisKICAgICBkZWYgdGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQo
c2VsZik6CiAgICAgICAgICMgTm90ZSB0aGF0IHRoaXMgYWxzbyB0ZXN0cyBydW5uaW5nIGEgdGVz
dCBtYXJrZWQgYXMgU0tJUCBpZgogICAgICAgICAjIHlvdSBzcGVjaWZ5IGl0IGV4cGxpY2l0bHku
CkBAIC0xNzUsNiArMTg4LDE5IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgIyBGSVhNRTogdmVyaWZ5ICMgb2YgdGVzdHMgcnVuCiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwYXNzaW5nX3J1bihbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9
VHJ1ZSkpCiAKKyAgICBkZWYgdGVzdF90ZXN0X2xpc3Qoc2VsZik6CisgICAgICAgIGZpbGVuYW1l
ID0gdGVtcGZpbGUubWt0ZW1wKCkKKyAgICAgICAgdG1wZmlsZSA9IGZpbGUoZmlsZW5hbWUsIG1v
ZGU9J3crJykKKyAgICAgICAgdG1wZmlsZS53cml0ZSgncGFzc2VzL3RleHQuaHRtbCcpCisgICAg
ICAgIHRtcGZpbGUuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocGFzc2luZ19ydW4o
WyctLXRlc3QtbGlzdD0lcycgJSBmaWxlbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlKSkKKyAgICAgICAgb3MucmVtb3ZlKGZpbGVu
YW1lKQorICAgICAgICByZXMsIG91dCwgZXJyID0gbG9nZ2luZ19ydW4oWyctLXRlc3QtbGlzdD0l
cycgJSBmaWxlbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
c19pbmNsdWRlZD1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgLTEpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXJyLmVtcHR5KCkpCisKICAgICBkZWYgdGVzdF91bmV4cGVj
dGVkX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICAjIFJ1biB0ZXN0cyBpbmNsdWRpbmcgdGhlIHVu
ZXhwZWN0ZWQgZmFpbHVyZXMuCiAgICAgICAgIHJlcywgb3V0LCBlcnIgPSBsb2dnaW5nX3J1bih0
ZXN0c19pbmNsdWRlZD1UcnVlKQpAQCAtMjc5LDYgKzMwNSwxMyBAQCBjbGFzcyBEcnlydW5UZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhc3NpbmdfcnVu
KFsnLS1wbGF0Zm9ybScsICdkcnlydW4tbWFjJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZmFzdC9odG1sJ10pKQogCisgICAgZGVmIHRlc3RfdGVzdChzZWxmKToKKyAg
ICAgICAgcmVzLCBvdXQsIGVyciA9IGxvZ2dpbmdfcnVuKFsnLS1wbGF0Zm9ybScsICdkcnlydW4t
dGVzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tcGl4ZWwtdGVz
dHMnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIDIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2Uob3V0LmVtcHR5KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXJyLmVtcHR5
KCkpCisKIAogY2xhc3MgVGVzdFRocmVhZChkdW1wX3JlbmRlcl90cmVlX3RocmVhZC5XYXRjaGFi
bGVUaHJlYWQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGFydGVkX3F1ZXVlLCBzdG9wcGlu
Z19xdWV1ZSk6CkBAIC0zODgsMTMgKzQyMSw2IEBAIGNsYXNzIFN0YW5kYWxvbmVGdW5jdGlvbnNU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjaGlsZF90
aHJlYWQuaXNBbGl2ZSgpKQogICAgICAgICBvYy5yZXN0b3JlX291dHB1dCgpCiAKLSAgICBkZWYg
dGVzdF9maW5kX3RocmVhZF9zdGFjayhzZWxmKToKLSAgICAgICAgaWQsIHN0YWNrID0gc3lzLl9j
dXJyZW50X2ZyYW1lcygpLml0ZW1zKClbMF0KLSAgICAgICAgZm91bmRfc3RhY2sgPSBydW5fd2Vi
a2l0X3Rlc3RzLl9maW5kX3RocmVhZF9zdGFjayhpZCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RF
cXVhbChmb3VuZF9zdGFjaywgTm9uZSkKLQotICAgICAgICBmb3VuZF9zdGFjayA9IHJ1bl93ZWJr
aXRfdGVzdHMuX2ZpbmRfdGhyZWFkX3N0YWNrKDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Zm91bmRfc3RhY2ssIE5vbmUpCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdW5p
dHRlc3QubWFpbigpCg==
</data>
<flag name="review"
          id="55335"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>